criu-debuginfo-3.18.1.3-1.vz7>  j|ee  }Dͭ*0QbeZ@q(n2ȗߗsZ$uˌ Sw /?T4ŁswfEkT/7KC\dܫ;4"v?"vd  C" Pbsy \  J 8    pL$(89:G"<4H"DI"KX"MY"M\"N ]"U^"m3b"uc"vjd"ve"vf"vl"v"vCcriu-debuginfo3.18.1.31.vz7Debug information for package criuThis package provides debug information for package criu. Debug information is useful when developing applications that use this package or when debugging this package.edbuilder5.eng.sw.ruVirtuozzoVirtuozzoGPLv2Virtuozzo (http://www.virtuozzo.com/support/)Development/Debughttp://criu.org/linuxx86_64 $"&% #E BEL  SRbR b'<C"@ kK k\U # Eg=S %n+o0.1v uRV4[Q : JUp BQ>?Pt}Xh_?U/ H]r# kTyQ=  p -]A= (%K/ W!t4J7 ;V !x jyLC G@5f] "o@v $;T6& 6$!A%k t'KDE[.b ߂2{6S6 ]db()1?J)$m- ?;- +.-RzUk DC ! ` V& kV',zv;u[N']=*{1$+0 @Y # !c n7J 26 Y^&Q" 2k[C w/ _fK !)?4vCH4fo)s &>A  M SCA  f &d?%oH \ u[ ;))q,&7p0m6Jw 5F -V 2 "e%5 .,' + ?'5}W6AAAAAAAA큤AA$A$$A$AAAAAA큤A큤AA큤AA큤AA큤A큤AAA큤AA큤A큤AA큤AA큤A큤A큤A큤A큤A큤AA큤A큤AA큤AA큤A큤edededededededededededededededededededededededededededededededededededededed;ed;eded;ed;ed;ededed;ed;ed;ed;ed;ed;ededed;ed;ed;ededed;ed;ed;ed;ed;eded;ed;ed;ed;ed;ed;ed;ed;edededed;ed;ed;ed;ed;ed;ed;ed;ededed;ed;ed;ed;ed;ed;ed;eded;ed;ed;ededed;ed;ededed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;eded;ed;eded;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;eded;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;eded;ed;ed;ededed;ed;ed;eded;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ed;ededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededed;ededed;ed;ed;ed;ed;ed;ed;ed;ed;ededed;ed;eded;ed;753f46e18bf4b2e59dd56df3c2d80667681608d89fc7a61d09e8849de4727c664168e015b3bbb0364394ee13e724aa338202e07f6f293c4372708db8c960e598736a4f23865cc6759ee3e978658a414fa30a4577d552abd32ad3634f18bad669015efd5430abfc523c2ae0e7e3cffe6e501492b0c16c849ffdc3d3b5c9ee5d47d5b70a69a11f005189b81ed00488ca04297da23f96931a961fc6638cff9b5407a98780c9c8690e1a3c9aa4ed4d5f68358cfa6f1d6f27784a3ca54dc684616565479d7d415b3422dec3e200e86af388b15486700b65c2153949bee8123ad161fc4020ddaebf18bc15497d157c75063d95c108f05bdcd685cc2b213ce90c8afa274acc3c12bc2eb02da6446f6dc11930b097171df95935ba3d2c7787b25708b951a8d848a0c8879f2527287a99cfafcc8ee01bb29f5e963278905c96df432a220b0b4b135723d7f02b26951321a39d6c34ca404e0ed190af12809a4524b515a11d362264b674bf5b86c596c1033883c61b170b6a69fa26ff7c8b180880bcb5f6b43ab46ab6e9a697a78864644dabab79e5dd8d2622f1c282d4a7caee0a096046f39c1fd29d853ae1437df99dcb13ff89ea96df25f5253ba48510443bfbe73c8422f80d6d0b5c568ac2df2b4c6ff18bedbb3e5f53bdbdf35d1ea0daff56d7130b2f13e14c6eebede98c2d1a9e0f439816114cd20c37d0bef418577723f176dda3e80023aeeb9ad575d57bb4337ff42d14e97b9f7d7aadfa293065dc6c47002bfd0089402890e514f1095ee25da083036c218ded6b5bfc39b8ff2004ce5fdc2997016157caf97e37dee2669a59f4204a2facb656957077ea91057ea51f54182263f29d9aecdb3029c85f0de1c5fc753574891911a63e6ffb66627ec65682a020b50d0023aeeb9ad575d57bb4337ff42d14e97b9f7d7aadfa293065dc6c47002bfd006dbbde675574e57d7bccc344839140800bd394e3ca8dc97a47ae6e823111084e89402890e514f1095ee25da083036c218ded6b5bfc39b8ff2004ce5fdc2997016157caf97e37dee2669a59f4204a2facb656957077ea91057ea51f54182263f244e170b062d261b0a05745dd4c6a57255443fff9a602f062934d64c26b2182c498399d7ce167c4d4bcb274d3cef3fa6c21d5d510812af804b4305ef12c3baa6646d53e7ac3f9bddb6d11b388f312bb4cff0ff155892b63873e25c7b01a23488f183431e31ab332c8e9f1cc71b0518d81ae0df1800774cf5779e105cf64004cb8d75e080ee086748951dbd4b42c42fc64442fedabe416381e9374c2a850e28bdf9997a012f6b9fac609f1885f5decba67991faefb2dd4041a3c20e727874db94d591c4db5bc08cae6e305f075f91dbfb407357cbfc34693355c6a6e8dc996f974b17e3318c1b7b116cf38e25ca9c82c3abc3b1215d001e761917d6e4edb0d2f3facdaa65b9c91cf68c8c8fbb2d41a794b6f2d081078e3c74a641cf89978cfe287ca7b3c8f4c7b334e7f24727c494c78fa56af98fff54f09711d67d522e5583c08f8e79d38a4f5c84d70b71ac2282c75cb59fbc85c67fd72cb11be74fc7d810a6d6c2f38cf4ea3f52226fe69e5d277864b5d9dcbf4e4d7ca18089d8e796095c4ae5b4f26263ffcacdb650ebecd8f58da9db6a07f1259fdac1401c32dc9814c616e183431e31ab332c8e9f1cc71b0518d81ae0df1800774cf5779e105cf64004cb8d75e080ee086748951dbd4b42c42fc64442fedabe416381e9374c2a850e28bdfca7b3c8f4c7b334e7f24727c494c78fa56af98fff54f09711d67d522e5583c08538491bf58e62ed7ad00593cc4ea352c14227d6d4c1c32ea1a272ebe37d9c0f24edf99bacdcb81632fa2b7fbac614792387c233e311def725bb3b45f164fbe9cb7479d2490d1bf1a1d62537f24ce0fcdb059f310e79f65de0c0834c2575338ee67b7b12f634b246f76740c9e0304b7ffd2fd8527b3f11d2b65fcc588a92232c46b2c81320a4d1e7a403d1a357640890f8f91eb623c095c93e6ce00cd25ede3f67a3edcae48af30e3c722ef93975a2eabd278b20f3cef352d1b97f67ac0d2cec3963b255cd1b8f7eb18ba76306d651d177bb2b65749214b9503d7ad4573a7a9441b10e48dd213d9567f45e2299b065fc18a6e750ed542fa1efecde07a6208a174996ca4ea38d5a9d2947cd6be5fd161613d47c7cceafbb2fdc1ee58549ce1b2495ca88ec6dc743a1c1e370ccad952eb285ac160b294ecb245d756417bd6fb1467b7513170fc5b2f6b853a8c149dae059352d58da0a57ea507bffffb4e3434658e16873f633763c795d81ff0371275daed574ef95c02d045199064378c394c8e73349c2512d4eaf72ca07f68e71ae44b51db78bd1e993e96e05df6f1a2c8591cd132a3ec3c07740e55c3cc6b3bfb27ea627ebc55399134cbe436e6db84747cab79090d194ea26643fbb15badaa3b8b569826a2c17fd0d1f7dff029fe929ae09897ba5f24225af2625ef1b95dfec28f24fad78091fa56747164e59b1c9e291fc0248c594e1b580be77a654f8f9997489d2a4ca72a415c3868d560022abe0f4933829283ef28d90f480cad6110324d10115c2e51292ee9ce82a6b86e05f79ec2d7d2bc7554b78a923e16f40598f450573df723ed39a97c516cdb380133849ed52945e5e113949258881d227f5048f83ebae3baf3d8cdd287d983926d0e1cdfc44abd17905ff50ad86425d1af2c34154d74b76131e64024a52d8fdab219cfd7b1e78559810cfb10e99598e494c3b6b2244fb1f465d38dd7d37a8c07aff284e812aabe00d8a156f41be5b55fdf0956f8e0f1ded1c2deac1741a2fc75f3a4876a9ccc6428c7466b9eba550bac0740c6d0827a3d7bb617eac9e6cf01b8aee09c50c52c2fadb8536810f1214c38db50f62371b8a870a5c28ae59d9bfd3bd72ce90ce6794d212476849fe7dea82be623a2c44f9404525dee38c56d8e52a7a9b6f8e11ecbb88bd7e53255ac1f56eacfd52c3792161d50df5e7d246d5c5228b343aee11096e2912f17b5eae204d3bc19e725497099af27015b63337251f565bd206c349bad748b77e54833e3990a549c72579b337051056532119b7402f68c1927b3742a7d0c36ef1b7cda0c92a0fd5eb9d1cd425aa87c6976d108b826778e47ac15c3b497ab75cd2800585e91a3b4a5b65a5d8f7857e8383c5c6d1f33f695c59b887fad403a7c69e14361f0c7c1ba1de7d97036b797b08cafbc0f94eaf8bb9b47d03eb6214cf8d82db837fc844d0e47754b2d5091e137dda54ab076a9a31f4f906dc173eb85bc257bb96c11610edb62b921d8211a116840d99f566214a49d4c7b7e061a74a8a1cd4de6326f5de036897a88bf1b94faa31e3774a00f95b9faa39b7a6f676127daba2a1b502dba40586d9b8990f5591754a6e9f2152661242d704139422d1b3cd12768fac8ee852e5b7336bb7ce108056bbaa1037edfbccac83eae033ca0bc52f1b894e6654997b698385751c02630ff02f3825e91ae5ed384738e8669815699cc2b5bb98888b54bcb799537324783c73d97cb7b010ee503dd107e520bd3ce80de7c1eee0ef6dbed349a5c79aa622205cd98b525efba0dcf3be9029775292500144aa2253bc30338c879dd3f4befcaac265b2c5dd26cde1f545d18453c7f7a2606a0ec31617d553a9e6f4ebe4b1695326e8ad05d14da4ae21d85dc3f3f22e637977d7ff66e9523f0d2facf6d05c0fdd4a5eee6765e7e9e38b9bc51cab35cb741838ed5206742eb1c193191fe642226adc2edd7e32b073d4759c65d694521ec667d07ca15fb273acac9e44daa52a8fa9813b3493d97d359fcde4cc6f199b5610721e974c9908f0269b60854eaa728adb39e116dcdae09586e798621f5baf3f3d41e49798c23b50e665eeea6f4c0d09a117a56cc7f8d364c67c6ad24cc55726235ea4afaf634ddb9d262feeef9e630a6e7dd6ba2bee08111166ba9fca70d8adf8ee00df2fa2cd139a4f01d05c9642d11ba45e2ec0724435f074325a72413a798959aeca2a598d14483da36a5da71dad42cd09a21177a5f26b077ab8b79e18c25a9780d8100e20929db6ff1a93c053d9de300fdb3a8294c13eaac028f7835c5445ba61312a42427cc6e0279f528c4570d74229f12e5badfe9393a4d28bc7baa5dc511d79eb1805d24fde1e457c79199615bbd55fba1ceab9aa766772a1fe5ab89a0c42b11d45c1fce284ed8184b1ce56b914e5331f9bf36e65e76b932deb79894a48982587f5ef46ef813b46d63b5c9b2cb841f253d7d9924a853f85f215bedd57c9f7c9eb643c9e7cffc9c5202d345c8b0652a62ca3b001d48e751684ccf394cd30f1cc79b541c7b1c4065dab898e2aa936441ce597c184c6ffb186a4a7cdf7aa254bbe0cad11b368e1963adb57f6ee11521b025696eb80b7d26b55dd63ec547cc560acba4ae8795c0632d535a4f52628a505057ccb2530e8a66ad8d9c7c5b4dbadc09a8e8cff3ccf4a09da8904c9b178db7104839d5a653b2e68ec574eae7ef48c9976f5722ba20c8680e3a5cafbdd99ec2367e16521fb615ce660ab117b4f1105129a9943ca5374509732a310f2d4ae5562de24bbfb1ce890c71f8b309fa70ce615767cd83ee279d36b2cf617f3179792a054c6034ea3c66b69d32edc8efad50896333a21634dd6cd97006b777976f6cf1babc2f0bd60fb8a1e7a246b5816b0ff9ca7e8b429b5a7f312fed75039612bf18ae370a254d8e8de4a32ebdceb98d0b3cbd3fc31ce44ae92c6e6adc6db4429215fcdc2d57eb4a6cc743a8ff677d45e18a15e3356c5dacc97cb9a6b2385714c55db363a5a12f98407a2e0af8af621fcefd8c5ff8edfa07c318056313c9f869a5742978863ad9c1bfb97dc3ba48f24f66a0cda807b936488c9ae6a10ec957373eaf4c7769f5e58000a02bf2dd6325385b01c209a5778e45874a2d30106c411e3c3c78c953dddd986e6d6e6a69ed9ae708998c12f1680be41ffa958e84945796c5bc331c08a79be946b329c3a461de548e757cb205b337f1bf7a2c93ba3911cc971075a668bd72e5ee985eac02b03295261b27b3d7f6c82630d14c53798426f6dfa4367ddbc93c6223e4dc471f3c873bc3c72b26722d83b9f66464a1cd129506dd4eaa519cb1438efae3cd72888e03bb9145240be72d29df1dad57f5179ad74bfe320d04027b489ac9b937ebfdceecb0e760b80edaaebc79ea2c6bc8c1e91c0f8ca451024e3ca7c1d41007f05e6f15c0d1d4bd66feafccef43dd94a7ceb45428b87658e53402ecfa160840a6792b6defc404b8c9fc4cdf202d344a0c8faa7eba6b1fcdfc8f9ada88248d6005cbd5fb6aaa7e3335a887cdcbb866a47596f1ef4160cfacc85b4d4e0d693b22f471bb87a96ee4f0c4aaecaa355abc345c1c96c0dcd6765b274523c80d5f3914c916eb5ef24485db7f9c6f47097be78810d12cc31395fb6dd01488f0e0a06f986e9cdc84a339038fa50c0c61e8a904f5f36ced340338fac1970f3e9f2b4308c6423756b19f9f011836c221cf2fe41a1ab8f0042c54b99d18cf4754f893c2aee2e6edacb95a6f601d7dbc5917b97a7b6b9706fa267f01cfc784add2d472c13ce6b955d124ac2608e7fd3296eeb40b54753ea0c68e2809adf0cfc8abb83d08742184b0f20c2227f85a7c25818c6c8d7d63f839e571227647069664e254a443906094b0501c8cd31089ddf7ee3e0969ecc5e8bc33046b262c26189a2f64ac1968f60231776fb371cab395cff719212e58da6ba3a44a6005ce3884bf53557859be52dc130bc9c7946fb30965dd6e37af70901c1fca8f3da883eb96bcf8a702b531265c9cb062e7cfe314a272953be4a149a4ed260d47460b60dd1f5e56782481ef955ec374b4168b4c1e5bc10a71596ec2254101a3fd1cf0bd482f7e34930ff7bb7d49f2739d0db05e3c1d4786a3e01b428336cde556b71b688ed6ebd004122b1d2bef09cde37d958a429951e93de20b0901db6af08951895600b278600a5097e95185038a5dc3c1f6894227a56646be10d2fb68770383a20c9fb892cc670b9cb57c74f31be497350e297e9d1cb8e5e9f70a86ebd9fa8b9e8ada96329f6895a6d15c779754a5f1ee3cbe1ad7b730096917cf228c4c91609d8205956ba0545917ad347ace4d1f6bf4d4ecd269713d944f4e487f7abf6999e63616c8c61572609445e6470898e26518d4081940b7b08ee2580442b115bf1ce3b67094d9b71e7d2db29780754b018a98066dc04ec68d4a52e0472a1d0a970406bc1febcb0a1c810a98e575a92344a0fef8a11098d04a5a040480877479eac577fec32e1b891594378b58aeb0c5d66ddaff31843467cf336af527816e10731764a8b5e19e9575aed17217ced328c13ba10087b032d5bb6b3d03138e60a66e7487ba6a1a6d07454d68d99c05982bf66db59f09033623017590e9a259891eaa413886d9ff3aae6747be54656aa37e18ae39a86bc87b9f52fd75e2d95c82efa1e51879eab7d20a141a5d8ec389f3c8db1f8c924a14bc1143372bd3546e21c39c6c2dc6911002f943f367a4c909113266c849218dbf382f9a4c32b59616a2bc20d4e82c3d01aca2a1ae712f49efee1bb464ca530c1062577403e67b261e7b4166ddcce1de1a13882d431a8c9812a40df338554ac64d10a0727bec28ecc5f0fc4d2f86e74f4b20a75ed7eabea8ffdea0fd9d645b827cf1567fbc43890c559d7e82ce77eb0f11cf3f1185f160c2fe57c7f3ffb913e6437a785463dd7b72e1fcd1087eb586c45dc65805b3bb5b1652a3c8fb0639f656c74a5627dceb4c28895f0ed9376d455f81a5998cda47109f1119972dc7a0cf0efb964658e04e35c53b8189f8a57325f3d83600f9bbd4bf905f745b167e1b3b0f6c9ee6bf5bd726cb60d2ea131503eb6129e08d5c7cc223c22ca0b6a66a97bee24b3fc55de37cc250d6f3ebc0c947f823bd788dffade3b89f85964154baaac7f5252764466e24398eae0d954ac1e781f2355c2c6d999e64868969e258593ab4068821b8b62a70693a07f8b0ff259f93e70f3927c09586b46a3171adce228a88248f167d0b371d774373dc5a2dce133f2e861ae9ae014dbe32351ed4a0db90f88d539052e7f5ff8350f3fc8113d29d1e27ffb029fde875951db45e3df1972be92db9dd862fb3d14d04fcd9056da93e8eec1121f3bcdbf040a831950ac001eb01b4694b5b82a13487e6847af11ca8c552c644a4994b29fae67974066af3208f96e82149e0a84e75b34f3fa7741435e590ff5fd5d45a19b6fccf326560fef18ecc5f518e792374cbcd8cde5f4fc64312f6e74e2c5febdc6396a2ac29202f1efcdcfc58c24b89cf5c48f1332f6cec8ebe52ab36791d3840a1fa741e4e2bbdf37eaea53a954cfb9964a92f0a4019614849beb290be7c0894119f56ab4943a653b120aa9e036c8408ca1d6d037f128dd5da761b59a5f6ee7832865476ecd966ce3afd5017e2b16c6173aac4c002fadc8251d43185559e4c8888f47515fb418839d127423a56231db29413c11fdca879130ef033feb0a6713e393adfddcf7b845b956c6570f5ce2217338c69691d469f52c5f9cb96b2a3923a656f3b0b4e1160a719cf05ed1404339470f70ddc577f8c7cd3331d475d925ae6706c94d9dda49a15384f2c52a560daa7b409b6feed4d5d41e2f3ceb6e7d4289bbbde2418557bb8d431500e4cccd955304ef63f08e84fb896d4d34a8a6f114abdc7f068fb1e802dadb811b8b01b96a9028087a439f874cb82b23c91bb1898fa40ed7fbf14301a32b1eba0178eec8e768b706464a14716c20acc11bf1de5f7ae139dbc2856844189b6db4b08d9a371fa1740b565eabaa59a4150711a43eaadc4c62f66b064f2d510ce31830dfda5f8b279f194fd74808fd880bb634e80fbee3892b586ad2ddbbb5d42391127509ccf0553c1a10b963362ebcc5c6cea51da40ca3967f069019f8247c2d1f89f770b895950239f8277913624af705712a21bb444186a94c5ff5d52736b835e6577f2f65057b306fa1453917cf5085db1fe6e09dd0afc9cd959133316935d880ad822c2d23e80b5c50e58c70374b58a800300e2176b5a8627472712bae69f2ac7b88710704900b04388b9680a580cc4fb42f19bfdf4cdeae00718dd8f7b2c57b46e51843772f88c6c2feceed05f1cb344b3d7b2b97dc8c8498c82ff1ce3e2d856c62448f47cf1742324fa95b36123ab335d5ec36f1e2122c7e976224c017e5efa341bee3f5ed9369bbac338c12356f12565ef1ec7b6478ae06c9518ee435d921e158088ce701c7e83b60090b300002e9fd4baf463a21c2a55002b2193d6830eddf06019cf444661bce0a4136f835c1a4ed1563df8a4d31a8fead62f096f6ec850944cd729f7a62f51b705830e1a6e6b335781673f3d366328b35495f5ad55380fce2287044fea05db8e95050c65034e8db3765e526dd1283bbae37a5342c7c60e8ffdb158648a65d568c8c7df65b762277f4179dd2aed0b7798522bdc25560eb3a58f3d35d144913f4cc2dda4e9fff41b5573af7aeca8f8192845dca8db9a3cba50542fed618c951d8a6729d5e962aa25ada3481dfcc14522f14f17d4a1d4b3056b33fcb55422886874edb3842dd07a3370a63d0b2d7c6fc5715a762aa62d40176c0174df26d2f6381d3fcd2cbb171fd28632e67da7b71705f1baf7cc8a2911f914c9077aa61b3f1a2d98ec8a6f90ed46c33e43069805845af90956015eb60c59219e32cc5dd62f78faf7d644394b3023f10fdf6b0dc5e5e77e30837689035eef57340ad2aa5716afe2667b4a65ecf03b8183a7074cd9bdfd5d919ffd4032aabbf3b636c2fead71fb557e0558c12b2fc20695d458e3c7ea4f004ab42a8587f0c5471e6729913c50f708b1a056eac9a117f9abcc62eea9f619d2acf907b75aeef177badae2a79def1a92b0540a95e94805d98f07d00e1fbc3d0af25d7ffc422c66976f8934d26c2e6974ed780cceeaf5c289c041b76b6621a23d8156a7ec11c1bf78153ce17358d24801872c4bdf546aead7e98627068812e3450de80c841c0727882ac94e9cffa35e0718507b13bb358e595d8c28783a615d79a936d1cbd5357c2f7f7abd7cfdf23d087b67acc46fca9f9c88a2e3e2fc93b72e2e173ef70d231b896bb7c21e259b3df12871457bd6fec640468a94524adc375530a66969eb6c4b540612f5eca92c3cdcfa87b4e97b7c1aae811e87b129f064f5301a2260625ee86870264e52d31c010a189af08b903f8a028386e31edb1161536d76aea1510a616680f14b2ba05d10de18e3953d82aa0feb0ec49e3e03ac7ee3e5c943238ab868e04f0991b52168156e34286242aca72fe0be81adcdbad48422589dc916bb74e8fcaa38725ed8bf64088041586bfd8f6dee0051bee9ca44e7e8c02828838518a246eb4b9d6f6fa7ce57806ca93ed13468cfd8f6d7a5b4fe483fd38fd15e2aaeaa67fd2fdad613a8e174d8b3cd165059a36e8a0b0309aeb19d153f017ba1d268ccfa60de51477a92667a8f74167d097aff89ba249040423643f85309e7247c5d60353a525af881bfe469315a236f899a5d8b2525052c283a3e390a234e6491cdc86eada09ea6bc0abb6ccd5e563a976006f3b693bb7d82a3731dfd62a23597e941093b82699d79d0b045b55b34d447cecbe7b856e2fa771d4f5d6f23835253909e8e5c13b763e6d1fe07381b2192df5b0ceb4d71e36f3364fa19003dc35a5044f4b850953c5003c214b11cfed4385cfb9ff18efea87f2791eaedb443e2927aec3c84da1488a69fdcad0315fe9b4d33d3b06e6156b36f1df74366b9925ec5cae8c39a8127495b28e16f4542fb0cb2bf9049dfbc0574a216c27aeabfffa9685e994c57a360a460fd368ba6aa216f9e6c259173905b6843cb5c57dcb32d9204b053fb6013d22b55fb435dc32c69f3993d3c00fe9800d3cc66915856c448eeb2d8d171f42251b03ac69e8d584614cdafecc82b4a82515c53100876a5538cd16f97accd0147f227fa06b6c7ee101c30f02e6f39fecc94b36224e38ce76a1b640e25acca7531f3b9eb6ef748664d9f10a327c2b69223cc00dc1b1a8740d151ddbe04a072bba5bccaf1b73d7d9e1a7fa5b6e1f2c254fec39bf65dd556de5a41a34b00c6225d9373a21dc29fd2bff649b528e7c9c6dd71c645d9dd9cac8a832ce7180be12313ba8130522e0ba0cb022850dea5269aec7de16c99d2f71377ab20a1ef21f2e9a397f430b3ce15da573e335154202718afcf195d1c6c369c043c5848f1c0b5fc02e25f0bbe628b76eadd4a5760354ba13f661033d5556e4fa9e6301accb7859a29d203b4e1b0e526927680f2f23fc4f459d9ff4e442e0be10cb37f70be2ece08e55ac68b56c8a2208c0d2803101afda9f77c4c3c6f79f14729328fa8fc0c37da6d3463a78d630619efdf828e8f1da88705901cf18ad88a00061cfc5dc365a9307e0b6060fcec03e73b59730ea0e21d7c2e9ff3dd6726ada911618cb74c9ea9307e0b6060fcec03e73b59730ea0e21d7c2e9ff3dd6726ada911618cb74c9e3709af5f1e113a9eef367e7c53961ae9669ffc57aed0621acca37ba95ca1d488d95bafe152c096007e694ac4f4a458858cf808eaa2420e8e6abd4c78a1e8d6efac536ecea762bfdc95d03030c4e5edd3feca2d1e25de622caa556b48c8d789b8c60d30d4542a0b0e70a8632ce141646c7c1041786df0a36095304de9e2a52637431bb71543157e5433cffbe4a89b08020f87e4ef4eb2cf94694590fdca778a733f24cedf2e9f7fe8916adf45471f4077a32ec8bd62299c4bc1fc2c8c19a99a416f13d384d7564671677e12c5fc0f1c98299f9d58f2d94ae97e01ee308a1d72f914117f26e2899e44da59f9b351cdc082935210339e082e7929609035193a03dabb98793e51c135757e3ee80db685292d5a54be14c35fe15adc2556eb797908d82ebe7905c175abd7dbb29816e2ae74949117dd527a48b79bca019b539a361fd52424e5201b5a03bd324e9e7d9e43da1d9d962cea25220d05019d9730c18e727d8a7aa59d16a6e383289ce9e3552f314937ab6794b564897ed07fbf86a00a221596275fe6ec30ec4a77a162a1454e0345d7ffbcbd90c0b68aa70199dd55e8d9cbe571bf8808cf3de03e2d078b347584771eabf92cb2f8d92e1b4cab74df006c92c183cafc36f54bfeb8f1d29788baa930343f6156645a7b54739805cce2307e63f4fef70207153f1108f52f5358b9a65a0b37d10eeaa6c3e82181aff40857e0badff444730e10bf7d7876328cb040bf41129ade504adc2665a108d3d7a092c89f4f5cb2dd0845ac1442b67a6090470990d851b8d05b08c0e84948033a6aec200e554a215266ec06921286f9aaf6ae28de582a6b6b5c91025b21d94b36bd9bf9e98ed81576d0fe930ce88ff1f6bceb2d7229ef7a0e6de80d22c06d517c7dfead7d830a9d76b6f1bf555ff006474c5a08bea0cb7c3b98ba0ea24ec7389cfde31dde3b2210536103ef3ed4b53f3aa0a5edfa15c358830960218c09b805e5f53ab4d87b0016e6a06a8b6a9286565580441d9da6d3a0e73e275074a32dccc93add22c2b5a01832d4bf0b44962c2cc87057b5718087366a3c1043f6400b8f731776c71ad05af139de66bce25b5c216d3e819cdd0db9df9c3cbefe081097106de7d07ad4c3f2472fe40005c576ba3e8a9186d1807dc007acd49ab7aa380134e428d3c3cd40f056e1570867f9830a08bde76745fec05eff34e0237db7c21e84462946e2b25e7add9119c00264ce5319152bbc83a094776dba24c545b7a5babe527532ec9ce3579af2756d7b081c9ba6d808db5a1c42b0ca1adf7a81d5951ff8fc96ec403959c093eb48dc01048e91c5eed85373198b97fa356f5bd57216bb96ca49fc8cb209b028f013ae72606534647da56ef3c6f9b38247002db94745c67d77b36624e829f5a72bf4053d92b67c56239e8f609db6b50bee89340afbae28135f92d5175831b0b9cc850f64fe3d2b6b2a9dd3befae58f61fad45c564cb7d87475d2e7854216589ea96a48512af7b74f6d50f064a4c963cff506af53f166a09e9989a2f8bdf55cd89881ddf3055654b8d7457eb56fceead5783adf103b33cee1d28d0a9094a7eace4ea4f8aca0da0ed5306e825168a385ff4d8294f9436b892a2cc6cb6349de21ef0bf2b0b40bce0aae7186e7dc819dcd57bc446af7b3d38d029101a42e045acc43d4e48c90505bf365f41857485cee5b45a35b443acb82022f5c6280059f17a97e5a87a154854042324c5e450633535096cd316cbcde252be03520fc85b134fb8417c316ea7dda62815be4cd2ce806f5e429b432de609aa1d9a0953b4fb4d93e8b1088a9732ddfc484a0019aee5dee4c8e10eeb21b2325ec4bf0c3cb7ea471c07dfaf5f92674c99527d327a57a4c22c3d0672535e2084d31095fe51c7b432283b4faa4a7b27a4b7cc2d52b54a7827da800013a03b702687da127feb0727dbe3918afae173ca6ebfab7b97034c7e76fd472baaa0937a4d51c8e62344797b730118b3020ccf6c6d957ce9122403d8aae563a86104bdbe7caf4b0af9b6e48dd6873f42494c1b65f8b47cdceedd1d3ced4c508c4f457c22d682e63c85aaa4dabc569a8301c35c8db433c6df483a0fbe8dd0c896e05b16ae981d9955d119d834b551550af233769e6cd5f8f8b8e99968e58f508bb6cb494fa6fcc0ba02a449e87a14f5feb6f7f894c72b4deb419d5579b24b0a9a69270e9ed4f59006cc310555fd7b3dcc6902ef1a0b1cec093f9e563d88f63103ae1e56e28917da650f3ba53b5ce5da89033ba97f32343464f96077568067e64f7d22d3592d03be48b7d2728ee34c25ffe422aa63baa7a942a9d51b8a02e8c765f5079d1dc434901fbfe0005290243c20af9d67eed712aa46ff8e7e7043e6655544068b78ec20442ae5547544cf44ec690c892e9a09ff1f559788acecf8044150cf5339844e7f7893d58062ec3936789ce696abe77e79e20d8889f1cf36d356c3c599985dbf7185440f1520d95d67717058e7d665aa7b45b110bde5559f22e1562c14b7fcd78db025a77039b9776836032231bfdde1368f79ae9ea8890201cbf703b9115b07db9023244385bcdede441117bfe8789b588f3822004c85c79f9dbf03c0c5a1596ddbd8a41edb962dc526ea613ac569aa69a587a95c14b20cc139e8f80499b644faaad6d20ab596a03779166687dfb83b36a8be4386a6663193c36fc0f8e3e8611e1e7960ee862fa31f07ecd91c0948b3093ae019f03e039d6f01bf95f43751ac08efc637d24fc3bf1a0e937f9799d68b44ac90d19e84e532b6f8231e51a152dd3fec722c6c0d20529b1ad8c5a57fd699ac17416a78187ab90e90f9cf1063558fe96111cc69c36e95fbc28bd33a59b1b23913da86c0c4e746003fc341ee3e877d47714511559289527c29d5e45cef3994cdc7a21bc48c909e3f54b9a8a75de996ea83acb0a0cbabfad14cd401e31e577cb1d0729c655a0ba5a9b810d2c22e47d04b24329620620d7b32f1891fc669e63d740e064902ab038e77ae0459696a867a139e499ae1abb4f804c5b578c50e7be30a48a43cf7c883a705e62dd7e2b87244b70123d826173fdb17cd24b8406ec1175713049bb48817cd6daeeec1f3fe6c8be841c03be00e2c6c25a73348212065d08084e285847b3dde06fb96778f3594e8d7b734de2ff1bab0a1e297d05966a62c3f1140ee874d798a0c522b0c54c84de26d68d88704248f2873ccf9a894ddcf29be8fa3cbb1999a72a1ae5fba7fea21e6ac88c9a3e0e7ba49edae1409be01bd79b50b8556dc5f8dee495af6b859506694a4cde49ea35f70a699f659ece5ce03372c4bb1c3a770696c71eaacb74bbc8103d5603b1fd419b96b2cfff3054032717e332b6f19825a5b30f90b05e98cf593ddf45d83c2036559125473fda175415a8fa433004d7236235cfa4d1bdd22d7940bd4b54d2907a3d61ad6ad344721eec7c0e324d0bbc16cfdf8e07e3da10b22e8f5c9250047bd9bf2f443eff1af4abc1b45148a9b339c4f8b9ce16a8929b01d707ba8d2dad8165dfba090fd44bdf6636686317851a5b4a0d6ed268ea409bd8094bc6cd7f64a999235d0e77c7670e45158bf5d11e4150b562533a8ee9a70579eac13983cd514302a3f7e894a16db7b3e35ea8a73f5800a35217ec1b0e48857606847485245ad9bfb1af0c7e38a27df0765ce77d1fb06b0cf099edad54bf91d518452e4a8fa629b6f91df3832c90954a6a4e3387d223734e1f08aaa129b57edea6f4186f6321914cca041454e5fb96871406908341a0615d98907bcb06d84a517b61a6955a39c2717231a8f619eb5098d445e1038d01ea86e0d69366e146ea0e917f134d22707618aa2f0557629f05ad010bd58de8f57468a02218096dbe0805ee5fe442edf0966aa184cf82a64dbbe9882971f07ab503b8874edc6e366a9055e10e316b4e580ab337cd87d77db9c9b72541c00aaff421113baec3bf5418c769004494368350f176c000084824ae7efd1bc0ef29e8ce766f701c1ff3f4a1340dc6472d27737313bcfa5ae8e48221c0fa71c682d547ca8496fd40aaff706fa38efeabff7ca679d722b0d07a1d83d62b523cc66562564e737f98e509d09c85909ef53e197e3668c92d1d9cd919e36c69277b4e0181e55ce1ff26f3e8a0cd7b4d1532e9bc6313920e95401db9a1dd24338ad64a5c140b540bb777c2ce0c87bf4ec93a626b9ef0de6a40dd9816d19886849b43b6647e35aa3d9baafd35a146975d44300710cda651ef3f17c0ecf0b38c0fc656887174a79c8cca0bb0d9dc658a1d2f884491aa58d46ec3626c43f00745f1b4c7b9b123efe9cd2463b35b7d35e965a2dd92753bbe7f72d199f6b3ddfbbf7ac89a8a7f75c3cd95c76c875b429c668ae639f7ecb49f3a016f2bd2b3fd601edeff6e935a4cb6850426ccd0b4f6b713ecad680d34936b78536df6575a0fcc51fe17025367781167cf716ebc83afb5e1a44e4bd344659c7c79d21144c3ff9760840520ff6ae41279a2b1e4d9076956ab71e5b18238a5a48af761dbe6c0f018abe99e3526674b2d16d2795b4d3d891649ec7351fa53247c5b340ed782bf57e45eb6c1681f4e8bf95f335074d00259160e713589e610327ade1a4ce5be7a0e2fe93b378813df65d9449ba368d344f4420a5eff1b1c7c5bd22868a62710968c46fefd0b81bfa07ee70bdcdef1bb8426892ecf7527b06479c712e09bcbd1bcd14a01e1bba63f654f9509e1b85bf0eaefffbeeca297a6e6a05d856afffcf5be534741a6979b6a449ceba6eb0f15a708b2eb5795adad64397b46b5ee874330f2ceed59e10bc48de0cc133819efe9bec6d43b87cd8f03026ce88fd033713c4d6b81f3bfdc7d1d47b07a864f8c0ed4b87ee7ba31046eff4d9a5c634d5833ed69ca026e82619c365fc6f3992fa16d59b78922eeb9e058bbddb223d5ef3ca69904778af5b0f0a1263aa35673a2f56411a024de44bf0bbe96e06599b93978698a37a63b2633788e6170ff240766751c5ffeb703c3054ac61c9bd8cb6529ce3a5a7897b8bd73a59e3743f8f65eda8742dff10303967277b2ffd8920b942ab91d8feb009b8fccbb9ab4314d85fce20c9abbf147d3b8104e4ca5698ecfd0bf5f398ed2143ca09516d293b6b4a4f612a2d9e72bd6b14b0b87f56f9a5d116ab5761aa74e8ea98cd14f865e265a2e8f90c816eaabc6e4996eab7f1b4ec4a6bac33d92100f27404ce399ce4c4f4a21ef04e350b069adda5d8356c905d85962d5e7b2c75ddfcd62ab5f49d8d2f5c25a693aab5c45f5e680409562dfb38703d2ddd29e41abd9e2f0907adc67a93f8292dcaee44ba666013750ff7c5c521cec5910739e47096f967457469dc9b191f11495ccf71f70fbb660d1a5675d96f06e21205368596f4555081cecf581ab59f36d4b2891a1d456ea94a6e964c138cab231165f3d8a128f65bb43d823600ae75cfe8bef1bf9fb41e705ade22c7dfa5fb094ca984163c57635cb98eae9c3d28c48d769fcd73ae3d56a8a974817ae46442bc060952a835478062001d83eb4592d7612d1d696b1800bea0b1b01d9f0fb4b77fc65c8d9cd3fb78a13544bd3794bcb1b015ce90f5b15c91ee86bcec419ef7fd1fe02cd5dd5e599423ddf6eb952f571f5dac93443f255bbde2e07b19e9315396600766f2b823fdafd9aa0f5e14bef94522fa3ded801066593ed337723d5dd52a49a03ac2b65c5c21f2115ad4a53404dbcecadcb5c95d487fd3bdaa71d3d3804ce425289e6232b5438f3c9ad6f4206ac30e512a40af259876cdb05ca0f4f52d26480a178c4bb2b62304cd7ce9f2e1cb12ac359848f941c89cb828a940801c5fe96581bf1c6bb509e1bbc12f16f6f15bae4d10051ed1dac5492bcd2d779904d3c41f8666a31d347fed4a2e0715f4bb900958051838ed7842648afcfd26858bf9e2b8c873081848a715f8da6e5716e2a5843e15a4071a9abdf4ff10b4a362e5f02eb8883351d91ccd75a9e405af6e446be905683582431bd882b61152aed84d02a3758e3efcdec3dfe864d5c09b1df8bf4387a04e8a8df0b4e44c0b4bf136c4d4e94bc8a4541de930a05cc73aa1e413b3a87380ee5aff0add3545b729125ee4955c2bf19e4ee701c11b87100d78a4c5031a008cc330953debb6f5c7fb4ecd6ec9d09f1ff4d37a2a2f32746714dbcf6f8ad59e6b839e6be70690f808843b737d143197a809ad8c2a90047358c597a0dde94c237f614f5fe1e1de0cfaf072718ebe7098b15cd6378d7d9422569ba27dd82748d34ec0f2da4784d8bb52065d022fd9dcbfba0d5510dbcf509eef05b6efbf1302443d2c8f309450616d3674dfef1a7e2401e7d8a6866312644da89c54cf218c18486150c91d84ee15f1d54ff13a6dce8bba8c488c47857b6cf8b26223d31be8e98fd829166b5b26f58c710d54cbcb1ea981b0857c4aa318614f3fa998626a54527ee5604d477c06394e346cf7bd5bcf02182296a2bfdbbd7fffde97c4d0128e38eb88fbaa3a3a1167ad168bbbeb013d206cb0b81aad5e4bb04c35bf08a0e10bedce096c596a4f709340e875c0fc73b9d666a8634a9ae9ba2262b317f860ce24ce2927b6f52fdb1131677435002a57cbe035d5aca3a309307d1150021859be3b8365110f58e66890ce4d5590263d335bb2b7ebd707ab146a10700aa33fbb18ae7bb1eba1e6f67ab9ccf6291a3f922703cc83b73265e1f24a08c18d0f9b96e9f956f0b7bbba6d8982df761cda91c0109988068011a0bb5f63c163b39ad679b5c60108784506045d17e791d3d4e50cb5be775549d4e9a6e9925fb1e54b9bba15dad22b30dc39415a1e2c03adc25920baa4277c988f8c7597191cdc5996215267525d13b0b6b280d343387799ab001bbf2e7b340e82b57e285ca57da9e1f2fc18c4f951a9dd717588428a4a21178e71422bcb085f00385ce71110cdef115fdd20ce5fa05c91d73b395ac6879a750d0725ddd2db6f208889013539c992003a7aa834eeb7a236873820b5722d92e6ad7da53eb43ff36b266f604fc6e5ae4971014828e305dfa71abee130069d2de5d9330ca0693e7433ecd2276a9d08dd88f8feca4ec6ae6f75acca031800694ef3f674de07d414fac295c794f05663a071e282a476174247a1320cecfca2ea0a8cbc0cc9f5b900e85028f84508f0db1604e7c7cb6dbca167f2654af0e01229a6330f89bb4670be069823206d1802ae8a12314b95ec64ed987341a3e312a479a2bbcda771ba376efcf645df27d5abbabe69c77384e413e7973980f17b556ce695aaeba523b0de8199dfda68785f70589cc91685ae26922ff2f3464cffcf1a03a0fb3e1291fe3a0a6c73a316624720f6cb737a93df4d55b261d0153603d11002621fb88f96add31328261174fdcaa198fd32eb0d98c6936d0df5d1c608f227158c8d1a0b45f2c3f0e0223dded73c11cbf500a4e8b01545e23bd7d20a945dfddf1bfcaf5172c80c42957c1b14662f822001f3cceb4ce2b4e028d3190c1538e7691ea2f32b376b29f20961d60c2f78b0a7a23fccfb6b3fcb9655fcfff9abd32fc6104c6255b7b3fc90ea1a7eb7f5ec59971003669c65e5e91bde7b1a7fc070bea04adb18e02b416884089f43ad1e45d2d30174812b472c2b703f95a0799d26951060e89beacc5b4fd9526495cc7664b76113ced3704e5a3b099c410841604771ed209202b2b915c3b8416424d8691ad67f9a00d24138282035ed10559c033f9d8dd9d89a22d14d7d6ba41283327b38ea4c2caff5c9b66f5739f1bf9e1caa9319891ebe099e92e7657502ca4b55c2ae1889553d1203912c0d94f7b764a9ab6c88c6598190c3ada6ae20a86fed6891e14864999af86b7fefcfc0e0a0f2a718ad1a90bbd92a3dae0541934af29857812e85aa66fc32bde7e0f790000295bd4394926ab28912a94cd8efda70e9bd918fd8374a846d3f25bb3e39fd9c3fe591047d07739641979322a24bc9d77f7521942249f4778e77a46e0ec311b3de84f7e72a52f9dc1c7afa695a7370458cebab97ae191fa8f09052122939ee2a25d6f9ed4a91ef608c1779dc2f4b24ef42cbc76f80d6d792b8618fe3dc40578e6081f90bb590a4d1c1fd94238543c87ff5e41ec24eca15abfa3cc37f1ef684bcb46366fabcced81f69c33c112e40e37dcdde08041530db0cb81a51333fabebc3ebb9efc3b5598d5baf40a9263f045f5e6040397a717edfa1496cf6d514ba0d5582a54e7d1762d5b2dc676e0aa7636576f56bcb2b2ed93105ee8a0c251e4fdcfc663875e6bc3468803c5ca78e7f3b50f6a62cd3308ce77fd54881324c5852c9d4410c24d904d3cd26cc67170d9fc9d720f7bca674be0589f94da2632b5e93fe07ca336244e767902add17c8b1bc6ed95c177319135781f11abdf29364b8bc4c69a3b069a11464619cf8262aa49f75786a804bb08feec90bef3d88c0878c798289d983c793a203e7c55cfdc451ddf05793b3427c778a31ea3187b71b76b031f30f997d9d98fc11438df1bf7c2657eb29cad813f626407296c00b5be281c879026b3696e768270667f048203a93d961ae338a12a4a8b6ff34d859ea2b6b17cd031cfad2e8bda5ef23de31f69565eda1d09af2267756185bdfd428b2b9e8c3f875324f43004eebd6eb8c772d421a543527141454ff2c175674522f4390aef7d46a6d1cc26067ef1b27c5d3d8d0d9bdbee555d98ea99b744e8640863157e318345d9da786e58299258c15c8575d53c1a54a26386b3d387877d86dcd3cee1c5f1282cc4c624cd5d66ae8929faddf3062e9a6ba3d433e1f8d275031a0c6316222d9f07d57a980aa41604a0ce27403b9d6945242b4c6b549576519d32bc80ae7e9d4e28170f009396697358e4425dfc1f85d296b7d6654f151cb7ca566d9542d9232cdca6c91c71986a75a4d17cc7d3edd11b85f2f4f97d46d69dee619c6479a29b27d93fcb2ae76d7e7f7d67f6e9fb46c9f3259d1ac2137f1e94448c379a424519a67fdc8e2c5455299ca63d9f7e021cbd737d6a88ef60b87841a10c8c8d34044aef4b75fc321a8a86f468b0e621c7394da80f3f140f262f31afd95981c3433cfdcf2cbdbec0aee26e7b71d5965e1a5832879fd2df50725b6044e170b062d261b0a05745dd4c6a57255443fff9a602f062934d64c26b2182c41bcba90518d736ed87eb8c29dd09a07be199a51106214dcf2ce85d2992dbe698341ce27e336178f596a793ede12d2df0ca1ea910f330e60b003dcef34258498f65d063abbfd821673bfa711130f6464f036f10355b55a79b57965245a6fc32cd4759076a0ce1ef7c8ee0b93574fb70dae2ccaf262c5ff8c03beee639debda1efabf3643d670d9ef15570358134ea5adbf38f507f9c685e6aade14eca983bc371../../../../lib64/libcriu.so.2.0../../usr/lib64/libcriu.so.2.0.debug../../../../lib64/libcompel.so.1.0../../usr/lib64/libcompel.so.1.0.debug../../.dwz/criu-3.18.1.3-1.vz7.x86_64../../../../bin/compel../../usr/bin/compel.debug../../../../sbin/criu../../usr/sbin/criu.debuglibcompel.so.1.0.debuglibcompel.so.1.0.debuglibcriu.so.2.0.debuglibcriu.so.2.0.debugcriu.debugrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootcriu-3.18.1.3-1.vz7.src.rpmcriu-debuginfocriu-debuginfo(x86-64)    rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(CompressedFileNames)rpmlib(PayloadIsXz)4.6.0-14.0-13.0.4-15.2-14.11.3dC@d@ddq@dq@ddddw6dp@doMdJcdJcdI@dI@dGdGdGdGdGdGdGc@cccc@c[@cRcObL@bb=b@bzSby@bgb b8ar@aNa@ap@a@azaaa@a@awaqV@an@an@aS@a @a @a $@`\`"@```KW`0`/@`.V`.V`+`+`&m`@`@`@`````2@_@_@_k_ܙ_H@_H@__إ@_$_$_@____:_F@^1^1^@^T@^^g@^O@^F^:@^ P@^@]f@]҇]҇]Γ@]ʞ]ʞ]@]@]]]]]n]z@]@]]V]]{]v>]rJ@]g@]R@]J@]D%]:@]1],j],j]'$]G@]@]@] #]:\t@\"\@\@\\\@\\,@\,@\\@\7\@\\@\e\\@\@\y\v{\\\N\2\@\I[H[_[@[[[[ͻ[[[@[F[][#@[@[["@[-[@[W[S @[L[?Y[>@[6@[4[3|@[0@[,[+@[(@[#@[#@[5@[ @ZnZnZZ@Zb@Z@ZZ3@ZZЛZ̧@Zľ@Zľ@Z@ZZZZ@ZZ Z$Z|;Zo Z]@Z\ZV@ZTZP@ZP@Z@@Z@X>@X<@X8'X8'X5X43@XI@XkW@W1@W 3.18.0.24VZ Auto Builder 3.18.0.22VZ Auto Builder 3.18.0.21VZ Auto Builder 3.18.0.20VZ Auto Builder 3.18.0.19VZ Auto Builder 3.18.0.18VZ Auto Builder 3.18.0.17VZ Auto Builder 3.18.0.16VZ Auto Builder 3.18.0.15VZ Auto Builder 3.18.0.14VZ Auto Builder 3.18.0.13VZ Auto Builder 3.18.0.12VZ Auto Builder 3.18.0.11VZ Auto Builder 3.18.0.10VZ Auto Builder 3.18.0.9VZ Auto Builder 3.18.0.8VZ Auto Builder 3.18.0.6VZ Auto Builder 3.18.0.5VZ Auto Builder 3.18.0.4VZ Auto Builder 3.18.0.3VZ Auto Builder 3.18.0.2VZ Auto Builder 3.18.0.1VZ Auto Builder 3.15.5.3VZ Auto Builder 3.15.5.2VZ Auto Builder 3.15.5.1VZ Auto Builder 3.15.4.16VZ Auto Builder 3.15.4.15VZ Auto Builder 3.15.4.14VZ Auto Builder 3.15.4.13VZ Auto Builder 3.15.4.12VZ Auto Builder 3.15.4.11VZ Auto Builder 3.15.4.10VZ Auto Builder 3.15.4.9VZ Auto Builder 3.15.4.8VZ Auto Builder 3.15.4.7VZ Auto Builder 3.15.4.6VZ Auto Builder 3.15.4.5VZ Auto Builder 3.15.4.4VZ Auto Builder 3.15.4.3VZ Auto Builder 3.15.4.2VZ Auto Builder 3.15.4.1VZ Auto Builder 3.15.3.12VZ Auto Builder 3.15.3.11VZ Auto Builder 3.15.3.10VZ Auto Builder 3.15.3.9VZ Auto Builder 3.15.3.8VZ Auto Builder 3.15.3.7VZ Auto Builder 3.15.3.6VZ Auto Builder 3.15.3.5VZ Auto Builder 3.15.3.4VZ Auto Builder 3.15.3.3VZ Auto Builder 3.15.3.2VZ Auto Builder 3.15.3.1VZ Auto Builder 3.15.2.9VZ Auto Builder 3.15.2.8VZ Auto Builder 3.15.2.7VZ Auto Builder 3.15.2.6VZ Auto Builder 3.15.2.5VZ Auto Builder 3.15.2.3VZ Auto Builder 3.15.2.2VZ Auto Builder 3.15.2.1VZ Auto Builder 3.15.1.25VZ Auto Builder 3.15.1.23VZ Auto Builder 3.15.1.22VZ Auto Builder 3.15.1.21VZ Auto Builder 3.15.1.20VZ Auto Builder 3.15.1.19VZ Auto Builder 3.15.1.18VZ Auto Builder 3.15.1.17VZ Auto Builder 3.15.1.15VZ Auto Builder 3.15.1.14VZ Auto Builder 3.15.1.13VZ Auto Builder 3.15.1.10VZ Auto Builder 3.15.1.7VZ Auto Builder 3.15.1.6VZ Auto Builder 3.15.1.5VZ Auto Builder 3.15.0.18VZ Auto Builder 3.15.0.17VZ Auto Builder 3.15.0.16VZ Auto Builder 3.15.0.15VZ Auto Builder 3.15.0.14VZ Auto Builder 3.15.0.13VZ Auto Builder 3.15.0.12VZ Auto Builder 3.15.0.11VZ Auto Builder 3.15.0.10VZ Auto Builder 3.15.0.9VZ Auto Builder 3.15.0.8VZ Auto Builder 3.15.0.7VZ Auto Builder 3.15.0.6VZ Auto Builder 3.15.0.5VZ Auto Builder 3.12.6.3VZ Auto Builder 3.12.6.2VZ Auto Builder 3.12.6.1Denis Silakov 3.12.3.5-2VZ Auto Builder 3.12.3.5VZ Auto Builder 3.12.3.4VZ Auto Builder 3.12.3.3VZ Auto Builder 3.12.3.2VZ Auto Builder 3.12.2.11VZ Auto Builder 3.12.2.10VZ Auto Builder 3.12.2.8VZ Auto Builder 3.12.2.7VZ Auto Builder 3.12.2.6VZ Auto Builder 3.12.2.5VZ Auto Builder 3.12.2.4Cyrill Gorcunov 3.12.2.3Cyrill Gorcunov 3.12.2.2Cyrill Gorcunov 3.12.2.1VZ Auto Builder 3.12.1.36VZ Auto Builder 3.12.1.35Cyrill Gorcunov 3.12.1.34VZ Auto Builder 3.12.1.33VZ Auto Builder 3.12.1.32VZ Auto Builder 3.12.1.30Cyrill Gorcunov 3.12.1.29VZ Auto Builder 3.12.1.28VZ Auto Builder 3.12.1.27VZ Auto Builder 3.12.1.25VZ Auto Builder 3.12.1.24VZ Auto Builder 3.12.1.23VZ Auto Builder 3.12.1.22VZ Auto Builder 3.12.1.21VZ Auto Builder 3.12.1.20Cyrill Gorcunov 3.12.1.19Cyrill Gorcunov 3.12.1.18VZ Auto Builder 3.12.1.17VZ Auto Builder 3.12.1.15Cyrill Gorcunov 3.12.1.14Cyrill Gorcunov 3.12.1.13Cyrill Gorcunov 3.12.1.12Cyrill Gorcunov 3.12.1.11Cyrill Gorcunov 3.12.0.10Cyrill Gorcunov 3.12.0.9Cyrill Gorcunov 3.12.0.8Denis Silakov 3.12.0.7-2Cyrill Gorcunov 3.12.0.7Cyrill Gorcunov 3.12.0.6Cyrill Gorcunov 3.12.0.5Cyrill Gorcunov 3.12.0.4Cyrill Gorcunov 3.12.0.3Cyrill Gorcunov 3.12.0.2Cyrill Gorcunov 3.12.0.1Cyrill Gorcunov 3.11.1.5Cyrill Gorcunov 3.11.1.4Cyrill Gorcunov 3.11.1.3Cyrill Gorcunov 3.11.1.2Cyrill Gorcunov 3.11.1.1Cyrill Gorcunov 3.11.0.16Cyrill Gorcunov 3.11.0.15Cyrill Gorcunov 3.11.0.14Cyrill Gorcunov 3.11.0.13Cyrill Gorcunov 3.11.0.12Cyrill Gorcunov 3.11.0.11Cyrill Gorcunov 3.11.0.10Cyrill Gorcunov 3.11.0.9Cyrill Gorcunov 3.11.0.8Cyrill Gorcunov 3.11.0.7Cyrill Gorcunov 3.11.0.6Cyrill Gorcunov 3.11.0.5Cyrill Gorcunov 3.11.0.4Cyrill Gorcunov 3.11.0.3Cyrill Gorcunov 3.11.0.2Cyrill Gorcunov 3.11.0.1Cyrill Gorcunov 3.10.0.21Cyrill Gorcunov 3.10.0.20Cyrill Gorcunov 3.10.0.19Cyrill Gorcunov 3.10.0.18Cyrill Gorcunov 3.10.0.17Cyrill Gorcunov 3.10.0.16Cyrill Gorcunov 3.10.0.15Cyrill Gorcunov 3.10.0.14Cyrill Gorcunov 3.10.0.13Cyrill Gorcunov 3.10.0.12Cyrill Gorcunov 3.10.0.11Cyrill Gorcunov 3.10.0.10Cyrill Gorcunov 3.10.0.9Cyrill Gorcunov 3.10.0.8Cyrill Gorcunov 3.10.0.7Cyrill Gorcunov 3.10.0.6Cyrill Gorcunov 3.10.0.5Cyrill Gorcunov 3.10.0.4Cyrill Gorcunov 3.10.0.3Cyrill Gorcunov 3.10.0.2Cyrill Gorcunov 3.10.0.1Cyrill Gorcunov 3.8.0.33Cyrill Gorcunov 3.8.0.32Cyrill Gorcunov 3.8.0.31Cyrill Gorcunov 3.8.0.30Cyrill Gorcunov 3.8.0.29Cyrill Gorcunov 3.8.0.28Cyrill Gorcunov 3.8.0.27Cyrill Gorcunov 3.8.0.26Cyrill Gorcunov 3.8.0.25Cyrill Gorcunov 3.8.0.24Cyrill Gorcunov 3.8.0.23Cyrill Gorcunov 3.8.0.22Cyrill Gorcunov 3.8.0.21Cyrill Gorcunov 3.8.0.20Cyrill Gorcunov 3.8.0.19Cyrill Gorcunov 3.8.0.18Cyrill Gorcunov 3.8.0.17Cyrill Gorcunov 3.8.0.16Cyrill Gorcunov 3.8.0.15Cyrill Gorcunov 3.8.0.14Cyrill Gorcunov 3.8.0.13Cyrill Gorcunov 3.8.0.12Cyrill Gorcunov 3.8.0.11Kirill Tkhai 3.8.0.10Kirill Tkhai 3.8.0.9Kirill Tkhai 3.8.0.8Kirill Tkhai 3.8.0.7Cyrill Gorcunov 3.8.0.6Kirill Tkhai 3.8.0.5Cyrill Gorcunov 3.8.0.4Cyrill Gorcunov 3.8.0.3Cyrill Gorcunov 3.8.0.2Cyrill Gorcunov 3.8.0.1Cyrill Gorcunov 3.4.0.202Cyrill Gorcunov 3.4.0.39Cyrill Gorcunov 3.4.0.201Kirill Tkhai 3.4.0.38Kirill Tkhai 3.4.0.37Kirill Tkhai 3.4.0.36Cyrill Gorcunov 3.4.0.35Kirill Tkhai 3.4.0.34Cyrill Gorcunov 3.4.0.33Kirill Tkhai 3.4.0.32Cyrill Gorcunov 3.4.0.31Cyrill Gorcunov 3.4.0.30Kirill Tkhai 3.4.0.29Kirill Tkhai 3.4.0.28Kirill Tkhai 3.4.0.27Cyrill Gorcunov 3.4.0.26Cyrill Gorcunov 3.4.0.25Cyrill Gorcunov 3.4.0.24Cyrill Gorcunov 3.4.0.23Cyrill Gorcunov 3.4.0.22Cyrill Gorcunov 3.4.0.21Cyrill Gorcunov 3.4.0.20Cyrill Gorcunov 3.4.0.19Cyrill Gorcunov 3.4.0.18Cyrill Gorcunov 3.4.0.17Cyrill Gorcunov 3.4.0.16Cyrill Gorcunov 3.4.0.15Cyrill Gorcunov 3.4.0.14Kirill Tkhai 3.4.0.13Kirill Tkhai 3.4.0.12Cyrill Gorcunov 3.4.0.11Kirill Tkhai 3.4.0.10Cyrill Gorcunov 3.4.0.9Kirill Tkhai 3.4.0.9Cyrill Gorcunov 3.4.0.8Cyrill Gorcunov 3.4.0.7Cyrill Gorcunov 3.4.0.6Cyrill Gorcunov 3.4.0.5Cyrill Gorcunov 3.4.0.4Cyrill Gorcunov 3.4.0.3Cyrill Gorcunov 3.4.0.2Cyrill Gorcunov 3.4.0.1Cyrill Gorcunov 3.0.0.202Cyrill Gorcunov 3.0.0.201Cyrill Gorcunov 3.0.0.37Cyrill Gorcunov 3.0.0.35Cyrill Gorcunov 3.0.0.34Cyrill Gorcunov 3.0.0.33Cyrill Gorcunov 3.0.0.32Cyrill Gorcunov 3.0.0.31Cyrill Gorcunov 3.0.0.30Dmitry Safonov 3.0.0.29Cyrill Gorcunov 3.0.0.28Cyrill Gorcunov 3.0.0.27Cyrill Gorcunov 3.0.0.26Dmitry Safonov 3.0.0.25Dmitry Safonov 3.0.0.24Dmitry Safonov 3.0.0.23Cyrill Gorcunov 3.0.0.22Dmitry Safonov 3.0.0.21Cyrill Gorcunov 3.0.0.20Dmitry Safonov 3.0.0.19Dmitry Safonov 3.0.0.18Dmitry Safonov 3.0.0.17Dmitry Safonov 3.0.0.16Dmitry Safonov 3.0.0.15Dmitry Safonov 3.0.0.14Cyrill Gorcunov 3.0.0.13Dmitry Safonov 3.0.0.12Andrey Bondrov 3.0.0.11-3Andrey Bondrov 3.0.0.11-2Dmitry Safonov 3.0.0.11Dmitry Safonov 3.0.0.10Dmitry Safonov 3.0.0.9Dmitry Safonov 3.0.0.8Dmitry Safonov 3.0.0.7Dmitry Safonov 3.0.0.6Cyrill Gorcunov 3.0.0.5Cyrill Gorcunov 3.0.0.4Dmitry Safonov 3.0.0.3Dmitry Safonov 3.0.0.2Cyrill Gorcunov 3.0.0.1Cyrill Gorcunov 3.0.0.1Cyrill Gorcunov 2.10.0.49Cyrill Gorcunov 2.10.0.48Cyrill Gorcunov 2.10.0.47Cyrill Gorcunov 2.10.0.46Cyrill Gorcunov 2.10.0.45Cyrill Gorcunov 2.10.0.44Cyrill Gorcunov 2.10.0.43Cyrill Gorcunov 2.10.0.42Cyrill Gorcunov 2.10.0.41Cyrill Gorcunov 2.10.0.40Cyrill Gorcunov 2.10.0.39Cyrill Gorcunov 2.10.0.38Cyrill Gorcunov 2.10.0.37Cyrill Gorcunov 2.10.0.36Cyrill Gorcunov 2.10.0.35Cyrill Gorcunov 2.10.0.34Cyrill Gorcunov 2.10.0.33Cyrill Gorcunov 2.10.0.32Cyrill Gorcunov 2.10.0.31Cyrill Gorcunov 2.10.0.30Cyrill Gorcunov 2.10.0.29Cyrill Gorcunov 2.10.0.28Cyrill Gorcunov 2.10.0.27Cyrill Gorcunov 2.10.0.26Cyrill Gorcunov 2.10.0.25Cyrill Gorcunov 2.10.0.24Cyrill Gorcunov 2.10.0.23Cyrill Gorcunov 2.10.0.22Cyrill Gorcunov 2.10.0.21Cyrill Gorcunov 2.10.0.20Cyrill Gorcunov 2.10.0.19Cyrill Gorcunov 2.10.0.18Cyrill Gorcunov 2.10.0.17Cyrill Gorcunov 2.10.0.16Cyrill Gorcunov 2.10.0.15Cyrill Gorcunov 2.10.0.14Cyrill Gorcunov 2.10.0.13Cyrill Gorcunov 2.10.0.12Cyrill Gorcunov 2.10.0.11Cyrill Gorcunov 2.10.0.10Cyrill Gorcunov 2.10.0.9Cyrill Gorcunov 2.10.0.8Cyrill Gorcunov 2.10.0.7Cyrill Gorcunov 2.10.0.6Cyrill Gorcunov 2.10.0.5Cyrill Gorcunov 2.10.0.4Cyrill Gorcunov 2.10.0.3Cyrill Gorcunov 2.10.0.2Cyrill Gorcunov 2.10.0.1Cyrill Gorcunov 2.8.0.15Cyrill Gorcunov 2.8.0.14Cyrill Gorcunov 2.8.0.13Konstantin Volkov - 2.8.0.12-2Cyrill Gorcunov 2.8.0.12Cyrill Gorcunov 2.8.0.11Cyrill Gorcunov 2.8.0.10Cyrill Gorcunov 2.8.0.9Cyrill Gorcunov 2.8.0.8Cyrill Gorcunov 2.8.0.7Cyrill Gorcunov 2.8.0.6Cyrill Gorcunov 2.8.0.5Cyrill Gorcunov 2.8.0.4Cyrill Gorcunov 2.8.0.3Cyrill Gorcunov 2.8.0.2Cyrill Gorcunov 2.8.0.1Cyrill Gorcunov 2.5.0.23Cyrill Gorcunov 2.5.0.22Cyrill Gorcunov 2.5.0.21Cyrill Gorcunov 2.5.0.20Cyrill Gorcunov 2.5.0.19Cyrill Gorcunov 2.5.0.18Cyrill Gorcunov 2.5.0.17Cyrill Gorcunov 2.5.0.16Cyrill Gorcunov 2.5.0.15Cyrill Gorcunov 2.5.0.14Cyrill Gorcunov 2.5.0.13Cyrill Gorcunov 2.5.0.12Cyrill Gorcunov 2.5.0.11Cyrill Gorcunov 2.5.0.10Cyrill Gorcunov 2.5.0.9Cyrill Gorcunov 2.5.0.8Cyrill Gorcunov 2.5.0.7Cyrill Gorcunov 2.5.0.6Cyrill Gorcunov 2.5.0.5Cyrill Gorcunov 2.5.0.4Cyrill Gorcunov 2.5.0.3Cyrill Gorcunov 2.5.0.2Cyrill Gorcunov 2.5.0.1Cyrill Gorcunov 2.4.0.6Cyrill Gorcunov 2.4.0.5Dmitry Safonov 2.4.0.4Cyrill Gorcunov 2.4.0.3Cyrill Gorcunov 2.4.0.2Cyrill Gorcunov 2.4.0.1Cyrill Gorcunov 2.1.1.5Cyrill Gorcunov 2.1.1.4Cyrill Gorcunov 2.1.1.3Cyrill Gorcunov 2.1.1.2Cyrill Gorcunov 2.1.1.1Cyrill Gorcunov 2.1.0.49Cyrill Gorcunov 2.1.0.48Cyrill Gorcunov 2.1.0.47Cyrill Gorcunov 2.1.0.46Cyrill Gorcunov 2.1.0.45Cyrill Gorcunov 2.1.0.44Cyrill Gorcunov 2.1.0.43Cyrill Gorcunov 2.1.0.42Cyrill Gorcunov 2.1.0.41Cyrill Gorcunov 2.1.0.40Cyrill Gorcunov 2.1.0.39Cyrill Gorcunov 2.1.0.38Cyrill Gorcunov 2.1.0.37Cyrill Gorcunov 2.1.0.36Cyrill Gorcunov 2.1.0.35Cyrill Gorcunov 2.1.0.34Cyrill Gorcunov 2.1.0.33Cyrill Gorcunov 2.1.0.32Cyrill Gorcunov 2.1.0.31Cyrill Gorcunov 2.1.0.30Cyrill Gorcunov 2.1.0.29Cyrill Gorcunov 2.1.0.28Cyrill Gorcunov 2.1.0.27Cyrill Gorcunov 2.1.0.26Cyrill Gorcunov 2.1.0.25Cyrill Gorcunov 2.1.0.24Cyrill Gorcunov 2.1.0.23Cyrill Gorcunov 2.1.0.22Cyrill Gorcunov 2.1.0.21Cyrill Gorcunov 2.1.0.20Cyrill Gorcunov 2.1.0.19Cyrill Gorcunov 2.1.0.18Cyrill Gorcunov 2.1.0.17Cyrill Gorcunov 2.1.0.16Cyrill Gorcunov 2.1.0.15Cyrill Gorcunov 2.1.0.14Cyrill Gorcunov 2.1.0.13Cyrill Gorcunov 2.1.0.12Cyrill Gorcunov 2.1.0.11Cyrill Gorcunov 2.1.0.10Cyrill Gorcunov 2.1.0.9Cyrill Gorcunov 2.1.0.8Cyrill Gorcunov 2.1.0.7Cyrill Gorcunov 2.1.0.6Cyrill Gorcunov 2.1.0.5Cyrill Gorcunov 2.1.0.4Cyrill Gorcunov 2.1.0.3Cyrill Gorcunov 2.1.0.1Cyrill Gorcunov 2.0.0.8Cyrill Gorcunov 2.0.0.7Cyrill Gorcunov 2.0.0.6Cyrill Gorcunov 2.0.0.5Cyrill Gorcunov 2.0.0.4Cyrill Gorcunov 2.0.0.3Cyrill Gorcunov 2.0.0.2Cyrill Gorcunov 2.0.0.1Cyrill Gorcunov 1.8.0.15Cyrill Gorcunov 1.8.0.14Cyrill Gorcunov 1.8.0.13Cyrill Gorcunov 1.8.0.12Cyrill Gorcunov 1.8.0.11Cyrill Gorcunov 1.8.0.10Cyrill Gorcunov 1.8.0.9Cyrill Gorcunov 1.8.0.8Cyrill Gorcunov 1.8.0.7Cyrill Gorcunov 1.8.0.6Dmitry Mishin 1.8.0.3Nikita Spiridonov 1.8-6Nikita Spiridonov 1.8-5Nikita Spiridonov 1.8-4Nikita Spiridonov 1.8-3Nikita Spiridonov 1.8-2Nikita Spiridonov 1.8-1.rc1Nikita Spiridonov 1.7.2-7Nikita Spiridonov 1.7.2-6Nikita Spiridonov 1.7.2-5Nikita Spiridonov 1.7.2-4Nikita Spiridonov 1.7.2-3Nikita Spiridonov 1.7.2-2Nikita Spiridonov 1.7.2Nikita Spiridonov 1.7.1-2Nikita Spiridonov 1.7.1Nikita Spiridonov 1.7-2Nikita Spiridonov 1.7Nikita Spiridonov 1.6.1Nikita Spiridonov - 1.6-2Nikita Spiridonov - 1.6Nikita Spiridonov - 1.5.1-2Andrew Vagin - 1.5.1Adrian Reber - 1.4-1Adrian Reber - 1.3.1-1Adrian Reber - 1.3-1Fedora Release Engineering - 1.2-5Andrew Vagin - 1.2-4Andrew Vagin - 1.2-3Fedora Release Engineering - 1.2-2Adrian Reber - 1.2-1Adrian Reber - 1.1-4Andrew Vagin - 1.0-3Andrew Vagin - 1.0-2Andrew Vagin - 1.0-1Andrew Vagin - 0.8-1Andrew Vagin - 0.7-1Fedora Release Engineering - 0.6-5Andrew Vagin - 0.6-3Andrew Vagin - 0.6-3Andrew Vagin - 0.6-2Adrian Reber - 0.6-1Adrian Reber - 0.5-1Adrian Reber - 0.4-1Fedora Release Engineering - 0.3-4Adrian Reber - 0.3-3Adrian Reber - 0.3-2Adrian Reber - 0.3-1Adrian Reber - 0.2-2Adrian Reber - 0.2-1- spfs: do not umount original mount (Pavel Tikhomirov ) (#PSBM-147180)- spfs: do mount request from mount namespace of nfs mount (Pavel Tikhomirov ) (#PSBM-147276) - mount-v2: bind dev proc and sysfs for spfs into restored mount namespace (Pavel Tikhomirov ) (#PSBM-147276)- mount: skip source check for autofs mounts in bindmount search (Pavel Tikhomirov ) (#PSBM-148081)- Revert "soccr: do not disable tcp repair when sending unsent data" (Pavel Tikhomirov ) (#PSBM-147346 #PSBM-148050)- sk-unix: ignore closed or non-empty in-flight sockets (Pavel Tikhomirov ) (#PSBM-147983)- soccr: do not disable tcp repair when sending unsent data (Pavel Tikhomirov ) (#PSBM-147346)- filesystems: do binfmt_misc_restore only once (Pavel Tikhomirov ) (#PSBM-147930)- mount-v2: copy flags to wide mount helpers (Pavel Tikhomirov ) (#PSBM-148010) - overlayfs: fix error handling in __overlayfs_mount (Pavel Tikhomirov )- zdtm: add overlayfs_nestedns test (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: do mount in mntns of lower/upper/workdir mounts (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: add remove_plain_mountpoint helper (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: export bind_plain_to_other_mntns helper (Pavel Tikhomirov ) (#PSBM-147254) - mount-v2: export create_plain_mountpoint helper (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: replace ret with exit_code in __overlayfs_mount (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: remove cwd recovery in overlayfs_mount (Pavel Tikhomirov ) (#PSBM-147254) - overlayfs: call overlayfs_mount in child process (Pavel Tikhomirov ) (#PSBM-147254)- vz7: systemd-autofs-restart.sh: fix error condition check (Pavel Tikhomirov ) (#PSBM-147268)- zdtm: add mount_complex_sharing02 test (Pavel Tikhomirov ) (#PSBM-147120) - mount: add wide mounts for sharing groups where required (Pavel Tikhomirov ) (#PSBM-147120) - mount: search covering mounts for sharing groups (Pavel Tikhomirov ) (#PSBM-147120) - mount: search covering mounts for each superblock (Pavel Tikhomirov ) (#PSBM-147120) - mount: introduce covering mounts functionality (Pavel Tikhomirov ) (#PSBM-147120) - mount-v2: introduce custom detect_is_dir (Pavel Tikhomirov ) (#PSBM-147120) - mount: introduce helper mount types (Pavel Tikhomirov ) (#PSBM-147120) - mount-v2: rework can_mount_now_v2 (Pavel Tikhomirov ) (#PSBM-147120)- zdtm: add scm10 test for scm sent unix sk with closed sender (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: resolve fake queuers vs scm fds in unix sockets fallacy (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: order unixsk sent to other unixsk after it (Pavel Tikhomirov ) (#PSBM-143751)- jenkins/zdtm: dont run tests using zdtmtst cgroup concurrently (Pavel Tikhomirov ) (#PSBM-147000) - cgroupd: unblock SIGTERM as it is needed to stop cgroupd (Pavel Tikhomirov ) (#PSBM-147000) - jenkins/zdtm: use --mntns-compat-mode option without --no- (Pavel Tikhomirov ) (#PSBM-147000) - Revert python modules changes. (Artem Vasiliev )- build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - vz: fix multiple build problems related to python (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - vz: fix multiple build problems related to python (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- Revert "crit: fix compatibility with Python 3.12" (Pavel Tikhomirov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Fix typo (Artem Vasiliev ) - Add amdgpu man (Artem Vasiliev ) - Revert SPEC to use python2 (artem.vasiliev ) - Set proper version for pip PSBM-144416 (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- Revert "crit: fix compatibility with Python 3.12" (Pavel Tikhomirov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Revert SPEC to use python2 (artem.vasiliev ) - Set proper version for pip PSBM-144416 (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Set proper version for pip PSBM-144416 (artem.vasiliev ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber ) - Adding python-pip for PSBM-144416 (Artem Vasiliev )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723 #PSBM-144416) - zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261) - kerndat: check availability of mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: fallback to mount(MS_SET_GROUP) if have no openat2 (Pavel Tikhomirov ) (#PSBM-144416) - mount: define MS_NOSYMFOLLOW for vz7 (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: skip openvswitch tests if there is no ovs-dpctl tool (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: mark mnt_root_ext noauto (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: use --nftables-mode=ipt for socket-tcp-* tests (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: fix netns_lock_iptables test to cleanup iptables before restore (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - sk-inet: backward compatibility for vz_pktinfo (Pavel Tikhomirov ) (#PSBM-144416) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679) - zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177) - action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439) - sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398 #PSBM-144416) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix/mount-v2: prepare unix sockets just after their mount is mounted (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: always save to fdstore the bind file of unix socket (Pavel Tikhomirov ) (#PSBM-144416) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: make fstatat not resolve symlinks and automounts (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: switch mntns to actual restored mntns for unix socket creation (Pavel Tikhomirov ) (#PSBM-144416) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398) - cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834 #PSBM-144416) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408) - zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663 #PSBM-144416) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568) - vz/sockets: fallback c/r bufer size lock to _vz (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507) - zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849) - mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - mount-v2: don't resolve symlink when checking directory bindmounts (Pavel Tikhomirov ) (#PSBM-144416) - cgroup: at restore use fallback values for cpuset.cpus/mems (Valeriy Vdovin ) (#PSBM-127807 #PSBM-144416) - zdtm: add bridge and fdb tests (Andrey Zhadchenko ) (#PSBM-106442 #PSBM-144416) - mount: add some more debug messages to umount_overmounts (Pavel Tikhomirov ) - files: move parse_fdinfo_pid (Andrey Zhadchenko ) (#PSBM-124263) - net: move ovs genlink detection (Andrey Zhadchenko ) - zdtm: add file_fown_reuse to check dead owner pid reused (Pavel Tikhomirov ) (#PSBM-124623) - restorer: make setting tid due to CLONE_CHILD_SETTID not override multilevel pids (Pavel Tikhomirov ) (#PSBM-124538) - plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422) - mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531) - zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov ) - zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov ) - cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648) - infect: print stack for D state process (Andrey Zhadchenko ) (#PSBM-122979) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790 #PSBM-144416) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844 #PSBM-144416) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440 #PSBM-144416) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843 #PSBM-144416) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - util: add __get_relative_path version with const arguments and return (Pavel Tikhomirov ) (#PSBM-106869 #PSBM-144416) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) (#PSBM-144416) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871 #PSBM-144416) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161 #PSBM-144416) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) (#PSBM-144416) - compel: add mount_setattr syscall (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) (#PSBM-144416) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284 #PSBM-144416) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961 #PSBM-144416) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - mount-v2: allow custom fd and flags in __do_bind_mount_v2 (Pavel Tikhomirov ) (#PSBM-144416) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357 #PSBM-144416) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) (#PSBM-144416) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) (#PSBM-144416) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) (#PSBM-144416) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) (#PSBM-144416) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) (#PSBM-144416) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) (#PSBM-144416) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) (#PSBM-144416) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) (#PSBM-144416) - ns: Add ns_get_userns() feature (Kirill Tkhai ) (#PSBM-144416) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) (#PSBM-144416) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) (#PSBM-144416) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) (#PSBM-144416) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123 #PSBM-144416) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - zdtm: adjust pipe count at pipe04 test (Andrey Zhadchenko ) (#PSBM-122418) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408 #PSBM-144416) - mount: prohibit external mounts in non-root mntns (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-144416) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - log: Increase early log buffer (Cyrill Gorcunov ) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) (#PSBM-144416) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022 #PSBM-144416) - mount: fix absolute path handling in make_parent_dirs_if_need (Pavel Tikhomirov ) (#PSBM-144416) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830 #PSBM-144416) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) (#PSBM-144416) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) (#PSBM-144416) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800 #PSBM-144416) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943 #PSBM-144416) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) (#PSBM-144416) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - zdtm: make cgroup04 also check cpuset special props (Pavel Tikhomirov ) (#PSBM-123668) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - proc_parse: use statfs instead of fstatfs (Andrey Zhadchenko ) (#PSBM-122418) - zdtm: fix cgroup02 test (Andrey Zhadchenko ) (#PSBM-122418) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095 #PSBM-144416) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335 #PSBM-144416) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583 #PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - zdtm/netns-ipset: run only in ve flavour (Pavel Tikhomirov ) (#PSBM-144416) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083 #PSBM-144416) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625) - net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902) - nft: run nft binary from rpm414x64 chroot (Pavel Tikhomirov ) (#PSBM-125002) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958 #PSBM-144416) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: call iptables_restore in call_in_child_process (Pavel Tikhomirov ) (#PSBM-144416) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531 #PSBM-144416) - cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593 #PSBM-144416) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769 #PSBM-144416) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953) - sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778 #PSBM-144416) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) (#PSBM-144416) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) (#PSBM-120976 #PSBM-144416) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924 #PSBM-144416) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - sk-queue: use flags in dump_sk_queue (Pavel Tikhomirov ) (#PSBM-144416) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) (#PSBM-144416) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) (#PSBM-144416) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289 #PSBM-144416) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423 #PSBM-85265 #PSBM-144416) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) (#PSBM-94405 #PSBM-94706 #PSBM-144416) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616 #PSBM-70929) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) (#PSBM-144416) - mount/dump: check opts.ve for binfmt_misc earlier (Pavel Tikhomirov ) (#PSBM-144416) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320 #PSBM-144416) - autofs: rename parse_options to parse_autofs_options (Pavel Tikhomirov ) (#PSBM-144416) - autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889 #PSBM-144416) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775 #PSBM-144416) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - spfs: suppress compilation warnings by roughly approximating path lengths (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466 #PSBM-144416) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - spfs: move SPFS manager logs to corresponding container's dump directory (Stanislav Kinsburskiy ) (#PSBM-59199 #PSBM-144416) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) (#PSBM-108126 #PSBM-144416) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: nfs: build -- Add install of nfs-ports-allow.sh (Cyrill Gorcunov ) (#PSBM-144416) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) (#PSBM-144416) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289 #PSBM-144416) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354) - cgroup: also restore special props for pre-created directories (Pavel Tikhomirov ) (#PSBM-123668) - cgroup/device: update device major/minor in device.list (Pavel Tikhomirov ) (#PSBM-123668) - devices: resolve new device numbers for each device (Pavel Tikhomirov ) (#PSBM-123668) - devices: add lookup_device helper function (Pavel Tikhomirov ) (#PSBM-123668) - devices/restore: prepare devices_list with all devices from images (Pavel Tikhomirov ) (#PSBM-123668) - dump: save external device map to images (Pavel Tikhomirov ) (#PSBM-123668) - images: add device entry (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: make read_cgroup_prop detect overflow (Pavel Tikhomirov ) (#PSBM-123668) - external.h: explicitly include stdbool.h and common/list.h (Pavel Tikhomirov ) (#PSBM-123668) - cgroup: added command line flag to force creation of cgroup namespace (Valeriy Vdovin ) - zdtm: add a simple test for --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-144416) - config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949 #PSBM-144416) - zdtm: add simple ve test (Andrey Zhadchenko ) (#PSBM-122095) - jenkins: run ve flavor tests without extra pidns in a separate job (Pavel Tikhomirov ) - zdtm: add ve flavor (Andrey Zhadchenko ) (#PSBM-122095 #PSBM-144416) - restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407 #PSBM-144416) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162) - build: Switch to v3.18 vanila branch (Pavel Tikhomirov ) (#PSBM-144416) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cgroup/restore: split prepare_task_cgroup code into two separate functions (Valeriy Vdovin ) (#PSBM-123431 #PSBM-144416) - criu: Version 3.18 (Silver Sandpiper) (Andrei Vagin ) - cr-check: remove excess kerndat_has_nspid from check_ns_pid (Pavel Tikhomirov ) - log: fix timestamp logging when tv_sec>=100 (Michal Clapinski ) - proc_parse: fix while condition in parse_pid_status (Pavel Tikhomirov ) - netlink: fix netlink fd flags dump/restore failed (hdzhoujie ) - zdtm: modify rseq01 to include a thread (Michal Clapinski ) - cr-dump: properly apply rseq fixup for all threads (Michal Clapinski ) - cr-dump: move rseq functions before dump_task_thread (Michal Clapinski ) - dump: extend parasite_thread_ctl lifetime to dump_task_thread (Michal Clapinski ) - zdtm: don't ignore rseq_cs mismatch in rseq01 test (Michal Clapinski ) - ci: cancel preceding workflows run (Radostin Stoyanov ) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) - sk-unix: simplify error handling in unix_resolve_name_old (Pavel Tikhomirov ) - sk-unix: remove bogus xfree from unix_resolve_name_old (Pavel Tikhomirov ) - zdtm/lib: fix cwd path freeing (Yuriy Vasiliev ) - net: Add net log prefix (Cyrill Gorcunov ) - crit: fix compatibility with Python 3.12 (Radostin Stoyanov ) - pstree: improve id intersection detection in prepare_pstree_for_shell_job (Pavel Tikhomirov ) - sk-unix: add some missed error printing (Pavel Tikhomirov ) - zdtm: add MNTNS_ZDTM macro to fix initialization (Pavel Tikhomirov ) - mount: allow bindmounts for external fuse mounts (Pavel Tikhomirov ) - ci/archlinux: initialize machine ID (Radostin Stoyanov ) - Optimized shell code with <'s (instead of cat + |) (KKrypt ) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) - cgroup-v2: make new field cg_set optional (Bui Quang Minh ) - cgroup-v2: make new field is_threaded optional (Bui Quang Minh ) - net: fail restore if nftables isn't supported but image is present (Alexander Mikhalitsyn ) - make: disable '-Wdangling-pointer' warning with gcc 12 (Pavel Tikhomirov ) - x86/xsave: Set only used XFEATURE_* in xstate_bv (Dmitry Safonov ) - CONTRIBUTING.md: document make lint / indent (Radostin Stoyanov ) - net: use get_legacy_iptables_bin also on restore (Pavel Tikhomirov ) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) - test: add long command-line to coredump test (Adrian Reber ) - coredump: report missing files without a backtrace (Adrian Reber ) - coredump: handle long command-lines (Adrian Reber ) - lib/py: reduce code duplication (Kouame Behouba Manasse ) - ci/podman-test: drop crun installation script (Radostin Stoyanov ) - ci: disable c/r of cgroups with podman (Radostin Stoyanov ) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - zdtm/transition/epoll: don't rely on errno in case of zero return (Pavel Tikhomirov ) - mailmap: update my email (Alexander Mikhalitsyn ) - dump: improve error printing and readability of task_comm_info (Pavel Tikhomirov ) - ci: add test for crit info (Radostin Stoyanov ) - crit: fix empty string comparison (Radostin Stoyanov ) - dump: Show task comm early (Cyrill Gorcunov ) - lint: exclude tags file from codespell (Pavel Tikhomirov ) - Add documentation for --ghost-fiemap (Radostin Stoyanov ) - zdtm: Add tests for IP_PKTINFO and IP_FREEBIND sock options (Pavel Tikhomirov ) - sk-inet: support IP_PKTINFO and IPV6_RECVPKTINFO options (Pavel Tikhomirov ) - sk-inet: save IP_FREEBIND option for SOCK_RAW sockets also (Pavel Tikhomirov ) - kerndat: check if setsockopt IPV6_FREEBIND is supported (Pavel Tikhomirov ) - proc_parse: Handle btrfs files when map_files is not accessible (Younes Manton ) - ci: Add maps00 test in unprivileged mode in user namespace (Younes Manton ) - shmem: Close fd when VMA is copied from /proc/$pid/mem (Younes Manton ) - shmem: pr_err -> pr_perror (Younes Manton ) - compel/mips: fix parasite with GCC 12 (Radostin Stoyanov ) - clang-format: use IndentGotoLabels to get rid of goto label indentation (Pavel Tikhomirov ) - namespaces: cleanup switch_mnt_ns and restore_mnt_ns (Pavel Tikhomirov ) - mount: simplify code around mount_cr_time_mount (Pavel Tikhomirov ) - remap: refactor goto jumping to a while loop (Michał Mirosław ) - remap: Fix typo (Michał Mirosław ) - ci/lint: make push action have at least too commits depth (Pavel Tikhomirov ) - criu(8): Add info about unprivileged mode limitations (Younes Manton ) - proc_parse: Don't bail out on is_memfd() VMAs (Younes Manton ) - shmem: Fall back to /proc/$pid/mem if no map_files (Younes Manton ) - proc_parse: Set VMA_AREA_REGULAR where needed (Younes Manton ) - string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers (Pavel Tikhomirov ) - string: use our own __strlcpy and __strlcat to remove bsd headers (Pavel Tikhomirov ) - log: remove all uses of %m specifier in pr_* functions (Pavel Tikhomirov ) - lint: prohibit to use %m specifier in pr_* functions (Pavel Tikhomirov ) - ci: switch from lgtm to codeql (Adrian Reber ) - restorer: add logging on prctl PR_SET_MM_MAP failure (Michal Clapinski ) - zdtm: add mntns_compare check to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mountinfo topology compare to test lib (Pavel Tikhomirov ) - zdtm: add mountinfo parsing to test lib (Pavel Tikhomirov ) - zdtm/lib: copy xmalloc.h (Pavel Tikhomirov ) - zdtm/lib: copy list.h (Pavel Tikhomirov ) - clang-format: rework make indent to check specific commits (Pavel Tikhomirov ) - scripts/ci: use Fedora 37 for vagrant based tests (Adrian Reber ) - tty: fix codding-style around for_each_bit call (Pavel Tikhomirov ) - clang-format: add for_each_bit macros to ForEachMacros (Pavel Tikhomirov ) - autofs: fix a frankenstein auto-created by clang-format (Pavel Tikhomirov ) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - asm: fix for_each_bit macro (Michal Clapinski ) - crtools: fix help message alignment for --network-lock (Pavel Tikhomirov ) - zdtm: fix 'zdtm.py list' command (Radostin Stoyanov ) - cgroups: ignore EOPNOTSUPP on setting memory.kmem.limit_in_byte (Andrei Vagin ) - test/javaTests: update org.testng:testng (Maven) (Andrei Vagin ) - sockets: tiny style fix (Andrei Vagin ) - non-root: Don't dump socket option SO_MARK if 0 (Younes Manton ) - non-root: Rework socket bufs for unprivileged mode (Younes Manton ) - Fix typo in comment (Shubham Verma ) - zdtm: add two tests for highly sparse ghost file (Liang-Chun Chen ) - files-reg.c: fiemap algorithm for ghost file (Liang-Chun Chen ) - ci: fix make indent (Radostin Stoyanov ) - ci/alpine: remove symlink for /usr/bin/python (Radostin Stoyanov ) - ci/lint: install ShellCheck with dnf (Radostin Stoyanov ) - Fix warnings from -Wstrict-prototypes in clang 16.0.0 (Drew Wock ) - amdgpu: define __nmk_dir if missing (Radostin Stoyanov ) - Remove execute bit from source file (Mathias Gibbens ) - cgroup: Remove redundant code that handles zombie tasks (Bui Quang Minh ) - kerndat: Mark memfd_create(MFD_HUGETLB) unavailable when ENOSYS is returned (Bui Quang Minh ) - ci: move cgroup unmounting to run-ci-tests.sh (Adrian Reber ) - ci: Do not fail if latest epel repository definition is already installed (Adrian Reber ) - ci: Make cpuset move to cgroup-v2 hierarchy (Bui Quang Minh ) - zdtm: Check threads are restored into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Restore threads in a process into correct threaded controllers (Bui Quang Minh ) - cgroup-v2: Dump cgroup controllers of every threads in a process (Bui Quang Minh ) - zdtm: Add test to check global properties of cgroup-v2 are preserved (Bui Quang Minh ) - zdtm: Add write_value/read_value helpers into zdtm library (Bui Quang Minh ) - cgroup-v2: Checkpoint and restore some global properties (Bui Quang Minh ) - Switch aarch64 builds to Cirrus CI (Adrian Reber ) - ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach (Bui Quang Minh ) - cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - non-root: add non-root test case to cirrus runs (Adrian Reber ) - non-root: extend zdtm.py to be able to run tests as non-root (Adrian Reber ) - Documentation: add details about --unprivileged (Adrian Reber ) - non-root: Introduce unprivileged mode to kerndat (Younes Manton ) - non-root: enable non-root checkpoint/restore (Younes Manton ) - non-root: add functions to work with capabilities (Adrian Reber ) - non-root: add infrastructure to run as non-root (Adrian Reber ) - ci: enable EPEL for CentOS 7 (Radostin Stoyanov ) - compel: Fix ppc64le parasite stack layout (Younes Manton ) - compel: Add test to check parasite stack setup (Younes Manton ) - compel: Fix infect test to not override failures (Younes Manton ) - compel: Add APIs to facilitate testing (Younes Manton ) - seize: do not overwrite exit code from failpath (Liu Hua ) - test/others/crit/test.sh: use bash array (Kir Kolyshkin ) - scripts/protobuf-gen.sh: fix (not ignore) shellcheck warnings (Kir Kolyshkin ) - scripts/ci: rm shellcheck disable annotations (Kir Kolyshkin ) - scripts/ci/run-ci-tests: use bash arrays (Kir Kolyshkin ) - Fix, not ignore, shellcheck SC1091 warnings (Kir Kolyshkin ) - scripts/ci/asan.sh: fix, not ignore, shellcheck warning (Kir Kolyshkin ) - scripts/ci/apt-install: fix (not ignore) shellcheck warning (Kir Kolyshkin ) - ci/gha/lint: install a recent shellcheck (Kir Kolyshkin ) - files-reg: skip failed mount lookup for shell-job's tty (Pavel Tikhomirov ) - criu-ns: capture controlling tty (Pavel Tikhomirov ) - mount: add definition for FSOPEN_CLOEXEC (Radostin Stoyanov ) - ci: Clean up and improve Java testing (Younes Manton ) - ci: Add Dockerfile for openj9 on Ubuntu (Younes Manton ) - ci: Rename openj9 Dockerfiles to hotspot (Younes Manton ) - gitignore: Ignore top-evel build dir only (Younes Manton ) - test/unix: check C/R of unix listen queues (Andrei Vagin ) - zdtm: return 1 from pr_err, pr_perror, fail (Andrei Vagin ) - criu: fail migration if data was sent to an in-flight socket (Michal Clapinski ) - breakpoint: enable breakpoints by default on amd64 and arm64 (fu.lin ) - breakpoint: implement hw breakpoint for arm64 platform (fu.lin ) - compel: switch breakpoint functions to non-inline at arm64 platform (fu.lin ) - compel: clear a breakpoint right after it's been triggered (Andrei Vagin ) - compel: set TRACESYSGOOD to distinguish breakpoints from syscalls (Andrei Vagin ) - ci/cirrus: centos 8 job nits (Kir Kolyshkin ) - ci/cirrus: add CentOS Stream 9 (Kir Kolyshkin ) - docker-test: handle race condition error (Radostin Stoyanov ) - Add Alexander Mikhalitsyn to maintainers (Andrei Vagin ) - cr-restore: rseq: use glibc-specific way to unregister only as fallback (Alexander Mikhalitsyn ) - cr-restore: rseq: dynamically handle *libc with rseq (Alexander Mikhalitsyn ) - cr-check: optimize check for apparmor stacking (Pavel Tikhomirov ) - cr-check: fix check for apparmor stacking (Radostin Stoyanov ) - docker-test: use containerd installed from package (Radostin Stoyanov ) - Revert "ci: Switch to non overlaysfs tests" (Radostin Stoyanov ) - criu: fix conflicting headers (Radostin Stoyanov ) - ci: unset XDG_RUNTIME_DIR when invoking podman (Radostin Stoyanov ) - MAINTAINERS: Add Radostin (myself) to maintainers (Radostin Stoyanov ) - zdtm: add two tests for large ghost sparse file (Liang-Chun Chen ) - unlink_largefile.desc: remove crfail, since criu now can support unlink_largefile test (Liang-Chun Chen ) - files-reg.c: modify the check of ghost_limit to support large sparse files (Liang-Chun Chen ) - zdtm/mnt_root_ext: don't allow propagation from test mntns to criu mntns (Pavel Tikhomirov ) - zdtm: make root mount private in criu mntns (Pavel Tikhomirov ) - vdso-compat: Increase the reserved buffer for compat vdso (Bui Quang Minh ) - zdtm: Remove permission part check for skipping vsyscall vma (Bui Quang Minh ) - x86/compel/fault-inject: fixup mxcsr for PTRACE_SETFPREGS (Alexander Mikhalitsyn ) - rseq: fix headers conflict on Mariner GNU/Linux (Alexander Mikhalitsyn ) - Add --skip-file-rwx-check opt test (Younes Manton ) - config/files-reg: Add opt to skip file r/w/x check on restore (Younes Manton ) - zdtm: add tests for SIGTSTP (Yuriy Vasiliev ) - infect: add SIGTSTP support (Yuriy Vasiliev ) - config: fail on --track-mem option if dirty tracking is not available (Pavel Tikhomirov ) - hugetlb: don't dump anonymous private hugetlb mapping using memfd approach (Bui Quang Minh ) - amdgpu: Add gitignore (Radostin Stoyanov ) - zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) - Fix the check for mnt namespace in criu-ns (Ashutosh Mehra ) - github: use git-clang-format instead of make indent (Pavel Tikhomirov ) - zdtm: skip zdtm/static/shm-hugetlb when hugetlb is not supported (Alexander Mikhalitsyn ) - Revert "ci: skip new hugetlb maps09/maps10 tests for pre-dump" (Bui Quang Minh ) - mem: Skip pre-dumping on hugetlb mappings (Bui Quang Minh ) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) - criu: Version 3.17.1 (Adrian Reber ) - ci: Fix code indent (Radostin Stoyanov ) - zdtm: add mnt_root_ext test (Pavel Tikhomirov ) - util/mount-v2: fix resolve_mountpoint() to always return freeable pointer (Pavel Tikhomirov ) - zdtm: test multiple ext bindmounts with no common root and same master (Pavel Tikhomirov ) - mount-v2: workaround for multiple external bindmounts with no common root (Pavel Tikhomirov ) - mount-v2: split out restore_one_sharing helper (Pavel Tikhomirov ) - amdgpu: Set PLUGINDIR to /usr/lib/criu (Radostin Stoyanov ) - amdgpu/Makefile: Fix include path (Radostin Stoyanov ) - ci: test the read mode of pre-dump (Andrei Vagin ) - page-xfer: refactoring analyze_iov and fill_userbuf (Andrei Vagin ) - pre-dump: call vmsplice with SPLICE_F_GIFT (Andrei Vagin ) - page-xfer: adjust a buffer to a pipe size (Andrei Vagin ) - page-xfer: use negative values for error codes (Andrei Vagin ) - page-pipe: fix limiting a pipe size (Andrei Vagin ) - crit: Use same version as criu (Radostin Stoyanov ) - ci: Fix unsafe repository error (Radostin Stoyanov ) - criu: Version 3.17 (Adrian Reber ) - ci: skip new hugetlb maps09/maps10 tests for pre-dump (Alexander Mikhalitsyn ) - kerndat: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - zdtm: handle the case when hugetlb isn't supported (Alexander Mikhalitsyn ) - ci: workaround race between sit module loading and bridge test (Alexander Mikhalitsyn ) - ci: print kernel modules list (Alexander Mikhalitsyn ) - test: install criu in /usr (Adrian Reber ) - readme: Add badge links to workflows (Radostin Stoyanov ) - sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko ) - proc_parse: Fix parsing bpf map_extra (Radostin Stoyanov ) - bpf: update deprecated API (Radostin Stoyanov ) - ci: print mountinfo instead of mount cmd output (Alexander Mikhalitsyn ) - ci: criu-fault: skip inotify_irmap fault-injection on btrfs (Alexander Mikhalitsyn ) - scripts/ci: fix ZDTM_OPTS variable passing (Alexander Mikhalitsyn ) - zdtm: temporary disable rseq02 test (Alexander Mikhalitsyn ) - zdtm: add rseq02 transition test with NO_RESTART CS flag (Alexander Mikhalitsyn ) - rseq: handle rseq/rseq_cs flags properly (Alexander Mikhalitsyn ) - Revert "test: disable rseq also on Archlinux" (Alexander Mikhalitsyn ) - zdtm: add transition/rseq01 test for amd64 (Alexander Mikhalitsyn ) - cr-dump: fixup thread IP when inside rseq cs (Alexander Mikhalitsyn ) - compel: add helpers to get/set instruction pointer (Alexander Mikhalitsyn ) - zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc (Alexander Mikhalitsyn ) - pie/restorer: unregister (g)libc rseq before memory restoration (Alexander Mikhalitsyn ) - include: add thread_pointer.h from Glibc (Alexander Mikhalitsyn ) - ci: add Fedora Rawhide based test on Cirrus (Alexander Mikhalitsyn ) - Revert "ci: disable glibc rseq support" (Alexander Mikhalitsyn ) - zdtm: add basic static/rseq00 test for rseq C/R (Alexander Mikhalitsyn ) - rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature (Alexander Mikhalitsyn ) - rseq: initial support (Alexander Mikhalitsyn ) - cr-check: Add ptrace rseq conf dump feature (Alexander Mikhalitsyn ) - util: move fork_and_ptrace_attach helper from cr-check (Alexander Mikhalitsyn ) - kerndat: check for rseq syscall support (Alexander Mikhalitsyn ) - compel: add rseq syscall into compel std plugin syscall tables (Alexander Mikhalitsyn ) - cgroup: test for --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix --manage-cgroups=ignore (Adrian Reber ) - cgroup: fix "unified" path (Adrian Reber ) - ci: add codespell to lint target (Kir Kolyshkin ) - Fix remaining codespell warnings (Kir Kolyshkin ) - Fix some codespell warnings (Kir Kolyshkin ) - Add .codespellrc (Kir Kolyshkin ) - test/zdtm.py: rename a var (Kir Kolyshkin ) - test/exhaustive/unix.py: rename a var (Kir Kolyshkin ) - Rename useable to usable (Kir Kolyshkin ) - criu/mount.c: separate \t (Kir Kolyshkin ) - criu/files.c: some renames (Kir Kolyshkin ) - test/javaTests: rename ser to s (Kir Kolyshkin ) - Nit: rename sie to se (Kir Kolyshkin ) - Typo: mmaped -> mmapped (Kir Kolyshkin ) - test/zdtm/static: s/NODEL/NO_DEL/ (Kir Kolyshkin ) - test/zdtm/static/inotify_system.c: s/inot/infd/ (Kir Kolyshkin ) - test/zdtm/static: use param not parm (Kir Kolyshkin ) - criu/pie/restorer.c: use param not parm (Kir Kolyshkin ) - criu/arch/s390/include/asm/restorer.h: fix comments (Kir Kolyshkin ) - ci: Switch to non overlaysfs tests (Adrian Reber ) - criu: generate unique socket names (Andrei Vagin ) - mount: fix -Wunused-but-set-variable for Clang 15 (Fangrui Song ) - style: delete some redundant code (jiang wei ) - apparmor: Fix -Wfortify-source for Clang (Fangrui Song ) - criu-ns: add a helper to hold a pid namespace (Andrei Vagin ) - scripts/ci: mount test cgroups once (Andrei Vagin ) - zdtm: use unique holder for cgroups (Andrei Vagin ) - mount: make error messages differ in different places (Pavel Tikhomirov ) - mount-v2: make mount engine fallback messages loglevel debug (Pavel Tikhomirov ) - zdtm/mount-v2: disable pty-console test (Pavel Tikhomirov ) - test/jenkins: test for old mount engine (Pavel Tikhomirov ) - ci: make others/mnt_ext_dev also run for old mount engine (Pavel Tikhomirov ) - zdtm/mount-v2: disable mnt_tracefs test (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) - zdtm: add new mnt_ext_sharing test for mount-v2 (Pavel Tikhomirov ) - ci: run tests for old mount engine (Pavel Tikhomirov ) - zdtm: enable mounts compat mode on restore with --mntns-compat-mode option (Pavel Tikhomirov ) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) - mount: export global variables for mount-v2 (Pavel Tikhomirov ) - mount: export several functions for mount-v2 (Pavel Tikhomirov ) - mount: export common defines for mount-v2 (Pavel Tikhomirov ) - mount: remove double ns_id declaration (Pavel Tikhomirov ) - files-reg: export parent dirs helpers for mount-v2 (Pavel Tikhomirov ) - mount: add plain mountpoints (Pavel Tikhomirov ) - config/rpc: add new option --mntns-compat-mode for old mount engine (Pavel Tikhomirov ) - crtools: move check_options after kerndat_init and log_init (Pavel Tikhomirov ) - util: add resolve_mountpoint helper (Pavel Tikhomirov ) - kerndat: check whether the openat2 syscall is supported (Pavel Tikhomirov ) - compel: add open_tree syscall (Pavel Tikhomirov ) - kerndat: Check for MOVE_MOUNT_SET_GROUP availability (Pavel Tikhomirov ) - files-reg: teach clean_one_remap to work with mount-v2 (Pavel Tikhomirov ) - files-reg: teach create_ghost to work with mount-v2 (Pavel Tikhomirov ) - files-reg: split create_ghost_dentry out of create_ghost (Stanislav Kinsburskiy ) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) - path: simplify mnt_get_sibling_path via get_relative_path (Pavel Tikhomirov ) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) - mount: use ns_mountpoint in mnt_is_overmounted (Pavel Tikhomirov ) - autofs: use ns_mountpoint in autofs_create_dentries (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount: move root yard tree merge as early as possible (Pavel Tikhomirov ) - mount: prepare is_overmounted as early as possible (Pavel Tikhomirov ) - mount: add helper mnt_get_external_bind_nodev (Pavel Tikhomirov ) - mount: do not override master_id to -1 for root binds (Pavel Tikhomirov ) - mount: put external slavery mounts to separate mnt_ext_slave list (Pavel Tikhomirov ) - mount: add can_receive_master_from_root helper (Pavel Tikhomirov ) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) - mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount (Pavel Tikhomirov ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root_ro test (Pavel Tikhomirov ) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) - zdtm: add mntns_pivot_root test (Pavel Tikhomirov ) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - mount: add mnt_is_root_bind helper (Pavel Tikhomirov ) - zdtm: add mnt_ext_collision test (Pavel Tikhomirov ) - mount: restrict mp-external mount map to init container mntns only (Pavel Tikhomirov ) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: rework skipping external mounts in dump_one_mountpoint (Pavel Tikhomirov ) - mount: split mnt_is_external(_bind) and can_receive_master_from_external (Pavel Tikhomirov ) - mount: add mnt_bind_pick helper to pick the desired bind (Pavel Tikhomirov ) - unittest: add some tests for get_relative_path helper (Pavel Tikhomirov ) - util: add get_relative_path helper (Pavel Tikhomirov ) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) - mount: skip fstype and source checks for external mounts in mounts_sb_equal (Alexander Mikhalitsyn ) - mount: mark mounts of external devices external (Pavel Tikhomirov ) - mount: do not detect non-fsroot mounts as device-external (Pavel Tikhomirov ) - mount: add mntinfo_add_list_before helper for adding to mntinfo list (Alexander Mikhalitsyn ) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) - uffd: fix __u64 print format specifier (Pavel Tikhomirov ) - sk-unix: fix e_str leak in unix_sk_id_add (Pavel Tikhomirov ) - criu/plugin: Add support for criu image streamer (David Yat Sin ) - criu/plugin: Store BO contents directly to file (David Yat Sin ) - criu/plugin: Add whitepaper document (Felix Kuehling ) - criu/plugin: Dockerfile for amdgpu_plugin (Rajneesh Bhardwaj ) - criu/plugin: Fix for FDs not allowed to mmap (David Yat Sin ) - criu/plugin: Implement sDMA based buffer access (Rajneesh Bhardwaj ) - criu/plugin: Restore libhsakmt shared memory files (David Yat Sin ) - criu/plugin: Read and write BO contents in parallel (David Yat Sin ) - criu/plugin: Add unit tests for GPU remapping (David Yat Sin ) - criu/plugin: Add parameters to override mapping (David Yat Sin ) - criu/plugin: Remap GPUs on checkpoint restore (David Yat Sin ) - criu/plugin: Implement system topology parsing (David Yat Sin ) - criu/plugin: Adding check for kernel IOCTL version (David Yat Sin ) - criu/plugin: Support AMD ROCm Checkpoint Restore with KFD (Rajneesh Bhardwaj ) - criu/plugin: Initialize AMD KFD header (Rajneesh Bhardwaj ) - criu/plugin: Skip plugin vmas during premap (David Yat Sin ) - criu/plugin: Add dedicated flag for plugins (David Yat Sin ) - criu/files: Add function to return unused FD by pid (David Yat Sin ) - criu/plugin: Do not reopen vma fd for plugins (David Yat Sin ) - files: fix inh leak in inherit_fd_add (Pavel Tikhomirov ) - net: fix e_str leak in veth_pair_add (Pavel Tikhomirov ) - config: fix ns leak in parse_join_ns (Pavel Tikhomirov ) - ci: run criu-config tests (Radostin Stoyanov ) - zdtm: drop redundant config_inotify_irmap test (Radostin Stoyanov ) - zdtm: add --criu-config option (Radostin Stoyanov ) - zdtm: use long form cli options (Radostin Stoyanov ) - zdtm: sort import lines (Radostin Stoyanov ) - zdtm: refactor main (Radostin Stoyanov ) - sk-unix: fix uint32_t id variable printf format specifier (Pavel Tikhomirov ) - tun: fix tun_link leak in dump_tun_link (Pavel Tikhomirov ) - cr-dump: fix cr_imgset leak in dump_one_task (Pavel Tikhomirov ) - mount: fix e_str leak in ext_mount_add (Pavel Tikhomirov ) - proc_smaps: remove useless nonlinear check (anatasluo ) - compel: set mxcsr during error injection to zero (Adrian Reber ) - zdtm: fix missplacement of err=True (Pavel Tikhomirov ) - test: disable rseq also on Archlinux (Adrian Reber ) - test: remove test for LOCK_MAND flock (Adrian Reber ) - bpfmap: handle new field in fdinfo (Adrian Reber ) - ci: skip MAP_HUGETLB tests in stream test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes (Bui Quang Minh ) - zdtm: Add shm hugetlb test (Bui Quang Minh ) - zdtm: Add memfd hugetlb test (Bui Quang Minh ) - zdtm: Add MAP_HUGETLB memory mapping test (Bui Quang Minh ) - uffd: Skip lazy-mode restore on hugetlb mappings (Bui Quang Minh ) - mem: Skip premapping hugetlb mapping (Bui Quang Minh ) - proc_parse, files: Add support for hugetlb memory mapping (Bui Quang Minh ) - memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory (Bui Quang Minh ) - ipc: Add support for checkpoint/restore hugetlb System V shared memory (Bui Quang Minh ) - kerndat: Collect hugetlb device numbers (Bui Quang Minh ) - check: Add a check for using memfd with hugetlb (Bui Quang Minh ) - files: generate unique transport socket names (Andrei Vagin ) - util: add an unique ID of the current criu run (Andrei Vagin ) - compel: fix how PTRACE_GET_THREAD_AREA errors are handled (Mike Rapoport ) - restorer: Fix sys_mmap's returned value check (Bui Quang Minh ) - criu-ns: use os.waitstatus_to_exitcode() (Radostin Stoyanov ) - criu-ns: fix exit code o for criu dump (Radostin Stoyanov ) - pstree: when updating sid for shell job also update matching pgid (Pavel Tikhomirov ) - ci: install libbsd dependency (Radostin Stoyanov ) - Fix formatting in criu documentation (Ashutosh Mehra ) - test/autofs: fix use-after-free (Radostin Stoyanov ) - ci: set continue-on-error for cross-compile (Radostin Stoyanov ) - compel: fix parasite with GCC 12 (Adrian Reber ) - criu: fix configuration file scanner with GCC 12 (Adrian Reber ) - compel: fix GCC 12 failure (out of bounds) (Adrian Reber ) - zdtm: fix zdtm/static/maps00 case in arm64 (fu.lin ) - pagemap: tiny fix on truncating memory image (Liu Hua ) - lib: added tests for feature check in libcriu (Adrian Reber ) - lib: introduce feature check in libcriu (Adrian Reber ) - ci: added .lgtm.yml file (Adrian Reber ) - ci: update to latest Vagrant and Fedora images (Adrian Reber ) - contributing: remove old badges and logo (Radostin Stoyanov ) - readme: add docker test badge (Radostin Stoyanov ) - ci: test criu-image-streamer with all tests (Nicolas Viennot ) - mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd (Pavel Tikhomirov ) - proc_parse: add helper to resolve sdev from fd (Pavel Tikhomirov ) - mount: remove mnt_fd argument of __open_mountpoint (Pavel Tikhomirov ) - mount: split check_mountpoint_fd from __open_mountpoint (Pavel Tikhomirov ) - zdtm/static/uffd-events: add more log messages (Andrei Vagin ) - zdtm: print tails of all logs if a test has failed (Andrei Vagin ) - test: log testname.out.inprogress if a test has failed (Andrei Vagin ) - ci: reenable the lazy-thp test in the lazy-remote mode (Andrei Vagin ) - page-xfer: stop waiting for a new command after a close command (Andrei Vagin ) - tls: allow to terminate connections synchronously (Andrei Vagin ) - uffd: call disconnect_from_page_server to shutdown a page-server connection (Andrei Vagin ) - tls: add more comments (Radostin Stoyanov ) - tls: use ssize_t for return value (Radostin Stoyanov ) - tls: fix typo (Radostin Stoyanov ) - zdtm: Add SOCK_SEQPACKET variants to unix socket tests (Bui Quang Minh ) - sk-unix: Add support for SOCK_SEQPACKET unix sockets (Bui Quang Minh ) - crtools: check that cpuinfo command has sub-command (Pavel Tikhomirov ) - crtools: use new opts.mode in image_dir_mode (Pavel Tikhomirov ) - crtools/rpc: export current criu mode to opts.mode (Pavel Tikhomirov ) - crtools: remove excess always true condition (Pavel Tikhomirov ) - zdtm: remove mntns-deleted-dst test leftover from git (Pavel Tikhomirov ) - zdtm: zdtm_ct fix compilation error with strict-prototypes on (Alexander Mikhalitsyn ) - zdtm.py: clean up MAKEFLAGS env variable before running make instance (Alexander Mikhalitsyn ) - tests: added test for single pre-dump support (Adrian Reber ) - libcriu: add single pre-dump support (Adrian Reber ) - ci: disable glibc rseq support (Radostin Stoyanov ) - ci: use unstable release for cross-compile (Radostin Stoyanov ) - libcriu: add setting lsm-mount-context to libcriu (Adrian Reber ) - usernsd: UNS_FDOUT should not require an input descriptor (Andrei Vagin ) - Add documentation for --timeout option (Radostin Stoyanov ) - ci: enable x86 xsave fault injection tests back (Alexander Mikhalitsyn ) - x86/compel/fault-inject: print the initial seed (Alexander Mikhalitsyn ) - x86/compel/fault-inject: bound xsave features set (Alexander Mikhalitsyn ) - test: another try to correctly fix the kernel version (Adrian Reber ) - ci: install procps in Alpine (Radostin Stoyanov ) - ci: Enable disabled unix socket related tests (Bui Quang Minh ) - sk-unix: Fix TCP_ESTABLISHED checks in unix sockets (Bui Quang Minh ) - util: make page-server IPv6 safe (Adrian Reber ) - files-reg: try dump_ghost_remap if link-remap failed with error ENOENT (ianlang ) - test: do not use --keep-going for single zdtm tests (Adrian Reber ) - ci: disable broken tests until fixed (Adrian Reber ) - make: Explicitly enable FPU on ARMv7 builds (Salvatore Bonaccorso ) - ci: Run cross compile with debian testing (Radostin Stoyanov ) - ci: Run cross compile on debian stable (Radostin Stoyanov ) - clang-format: disable wrong struct pointer declaration format (Pavel Tikhomirov ) - zdtm: add ro-mount check after c/r to mntns_ghost01 (Pavel Tikhomirov ) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) - check: cleanup child processes (Nicolas Viennot ) - ci: switch to centos-stream-8 (Adrian Reber ) - crtools: ignore SIGPIPE in swrk mode (Liu Hua ) - ci: Use latest Fedora for lint ci runs again (Pavel Tikhomirov ) - seize: restore cgroup freezer to right state (Liu Hua ) - clang-format/zdtm: fix clang complains about strange elseifs (Pavel Tikhomirov ) - tests: improve the deterministic behavior of the test suite (Nicolas Viennot ) - zdtm.py: make tests with --link_remap exclusive (Pavel Tikhomirov ) - ci: disable socket-raw test on centos8 (Pavel Tikhomirov ) - clang-format: make x86_ins_capability_mask human-readable (Pavel Tikhomirov ) - cr-dump: fail dumping when zombie process with sid 0 (Liu Hua ) - clang-format: do automatic comment fixups (Pavel Tikhomirov ) - clang-format: do several manual comment fixups (Pavel Tikhomirov ) - clang-format: enable AlignTrailingComments (Pavel Tikhomirov ) - zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) - sockets: c/r bufer size locks (Pavel Tikhomirov ) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) - tests: improve the image streamer process control (Nicolas Viennot ) - ci: use Fedora 34 for lint CI runs (Adrian Reber ) - ci: fix userfaultfd test failures (Adrian Reber ) - ci: replace deprecated codecov bash uploader (Adrian Reber ) - net: optimize restore_rule() to not open the CR_FD_RULE image file twice (Nicolas Viennot ) - criu-ns: make pidns init first do setsid (Pavel Tikhomirov ) - util: use nftw in rmrf helper (Pavel Tikhomirov ) - tty: fix the null pointer of get_tty_driver (fu.lin ) - pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov ) - ci: enable coredump tests (Radostin Stoyanov ) - make: enable lint for coredump (Radostin Stoyanov ) - test/coredump: fix shellcheck errors (Radostin Stoyanov ) - coredump: lint fix visually indented line (Radostin Stoyanov ) - coredump: fix comparison to true (Radostin Stoyanov ) - coredump: fix too many blank lines (Radostin Stoyanov ) - coredump: fix missing whitespace around operator (Radostin Stoyanov ) - coredump: lint fix for block comments (Radostin Stoyanov ) - coredump: drop exec permission (Radostin Stoyanov ) - coredump: drop unused variable (Radostin Stoyanov ) - python: replace equality with identity test (Radostin Stoyanov ) - coredump: convert indentation to spaces (Radostin Stoyanov ) - coredump: sort imports (Radostin Stoyanov ) - coredump: remove unused import (Radostin Stoyanov ) - Add new files for running criu-coredump via python 2 or 3 (AndreyVV-100 ) - Add support for python3 in criu-coredump (Andrey Vyazovtsev ) - criu(8): Add more detailed description about --tcp-close dump option (Bui Quang Minh ) - zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket (Bui Quang Minh ) - tcp: Skip restoring TCP state when dumping with --tcp-close (Bui Quang Minh ) - criu/files: Don't cache fd ids for device files (Rajneesh Bhardwaj ) - criu/plugin: Implement dummy amdgpu plugin hooks (Rajneesh Bhardwaj ) - criu: Introduce new device file plugin hooks (Rajneesh Bhardwaj ) - criu(8): add --external net option (Radostin Stoyanov ) - github: update the stale version (Andrei Vagin ) - criu: Version 3.16.1 (Adrian Reber ) - Makefile: add shellcheck test/others/libcriu/*.sh (Radostin Stoyanov ) - test/libcriu: print logs on fail (Radostin Stoyanov ) - test/libcriu: add test case for join-ns (Radostin Stoyanov ) - libcriu: define log level constants (Radostin Stoyanov ) - libcriu: add join_ns API (Radostin Stoyanov ) - Makefile: install criu-ns only with python3 (Radostin Stoyanov ) - criu-ns: change python shebang to python3 (Radostin Stoyanov ) - criu: Version 3.16 (Adrian Reber ) - ci: Update openj9 container images (Radostin Stoyanov ) - mount: fix double-dump file system bug (Nicolas Viennot ) - gitignore: add build directory (Radostin Stoyanov ) - podman-test: use crun from git repository (Radostin Stoyanov ) - lib: install images/rpc.pb-c.h (Radostin Stoyanov ) - sk-unix: fix prep_unix_sk_cwd root and cwd restoring (Pavel Tikhomirov ) - binfmt_misc: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - autofs: restore current work directory after restoring mnt ns (Pavel Tikhomirov ) - mount: use swich_mnt_ns/restore_mnt_ns helpers to simplify code (Liu Hua ) - binfmt_misc: restore current work directory after restoring mnt ns (Liu Hua ) - namespaces: add helpers to switch/restore mnt ns (Liu Hua ) - remove tls parameter description if without GnuTLS support (liuchao173 <55137861+liuchao173@users.noreply.github.com>) - kerndat: create separate netns for has_nftables_concat check (Zeyad Yasser ) - zdtm: fix network lock tests when run with --norst (Zeyad Yasser ) - criu: use unique table names for nftables based locking (Zeyad Yasser ) - inventory: save network lock method to reuse in restore (Zeyad Yasser ) - zdtm: add ipv6 variants of net_lock_socket_* tests (Zeyad Yasser ) - zdtm: add nftables per-socket locking test (Zeyad Yasser ) - criu: add nftables connection locking/unlocking (Zeyad Yasser ) - zdtm: add iptables per-socket locking test (Zeyad Yasser ) - zdtm: add nftables network namespace locking test (Zeyad Yasser ) - criu: add nftables netns-wide locking/unlocking (Zeyad Yasser ) - criu: rename iptables network locking/unlocking functions (Zeyad Yasser ) - cr-check: add check for nftables based network locking (Zeyad Yasser ) - cr-service: add network_lock option to RPC and libcriu (Zeyad Yasser ) - criu: add --network-lock option to allow nftables alternative (Zeyad Yasser ) - Run 'make indent' on criu/include/plugin.h (Andrei Vagin ) - workflows/lint: show changes (Andrei Vagin ) - criu/config: fix use-after-free in parse_join_ns (Radostin Stoyanov ) - configs: fix used after free cases (Andrei Vagin ) - lsm: do not print a warning if no LSM has been detected (Adrian Reber ) - files-reg: do not print a warning if a file has no build_id (Adrian Reber ) - zdtm/pthread_timers: make sure glibc allocated SIGEV_THREAD's stack (Pavel Tikhomirov ) - ci: fix 'crit.sh: 3: source: not found' (Adrian Reber ) - docker-test: refactor test scenario (Radostin Stoyanov ) - dump: suspend/resume lsm on pre-dump (Andrei Vagin ) - util: add run_command() (Christian Brauner ) - zdtm/apparmor_stacking: don't include optional AppArmor namespace separator (Christian Brauner ) - apparmor: actually enable suspend for AppArmor (Christian Brauner ) - lsm: handle SELinux LSM correctly (Christian Brauner ) - tests: add a test for apparmor_stacking (Tycho Andersen ) - check: add a feature test for apparmor_stacking (Tycho Andersen ) - lsm: support checkpoint/restore of stacked apparmor profiles (Tycho Andersen ) - util: add rm -rf function (Tycho Andersen ) - lsm: change when LSM profiles are collected (Tycho Andersen ) - ci: extend lint run to run 'make indent' (Adrian Reber ) - Run 'make indent' on header files (Adrian Reber ) - Run 'make indent' on all C files (Adrian Reber ) - criu: introduce clang-format to format source code (Adrian Reber ) - zdtm: fix indentation in Makefile wait_stop target (Pavel Tikhomirov ) - ci: fix Fedora Rawhide (Adrian Reber ) - posix-timers: fix getoverrun error handling (Pavel Tikhomirov ) - ci: use pre-installed Podman (Adrian Reber ) - zdtm/pthread_timers: require ns_pid feature and add non-ns test (Pavel Tikhomirov ) - posix-timers: fallback notify thread id encoding for non-pidns and non-nspid (Pavel Tikhomirov ) - proc_parse: make nspid field optional (Pavel Tikhomirov ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - zdtm: add a test for SIGEV_THREAD timers (Andrei Vagin ) - timers: save tid from a task pid namespace (Andrei Vagin ) - proc_parse: get a thread ID in a thread pidns from /proc/pid/status (Andrei Vagin ) - criu: dump and restore notify_thread_id of posix timer (Liu Chao ) - criu-ns: add support for 'check' action (Radostin Stoyanov ) - criu-ns: add top-level conditional execution (Radostin Stoyanov ) - criu-ns: update script name in help message (Radostin Stoyanov ) - Documentation: Add man page for criu-ns (Radostin Stoyanov ) - make: install criu-ns (Radostin Stoyanov ) - zdtm: prioritize /lib/* dependencies in some tests (Zeyad Yasser ) - scripts/build: add a docker file for archlinux (Zeyad Yasser ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) - cgroup: cgroup_contains has to update the mask for cgroupv2 (Andrei Vagin ) - ci: add msgque test case to crit-recode (Adrian Reber ) - lib: fix crit-recode msgque errors in Jenkins (Adrian Reber ) - ci/openj9: run mrproper before make (Radostin Stoyanov ) - zdtm: make --sbs also stop on each pre-dump/snap iteration (Pavel Tikhomirov ) - restore: cleanup cgroup properly in error path (Liu Hua ) - scripts: run lint also on criu-ns (Adrian Reber ) - ci: also test tcp stream crit recoding (Adrian Reber ) - lib: fix broken crit-recode test (Adrian Reber ) - ci: combine cross compile container definitions (Adrian Reber ) - crit: fix error on memfd files parsing (Pavel Tikhomirov ) - cr-service: move pidfd_store initialization to cr-service (Zeyad Yasser ) - pidfd_store: tidy up interface and hide unneeded details (Zeyad Yasser ) - pidfd_store: move pidfd_store to a separate file (Zeyad Yasser ) - test/ci: sync netns_lock test and its --post-start hook (Zeyad Yasser ) - test/jenkins: fix netns_lock test multiple iterations failure (Zeyad Yasser ) - ci: fix mips64el-cross test (Adrian Reber ) - Keep inherit-fd strings alive until task restore (Younes Manton ) - pycrit: fix the broken of cli the `crit show xxx.img` (fu.lin ) - Add test for new --lsm-mount-context option (Adrian Reber ) - Enable changing of mount context on restore (Adrian Reber ) - Remove unnecessary whitespace (Adrian Reber ) - zdtm: add network namespace locking test (Zeyad Yasser ) - test: remove exec test (Adrian Reber ) - criu: add unit testing for config file parser (Adrian Reber ) - test: add tests for configuration file parsing (Adrian Reber ) - config: make configuration file parser more robust (Adrian Reber ) - criu: add cleanup_free attribute (Adrian Reber ) - bfd: loop through read()/write() when the action is incomplete (Nicolas Viennot ) - ci: disable some tests on CentOS 7 (Adrian Reber ) - ci: remove old workarounds (Adrian Reber ) - ci: switch CentOS 7 test to Cirrus CI (Adrian Reber ) - ci: disable -x during print_env() (Adrian Reber ) - zdtm: allow ignore taint via environment variable (Adrian Reber ) - scripts/vagrant: Use vagrant 2.2.16 (Radostin Stoyanov ) - scripts/vagrant: Use Fedora 34 (Radostin Stoyanov ) - add PKG_CONFIG default in a few more places (Mike Frysinger ) - crtools: improve error handling on signal setting (Valery Ivanov ) - build: respect $PKG_CONFIG settings (Mike Frysinger ) - docker-test: use latest containerd release (Radostin Stoyanov ) - zdtm/tun_ns: add per-test dependencies (Radostin Stoyanov ) - test: skip time namespaced tests on <= 5 (Adrian Reber ) - ci: update docker test matrix (Radostin Stoyanov ) - cr_options: handle the case where __dest == __src in SET_CHAR_OPTS (Christian Brauner ) - github: Add templates for new issues and pull requests (Pavel Tikhomirov ) - criu(8): document --join-ns option (Radostin Stoyanov ) - kdat: make uffd_open return errno from syscall separately (Pavel Tikhomirov ) - ci: no longer avoid overlayfs (Adrian Reber ) - test/others: refactor loop process (Radostin Stoyanov ) - test/others: drop '_exit' function (Radostin Stoyanov ) - test: add a test to check that sigtrap handlers are restored (Andrei Vagin ) - ksigset: fix a typo in ksigdelset (Andrei Vagin ) - mem/pidfd: fix poll retry error checking (Pavel Tikhomirov ) - zdtm: add pidfd store based pid reuse test (Zeyad Yasser ) - zdtm: add --pidfd-store option in RPC mode (Zeyad Yasser ) - criu: add pidfd based pid reuse detection for RPC clients (Zeyad Yasser ) - cr-check: add ability to check if pidfd_store feature is supported (Zeyad Yasser ) - cr-service: add pidfd_store_sk option to rpc.proto (Zeyad Yasser ) - criu: check if pidfd_getfd syscall is supported (Zeyad Yasser ) - criu: check if pidfd_open syscall is supported (Zeyad Yasser ) - kerndat: Handle non-root mode when checking uffd (nithin-jaikar ) - test/others/crit: add test for 'x' (Radostin Stoyanov ) - lib/cli.py: Open explore file as a binary (Radostin Stoyanov ) - test/zdtm: check that a penging SIGTRAP handled properly (Andrei Vagin ) - parasite: don't block SIGTRAP (Andrei Vagin ) - test: create new tls certificates (Adrian Reber ) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: ghost: fix deadlock between peer_fle->stage and fds wake up (Alexander Mikhalitsyn ) - ci: remove hack for netns-nft zdtm test (Alexander Mikhalitsyn ) - zdtm: add combined nftables/iptables netns-nft-ipt test (Alexander Mikhalitsyn ) - zdtm: skip static/netns-nft test if nftables feature isn't supported (Alexander Mikhalitsyn ) - net: skip iptables dump if it has nft backend and nft dump is supported (Alexander Mikhalitsyn ) - lsm: handle half initialized SELinux setups (Adrian Reber ) - tools.mk: Use Python 3 by default (Radostin Stoyanov ) - mips: remove empty gitignore (Radostin Stoyanov ) - mips: coding style fixes (Radostin Stoyanov ) - Allow systemcfg proc file to be dumped (zl-wang ) - logging: pr_perror() -> pr_msg() when execvp fails in action scripts and others (Nicolas Viennot ) - net: add a #define for increased compatiblity with old distributions (Nicolas Viennot ) - restore: fix error message when fork fails (Nicolas Viennot ) - criu: end pr_(err|warn|msg|info|debug) with \n (Kir Kolyshkin ) - Whitespace at EOL cleanup and check (Kir Kolyshkin ) - criu: make sure to use pr_perror to show errno (Kir Kolyshkin ) - test/zdtm: pr_err / pr_perror fixes (Kir Kolyshkin ) - test/others/bers: use pr_perror (Kir Kolyshkin ) - criu/mount.c: fix \n in pr_debug (Kir Kolyshkin ) - scripts: fix shellcheck warnings (Kir Kolyshkin ) - Makefile: amend lint with pr_perror/fail checks (Kir Kolyshkin ) - test/zdtm: don't pass errno to fail() (Kir Kolyshkin ) - test/zdtm: don't use %m with fail (Kir Kolyshkin ) - test/zdtm: don't use \n with fail() (Kir Kolyshkin ) - test/zdtm: don't use errno for pr_perror (Kir Kolyshkin ) - test/zdtm: don't use pr_perror where errno is unset (Kir Kolyshkin ) - criu: don't use errno for pr_error (Kir Kolyshkin ) - Drop \n from pr_perror (Kir Kolyshkin ) - test/zdtm: check that restore can handle precreated veth devices (Andrei Vagin ) - kerndat: check whether IFLA_NEW_IFINDEX is supported (Andrei Vagin ) - ci: exclude lazy-thp for remote pages over tls (Radostin Stoyanov ) - Makefile: docker-test don't use interactive tty (Radostin Stoyanov ) - Makefile: update excluded tests for docker-test (Radostin Stoyanov ) - docker-test: use host cgroup & network ns (Radostin Stoyanov ) - Dockerfile: add missing test dependencies (Radostin Stoyanov ) - Dockerfile: re-build criu after clean (Radostin Stoyanov ) - Dockerfile: use 'git clean' before build (Radostin Stoyanov ) - tiny fix on function dump_empty_fs (Liu Hua ) - net: allow restoring of precreated veth devices (Christian Brauner ) - scripts/build: drop obsolete ENV1 variable (Radostin Stoyanov ) - images: re-license as Expat license (so-called MIT) (Adrian Reber ) - ci: enable crit tests in CI (Adrian Reber ) - test: fix crit test and extend it (Adrian Reber ) - lib: also handle extra pipe data correctly (Adrian Reber ) - lib: print nice error if crit gets wrong input (Adrian Reber ) - lib: correctly handle stdin/stdout (Python 3) (Adrian Reber ) - criu: Replace faccessat with fstatat when using AT_SYMLINK_NOFOLLOW flag (Bui Quang Minh ) - criu: Throw error when parent path is provided but invalid (Bui Quang Minh ) - cr-service: fix CRIU_REQ_TYPE__FEATURE_CHECK RPC request (Zeyad Yasser ) - lib: fix crit-recode fix for Python 2 (Adrian Reber ) - ci: move CentOS 8 based test to Cirrus (Adrian Reber ) - Use a real VM instead of a privileged container (fedor ) - pstree: don't change sid/gid-s if current sid/gid is the same (Pavel Tikhomirov ) - lib: correctly handle padding of dump images (Adrian Reber ) - lib: fromstring() and tostring() are deprecated (Adrian Reber ) - criu-ns: Merge comparisons with 'in' (Radostin Stoyanov ) - criu-ns: Add unsupported msg for restore-sibling (Radostin Stoyanov ) - criu-ns: Handle restore-detached option (Radostin Stoyanov ) - criu-ns: Pass arguments to run_criu() (Radostin Stoyanov ) - criu-ns: Close namespace fd before raise (Radostin Stoyanov ) - criu-ns: Extract set namespace functions (Radostin Stoyanov ) - criu-ns: Remove unused _umount (Radostin Stoyanov ) - criu-ns: Use documentation strings (Radostin Stoyanov ) - criu-ns: Extract wait for process into a function (Radostin Stoyanov ) - criu-ns: Extract mount new /proc into a function (Radostin Stoyanov ) - criu-ns: Remove space before/after bracket (Radostin Stoyanov ) - criu-ns: Convert indentation to spaces (Radostin Stoyanov ) - ci: run zdtm/transition/pid_reuse with pre-dumps in ci tests (Zeyad Yasser ) - ci: remove ccache setup (Adrian Reber ) - ci: run recode tests on more input files (Adrian Reber ) - lib: fix recode errors seen in Jenkins (Adrian Reber ) - ci: remove '-Wl,-z,now' workaround (Adrian Reber ) - lib/cli.py: Open out file as a binary (Dmitry Safonov ) - docker-test: set log file path (Radostin Stoyanov ) - docker-test: use containerd v1.5.0-beta.0 (Radostin Stoyanov ) - ci: move Travis CI Docker tests to GitHub Actions (Radostin Stoyanov ) - pstree: check for pid collision before switching to new sid/gid (Pavel Tikhomirov ) - test: move vt test to minor 65 on s390x (Adrian Reber ) - zdtm/fpu03: Add .desc file to omit running on !x86 (Dmitry Safonov ) - Revert "compel: add -ffreestanding to force gcc not to use builtin memcpy, memset" (Dmitry Safonov ) - s390: Purge stale comment (Dmitry Safonov ) - fault-injection: Run fpu corruption tests (Dmitry Safonov ) - compel: Provide compel_set_task_ext_regs() (Dmitry Safonov ) - compel: Store extended registers set in the thread context (Dmitry Safonov ) - zdtm/fpu03: Add a test to check fpu C/R in a thread (Dmitry Safonov ) - zdtm/fpu00: Simplify ifdeffery (Dmitry Safonov ) - x86/compel/fault-inject: Add a fault-injection for corrupting extended regset (Dmitry Safonov ) - namespaces: properly handle errors of snprintf (Pavel Tikhomirov ) - x86: Use PTRACE_GET_THREAD_AREA instead of sys_get_thread_area() (Dmitry Safonov ) - ci/compat: Check if tests are 32-bit ELFs (Dmitry Safonov ) - github/stale: separate labels with commas without following spaces (Andrei Vagin ) - ci: fix Fedora rawhide CI failures (Adrian Reber ) - plugin: check for plugin path truncation (Pavel Tikhomirov ) - sk-unix: check whether a socket name is NULL before printing it (Andrei Vagin ) - bug: add __builtin_unreachable in BUG_ON_HANDLER (Andrei Vagin ) - test: fix test compilation on rawhide (Adrian Reber ) - zdtm: Add javaTests output to .gitignore (Radostin Stoyanov ) - test: Reduce verbosity of mvn output (Radostin Stoyanov ) - javaTests: Add --file-locks option (Radostin Stoyanov ) - file-lock: Add space in error message (Radostin Stoyanov ) - ci: use runc instead of crun for podman tests (Adrian Reber ) - seccomp: initialize seccomp_mode in all cases (Nicolas Viennot ) - zdtm: add second fifo_upon_unix test (Andrey Zhadchenko ) - zdtm: add fifo upon unix socket test case (Andrey Zhadchenko ) - sk-unix: rework unix_resolve_name (Andrey Zhadchenko ) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Andrey Zhadchenko ) - files-reg: rework strip_deleted (Andrey Zhadchenko ) - files: Don't forget on stripping deleted postfix on linked files (Andrey Zhadchenko ) - ci: move coverage run to github (Adrian Reber ) - test/zdtm: check that locks are not dumped if --file-locks isn't set (Andrei Vagin ) - dump: dump has to fail if there is locks and --file-locks isn't set (Andrei Vagin ) - ci: move compat tests to Github Actions (Adrian Reber ) - README.md: remove unused badges; add a few new badges (Adrian Reber ) - README.md: remove trailing whitespaces (Adrian Reber ) - ci: move asan and image streamer test to github (Adrian Reber ) - vdso: fix segmentation fault caused by char pointer array (anatasluo ) - Tell podman to use vfs as storage-driver (Adrian Reber ) - ci: move Fedora Rawhide based tests away from Travis (Adrian Reber ) - ci: factor out Fedora Rawhide CI setup (Adrian Reber ) - ci: skip bpf tests on vagrant (Adrian Reber ) - ci: upgrade vagrant and Fedora version (Adrian Reber ) - ci: fix syntax error in stale.yml (Adrian Reber ) - zdtm: handle a case when a test vma is merged with another one (Andrei Vagin ) - util: zero the events pointer to avoid its double free (Andrei Vagin ) - namespaces: handle errors of snprintf (Andrei Vagin ) - ci: also use clang for compel-host-bin (Adrian Reber ) - ci: run aarch64 compile tests on Drone (Adrian Reber ) - zdtm: cleanup thread-bomb test error handling and printing (Pavel Tikhomirov ) - ci: move vagrant test to cirrus ci (Adrian Reber ) - workflows/stale: Don't close issue that has labels 'new feature' or 'enhancement' (Andrei Vagin ) - fsnotify: rework redundant code (Andrey Zhadchenko ) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) - coverity: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - restore: warning: Value stored to 'ret' is never read (Adrian Reber ) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) - servicefd: don't move service fds in case they remain in the same place (Pavel Tikhomirov ) - compel/test: Fix warn_unused_result (Radostin Stoyanov ) - compel: Fix missing loff_t in Alpine (Radostin Stoyanov ) - ci: Enable compel testing (Radostin Stoyanov ) - compel/test: Add main makefile (Radostin Stoyanov ) - compel/test: Resolve missing includes (Radostin Stoyanov ) - dump/ppc64,arm,mips: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition (Andrei Vagin ) - github: auto-close stale issues and pull requests (Adrian Reber ) - zdtm: look up iptables in /sbin and /usr/sbin (Andrei Vagin ) - test/zdtm_ct: Run zdtm.py in the host time namespace (Andrei Vagin ) - ci: Alpine's busybox based free does not understand -h (Adrian Reber ) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) - ci: move alpine based tests to github actions (Adrian Reber ) - ci: give an overview of the current CI environment (Adrian Reber ) - ci: add Circle CI definition (Adrian Reber ) - CONTRIBUTING.md: add component prefix to the subject example (Pavel Tikhomirov ) - .gitignore: Remove qemu-user-static (Dmitry Safonov ) - scripts/Docerfile.centos8: Use 'powertools' repo name (Dmitry Safonov ) - x86/asm: fix compile error in bitops.h (anatasluo ) - others/ns_ext: restore a process out of PID namespaces into the host PID namespace (Pavel Tikhomirov ) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) - compel/handle-elf: override unexpected precalculated addresses (Pavel Tikhomirov ) - docs: fix simple typo, clietn -> client (Tim Gates ) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov ) - zdtm: on fail with no error also print the tail of the log (Pavel Tikhomirov ) - uffd: check for exited task when reading uffd_msg (Mike Rapoport ) - uffd: cleanup read error handling in handle_uffd_event (Pavel Tikhomirov ) - cr-restore: Properly inspect status in sigchld_process() (Dmitry Safonov ) - ci: remove special handling for mips (Adrian Reber ) - CI: remove centos7 from Travis (Adrian Reber ) - ci: use graviton2 for arm64 tests on Travis (Adrian Reber ) - tls: Add logging within send/recv callbacks (Radostin Stoyanov ) - compel/log: Provide %u specifier parsing (Dmitry Safonov ) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) - uffd: handle xrealloc() failure (Adrian Reber ) - uffd: fix 'double free detected in tcache 2' (Adrian Reber ) - ci: add CentOS 8 based CI run (Adrian Reber ) - ci: switch centos7 to github actions (Adrian Reber ) - travis: rename centos test to centos7 (Adrian Reber ) - criu-ns: Remove unreachable statement (Radostin Stoyanov ) - ci: fix lazy-pages test selection (Mike Rapoport ) - ci: 'fix' lazy tests (Adrian Reber ) - namespaces: fix 'Declaring variable "path" without initializer' (Adrian Reber ) - coverity: img_raw_fd() returns a negative number (Adrian Reber ) - sk-unix: ignore coverity chroot() warning (Adrian Reber ) - cr-dump: get_service_fd() is passed to a parameter that cannot be negative (Adrian Reber ) - util: fix double_close false positive (Adrian Reber ) - dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - coverity: fix parameter_hidden: declaration hides parameter (Adrian Reber ) - restore: Value stored to 'ret' is never read (Adrian Reber ) - cr-dump: Potential leak of memory pointed to by 'si' (Adrian Reber ) - vdso-compat: let coverity know that the function does not return (Adrian Reber ) - coverity: ignore CHECKED_RETURN (Adrian Reber ) - autofs: Potential leak of memory pointed to by 'token' (Adrian Reber ) - sk-unix: do not overwrite function parameter (Adrian Reber ) - Use 'is None' instead of '== None' (Adrian Reber ) - bfd: remove unused line (Adrian Reber ) - coredump: remove two unused variables (Adrian Reber ) - lib/py: remove unused variable (Adrian Reber ) - infect: initialize struct to avoid CLANG_WARNING (Adrian Reber ) - lock: disable clang_analyzer for the LOCK_BUG_ON() macro (Adrian Reber ) - compel: don't mmap parasite as RWX (Michał Cłapiński ) - cr-restore: Wait child & reap zombies if PID=1 (Radostin Stoyanov ) - criu-ns: Use PID 1 on restore (Radostin Stoyanov ) - criu-ns: Convert c_char_p strings to bytes object (Radostin Stoyanov ) - criu-ns: Print usage info when no args provided (Radostin Stoyanov ) - criu-ns: Convert to python3 style print() syntax (Radostin Stoyanov ) - python: Replace xrange with range (Radostin Stoyanov ) - crns.py: New attempt to have --unshare option (Pavel Emelyanov ) - CI: distribute CI jobs between CI systems (Adrian Reber ) - CI: rename 'travis' to 'ci' (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- zdtm: check that combined nft with iptables-nft c/r works (Pavel Tikhomirov ) (#PSBM-144625) - net: ignore if one of nft or iptables-nft fails and other succeeds (Pavel Tikhomirov ) (#PSBM-144625)- zdtm: add route tables tests (Yuriy Vasilev ) (#PSBM-144261) - net: dump all route tables (Yuriy Vasilev ) (#PSBM-144261)- test: remove test for LOCK_MAND flock (Adrian Reber ) (#PSBM-144187) - zdtm: Fix setting up zdtm test env variables (Yuriy Vasilev ) (#PSBM-144187) - zdtm/ve_flavor: create cgroup namespace for ve if available (Pavel Tikhomirov ) (#PSBM-144187) - zdtm/ve_flavor: enter nested rdma cgroup if available for vz9 (Pavel Tikhomirov ) (#PSBM-144187) - zdtm/ve_flavor: set ve.iptables_mask only if available (Pavel Tikhomirov ) (#PSBM-144187) - kerndat: check for cgroup kmem limit available (Pavel Tikhomirov ) (#PSBM-144187) - sk-unix: allocate FdinfoEntry with shmalloc in get_fle_for_task (Pavel Tikhomirov ) (#PSBM-143751) - sk-unix: print message when adding fake queuers (Pavel Tikhomirov ) (#PSBM-143751) - sk-queue: print message when dumping nested fds from socket (Pavel Tikhomirov ) (#PSBM-143751) - vz7/vz9: update version and targets.list for u20 (Pavel Tikhomirov ) - zdtm: bring back scm07 and scm08 (Pavel Tikhomirov )- net: dump nft rules via both nft and iptables-nft (Pavel Tikhomirov ) (#PSBM-138902)- zdtm: Add test for IP_PKTINFO sock option (Pavel Tikhomirov ) (#PSBM-142872) - sk-inet: support of SOL_IP, IP_PKTINFO option (Pavel Tikhomirov ) (#PSBM-142872)- pie/restorer: remove excess hash printf specifier (Pavel Tikhomirov )- cgroup: add a comment to restore_cgroup_prop about path argument requirements (Pavel Tikhomirov ) - cgroup/freezer: fix out of bound access in restore_cgroup_prop() (Pavel Tikhomirov ) (#PSBM-141679)- zdtm/session04: test reaper and helper parent with different mntns/pidns (Pavel Tikhomirov ) (#PSBM-141587) - pstree: make helpers always have same mntns to parent (Pavel Tikhomirov ) (#PSBM-141587) - test: fix test compilation on rawhide (Adrian Reber )- cr-restore: leave veX cgroup on error path (Alexander Mikhalitsyn ) (#PSBM-141122)- zdtm/scm: add scm09 test with closed sender fd (Pavel Tikhomirov ) (#PSBM-140415) - sk-unix: make add_fake_unix_queuers earier and rework find_queuer_for (Pavel Tikhomirov ) (#PSBM-140414)- sk-queue: fix dumping queue packets (Pavel Tikhomirov ) (#PSBM-139953) - zdtm: add scm08 test having several SCM_RIGHTS and SCM_CREDENTIALS (Pavel Tikhomirov ) (#PSBM-139953)- irmap: don't fail early if failed to resolve path on pre-dump (Pavel Tikhomirov ) (#PSBM-140177)- action-scripts: call dump-alive when dumped task is left running (Pavel Tikhomirov ) (#PSBM-138439) - cr-dump: do not report success to logs if post-dump script failed (Pavel Tikhomirov ) (#PSBM-138439) - filesystems: allow dumping container with nfsd mounts (Pavel Tikhomirov ) (#PSBM-138439)- sk-unix: fix overmounted stream sockets (Andrey Zhadchenko ) - mount: remove O_DIRECTORY flag for mount opening helpers (Andrey Zhadchenko ) (#PSBM-139948)- sk-unix: rework bind_on_deleted() return codes (Andrey Zhadchenko )- zdtm: add test with overmounted unix bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: allow unix bindmounts to be overmounted (Andrey Zhadchenko ) (#PSBM-135398) - mount: add open_mountpoint_with_flags() (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add overmounted unix tests (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: dump overmounted socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: implement restore of overmounted unix sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: distinguish cleanup of leftover sockets from early bind (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use ghost approach for connecting to overmounted sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: rename all references to bindmounts to early bind (Andrey Zhadchenko ) (#PSBM-135398) - images: add VZ_OVERMOUNTED to unix uflags (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: separate bind and bindmount stages for unix bindmounted sockets (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: refuse to dump bindmounted unix sockets without mnt_id (Andrey Zhadchenko ) (#PSBM-135398) - zdtm: add new test to check mntid of bindmounted unix socket (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: use correct mount for bind() in unix_prepare_bindmount (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: add sk_to_mnt_id helper (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: restore unix sockets and bindmounts in correct mntns (Andrey Zhadchenko ) (#PSBM-135398) - mount-v2: separate creation and assembling of mount namespaces (Andrey Zhadchenko ) (#PSBM-135398) - sk-unix: improve detection of mnt_id of bindmounted sockets for old images (Andrey Zhadchenko ) (#PSBM-135398)- vz9: update targets.list for beta (Pavel Tikhomirov ) - protobuf: remove leading underscores from protobuf structs (Zeyad Yasser ) (#PSBM-135201) - compel: silence std_sprintf returned string size check (Pavel Tikhomirov ) - Fix gcc9 build failures (Jeff Law )- net: run iptables-legacy binaries for VZ9 (Alexander Mikhalitsyn ) (#PSBM-137826)- cr-restore: fix born_sid check in create_children_and_session (Pavel Tikhomirov ) - zdtm: add some more subreaper reparenting tests (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: child_subreaper_and_reparent test should fail on dump stage (Yuriy Vasiliev ) (#PSBM-122618) - zdtm: add a feature to set the "crfail" flag for different zdtm stages (Yuriy Vasiliev ) (#PSBM-122618) - pstree/dump: handle child subreaper reparent on dump (Yuriy Vasiliev ) (#PSBM-122618) - cr-dump: add call pstree_insert_pid from dump_one_zombie (Yuriy Vasiliev ) (#PSBM-122618) - vz7/vz9: update version and targets.list for u19 (Pavel Tikhomirov )- mount-v2: fixup resolve_shared_mounts_v2 (Pavel Tikhomirov ) - zdtm: make new overmounted_ tests always run with mount-v2 (Pavel Tikhomirov ) (#PSBM-137789)- zdtm: add tests for overmounted procfs (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted proc files (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted nfs silly renames (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted spfs files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_ghost test (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enable overmounted ghost files (Andrey Zhadchenko ) (#PSBM-127834) - zdtm: add overmounted_remap test (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: enhance remaps to handle overmounted cases (Andrey Zhadchenko ) (#PSBM-127834) - utils: add open_opath_at_mount() (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: use new resolve_mntfd_and_rpath() helper for dump (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: change nsid to mi for reg files dumping (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: update restore logic (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: introduce mntv2 for link-remaps (Andrey Zhadchenko ) (#PSBM-127834) - utils: add resolve_mntfd_and_rpath helper (Andrey Zhadchenko ) (#PSBM-127834) - files-reg: refuse to dump overmounted files in host fs (Andrey Zhadchenko ) (#PSBM-127834)- cgroup: fix wrong mixed paths in info message when preparing properties (Pavel Tikhomirov ) (#PSBM-136411) - zdtm: check criu_path permissions before mounting (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: add get_path_check_perm helper that checks for 'x' permissions (Yuriy Vasiliev ) (#PSBM-106009) - zdtm: fix cwd path freeing (Yuriy Vasiliev ) - zdtm: fix cgroup_freezer test compiler warnings (Yuriy Vasiliev )- rpc: add option to skip 'freezer.state' dump/restore (Yuriy Vasiliev ) (#PSBM-123408)- zdtm: add test for nested freezers states restoration (Yuriy Vasiliev ) (#PSBM-107663) - zdtm: add support for the "freezecg" option in the .desc file (Yuriy Vasiliev ) (#PSBM-107663) - freezer: dump nested freezers states and restore them after resume (Yuriy Vasiliev ) (#PSBM-107663) - seize: recover original freezer sub-tree state after dump (Yuriy Vasiliev ) (#PSBM-107663)- mount-v2: fix children-parent relative mountpoint checking (Pavel Tikhomirov )- pie/restorer: fix compilation with DEBUG=1 (Andrey Zhadchenko ) (#PSBM-135350) - x86/asm: fix compile error in bitops.h (anatasluo ) (#PSBM-135350) - zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko )- zdtm: add new bindmount test (Andrey Zhadchenko ) - sk-unix: resurrect socketpair for bindmount unix sockets (Andrey Zhadchenko )- config: add --ve-clock-fallback option (Pavel Tikhomirov ) (#PSBM-134480)- targets.list: add vz9 into build targets (Pavel Tikhomirov ) - prctl/start_time: change names in accordance with vz9 kernel change (Pavel Tikhomirov ) - zdtm: fix ve flavor for vz7 (Andrey Zhadchenko ) (#PSBM-134129)- net: reenable vxlan nla flags (Andrey Zhadchenko ) (#PSBM-123378) - libnetlink: add addattr helper (Andrey Zhadchenko ) (#PSBM-123378)- mount: fix declaration of root_yard_mp and mnt_roots (Cyrill Gorcunov ) - mount-v2: fix nested_pidns_procs declaration (Cyrill Gorcunov ) - vz7/vz8: update version and targets.list for u17 (Pavel Tikhomirov ) - zdtm: add another thp_disable test (Andrey Zhadchenko ) (#PSBM-123568)- cgroup: skip restoring ifpriomap (Pavel Tikhomirov ) (#PSBM-132267)- cgroup: skip beancounter cgroup restore if it's not supported (Pavel Tikhomirov ) (#PSBM-131412)- compel/log: Provide %u specifier parsing (Dmitry Safonov ) (#PSBM-131412) - compel/log: Stop parsing at unknown format specifier (Dmitry Safonov ) (#PSBM-131412) - vdso: Let zero-terminator in vdso_symbol_length (Dmitry Safonov ) (#PSBM-131412)- zdtm: make sock_opts02 also check lock change by SO_*BUF* (Pavel Tikhomirov ) (#PSBM-131580) - zdtm: add test for socket buffer size locks (Pavel Tikhomirov ) (#PSBM-131580) - sockets: c/r bufer size locks (Pavel Tikhomirov ) (#PSBM-131580) - kerndat: check for set/getsockopt SO_BUF_LOCK availability (Pavel Tikhomirov ) (#PSBM-131580) - sockets: don't call sk_setbufs asyncronously (Pavel Tikhomirov ) (#PSBM-131580) - crit: fix error on memfd files parsing (Pavel Tikhomirov )- zdtm: listen and connect/accept in different network namespaces (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: handle socket vfs inode bindmount with multiple sockets (Pavel Tikhomirov ) (#PSBM-131050) - sk-unix: print real socket inode for found bindmounts (Pavel Tikhomirov ) (#PSBM-131050) - cgroup: dump devices.extra_list instead of devices.list (Pavel Tikhomirov ) (#PSBM-129354)- zdtm: unlink_fstat03: ignore st_dev diff when file on device mapper (Alexander Mikhalitsyn ) (#PSBM-130519) - ps-socket: sanity check that given fd is actually valid (Pavel Tikhomirov ) (#PSBM-102629 #PSBM-130507)- zdtm: improve overmount_file test (Andrey Zhadchenko ) (#PSBM-125849) - files-reg: add overmounted reg files handling (Andrey Zhadchenko ) (#PSBM-125849) - util: add get_relative_path_noempty helper (Andrey Zhadchenko ) (#PSBM-125849) - mount: add path_is_overmounted helpers (Andrey Zhadchenko ) (#PSBM-125849) - images: add vz_use_relative_path flag to regfile (Andrey Zhadchenko ) (#PSBM-125849)- mount-v2: prohibit mounts with symlink mountpoint (Pavel Tikhomirov ) (#PSBM-129638) - zdtm: fix uninitialized lenght provided to getsockopt (Pavel Tikhomirov ) (#PSBM-129482) - vz7/vz8: update version and targets.list for u17 (Pavel Tikhomirov )- PSBM-122095 (Andrey Zhadchenko ) (#PSBM-122095) - PSBM-122095 (Andrey Zhadchenko ) (#PSBM-122095)- PSBM-125002 (Pavel Tikhomirov ) (#PSBM-125002)- PSBM-123431 (Pavel Tikhomirov ) (#PSBM-123431)- PSBM-124263 (Andrey Zhadchenko ) (#PSBM-124263)- PSBM-123431 (Valeriy Vdovin ) (#PSBM-123431)- PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668) - PSBM-123668 (Pavel Tikhomirov ) (#PSBM-123668)- PSBM-122120 (Andrey Zhadchenko ) (#PSBM-122120)- PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418) - PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418) - PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418) - PSBM-122418 (Andrey Zhadchenko ) (#PSBM-122418)- PSBM-125086 (Valeriy Vdovin ) (#PSBM-125086)- PSBM-123431 (Valeriy Vdovin ) (#PSBM-123431)- PSBM-124623 (Pavel Tikhomirov ) (#PSBM-124623) - PSBM-124538 (Pavel Tikhomirov ) (#PSBM-124538) - PSBM-124538 (Pavel Tikhomirov ) (#PSBM-124538)* Fri Jan 15 2021 VZ Auto Builder 3.15.1.9- vz7/vz8: fix stupid targets.list copy-paste missprint (Pavel Tikhomirov ) (#PSBM-123769)- vz7/vz8: add targets.list to build both criu versions from same code repo (Pavel Tikhomirov ) (#PSBM-123769)- vz7/vz8: add targets.list to build both criu versions from same code repo (Pavel Tikhomirov ) (#PSBM-123769)- plugin: Add criu_get_work_dir_path helper (Pavel Tikhomirov ) (#PSBM-123778) - files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422)- files-reg: show sdev of the file we failed to lookup mount for (Pavel Tikhomirov ) (#PSBM-124422)- mount: Add fsname to error message for unsupported fs (Pavel Tikhomirov ) (#PSBM-124531)- autofs: support dump of abandoned overmounted autofs mounts (Alexander Mikhalitsyn ) (#PSBM-122727)- zdtm: extend bind-mount-unix0* tests with ghost sk (Alexander Mikhalitsyn ) (#PSBM-123644) - zdtm: extend bind-mount-multi test with stream, seqpacket sks (Alexander Mikhalitsyn ) (#PSBM-121925) - sk-unix: add support of bindmounted STREAM, SEQPACKET sks (Alexander Mikhalitsyn ) (#PSBM-121925) - criu.spec: explictily provide criu version to make (Pavel Tikhomirov )- build: add ability to override CRIU_VERSION from rpmbuild specs (Pavel Tikhomirov )- ve/beancounter: don't unlimit beancounter cgroup if it does not exist (Pavel Tikhomirov ) (#PSBM-123769) - kerndat: check for beancounter cgroup availability (Pavel Tikhomirov ) (#PSBM-123769)- zdtm: workaround ip route dump problem (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: make ns_file_bindmount parent/child sync with futex (Pavel Tikhomirov ) (#PSBM-123769) - zdtm/vz8: disable mnt_tracefs test (Pavel Tikhomirov ) (#PSBM-123769) - vxlan: lets temporary disable all NLA_FLAG entries as they were get/set wrong (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - mount: fix errno handling in mount_and_open_binfmt_misc (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: openvswitch00: replace snprintf with ssprintf (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm/lib: print errno for mount error (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - net: prepare our own xtables lock for network_(un)lock_internal (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - sk-unix: fixup snprintf truncation gcc warning (Pavel Tikhomirov ) (#PSBM-120728 #PSBM-123769) - zdtm: disable cgroup_ifpriomap (Pavel Tikhomirov )- cgroup: change defaults for net_prio cgroup (Pavel Tikhomirov ) (#PSBM-123648)- infect: print stack for D state process (Pavel Tikhomirov ) (#PSBM-122979)- restore/ve: do ve start from container init task (Pavel Tikhomirov ) (#PSBM-123162) - config/rpc: add new option --ve to identify that we deal with VZ ct (Pavel Tikhomirov ) (#PSBM-123162)- servicefd: don't cleanup new fd in case it is same as old one (Pavel Tikhomirov ) (#PSBM-122957) - zdtm: overlay: use ssprintf instead of snprintf (Alexander Mikhalitsyn ) (#PSBM-122375) - zdtm: pidns03: do lazy umount /proc (Alexander Mikhalitsyn ) (#PSBM-122505) - zdtm: fix segfault in several tests on new GCC (unaligned stack) (Alexander Mikhalitsyn ) (#PSBM-120728)- zdtm: add second fifo_upon_unix test (Pavel Tikhomirov ) (#PSBM-106582) - zdtm: add fifo upon unix socket test case (Pavel Tikhomirov ) (#PSBM-106582) - sk-unix: rework unix_resolve_name (Pavel Tikhomirov ) (#PSBM-106582) - sk-unix: make criu respect existing files while restoring ghost unix socket fd (Pavel Tikhomirov ) (#PSBM-106582) - files-reg: rework strip_deleted (Pavel Tikhomirov ) (#PSBM-106582) - zdtm: fix overlayfs_fsnotify tests (Pavel Tikhomirov ) (#PSBM-122444) - vim: remove wrong 8-space tabs indent from python files (Pavel Tikhomirov )* Tue Nov 17 2020 Denis Silakov 3.15.0.4 - zdtm: enable tty-inherit tests (Pavel Tikhomirov ) (#PSBM-121533) - mount: ignore root change in cgroup mounts in case of container rename (Pavel Tikhomirov ) (#PSBM-108126) - spfs: fix usage of new_cg_root_get (Pavel Tikhomirov ) (#PSBM-108126) - zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Alexander Mikhalitsyn ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Alexander Mikhalitsyn ) (#PSBM-99868) - binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Valeriy Vdovin ) (#PSBM-96362) - mounts-v2: fallback to compat mount engine in case of old kernel (Pavel Tikhomirov ) (#PSBM-121995) - kerndat: Check for mount MS_SET_GROUP availability (Pavel Tikhomirov ) (#PSBM-121995) - zdtm: add testcase for netlink socket with enobufs (Andrey Zhadchenko ) - netlink: save and generate ENOBUFS at restore (Andrey Zhadchenko ) (#PSBM-120976) - zdtm: don't mount overlayfs in unprivileged user namespace (Pavel Tikhomirov ) (#PSBM-121284) - proc_parse: retry to parse fdinfo from ve (Andrey Zhadchenko ) (#PSBM-108122) - dump: at exit do not call timing_stop if stats are not initialized (Valeriy Vdovin ) (#PSBM-104289) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) (#PSBM-96308) - zdtm: add new sk-netlink-flags test (Pavel Tikhomirov ) (#PSBM-120924) - sk-netlink: fix order between restoring queue and file params (Pavel Tikhomirov ) (#PSBM-120924) - mount: make overlayfs_mount use relative paths to make paths shorter (Pavel Tikhomirov ) (#PSBM-120708) - nsfs: add some debug to open_ns_fd (Pavel Tikhomirov ) - zdtm: improve ns_file_bindmount to also check open nsfs bindmount (Pavel Tikhomirov ) (#PSBM-107790) - nsfs: handle files opened on nsfs bindmounts as special nsfs-files (Pavel Tikhomirov ) (#PSBM-107790) - freezer: wait freezer.state changes to FROZEN after writing (Pavel Tikhomirov ) (#PSBM-107938) - scripts/nfs: make small cleanup of nfs-ports-allow.sh (Pavel Tikhomirov ) (#PSBM-107842) - zdtm: crfail child_subreaper_and_reparent (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: add simple reparenting to CHILD_SUBREAPER case to session04 (Pavel Tikhomirov ) (#PSBM-107418) - pstree: add child subreaper reparent handling (Pavel Tikhomirov ) (#PSBM-107418) - pstree: prepare a link for each item to it's child subreaper (Pavel Tikhomirov ) (#PSBM-107418) - pstree: save child_subreaper in pstree image (Pavel Tikhomirov ) (#PSBM-107418) - cr-restore: skip current from search in collect_child_pids (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: check process tree topology in session04 (Pavel Tikhomirov ) (#PSBM-107418) - zdtm: inotify on mqueue test (Andrey Zhadchenko ) (#PSBM-107766) - freezer: added cmd-line option to skip 'freezer.state' dump/restore (Valeriy Vdovin ) (#PSBM-106413 #PSBM-107590 #PSBM-107590) - zdtm: fix compilation from vzt-cpt (Andrey Zhadchenko ) (#PSBM-106860) - zdtm: add ovs unshare test (Andrey Zhadchenko ) (#PSBM-105844) - zdtm: add openvswitch test (Andrey Zhadchenko ) (#PSBM-105844) - net: explicitly forbid ovs vports with netnsid (Andrey Zhadchenko ) (#PSBM-105844) - net: specify ifindex for ovs netdevs (Andrey Zhadchenko ) (#PSBM-105844) - net: add ovs internal vport support (Andrey Zhadchenko ) (#PSBM-105844) - net: add openvswitch vxlan support (Andrey Zhadchenko ) (#PSBM-105844) - net: add initial openvswitch support (Andrey Zhadchenko ) (#PSBM-105844) - images: add protobuf for openvswitch structures (Andrey Zhadchenko ) (#PSBM-105844) - seize: recursively thaw freezers in freeze_processes (Alexander Mikhalitsyn ) (#PSBM-107590) - zdtm: add inotify on cgroup mount test (Andrey Zhadchenko ) (#PSBM-105889) - mounts-v2: add new criu optioin --mounts-compat and drop --mounts-v2 (Pavel Tikhomirov ) (#PSBM-106066) - cgroup: add some additional debugging information (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in unix_sk_entry (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in criu_opts (Pavel Tikhomirov ) - vz/images: add vz_ prefix to vz specific fields in pstree_entry (Pavel Tikhomirov ) (#PSBM-120974) - vz/images: add vz_ prefix to vz specific fields in mnt_entry (Pavel Tikhomirov ) - vz/images: add VZ_ prefix to NSFS fstype (Pavel Tikhomirov ) - vz/images: add vz_ prefix to pid_for_children_ns_id field (Pavel Tikhomirov ) - vz: use 1000+x field ids for vz-only field ids (Pavel Tikhomirov ) - zdtm: add testcase for procfs with nested pid namespace on ro / (Alexander Mikhalitsyn ) (#PSBM-106440) - mounts-v2: add posibility to create internal yard on ro mounts (Alexander Mikhalitsyn ) (#PSBM-106440) - zdtm: add vxlan interfaces c/r test (Alexander Mikhalitsyn ) (#PSBM-105843) - net: add vxlan interfaces support (Alexander Mikhalitsyn ) (#PSBM-105843) - action-scripts: export devtmpfs mount path in service mntns (Pavel Tikhomirov ) (#PSBM-106869) - mount: make mount_resolve_path use get_relative_path (Pavel Tikhomirov ) (#PSBM-106869) - mount: remove const from path pointer in mount_resolve_path (Pavel Tikhomirov ) (#PSBM-106869) - sk-unix: add some missed error printing (Pavel Tikhomirov ) (#PSBM-106906) - mount-v2: make is_internal_yard check nsid for null (Pavel Tikhomirov ) (#PSBM-106854) - sk-unix: add fake queuers only for sockets without peer (Alexander Mikhalitsyn ) - zdtm: add testcase for bind mounted unix sockets with additional mntns (Alexander Mikhalitsyn ) (#PSBM-106703) - sk-unix: preserve mnt_id for bindmounted unix sockets from SIOCUNIXFILE (Alexander Mikhalitsyn ) (#PSBM-106703) - restore/pstree: make wait_on_helpers_zombies wait on proper pid level (Pavel Tikhomirov ) - zdtm: add new detached_namespace_with_bindmount test (Pavel Tikhomirov ) (#PSBM-104871) - zdtm: put common prepare_dirname function to library (Pavel Tikhomirov ) (#PSBM-104871) - mount: handle detached network namespace bindmounts (Pavel Tikhomirov ) (#PSBM-104871) - mount: add plain mountpoint for cr_time mount (Pavel Tikhomirov ) (#PSBM-96757 #PSBM-96757 #PSBM-107632) - zdtm: bind-mount-unix: fix one another absolute path for vzt-cpt (Pavel Tikhomirov ) (#PSBM-96757) - zdtm: pidns_proc: use vz dir instead of tty (Pavel Tikhomirov ) - zdtm: bind-mount-unix: make absolute path always right (Pavel Tikhomirov ) - zdtm/jenkins: enable mounts-v2 by default for tests which require it (Pavel Tikhomirov ) - zdtm: add mount_complex_sharing test (Pavel Tikhomirov ) (#PSBM-101807) - zdtm: added inotify on overlayfs test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: change overlayfs_fsnotify00 logic for a more generic fsnotify testing (Valeriy Vdovin ) (#PSBM-104961) - zdtm: renamed overlayfs_fanotify01 to overlayfs_fsnotify00 (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added overlayfs_fanotify02 test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: added sequence number to test overlayfs_fanotify (Valeriy Vdovin ) (#PSBM-104961) - zdtm: add testcase for multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800) - sk-unix: add support of multiple unix sk bindmounts (Alexander Mikhalitsyn ) (#PSBM-104800) - zdtm: add several extra cases for bindmounted unix sk (Alexander Mikhalitsyn ) (#PSBM-104800) - sk-unix: make bindmounted unix sockets work on mounts-v2 (Alexander Mikhalitsyn ) (#PSBM-104800) - zdtm: add netns_sysfs test (Pavel Tikhomirov ) (#PSBM-105161) - mount: restore sysfs from proper netns (Pavel Tikhomirov ) (#PSBM-105161) - mount: add after_parse callback (Pavel Tikhomirov ) (#PSBM-121533) - mount: do collect_mntinfo of external mount namespace with no for_dump (Pavel Tikhomirov ) (#PSBM-105161) - zdtm: added overlayfs setup routine to zdtm lib (Valeriy Vdovin ) (#PSBM-104961) - zdtm: disable overlayfs test for old mounts engine (Pavel Tikhomirov ) - zdtm: Added overlayfs_fanotify test (Valeriy Vdovin ) (#PSBM-104961) - zdtm: optionally skip inode number and fhandle in fanotify_obj_cmp (Valeriy Vdovin ) (#PSBM-104961) - zdtm: moved fanotify-specific code to lib, renamed functions that form api. (Valeriy Vdovin ) (#PSBM-104961) - pstree: set mntns, cgroupns ids in dup_zombie_ids (Alexander Mikhalitsyn ) (#PSBM-105456) - fix mount-v2: temporary mount internal yards to mntns trees (Pavel Tikhomirov ) - zdtm: add new pidns_proc test (Pavel Tikhomirov ) - mount-v2: delayed nested pidns owned proc mounting (Pavel Tikhomirov ) - mount-v2: add resolve_mnt_fd helper (Pavel Tikhomirov ) - mount-v2: split out __resolve_mnt_path_fd helper (Pavel Tikhomirov ) - mount-v2: add resolve_fd_path helper (Pavel Tikhomirov ) - mount-v2: create helpers for ancestors of nested pidns procs (Pavel Tikhomirov ) - mount: export mnt_subtree_next helper (Pavel Tikhomirov ) - mount-v2: dump owner pidns'es of proc mounts (Pavel Tikhomirov ) - mount-v2: temporary mount enabled internal yards to mntns trees (Pavel Tikhomirov ) - mount-v2: prepare to mount internal yard mounts (Pavel Tikhomirov ) - mount-v2: create internal yard mounts for each mntns (Pavel Tikhomirov ) - mount: make is_dir int and -1 initialized (Pavel Tikhomirov ) - restorer: fix criu fail with lazy-pages and pre c\r (Andrey Zhadchenko ) - jenkins: exclude ns_file_bindmount and thp_disable from tests (Andrey Zhadchenko ) - pstree: fix nested namespaces for lazy-pages (Andrey Zhadchenko ) (#PSBM-104329) - zdtm: fix race in pidns02 test plus small cleanup (Pavel Tikhomirov ) (#PSBM-104930) - cr-dump: fix vpid corruption on pre-dump (Alexander Mikhalitsyn ) (#PSBM-104960) - mount: adjust log level for get_clean_mnt (Andrey Zhadchenko ) (#PSBM-96506) - mount: adjust log level for mnt_is_dir (Andrey Zhadchenko ) (#PSBM-96506) - zdtm: add somaxconn test (Andrey Zhadchenko ) (#PSBM-94854) - zdtm: fix pidns03 racy test (Pavel Tikhomirov ) (#PSBM-104930) - pstree: fix race in setpgid prechecks (Pavel Tikhomirov ) - ns: add dup_helper_ids helper (Pavel Tikhomirov ) - ns: add dup_thread_ids helper (Pavel Tikhomirov ) - ns: fixup ids copying from parent for zombies (Pavel Tikhomirov ) - net: fix external veth pairs name collision (Alexander Mikhalitsyn ) (#PSBM-29271) - ns: fix forward compatibility when we don't know owner userns (Pavel Tikhomirov ) - jenkins: run all tests both for old mounts and mounts-v2 (Pavel Tikhomirov ) - zdtm: add internal overlayfs mounts c/r test (Alexander Mikhalitsyn ) (#PSBM-58614 #PSBM-121284) - overlayfs: add internal overlayfs mounts support (Alexander Mikhalitsyn ) (#PSBM-58614) - zdtm: add new test ns_file_bindmount (Pavel Tikhomirov ) (#PSBM-102357) - zdtm: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - mount-v2: support of nsfs bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - namespaces: add get_ns_desc_by_cflags helper (Pavel Tikhomirov ) (#PSBM-102357) - check-mounts: ignore nsids in root check for ns bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - nsfs: parse id for namespace file bindmounts (Pavel Tikhomirov ) (#PSBM-102357) - namespaces: add get_ns_kid helper with plain args (Pavel Tikhomirov ) (#PSBM-102357) - check-mounts: pass for_dump false to collect_mntinfo (Pavel Tikhomirov ) (#PSBM-102357) - zdtm: enable mounts-v2 on restore with --mounts-v2 option (Pavel Tikhomirov ) (#PSBM-58617) - mount: move yard, is_overmounted and merging trees to read_mnt_ns_img (Pavel Tikhomirov ) - mount-v2: restore_mount_sharing_options at the end of forking stage (Pavel Tikhomirov ) - cr-restore: move CR_STATE_RESTORE switch to restore_root_task (Pavel Tikhomirov ) - mount-v2: call resolve_shared_mounts_v2 earier from read_mnt_ns_img (Pavel Tikhomirov ) - mount: put mounted to shared memory (Pavel Tikhomirov ) - mount: put mp_fd_id and mnt_fd_id to shared memory (Pavel Tikhomirov ) - mount: make general place for shared variables on mount-info on restore (Pavel Tikhomirov ) - mount: detect unsupported mntns root overmount (Pavel Tikhomirov ) - util: don't take nested lock for call_in_child_process (Pavel Tikhomirov ) - mount: fix broken remounted_rw check (Pavel Tikhomirov ) - mount-v2: use plain_mountpoint explicitly in set_unbindable_v2 (Pavel Tikhomirov ) - mount-v2: add shared group restore debug (Pavel Tikhomirov ) - mount: add one more list validation check to cr_time mount removal (Pavel Tikhomirov ) - mount: fix mnt_sharing list not initialized (Pavel Tikhomirov ) (#PSBM-105464) - mount-v2: treat mount as file-bindmount if mountpoint is not directory (Pavel Tikhomirov ) - zdtm: remove external sharing check from mnt_ext_sharing (Pavel Tikhomirov ) (#PSBM-58617) - mount: add new mounts-v2 engine (Pavel Tikhomirov ) (#PSBM-58617) - mount: add plain mountpoints (Pavel Tikhomirov ) (#PSBM-58617) - config/rpc: add new option --mounts-v2 to enable new engine for mounts (Pavel Tikhomirov ) (#PSBM-58617) - files-reg: teach create_spfs and open_remap_spfs_linked to work with mounts (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-105661) - files-reg: teach clean_one_remap to work with plain mounts (Pavel Tikhomirov ) (#PSBM-58617) - files-reg: teach create_ghost to work with plain mounts (Pavel Tikhomirov ) (#PSBM-58617) - mount: add service_mountpoint getter for ->mountpoint (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint instead of mountpoint where possible (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in mnt_depth (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in aufs_parse (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in collect_mntinfo (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in mnt_get_sibling_path for relative path (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint for children-overmount check (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in root_path_from_parent (Pavel Tikhomirov ) (#PSBM-58617) - mount: use ns_mountpoint in validate_children_collision (Pavel Tikhomirov ) (#PSBM-58617) - mount: skip root yard children from mnt_needs_remap check (Pavel Tikhomirov ) (#PSBM-58617) - mount: move set_is_overmounted before doing trees merge (Pavel Tikhomirov ) (#PSBM-58617) - mount: add helper mnt_get_external_nodev (Pavel Tikhomirov ) (#PSBM-58617) - autofs: fix autofs_create_dentries (Pavel Tikhomirov ) (#PSBM-58617) - util: add get_relative_path helper (Pavel Tikhomirov ) (#PSBM-58617 #PSBM-106869) - mount: add mnt_get_root helper (Pavel Tikhomirov ) (#PSBM-58617) - mount: apply superblock flags to nested ns roots (Pavel Tikhomirov ) (#PSBM-58617) - mount: do search_bindmounts earlier (Pavel Tikhomirov ) (#PSBM-58617) - mount: replace CRTIME_MNT_ID with HELPER_MNT_ID (Pavel Tikhomirov ) (#PSBM-58617) - spfs: remove unused mountpoint variable (Pavel Tikhomirov ) (#PSBM-58617) - zdtm: add c/r test for several IPC namespaces (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - ipc_ns: add several IPC namespaces support (Alexander Mikhalitsyn ) (#PSBM-103858 #PSBM-58611) - zdtm: add c/r test for several UTS namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - uts_ns: add several UTS namespaces support (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612) - namespaces: add prepare_namespaces(), restore_task_ns() helpers (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - namespaces: make nsfd_id/ns_fd union common for all namespaces (Alexander Mikhalitsyn ) (#PSBM-103863 #PSBM-58612 #PSBM-103858 #PSBM-58611) - mount: allow nested mount namespaces with different roots (Pavel Tikhomirov ) - pipes: dump pipes only on read end (Pavel Tikhomirov ) - pipes: print errno on fcntl error (Pavel Tikhomirov ) - userns: disable nested userns (Pavel Tikhomirov ) - zdtm: Mark ns tests as auto (Kirill Tkhai ) - zdtm: test pgid is restored fine in nested pidnses (Pavel Tikhomirov ) - ns: Nested pid_ns support (Kirill Tkhai ) - pstree: leaders wait group members temporary setpgid to their pid (Kirill Tkhai ) - pstree: add set_pgid function to check everything before real syscall (Pavel Tikhomirov ) - pstree: check that all processes see their group leader (Pavel Tikhomirov ) - ns: add get_relative_pid helper (Pavel Tikhomirov ) - pstree: add curr_sid/pgid updating them on fork/setsid/setpgid (Pavel Tikhomirov ) - pstree: add prepare_pstree_leaders to create sid/pgid helpers in advance (Pavel Tikhomirov ) - pstree: add is_group_leader helper (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with tricky setns (Pavel Tikhomirov ) - zdtm: test for new init reparent handling with nested pidns (Pavel Tikhomirov ) - zdtm: add test for new init reparent handling (Pavel Tikhomirov ) - pstree: rework init reparent handling for pid namespaces (Pavel Tikhomirov ) - pstree: add can_inherit_sid helper (Pavel Tikhomirov ) - pstree: make helper items for pgid replaceable (Pavel Tikhomirov ) - cr-restore: make collect_child_pids work for nested pidns (Pavel Tikhomirov ) - restore: add get_pidns_on_level and have_nested_pidns helpers (Pavel Tikhomirov ) - pstree: make equal_pid handle sid comparison between nested pidnses (Pavel Tikhomirov ) - pstree: add is_session_leader helper and use it where possible (Pavel Tikhomirov ) - pstree: add helper for_each_pssubtree_item to walk item's subtree (Pavel Tikhomirov ) - pstree/pid: add helper to get free pids in pidns and all it's ancestors (Pavel Tikhomirov ) - pstree: add id intersection bug_on to prepare_pstree_for_shell_job (Pavel Tikhomirov ) - zdtm: Add pidns03 test (Kirill Tkhai ) - ns: Restore pid_for_children ns in threads (Kirill Tkhai ) - ns: First stage of restore pid_for_children ns (Kirill Tkhai ) - fork: Move ns-specific code to setup_child_task_namespaces() (Kirill Tkhai ) - pstree: Dump threads pid_for_children_ns (Kirill Tkhai ) - ns: Collect/read pid_for_children ns (Kirill Tkhai ) - ns: add BUG_ON on ns_next_id overflow (Kirill Tkhai ) - ns: Add alternative name for pid namespace (Kirill Tkhai ) - ns: Add possibility to read a ns by alternative name in __get_ns_id() (Kirill Tkhai ) - kerndat: Check for /proc/[pid]/ns/pid_for_children_ns (Kirill Tkhai ) - dump: More obvious assignment of top_pid_ns (Kirill Tkhai ) - zdtm: Add pidns02 test (test on zombies) (Kirill Tkhai ) - pstree: Add helpers for ordered linking child task to parent (Kirill Tkhai ) - ns: Add ns_get_parent() feature (Kirill Tkhai ) - ns: Add ns_get_userns() feature (Kirill Tkhai ) - zdtm: return userns checks to netns_sub_veth (Pavel Tikhomirov ) - pstree: Delete checks of always existing pstree_item::ids on restore (Kirill Tkhai ) - pstree: Check for always existing task ids on restore (Kirill Tkhai ) - restore: Convert waited helpers and zombies pids in parent's pid_ns (Kirill Tkhai ) - restore: Always set real pid in restore_task_with_children() (Kirill Tkhai ) - pstree: Use CLONE_NEWPID only to create child reaper of pid_ns (Kirill Tkhai ) - pid: Check for equality of getpid() of child to last_level_pid (Kirill Tkhai ) - restorer: Set NStids in all pid_ns for thread before we create it. (Kirill Tkhai ) - restorer: Close transport socket later (Kirill Tkhai ) - pid: Teach set_next_pid() working with nested pid_ns (Kirill Tkhai ) - pid_ns: Set user_ns before creation of pid_ns (Kirill Tkhai ) - pid: Set pid_ns before we create a child (Kirill Tkhai ) - pid: Wait till pid_ns created before we create a child of this ns (Kirill Tkhai ) - pid: Create pid_ns helpers (Kirill Tkhai ) - ns: Add usernsd signal handler (Kirill Tkhai ) - cr-restore: Add argument to criu_signals_setup() (Kirill Tkhai ) - ns: Install transport fd socket in usernsd (Kirill Tkhai ) - pid: Add pid ns futex helper_created (Kirill Tkhai ) - ns: Always start usernsd (Kirill Tkhai ) - pid: Save created pid_ns fd to fdstore (Kirill Tkhai ) - pid: Add fdstore id for pid_ns descriptor (Kirill Tkhai ) - pid: Always lock last pid file on clone() (Kirill Tkhai ) - restore: Implement set_next_pid() helper (Kirill Tkhai ) - ns: Reserve pid_ns helpers (Kirill Tkhai ) - pstree: Extract __pstree_item_by_virt() to act on any pid_ns (Kirill Tkhai ) - pstree: Make get_free_pid() work for different pid_ns and export it (Kirill Tkhai ) - pstree: Dump and restore NSpid, NSsid etc (Kirill Tkhai ) - images: Add NSpids pstree descriptions (Kirill Tkhai ) - zombie: Kill by last_level_pid, not by vpid (Kirill Tkhai ) - pstree: Skip zombie dumping tricks if there is kdat.has_nspid (Kirill Tkhai ) - pstree: Collect NSpid, NSsid and NStgid when possible (Kirill Tkhai ) - pstree: Pre-dump ns ids before tasks (Kirill Tkhai ) - pstree: Change arguments in parse_pid_status() (Kirill Tkhai ) - pid_ns: Implement pid_ns_root_off() (Kirill Tkhai ) - zdtm: Add pidns01 test (Kirill Tkhai ) - zdtm: Add pidns00 test (Kirill Tkhai ) - pstree: don't xfree shmalloced memory (Pavel Tikhomirov ) - pstree: Implement free_pstree_item() helper (Kirill Tkhai ) - pstree: Implement vpgid(), vsid() and vtid() (Kirill Tkhai ) - kerndat: Check that "/proc/[pid]/status" file has NS{pid, ..} lines (Kirill Tkhai ) - pstree: Make lookup_create_pid() able to create tasks with pid->level > 1 (Kirill Tkhai ) - pid: initialize rbtree nodes (Pavel Tikhomirov ) - ns: Add MAX_NS_NESTING (Kirill Tkhai ) - pstree: Add pid_ns id argument to lookup_create_pid() (Kirill Tkhai ) - pstree: Split lookup_create_pid() (Kirill Tkhai ) - pstree: Add pid_ns check in read_pstree_image (Kirill Tkhai ) - pstree: Dump pid and user ns ids for dead tasks (Kirill Tkhai ) - pstree: Assign ids for dead tasks in read_pstree_image() (Kirill Tkhai ) - pstree: Move parent assignment in read_pstree_image() up (Kirill Tkhai ) - ids: Copy unexisted ids from root_item (Kirill Tkhai ) - pid: Add ns::pid::rb_root (Kirill Tkhai ) - pid: Add top_pid_ns (Kirill Tkhai ) - pstree: Read ids earlier in read_pstree_image() (Kirill Tkhai ) - pstree: Change arguments of read_pstree_ids() (Kirill Tkhai ) - pid: Pass thread pid to caller (Kirill Tkhai ) - pid: Alloc threads dynamically (Kirill Tkhai ) - pid: Make pgid and sid be allocated dynamically (Kirill Tkhai ) - pid: Add last_level_pid() helper (Kirill Tkhai ) - pid: Add equel_pid() helper (Kirill Tkhai ) - pid: Add pid::level field and level argument for __alloc_pstree_item() (Kirill Tkhai ) - pstree: Introduce PID_SIZE() helper (Kirill Tkhai ) - zdtm: Add proc-self01 test (Kirill Tkhai ) - zdtm: Add userns02 test (Kirill Tkhai ) - ns: Use rst_new_ns_id() in read_ns_with_hookups() (Kirill Tkhai ) - ns: Replace task argument rst_add_ns_id() with pid (Kirill Tkhai ) - ns: Set NS_ROOT namespaces after tasks are read (Kirill Tkhai ) - ns: Override fake pid in rst_add_ns_id() (Kirill Tkhai ) - zdtm: Check for fsuid and fsgid in userns01 test (Kirill Tkhai ) - zdtm: Check for euid, suid, egid and sgid in userns01 test (Kirill Tkhai ) - zdtm: Check for groups list userns01 test (Kirill Tkhai ) - ns: Keep all clone flags fixups together (Kirill Tkhai ) - ns: Allow nested user namespaces (Kirill Tkhai ) - ns: Convert task cred's xids to target user ns (Kirill Tkhai ) - ns: Dump creds xids in root_user_ns (Kirill Tkhai ) - rst: Pass pstree_item argument to alloc_groups_copy_creds() (Kirill Tkhai ) - shmem: Fixup shmem_wait_and_open() opens foreign /proc/[pid]/fd/[i] (Kirill Tkhai ) - ns: Set target user_ns after net_ns is set (Kirill Tkhai ) - ns: Implement set_user_ns() (Kirill Tkhai ) - utils: Introduce open_fd_of_real_pid() (Kirill Tkhai ) - user_ns: Set user_ns before net_ns creation (Kirill Tkhai ) - ns: Generate user_ns tree (Kirill Tkhai ) - utils: Move getting real pid functionality to separate function (Kirill Tkhai ) - ns: Make write_id_map() use CR_PROC_FD_OFF (Kirill Tkhai ) - ns: Make prepare_userns() have ns map parameter (Kirill Tkhai ) - ns: Write/read ns entries in new way (Kirill Tkhai ) - proto: Add ns_entry description (Kirill Tkhai ) - images: Move uid_gid_extent and userns_entry descriptions (Kirill Tkhai ) - ns: Implement dup_userns_entry() (Kirill Tkhai ) - ns: Set pointer to root_user_ns in ns_ids (Kirill Tkhai ) - ns: Provide the case when root_item has !NS_ROOT user_ns in rst_add_ns_id() (Kirill Tkhai ) - user_ns: Name loading UsernsEntry mappings on restore "old format" (Kirill Tkhai ) - ns: Add user and pid ns_id on restore (Kirill Tkhai ) - ns: Implement target_userns_{u, g}id() and root_userns_{u, g}id() (Kirill Tkhai ) - ns: Rename and export userns_id() and INVALID_ID (Kirill Tkhai ) - user_ns: Make host_id() working with any mapping and rename it (Kirill Tkhai ) - user_ns: Make collect_user_ns() allocate child UsernsEntry mappings (Kirill Tkhai ) - ns: Change arguments of dump_user_ns() (Kirill Tkhai ) - zdtm: Add userns01 test (Kirill Tkhai ) - zdtm: Add userns00 test (Kirill Tkhai ) - net: replace is_zdtm_run with if we dump userns check (Pavel Tikhomirov ) - criu: Add raw fork() implementation (Kirill Tkhai ) - criu: don't use a glibc cached pid (Andrei Vagin ) - zdtm: Return tun test back as "auto" (Kirill Tkhai ) - spfs: fix "uns: message size exceeded" error (Alexander Mikhalitsyn ) (#PSBM-103828) - spfs: nfs link remap EPERM error fix on recent kernels (Alexander Mikhalitsyn ) (#PSBM-102889) - util: merge call_helper_process and call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - util: don not use cached proc self fd in call_in_child_process (Pavel Tikhomirov ) (#PSBM-101289) - mount: replace "internal slavery for external mounts unsupported" error to warning (Alexander Mikhalitsyn ) (#PSBM-103051) - mount: fix resolving bindmounts of external device mounts (Alexander Mikhalitsyn ) (#PSBM-102980) - sk-unix: fix not correct assertion in on_stage_change() that fails restore stage (Alexander Mikhalitsyn ) (#PSBM-102972) - mount: fix failed assertion in mnt_is_external (Alexander Mikhalitsyn ) (#PSBM-102791) - zdtm: add sk-unix-dgram-ghost test case (Alexander Mikhalitsyn ) - sk-unix: wake connected sockets strictly after fle stage >= FLE_OPEN (Alexander Mikhalitsyn ) (#PSBM-102605) - files: add on_stage_change callback to file_desc_ops (Alexander Mikhalitsyn ) - zdtm/iptables: wait xtables lock in netns-ipset (Pavel Tikhomirov ) - mount: also honor external_slavery and internal_sharing for root mount (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-100080) - mount: add new mnt_ext_master_manual test (Pavel Tikhomirov ) (#PSBM-100080) - mount: fix handling of binds of external mount with external slavery (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: add new mnt_ext_root test (Pavel Tikhomirov ) (#PSBM-100080) - mount: mount external mount before mounting it's binds (Pavel Tikhomirov ) (#PSBM-100080) - mount: add external_slavery detection (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: add external sharing to mnt_ext_sharing test (Pavel Tikhomirov ) (#PSBM-100080) - mount: make honest external/internal sharing detection (Pavel Tikhomirov ) (#PSBM-100080) - mount: split mnt_is_external and can_receive_master_from_external (Pavel Tikhomirov ) (#PSBM-100080) - mount: setup mnt_bind list before using it in mnt_is_external (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: add new mnt_ext_sharing test (Pavel Tikhomirov ) (#PSBM-100080) - mount: remove source check from mounts_sb_equal (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: fix mnt_ext_master test to correspond to it's name (Pavel Tikhomirov ) (#PSBM-100080) - zdtm: Added test that covers ipset checkpoint/restore functionality (Valeriy Vdovin ) (#PSBM-100083) - dump/restore: Support ipsets (Valeriy Vdovin ) (#PSBM-100083) - Makefile/plugin: install more headers (Alexander Stefanov ) (#PSBM-99926) - files-reg: temporary remount writable the mount we do unlink on (Pavel Tikhomirov ) (#PSBM-101433) - ghost/mount: allocate remounted_rw in shmem to get info from other processes (Pavel Tikhomirov ) (#PSBM-101433) - files-reg: add debug for ENOTEMPTY on unlinkat (Pavel Tikhomirov ) (#PSBM-101145) - files-reg: fix error handling of rm_parent_dirs (Pavel Tikhomirov ) (#PSBM-101433) - files-reg: fix error handling in open_path (Pavel Tikhomirov ) (#PSBM-101433) - dump/restore: Maintain proper start_time param from /proc/[pid]/stat for each task (Valeriy Vdovin ) (#PSBM-64123) - cr-restore: handle join_ve0 errors in restore_root_task (Pavel Tikhomirov ) - spfs, files-reg: symbolic links support (Alexander Mikhalitsyn ) (#PSBM-99969) - files: also print the mnt_id of the overmounted mount with open files (Pavel Tikhomirov ) (#PSBM-99194) - net: add nftables c/r (Pavel Tikhomirov ) (#PSBM-98958) - net: separate tables_restore from iptables_tool_restore (Pavel Tikhomirov ) (#PSBM-98958) - mount: Add missing newline into the log (Cyrill Gorcunov ) - pie/restorer: Fix typo in debug print (Cyrill Gorcunov ) (#PSBM-98453) - vz7: don't get out VEX cgroup for iptables restore (Pavel Tikhomirov ) (#PSBM-98702) - restore: don't miss futex abort in restore_task_with_children (Pavel Tikhomirov ) - vz7: systemd-autofs-restart.sh: add --skipowner vzctl exec option (Pavel Tikhomirov ) (#PSBM-98502) - vz7: systemd-autofs-restart.sh: use exec3 and input from /dev/null (Pavel Tikhomirov ) (#PSBM-98438) - vz7: systemd-autofs-restart.sh: add --skiplock vzctl exec option (Pavel Tikhomirov ) (#PSBM-98231) - vz7: systemd-autofs-restart.sh: use vzctl instead of nsenter for safety (Pavel Tikhomirov ) (#PSBM-98094) - mount: mark mounts of external devices external (Pavel Tikhomirov ) (#PSBM-97810 #PSBM-100775) - mount: add a message about found dev-mapping (Pavel Tikhomirov ) - mount: restore shared options in clean mount for external mounts (Pavel Tikhomirov ) (#PSBM-97787) - mount: show more info about why we can't mount (Pavel Tikhomirov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - test: Add pipe04 test (Cyrill Gorcunov ) - pipes: Make pipe_data_dump dynamic (Cyrill Gorcunov ) (#PSBM-97048) - restorer: Add debug print for clone call (Cyrill Gorcunov ) (#PSBM-97408) - mount: fix external mounts so that they pass check-mounts (Pavel Tikhomirov ) (#PSBM-96385) - test: transition/epoll -- Don't fail on EINTR (Cyrill Gorcunov ) (#PSBM-96981) - mount/restore: create mountpoint for auxiliary binfmt_misc mount (Pavel Tikhomirov ) (#PSBM-96621) - mount: fix error print in case of failed bind-mount (Stanislav Kinsburskiy ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) (#PSBM-96082 #PSBM-96362) - mount: remove a leftover mnt_path check (Pavel Tikhomirov ) (#PSBM-96087) - mount: check error return of cut_root_for_bind (Pavel Tikhomirov ) (#PSBM-96087) - check-mounts/spfs: skip flags check for nfs (Pavel Tikhomirov ) (#PSBM-96106) - check-mounts: check all mntnses before failing to have a full picture (Pavel Tikhomirov ) (#PSBM-96106) - mount/check-mounts: remove auxiliary cr-time mount from tree after umount (Pavel Tikhomirov ) (#PSBM-96082) - pie/restorer: Reread last_pid on error (Cyrill Gorcunov ) (#PSBM-96105) - pie/restorer: Fix fd leaking on error path (Cyrill Gorcunov ) (#PSBM-96105) - seize: Print tracer pid for debug sake (Cyrill Gorcunov ) (#PSBM-96110) - mem/pagema-cache: Drop confusing log (Cyrill Gorcunov ) - mem/shmem: Use pmc_ helpers instead of accessing map directly (Cyrill Gorcunov ) - mem: generate_iovs -- Use pmc_get_pfn_from helper (Cyrill Gorcunov ) - mem/pagemap-cache: Provide api for map access (Cyrill Gorcunov ) - mem/pagema-cache: Make sure we're not accessing stale data (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775) - spfs: make spfs logs relative to criu working directory (Pavel Tikhomirov ) (#PSBM-59204) - pid-reuse: Ensure we're fetching params from ve0 (Cyrill Gorcunov ) (#PSBM-95422) - fsnotify: Allow to get updated restored wd (Cyrill Gorcunov ) (#PSBM-91520) - Revert "vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly" (Cyrill Gorcunov ) - vz: close_fds -- Addition to 6af5df67245755cf7e75553ee65b4a360cbdc602 (Cyrill Gorcunov ) (#PSBM-95035) - vz: close_fds -- Skip closing external service fd (Cyrill Gorcunov ) (#PSBM-94949) - netlink: Fix for 52828b9aa350cb027c2cb4c1330e0cd7ceac4b46 (Cyrill Gorcunov ) - vz7: x86,cpu -- Fixup for 4d76e16247621082580e1d137aeba18791040541 (Cyrill Gorcunov ) - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - log: Increase early log buffer (Cyrill Gorcunov ) - vz7: cpu -- Move vz_cpu_parse_cpuid_override to early_init (Cyrill Gorcunov ) (#PSBM-85265) - test: bers -- Provide --pidfile option (Cyrill Gorcunov ) - fsnotify: Add error print for nexwd failure (Cyrill Gorcunov ) (#PSBM-91520) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - spfs: Fix typo in get_spfs_mngr_sock (Cyrill Gorcunov ) (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (Cyrill Gorcunov ) (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (Cyrill Gorcunov ) (#PSBM-93462) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - zdtm: use --check-mounts by default (Pavel Tikhomirov ) (#PSBM-86686) - rpc: Add interface for --check-mounts option (Pavel Tikhomirov ) (#PSBM-86686) - mount: check that mounts tree restored without any hidden problems (Pavel Tikhomirov ) (#PSBM-86686) - epoll: Fix qsort args passing (Cyrill Gorcunov ) - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022) - mount: temporary create needed ancestor directories for deleted root (Pavel Tikhomirov ) (#PSBM-77022) - arch,x86: Investigate OSPKE status when handling PKU (Cyrill Gorcunov ) (#PSBM-91098) - ve: tty -- Preallocate space for itty pool (Cyrill Gorcunov ) (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert (Cyrill Gorcunov ) - ve: tty -- Drop leftover comment (Cyrill Gorcunov ) - ve: tty -- Investigate master fds with a mutex taken (Cyrill Gorcunov ) (#PSBM-90662) - ve: rst,files -- Guard list with mutex (Cyrill Gorcunov ) (#PSBM-90662) - test: tty-inherit -- Don't forget to clean buffer (Cyrill Gorcunov ) (#PSBM-94706) - test: tty-inherit -- Handle parse_pid_stat errors (Cyrill Gorcunov ) (#PSBM-94405) - ve: tty -- Add tty-inherit test (Cyrill Gorcunov ) - ve: tty -- Add support of tty inheritance, v2 (Cyrill Gorcunov ) (#PSBM-76490 #PSBM-96852) - crtools: Show command line in log (Cyrill Gorcunov ) - files: Select proper master fd when collecting fd (Cyrill Gorcunov ) (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper (Cyrill Gorcunov ) - test: netns_sub_veth -- Disable for a while (Cyrill Gorcunov ) - restore: Fix hang if root task is waiting on zombie (Cyrill Gorcunov ) (#PSBM-89830) - restore: Don't ignore errors on wait in restore_one_zombie (Cyrill Gorcunov ) - restore: Add more detailed log in wait_exiting_children (Cyrill Gorcunov ) - restore: zombie -- Add more detailed log on signals (Cyrill Gorcunov ) - inet: raw -- Add compatibility layer for old images (Cyrill Gorcunov ) - net: Add prefixes for better logging (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (Cyrill Gorcunov ) (#PSBM-89582) - mount: Fix typo in message (Cyrill Gorcunov ) - fown: test -- Improve error messaging in file_fown_dead (Cyrill Gorcunov ) - fown: test -- Update file_own_dead to test O_PATH case (Cyrill Gorcunov ) - fown: test -- Add file_fown_dead (Cyrill Gorcunov ) - fown: Dont fail if owner is a dead pid (Cyrill Gorcunov ) (#PSBM-88336) - ve: tty -- Add more detailed debug print in ctty verification (Cyrill Gorcunov ) - ve: tty -- Save pid of a task which setups a controlling terminal (Cyrill Gorcunov ) - ve: tty -- Save tty_pgrp in process tree upon read (Cyrill Gorcunov ) - unix: Don't forget to restore original errno (Cyrill Gorcunov ) - pr-warn: Add missing newlines (Cyrill Gorcunov ) - compel: Don't forget to zap remote_map pointer after release (Cyrill Gorcunov ) (#PSBM-89231) - ve: tty -- Don't stuck if several ctty opened (Cyrill Gorcunov ) - ve: tty -- Save virtual group id (Cyrill Gorcunov ) - ve: tty -- Collect real ppid, pgid, sid on dump (Cyrill Gorcunov ) - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty (Cyrill Gorcunov ) - unix: Disable switching mount namespace (Cyrill Gorcunov ) (#PSBM-89126) - vz7: files-reg -- Show which exactly file can't be created (Cyrill Gorcunov ) - unix: Don't forget to close ns descriptor on error path (Cyrill Gorcunov ) - tun: Add compatibility with old images (Cyrill Gorcunov ) - test: bind-mount-unix -- Implement real connect (Cyrill Gorcunov ) - unix: unix_prepare_bindmount -- Allow to connect via relative name (Cyrill Gorcunov ) (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets (Cyrill Gorcunov ) - unix: bind_unix_sk -- Add ability to skip waiters notification (Cyrill Gorcunov ) (#PSBM-88274) - unix: make_socket -- Break connected pair if requested (Cyrill Gorcunov ) - unix: make_socket -- Add more detailed logs (Cyrill Gorcunov ) - unix: break_connected -- Add a log recod (Cyrill Gorcunov ) - unix: bindmount -- Show details about queuer (Cyrill Gorcunov ) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - test: sk-unix-ucred -- Make compatible with gcc 8 (Cyrill Gorcunov ) - test: cgroup04 -- Disable (Cyrill Gorcunov ) - unix: test -- Add bind-mount-unix test case (Cyrill Gorcunov ) - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - unix: Add support for bindmounted sockets (Cyrill Gorcunov ) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) (#PSBM-96943) - mount: rework phys_stat_dev_match to work directly with mount_info (Pavel Tikhomirov ) (#PSBM-96943) - unix: image -- Move uflags into enum (Cyrill Gorcunov ) - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths (Cyrill Gorcunov ) - vz7: sk-unix -- Restore qlen before pushing queued data back (Cyrill Gorcunov ) (#PSBM-63762) - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (Cyrill Gorcunov ) (#PSBM-64628) - spfs: suppress compilation warnings by roughly approximating path lenths (Pavel Tikhomirov ) - vz7/mount: show the real mount which is behind the clean mount (Pavel Tikhomirov ) - vz7: reenable not-failing cgroup tests in automatic runs (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (Cyrill Gorcunov ) (#PSBM-86775) - zdtm: temporary make mnt_ext_auto and private_bind_propagation noauto (Pavel Tikhomirov ) (#PSBM-85251) - net: Add net log prefix (Cyrill Gorcunov ) - vz7: net -- Add missing newline into debug message (Cyrill Gorcunov ) - files: Don't forget on stipping deleted postfix on linked files (Cyrill Gorcunov ) (#PSBM-84731) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154) - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - vz: test,file_lease00 -- Disable for a while (Cyrill Gorcunov ) - vz: test,pipe03 -- Don't run in uns (Cyrill Gorcunov ) - vz: test,transition,fork -- Postpone for a while (Cyrill Gorcunov ) - vz: test,thread_different_uid_gid -- Postpone for a while (Cyrill Gorcunov ) - vz: test,sched_policy00 -- Drop ns flag for a while (Cyrill Gorcunov ) - vz: test,cgroups -- Skip testing via zdtm run (Cyrill Gorcunov ) - vz: test,tty -- Use ns flavor (Cyrill Gorcunov ) - vz: test,pty -- Use ns flavor (Cyrill Gorcunov ) - vz: zdtm,dump,bc -- Skip bc read/write when testing (Cyrill Gorcunov ) - vz: zdtm -- Don't fail in __construct_root if entries exist (Cyrill Gorcunov ) - vz7: net: do iptables restore in ve0 (Stanislav Kinsburskiy ) (#PSBM-58574) - vz7: net: iptables_tool_{dump,restore} helpers introduced (Stanislav Kinsburskiy ) - vz7: sockets: Separate socket buffer size setting into a helper (Cyrill Gorcunov ) (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (Cyrill Gorcunov ) (#PSBM-61573 #PSBM-61812) - tty: Move session lookup leader into find_session_leader (Cyrill Gorcunov ) - tty: Fetch ctty index based on sid (Cyrill Gorcunov ) - tty: Add is_ctty helper (Cyrill Gorcunov ) - tty: Don't check for group inheritance (Cyrill Gorcunov ) - files-reg: Prepare for sysfs entries mode change (Cyrill Gorcunov ) (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (Cyrill Gorcunov ) (#PSBM-80095) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: improve prints in spfs_set_mode() and spfs_release_replace() (Stanislav Kinsburskiy ) - spfs: improve SPFS manager start debug and error output (Stanislav Kinsburskiy ) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - tty: Use mnt_id for first lookup of toplevel devpts (Cyrill Gorcunov ) (#PSBM-78460) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531) - action-scripts: Export mount namespace roots via CRIU_MNT_NS_ROOTS (Cyrill Gorcunov ) (#PSBM-71861) - mount: Add export_mnt_ns_roots helper (Cyrill Gorcunov ) (#PSBM-71861) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - tty: collect_one_tty_info_entry -- Move tracking setup into main cycle (Cyrill Gorcunov ) (#PSBM-70929) - tty: collect_one_tty -- Make sure the index is in range (Cyrill Gorcunov ) - tty: tty_has_active_pair -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: tty_test_and_set -- Make sure no overflow happened (Cyrill Gorcunov ) - tty: Fix __tty_verify_active_pairs (Cyrill Gorcunov ) - tty: Use macros for bitmap length (Cyrill Gorcunov ) - vz7: images -- Add task_core_entry_vz730 stub (Cyrill Gorcunov ) (#PSBM-67671) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (Cyrill Gorcunov ) (#PSBM-68738) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: criu: export join_ve helper (Stanislav Kinsburskiy ) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: mount: allow any types of NFS mount for a while (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: mounts: support NFS bind-mounts in the same shared group (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: mounts: support only shared NFS mounts in inits mount namespace (Stanislav Kinsburskiy ) (#PSBM-66945) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: mount: Don't search for siblings inside self (Dmitry Safonov ) (#PSBM-67723) - vz7: cr-service: Init page_ids laterly (Dmitry Safonov ) - vz7: images: Initialize images earlier (before page-server starts) (Dmitry Safonov ) (#PSBM-67335) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: mounts: print NFS nested mountpoint info (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: tests: shm-unaligned -- Use unique key for simultaneous run (Cyrill Gorcunov ) (#PSBM-66764) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: Makefile: Fix scripts installation (Cyrill Gorcunov ) - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: filesystems: binfmt -- Add debug print on dumping stage (Cyrill Gorcunov ) (#PSBM-65185) - vz7: restore_sk_queue -- Show how many bytes already sent (Cyrill Gorcunov ) (#PSBM-64628) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (Cyrill Gorcunov ) (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (Cyrill Gorcunov ) (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (Cyrill Gorcunov ) (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach (Cyrill Gorcunov ) - vz7: Show status of uninterruptable task (Cyrill Gorcunov ) (#PSBM-63211) - vz7: ucred -- Drop packets from dead processes (Cyrill Gorcunov ) (#PSBM-62603) - vz7: test: Add ucreds test (Cyrill Gorcunov ) - vz7: sk-queue -- Add support of ucreds in unix sockets (Cyrill Gorcunov ) (#PSBM-61095) - vz7: Zap file size checking for "atop" (Cyrill Gorcunov ) (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (Cyrill Gorcunov ) (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (Cyrill Gorcunov ) (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (Cyrill Gorcunov ) (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - vz7: mount: fix mounting non-root shared mounts (Andrei Vagin ) (#PSBM-55494) - vz7: pipes -- Restore pipe size via userns call (Cyrill Gorcunov ) (#PSBM-59829) - vz7: test: pty05 -- Add testing of multiple devpts instance (Cyrill Gorcunov ) - vz7: tty -- Don't fail if @mnt_id is not present in images (Cyrill Gorcunov ) (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper (Cyrill Gorcunov ) - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (Cyrill Gorcunov ) (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image (Cyrill Gorcunov ) - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: Unlimit UBC when chekpointing (Cyrill Gorcunov ) (#PSBM-53593 #PSBM-61534 #PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (Cyrill Gorcunov ) (#PSBM-56407) - vz: kdat -- Query zdtm status runtime (Cyrill Gorcunov ) - vz: zdtm -- Export ZDTM_RUN variable to notify criu (Cyrill Gorcunov ) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED (Cyrill Gorcunov ) - vz7: Don't use executable stacks in @syscall_ip (Cyrill Gorcunov ) (#PSBM-55989) - vz7: util: Add rmdirp helper (Cyrill Gorcunov ) - vz7: mount: handle error from restore_shared_options() (Andrei Vagin ) - vz7: seize: Add additional diagnose messages (Cyrill Gorcunov ) (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (Andrei Vagin ) (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (Stanislav Kinsburskiy ) (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory (Stanislav Kinsburskiy ) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (Cyrill Gorcunov ) (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320) - vz7: cg: Don't dump devices.list (Cyrill Gorcunov ) (#PSBM-50551) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry (Stanislav Kinsburskiy ) - vz7: mount: create a temporary mount to restore shared and master groups (Andrey Vagin ) (#PSBM-47508 #PSBM-96087) - vz7: files-reg: fix silly-renamed files migration (Stanislav Kinsburskiy ) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: files-reg: split create_ghost (Stanislav Kinsburskiy ) - vz7: scripts: remove obsolete scripts (Stanislav Kinsburskiy ) - vz7: Makefile: install spfs-release-replace.sh script (Stanislav Kinsburskiy ) (#PSBM-49726) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: dump: Show task comm early (Cyrill Gorcunov ) - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: spfs: explicitly pass size and mode to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) - restore: pidfile -- write before post-restore stage (Cyrill Gorcunov ) (#PSBM-90289) - log: Write more details in write_pidfile (Cyrill Gorcunov ) - vz7: compel -- Add support for vz7 specific cpuid masking (Cyrill Gorcunov ) (#PSBM-47748 #PSBM-49423) - vz7: tty: Save task current terminal if present (Cyrill Gorcunov ) - vz7: files: Allow to dump ploopX files opened (Cyrill Gorcunov ) (#PSBM-49723) - vz7: spfs: remove "ns_list" option from "replace" command as obsolete (Stanislav Kinsburskiy ) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (Eugene Kolomeetz ) (#PSBM-44207) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) - vz7: spfs: do not treat existent file as error in create_reg_file (Stanislav Kinsburskiy ) - vz7: scripts: spfs-release-replace.sh introduced (Stanislav Kinsburskiy ) - vz7: criu: spfs -- Fixup various nits for NFS sake (Cyrill Gorcunov ) - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh (Cyrill Gorcunov ) - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: spfs -- Mitigate sock_seqpacket_connect (Cyrill Gorcunov ) - vz7: spfs -- Mitigate spfs_manager_socket_path (Cyrill Gorcunov ) - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: scripts: spfs-change-mode.sh added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488 #PSBM-42488) - build: Switch to v3.15 vanila branch (Pavel Tikhomirov ) (#PSBM-121533) - namespaces: don't set rst on error in switch_ns_by_fd (Pavel Tikhomirov ) (#PSBM-121533) - nft: revert nftables c/r via libnftables (Pavel Tikhomirov ) (#PSBM-121533) - memfd: use PROC_SELF instead of getpid in __open_proc (Pavel Tikhomirov ) (#PSBM-121533) - util: move open_proc_self_fd to service_fd (Pavel Tikhomirov ) (#PSBM-121533) - servicefd: fully cleanup parent's shared fd table on service fd update (Pavel Tikhomirov ) (#PSBM-121533) - restore: disable clone3 + set_tid code (Pavel Tikhomirov ) (#PSBM-121533) - cr-restore: setup external pidns only for root task (Pavel Tikhomirov ) (#PSBM-121533) - namespaces: make root_ns_mask more consistent (Pavel Tikhomirov ) (#PSBM-121533) - cr-restore: make CLONE_NEWPID flag in clone_flags more consistent (Pavel Tikhomirov ) (#PSBM-121533) - restore: Value stored to 'ret' is never read (Adrian Reber ) - criu: Version 3.15 (Andrei Vagin ) - travis: install gzip and redhat-rpm-config for Fedora Rawhide based tests (Adrian Reber ) - x86/asm: update test_bit() and test_and_set_bit() (Mike Rapoport ) - zdtm: add alternative socket filter (Andrey Zhadchenko ) - sockets: fix incorrect malloc size (Andrey Zhadchenko ) - compel: Calculate sh_addr if not provided by linker (Wojciech Marczenko ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - mount: Explicit null dereferenced (FORWARD_NULL) (Adrian Reber ) - util: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - page-xfer: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - sk-netlink: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - kerndat: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - action-scripts: Improper use of negative value (NEGATIVE_RETURNS) (Adrian Reber ) - cr-dump: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - irmap: Double close (USE_AFTER_FREE) (Adrian Reber ) - proc_parse: Copy into fixed size buffer (STRING_OVERFLOW) (Adrian Reber ) - autofs: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup-props: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - filesystem: Double close (USE_AFTER_FREE) (Adrian Reber ) - uffd: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - mount: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Logically dead code (DEADCODE) (Adrian Reber ) - files-reg: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - pagemap: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - cgroup: Resource leak (RESOURCE_LEAK) (Adrian Reber ) - img-streamer: Double close (USE_AFTER_FREE) (Adrian Reber ) - net: Argument cannot be negative (NEGATIVE_RETURNS) (Adrian Reber ) - zdtm: update and refactor tests for BPF array and hash maps (Abhishek Vijeev ) - criu: adding support for BPF map name, ifindex and freeze (Abhishek Vijeev ) - images: adding support for BPF map file name and ifindex (Abhishek Vijeev ) - zdtm: adding BPF helper functions as a new library (Abhishek Vijeev ) - servicefd: close temporary fd on error path (Pavel Tikhomirov ) - criu: check matching the tcp-close option on restore only (Andrei Vagin ) - tcp: add a separate test for listen sockets (Andrei Vagin ) - tcp: dump shutdown state for unconnected sockets (Andrei Vagin ) - CI: run cross compile on all branches (Adrian Reber ) - CI: add Travis test script to 'lint' (Adrian Reber ) - CI: switch to loop based apt-get (Adrian Reber ) - tests: only run 'make lint' once in CI (Adrian Reber ) - scripts: run shellcheck on the scripts folder (Adrian Reber ) - crtools: Fix --help output line width (Radostin Stoyanov ) - doc: update documentations for the tcp-close option (Andrei Vagin ) - tcp: allow to specify --tcp-close on dump (Andrei Vagin ) - test/zdtm: write in a tcp socket has to fail if tcp-close was set (Andrei Vagin ) - socket/tcp: shutdown tcp sockets if the tcp-close option is set (Andrei Vagin ) - Switch to python 3 variants of dependencies on debian-based builds (Sebastiaan van Stijn ) - mips64: implement vdso_redirect_calls() (Guoyun Sun ) - zdtm: Add test for SO_LINDER (Radostin Stoyanov ) - socket: c/r support for SO_LINGER (Radostin Stoyanov ) - socket: c/r support for SO_OOBINLINE (Radostin Stoyanov ) - zdtm: check that unbindable mount flag does not affect restore (Pavel Tikhomirov ) - mount: replace mountpoint to mnt_id in error messages (Pavel Tikhomirov ) - mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) - sk-netlink: Handle case of in-use netlink peer ids (Hello1024 ) - images: kindly ask not to use fields with id 18 in unix_sk_entry (Pavel Tikhomirov ) - zdtm: add new epoll01 test (Pavel Tikhomirov ) - eventpoll: fix toff off calculation (Pavel Tikhomirov ) - eventpoll: resort toff back by idx (Pavel Tikhomirov ) - travis: use Fedora rawhide images from Fedora (Adrian Reber ) - travis: restore lazy-pages tests for uns flavor (Mike Rapoport ) - criu: don't use the deprecated security_context_t (SELinux) (Abhishek Vijeev ) - scripts: adding libbpf for Travis tests (Abhishek Vijeev ) - zdtm: adding tests for BPF maps (Abhishek Vijeev ) - criu: restoring BPF map data (Abhishek Vijeev ) - criu: restoring BPF maps (without data) (Abhishek Vijeev ) - crit: add BPF map data decoding (Abhishek Vijeev ) - criu: dumping BPF map data (Abhishek Vijeev ) - criu: dumping meta-data about BPF map files (Abhishek Vijeev ) - criu: parse information about BPF maps from procfs (Abhishek Vijeev ) - Set Makefile config variables for libbpf (Abhishek Vijeev ) - criu: define constants for c/r of BPF maps (Abhishek Vijeev ) - images: protobuf definitions for BPF map meta-data and data (Abhishek Vijeev ) - travis: add a focal based test run (Adrian Reber ) - travis: switch travis to Python 3 (Adrian Reber ) - contrib: Add python-future to Debian packages (Pavel Emelyanov ) - github: disable cross-compule for mips on master branch (Mike Rapoport ) - criu: the type of a socket inode has to be "unsigned int" (Andrei Vagin ) - actions: create file for daily rebuild (Adrian Reber ) - travis: loop over apt-get to recover from errors (Adrian Reber ) - Makefiles: do not re-generate magic.py every time (Adrian Reber ) - python: Handle byte strings when converting protobuf to dict (Otto Bittner ) - CONTRIBUTING.md: clarify placement of Fixes: tags (Mike Rapoport ) - lib/c: extend receive to handle incoming FDs (Adrian Reber ) - log: Ask developers not to use print_on_level directly (Pavel Emelyanov ) - log: Hide vprint_on_level in log.c (Pavel Emelyanov ) - util: Use pr_info in vma printing (Pavel Emelyanov ) - ipc: Use pr_info() instead of print_on_level(PR_INFO...) (Pavel Emelyanov ) - proc_parse: Do not feed loglevel into restore_loginuid (Pavel Emelyanov ) - check: Use pr_foo macros (Pavel Emelyanov ) - vagrant: Update to Fedora 32 (Radostin Stoyanov ) - criu/files-reg.c: build-id size bug fix (Ajay Bharadwaj ) - criu/files-reg.c: build-id from multiple headers fix (Ajay Bharadwaj ) - compel/infect: Don't adjust stack/args alignment (Dmitry Safonov ) - compel: allocate the GOT table to avoid memory corruption (Nicolas Viennot ) - compel: remove x86/prologue.S (Nicolas Viennot ) - compel: x86 parasite_service entry point simplification (Nicolas Viennot ) - compel: rewrite parasite cmd and args manipulation from assembly to C (Nicolas Viennot ) - compel: stop rounding up the parasite blob size and args region to PAGE_SIZE (Nicolas Viennot ) - compel: remove "addr_" from offset variable names (Nicolas Viennot ) - compel: pass the parasite_blob_desc to compel_relocs_apply() (Nicolas Viennot ) - compel: add error message for COMMON symbols (Nicolas Viennot ) - zdtm: make cgroup_yard to be aware of cgroup2 (Andrei Vagin ) - tests: skip cgroup04 and cgroup_ifpriomap on pure cgroup2 systems (Andrei Vagin ) - zdtm.py: add the cgroup2 freezer support (Andrei Vagin ) - cgroup: Add the initial support for cgroup2 (Andrei Vagin ) - pidns: fixup (Adrian Reber ) - criu/config.c: added cli option for build-id (Ajay Bharadwaj ) - criu/files-reg.c: add build-id validation functionality (Ajay Bharadwaj ) - images/regfile.proto: adds additional fields to RegFileEntry (Ajay Bharadwaj ) - restore: skip unnecessary setgroups calls (Angie Ni ) - tests: criu-image-streamer change dev branch to master branch (Nicolas Viennot ) - test/zdtm/autofs: use sigaction instead of the deprecated siginterrupt (Andrei Vagin ) - Add error logging to config + crtools init (Angie Ni ) - Add error logging to kerndat init (Angie Ni ) - test: test external namespace support (Adrian Reber ) - pidns: add external pidns to man-page (Adrian Reber ) - pidns: support external PID namespaces (Adrian Reber ) - pidns: write and read pidns information (Adrian Reber ) - pidns: add pidns image file definition (Adrian Reber ) - zdtm: add zombie_leader test (Pavel Tikhomirov ) - cgroup: make prepare_task_cgroup lookup current cgset in ancestors (Pavel Tikhomirov ) - mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (Cyrill Gorcunov ) - test: skip vdso test on non-vdso systems (Adrian Reber ) - uffd: uffd_open prints info, caller prints error (Angie Ni ) - CONTRIBUTING.md: add pull request guidelines (Mike Rapoport ) - CONTRIBUTING.md: add sections about patch description and splitting (Mike Rapoport ) - CONTRIBUTING.md: minor formatting fixes (Mike Rapoport ) - CONTRIBUTING.md: import "How to submit patches" from criu.org (Mike Rapoport ) - Add CONTRIBUTING.md (Mike Rapoport ) - arch/x86: Fix calculation of xstate_size (Cyrill Gorcunov ) - criu swrk: fix usage, allow common options (Kir Kolyshkin ) - Travis: use Vagrant to run VMs (Adrian Reber ) - Also report clone3() errors correctly (Adrian Reber ) - test/others/libcriu: test version library calls (Adrian Reber ) - lib/c: add criu_get_version() (Adrian Reber ) - criu: optimize find_unix_sk_by_ino() (ZeyadYasser ) - swrk: send notification instead of using status fd (Kir Kolyshkin ) - close_service_fd: rename to status_ready (Kir Kolyshkin ) - clang: Branch condition evaluates to a garbage value (Adrian Reber ) - coverity: fix FORWARD_NULL in criu/proc_parse.c: 1481 (Adrian Reber ) - coverity: fix RESOURCE_LEAK criu/timens.c: 67 (Adrian Reber ) - libcriu: Add space between 'if' and parenthesis (Radostin Stoyanov ) - libcriu: Use spaces around '=' (Radostin Stoyanov ) - libcriu: Add orphan pts master (Radostin Stoyanov ) - cr-service: spell out an error (Kir Kolyshkin ) - cr-service: fix wording in debug messages (Kir Kolyshkin ) - tests: move cross compilation to github actions (Adrian Reber ) - travis: use bionic almost everywhere (Adrian Reber ) - Remove dupe of "deprecated stuff on" msg (Kir Kolyshkin ) - soccr/test: Fix error logging in libsoccr tcp-test (Josh Abraham ) - mips: fix fail when run zdtm test pthread01.c (Guoyun Sun ) - mips: impliment arch_shmat() (Guoyun Sun ) - test/jenkins: use bash to run shell scripts (Andrei Vagin ) - style: fix typos (Nicolas Viennot ) - mips:support docker-cross compile (Guoyun Sun ) - mips:criu: Enable mips in criu (Guoyun Sun ) - mips:criu/arch/mips: Add mips parts to criu (Guoyun Sun ) - mips:proto: Add mips to protocol buffer files (Guoyun Sun ) - mips:compel: Enable mips in compel/ (Guoyun Sun ) - mips:compel/arch/mips: Add architecture support to compel tool and libraries (Guoyun Sun ) - net: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: Remove deprecated print_data() routine (Radostin Stoyanov ) - page-read: Warn about async read w/o completion cb (Pavel Emelyanov ) - tests: run tests with criu-image-streamer with --stream (Nicolas Viennot ) - img-streamer: introduction of criu-image-streamer (Nicolas Viennot ) - pipes: loop over splice() when dumping a pipe's data (Nicolas Viennot ) - remote: Use tmp file buffer when restore ip dump (Radostin Stoyanov ) - util: Fix addr casting for IPv4/IPv6 in autobind (Radostin Stoyanov ) - test: fix flake8 errors (Adrian Reber ) - travis: fix alpine builds (Adrian Reber ) - Update certificates for failing tls based tests (Adrian Reber ) - criu: Version π (Pavel Emelyanov ) - get_clean_mount: demote an error to a warning (Kir Kolyshkin ) - proc: parse clock symbolic names in /proc/pid/timens_offsets (Andrei Vagin ) - pstree: improve error handling in read_pstree_image (Pavel Tikhomirov ) - kerndat remove duplicate call to kerndat_nsid() (Pavel Tikhomirov ) - parasite-msg: %u is not implemented for parasite code (Nicolas Viennot ) - kerndat: remove duplicate call to kerndat_socket_netns() (Nicolas Viennot ) - criu: put statement continuation on the same line as the closing bracket (Pavel Tikhomirov ) - autofs: fix integer overflow in mount options parsing (Alexander Mikhalitsyn ) - mem: avoid re-opening CR_FD_PAGES when not needed (Nicolas Viennot ) - img: rellocate a PATH_MAX buffer from the bss section to the stack (Nicolas Viennot ) - img: fix image_name() when image is empty (Nicolas Viennot ) - zdtm: fail if test with the crfail tag passes (Andrei Vagin ) - zdtm: limit the line length for ps by 160 symbols (Andrei Vagin ) - timens: restore processes in a new timens to restore clocks (Andrei Vagin ) - test: check that C/R of nested time namespaces fails (Andrei Vagin ) - zdtm_ct: run each test in a new time namespace (Andrei Vagin ) - zdtm: add a new test to check c/r of time namespaces (Andrei Vagin ) - zdtm: add support for time namespaces (Andrei Vagin ) - namespace: fail if ns/time_for_children isn't equal to ns/time (Andrei Vagin ) - criu: Add support for time namespaces (Andrei Vagin ) - MAINTAINERS: Add Pavel (myself) to maintainers (Pavel Tikhomirov ) - remove header include statements duplicates (Pavel Tikhomirov ) - memfd: split the struct memfd_inode (Andrei Vagin ) - memfd: save all memfd inodes in one image (Andrei Vagin ) - Add build directory to gitignore (Byeonggon Lee ) - namespaces: fix error handling in dump_user_ns (Pavel Tikhomirov ) - config/nftables: include string.h for strlen (Andrei Vagin ) - test/fifo_loop: change sizes of all fifo-s to fit a test buffer (Andrei Vagin ) - test/pipe03: check that pipe size is restored (Andrei Vagin ) - pipe: restore pipe size even if a pipe is empty (Andrei Vagin ) - zdtm: Use safe helper function to initialize unix socket sockaddr structure (Valeriy Vdovin ) - zdtm: Implemented get_current_dir_name wrapper that checks for 'x' permissions (Valeriy Vdovin ) - test/zdtmp: add a test to C/R shared memory file descriptors (Andrei Vagin ) - mem/vma: set VMA_FILE_{PRIVATE,SHARED} if a vma file is borrowed (Andrei Vagin ) - mem: dump shared memory file descriptors (Andrei Vagin ) - make: use cflags/ldflags for config.h detection mechanism (Nicolas Viennot ) - mailmap: update my email (Andrei Vagin ) - travis: add ppc64-cross test on amd64 (Mike Rapoport ) - crit-recode: skip (not try to parse) nftables raw image (Alexander Mikhalitsyn ) - travis: Use debian/buster as base for cross build tests (Dmitry Safonov ) - travis: Add aarch64-cross test on amd64 (Dmitry Safonov ) - compel: Remove compel.h (Dmitry Safonov ) - criu: Remove compel.h includes (Dmitry Safonov ) - zdtm/fifo_loop: don't try to write more than pipe size (Andrei Vagin ) - zdtm: add a test on open symlink migration (Pavel Tikhomirov ) - files: allow dumping opened symlinks (Alexander Mikhalitsyn ) - zdtm: add a test for files opened with O_PATH (Pavel Tikhomirov ) - fown: Don't fail on dumping files opened with O_PATH (Cyrill Gorcunov ) - zdtm/inhfd: force python to read new data from a file (Andrei Vagin ) - memfd: don't corrupt a state of the dumped fd (Andrei Vagin ) - fs: use __open_proc instead of open("/proc/...", ... ) (Andrei Vagin ) - cgroup2: add minimal cgroup2 support (Adrian Reber ) - seize: support cgroup v2 freezer (Adrian Reber ) - seize: factor out opening and writing the freezer state (Adrian Reber ) - seize: prepare for cgroupv2 freezer (Adrian Reber ) - criu(8): Convert tabs to spaces (Radostin Stoyanov ) - criu(8): Add documentation for --enable-fs (Radostin Stoyanov ) - uffd: use userns_call() to execute ioctl(UFFDIO_API) (Mike Rapoport ) - test/jenkins: remove empty line at the end of file (Pavel Tikhomirov ) - python: sort imports (Andrei Vagin ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - criu: Use strlcpy() instead of strncpy() (Dmitry Safonov ) - memfd: add tests (Nicolas Viennot ) - inhfd_test: add support for non-pair files (Nicolas Viennot ) - memfd: add seals support (Nicolas Viennot ) - memfd: add memory mapping support (Nicolas Viennot ) - memfd: add --inherit-fd support (Nicolas Viennot ) - files: increase path buffer size in inherited_fd() (Nicolas Viennot ) - memfd: add file support (Nicolas Viennot ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - MAINTAINERS: Add Dima and Adrian to maintainers (Andrei Vagin ) - MAINTAINERS: add Mike (Mike Rapoport ) - Maintainers: Suggest the maintainers codex (#932) (Pavel Emelyanov ) - python: sort imports (Andrei Vagin ) - test/zdtm/inhfd: update dump options one each iteration (Andrei Vagin ) - Travis: fix podman test case (Adrian Reber ) - zdtm: mntns_rw_ro_rw update error msg (Radostin Stoyanov ) - vdso: Don't page-align vvar (Dmitry Safonov ) - vdso: Repair !CONFIG_VDSO (Dmitry Safonov ) - vdso: Add vdso_is_present() helper (Dmitry Safonov ) - zdtm: Make test_{doc,author} weak variables (Dmitry Safonov ) - criu: Make use strlcpy() to copy into allocated strings (Dmitry Safonov ) - typo: fix missing space in error message (Nicolas Viennot ) - vdso: use correct offsets to remap vdso and vvar mappings (Andrei Vagin ) - test/vdso: check the code path when here is no API to map vDSO (Andrei Vagin ) - criu: fix build failure against gcc-10 (Sergei Trofimovich ) - criu(8): fix for asciidoctor (Kir Kolyshkin ) - criu(8): some minor rewording (Kir Kolyshkin ) - doc/Makefile: don't hide xmlto stderr (Kir Kolyshkin ) - compel: add -ffreestanding to force gcc not to use builtin memcpy, memset (Alexander Mikhalitsyn ) - travis: fix warning and errors from validation (Adrian Reber ) - arm: use clone3() if it exists (Adrian Reber ) - aarch64: use clone3() if possible (Adrian Reber ) - clone3: handle clone3() with CLONE_PARENT (Adrian Reber ) - ppc64le: use clone3() if possible (Adrian Reber ) - arm: remove stack pointer from clobber list (Adrian Reber ) - s390x: use clone3() if possible (Adrian Reber ) - s390x: remove stack pointer from clobber list (Adrian Reber ) - Use clone3() with set_tid to create processes (Adrian Reber ) - Add assembler wrapper for clone3() (Adrian Reber ) - kerndat: detect if system support clone3() with set_tid (Adrian Reber ) - travis: reduce the number of podman tests (Adrian Reber ) - image: core -- Reserve start_time field (Valeriy Vdovin ) - ppc64le: remove register '1' from clobber list (Adrian Reber ) - Switch open-j9 alpine tests to python3 (Nidhi Gupta ) - Add Socket-based Java Functional Tests (Nidhi Gupta ) - travis: switch alpine to python3 (Adrian Reber ) - files: Add FD_CLOEXEC test (Nicolas Viennot ) - files: Remove O_CLOEXEC from file flags (Nicolas Viennot ) - python: Improve decoding of file flags (Nicolas Viennot ) - files: fix ghost file error path (Nicolas Viennot ) - zdtm: nft tables preservation test (Alexander Mikhalitsyn ) - net: add nftables c/r (Alexander Mikhalitsyn ) - style: Enforce kernel style -Wstrict-prototypes (Nicolas Viennot ) - style: Enforce kernel style -Wdeclaration-after-statement (Nicolas Viennot ) - Fix tests on Ubuntu (Adrian Reber ) - zdtm: Add test for SO_KEEPALIVE (Radostin Stoyanov ) - socket: c/r support for SO_KEEPALIVE (Radostin Stoyanov ) - sockets: Remove duplicate variable assignment (Radostin Stoyanov ) - scripts: alpine: Install py2 packages with pip (Radostin Stoyanov ) - crit: fix python3 encoding issues (Nicolas Viennot ) - x86/cpu: cleanup and improve xfeatures_mask check (Pavel Tikhomirov ) - zdtm: sysctl net.unix.max_dgram_qlen value preservation test (Alexander Mikhalitsyn ) - unix: sysctl -- Preserve max_dgram_qlen value (Cyrill Gorcunov ) - mount: Order call_helper_process calls (Cyrill Gorcunov ) - restorer/inotify: reorder inotify cleanup after waiting helpers and zombies (Pavel Tikhomirov ) - readme: github pull-requests is the preferred way to contribute (Andrei Vagin ) - cgroup: use new mount API to open the cgroup file system (Andrei Vagin ) - net: use new mount API to open the sysfs file system (Andrei Vagin ) - mount: use new mount API to open the proc file system (Andrei Vagin ) - util: introduce the mount_detached_fs helper (Andrei Vagin ) - kerndat: check whether the new mount API is supported of not (Andrei Vagin ) - travis: ignore fails of podman-test (Andrei Vagin ) - Add File-based Java Functional Tests (Nidhi Gupta ) - zdtm/socket-tcp-fin-wait1: Use array index fro TEST_MSG (Dmitry Safonov ) - Documentation: Add a hint about docker build (Dmitry Safonov ) - travis: Add armv7-cross as cross-compile test (Dmitry Safonov ) - build/zdtm: Use pkg-config to find includes/libs (Dmitry Safonov ) - build/zdtm: Makefile hack for travis aarch64/armv8l (Dmitry Safonov ) - build/zdtm: Support cross-build (Dmitry Safonov ) - build: Use SUBARCH (Dmitry Safonov ) - build/nmk: Provide proper SUBARCH (Dmitry Safonov ) - build/nmk: Remove SRCARCH (Dmitry Safonov ) - build: Remove SRCARCH (Dmitry Safonov ) - zdtm: Set --root path to 0700 on restore (Andrei Vagin ) - zdtm: Replace if->continue with if->elif->else (Radostin Stoyanov ) - man: Describe --root option requirements (Radostin Stoyanov ) - restore: Create temp proc in /tmp (Radostin Stoyanov ) - mount: Bind-mount root via userns_call (Radostin Stoyanov ) - mount: Add error messages (Radostin Stoyanov ) - travis: exclude uns tests for lazy-pages on newer kernels (Mike Rapoport ) - travis: group lazy-pages options (Mike Rapoport ) - Checkpoint only specified controllers (Michał Cłapiński ) - compel/criu: Add __must_check (Dmitry Safonov ) - criu: Kill tasks even when the network is unlocked (Dmitry Safonov ) - compel/infect: Detach but fail compel_resume_task() (Dmitry Safonov ) - parasite-syscall: Log if can't cure on failed infection (Dmitry Safonov ) - cr-restore: Warn if restorer can't be unmapped (Dmitry Safonov ) - cr-dump: Warn if unmapping local memfd failed (Dmitry Safonov ) - cr-dump: Try to cure remote on err-pathes (Dmitry Safonov ) - lib/infect: Check if compel succeed in executing munmap (Dmitry Safonov ) - compel: Mark compat argument of __NR() as used (Dmitry Safonov ) - compel/infect: Warn if close() failed on memfd (Dmitry Safonov ) - lib/ptrace: Be more elaborate about failures (Dmitry Safonov ) - lib/ptrace: Allow PTRACE_PEEKDATA with errno != 0 (Dmitry Safonov ) - travis: remove group from .travis.yml (Adrian Reber ) - travis: switch pcp64le and s390x to real hardware (Adrian Reber ) - travis: switch all arm related tests to real hardware (Adrian Reber ) - Makefile hack for travis aarch64/armv8l (Adrian Reber ) - travis: Do not run privileged containers in LXD (Adrian Reber ) - travis: fix copy paste error from previous commit (Adrian Reber ) - Run java functional tests on travis (Nidhi Gupta ) - mount: make mnt_resort_siblings nonrecursive and reuse friendly (Pavel Tikhomirov ) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) - travis: Disallow failures on ia32 (Dmitry Safonov ) - test/java: Add FileRead Tests (Nidhi Gupta ) - test/static:conntracks: Support nftables (Vitaly Ostrosablin ) - travis: start to use aarch64 hardware (Adrian Reber ) - Fix broken web-links (Sergey Bronnikov ) - Action scripts should be invoked with normal signal behavior (Nicolas Viennot ) - early-log: Print warnings only if the buffer is full (Dmitry Safonov ) - Add `criu` to PATH env variable in libcriu tests (Ashutosh Mehra ) - Enable libcriu testing in travis jobs (Ashutosh Mehra ) - Couple of fixes to build and run libcriu tests (Ashutosh Mehra ) - service: Use space on stack for msg buffer (Radostin Stoyanov ) - image-desc: Remove CR_FD_FILE_LOCKS_PID (Radostin Stoyanov ) - cgroup: fix cg_yard leak on error path in prepare_cgroup_sfd (Pavel Tikhomirov ) - page-pipe: Resize up to PIPE_MAX_SIZE (Radostin Stoyanov ) - Guard against empty file lock status (Nicolas Viennot ) - image: avoid name conflicts in image files (Andrei Vagin ) - criu: use atomic_add instead of atomic_sub (Andrei Vagin ) - lib/c: fix a compile time error (Andrei Vagin ) - zdtm: handle --pre-dump-mode in the rpc mode (Andrei Vagin ) - Refactor time accounting macros (Abhishek Dubey ) - read mode pre-dump implementation (Abhishek Dubey ) - Adding cnt_sub for stats manipulation (Abhishek Dubey ) - Skip adding PROT_READ to non-PROT_READ mappings (Abhishek Dubey ) - Handling iov generation for non-PROT_READ regions (Abhishek Dubey ) - Adding --pre-dump-mode option (Abhishek Dubey ) - restorer/inotify: Don't overflow PIE stack (Dmitry Safonov ) - Cleanup do_full_int80() (Nicolas Viennot ) - unix: print inode numbers as unsigned int (Andrei Vagin ) - pipe: print pipe_id as unsigned to generate an external pipe name (Andrei Vagin ) - cgroup: fixup nits (Pavel Tikhomirov ) - zdtm/cgroup_yard: create a test cgroup yard from the post-start hook (Andrei Vagin ) - test/cgroup_yard: always clean up a test cgroup yard (Andrei Vagin ) - Convert pr_msg() error messages to pr_err() (Radostin Stoyanov ) - Introduce flush_early_log_to_stderr destructor (Radostin Stoyanov ) - arch/x86: fpu_state->fpu_state_ia32.xsave hast to be 64-byte aligned (Andrei Vagin ) - travis: Install missing diffutils dependency (Radostin Stoyanov ) - test: implement test for new --cgroup-yard option (Michał Cłapiński ) - Add new command line option: --cgroup-yard (Michał Cłapiński ) - scripts: Drop Fedora 28/rawhide fix (Radostin Stoyanov ) - compel/x86: Don't use pushq for a label (Dmitry Safonov ) - arch/x86: push correct eip on the stack before lretq (Andrei Vagin ) - cr-dump: Remove redundant if-statement (Radostin Stoyanov ) - files-reg: Drop clear_ghost_files() prototype (Radostin Stoyanov ) - py: Manual fixlets of code formatting (Radostin Stoyanov ) - criu: Version 3.13 (Pavel Emelyanov ) - py: Fix tabs in code comments (Radostin Stoyanov ) - pyimages: Add pb2dict.py to checked and fix warnings/errors (Pavel Emelyanov ) - test/others: Reuse setup_swrk() (Radostin Stoyanov ) - test/other: Resolve Py3 compatibility issues (Radostin Stoyanov ) - py: Reformat everything into pep8 style (Andrei Vagin ) - zdtm: make inotify04 require restore (Pavel Tikhomirov ) - travis: add podman test case (Adrian Reber ) - README: fix broken links to github.com/xemul/criu (Sebastiaan van Stijn ) - Replace references to github.com/xemul/criu (Sebastiaan van Stijn ) - kerndat: remove unused code (Andrei Vagin ) - kerndat: mark functions as static which are used in kerndat.c only (Andrei Vagin ) - vdso: Correctly track vdso position without vvar (Dmitry Safonov ) - test: bring the lo interface up in each network namespace (Andrei Vagin ) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) - restorer: Use gettimeofday() from rt-vdso for log timings (Dmitry Safonov ) - vdso: Add compatible property to vdso_maps (Dmitry Safonov ) - seccomp/restorer: Disable gtod from vdso in strict mode (Dmitry Safonov ) - restorer/parasite-vdso: Don't move vvar if failed to move vdso (Dmitry Safonov ) - vdso/restorer: Always track vdso/vvar positions in vdso_maps_rt (Dmitry Safonov ) - vdso/restorer: Try best to preserve vdso during restore (Dmitry Safonov ) - compel/std/uapi: Provide setter for gettimeofday() (Dmitry Safonov ) - compel/log: Use enum as parameter for std_log_set_loglevel() (Dmitry Safonov ) - pb2dict: Disable undefined name 'basestring' (Radostin Stoyanov ) - scripts: Install flake8 with dnf in Fedora (Radostin Stoyanov ) - scripts: Set PYTHON=python3 in Fedora Dockerfiles (Radostin Stoyanov ) - scripts: Remove yaml/ipaddress Py2 fedora modules (Radostin Stoyanov ) - mount: fix inconsistent return and goto err alternation (Pavel Tikhomirov ) - scripts: remove python2 from Fedora Dockerfiles (Adrian Reber ) - scripts: add possibility to override docker with podman (Adrian Reber ) - images: convert type of child_subreaper from int32 to bool (Andrei Vagin ) - restorer: print errors if prctl syscalls failed (Andrei Vagin ) - make: Insert version macros in criu.h (Radostin Stoyanov ) - mem/shmem: Fix typos for_each_shmem macro (Cyrill Gorcunov ) - mem/shmem: Use xmalloc in collect_sysv_shmem (Cyrill Gorcunov ) - mem/shmem: More elegant entries declaration (Cyrill Gorcunov ) - mem/shmem: Use xrealloc_safe in expand_shmem (Cyrill Gorcunov ) - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole (Cyrill Gorcunov ) - mem/pmc: Print pid for debug sake (Cyrill Gorcunov ) - mem/pmc: Use pr_warn_once if cache is disabled (Cyrill Gorcunov ) - mem/page-xfer: Add log prefix (Cyrill Gorcunov ) - mem/vma: Sanitize struct vm_area_list (Cyrill Gorcunov ) - mem/vma: Drop never used VM_AREA_LIST macro (Cyrill Gorcunov ) - mem/vma: Use vm_area_list_init where appropriate (Cyrill Gorcunov ) - mem/vma: Use memset for vm_area_list_init (Cyrill Gorcunov ) - mem/page-pipe: Use ssize_t for splice/tee results (Cyrill Gorcunov ) - mem/page-pipe: Align members for readability sake (Cyrill Gorcunov ) - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment (Cyrill Gorcunov ) - mem/page-pipe: Eliminate redundant pipe_off setup (Cyrill Gorcunov ) - Add ZDTM tests for child subreaper property (Michał Cłapiński ) - Add support for migrating CHILD_SUBREAPER prctl (Michał Cłapiński ) - Replace libprotobuf-c0-dev with libprotobuf-c-dev (Sebastiaan van Stijn ) - zdtm: use a proper page size for the host (Andrei Vagin ) - test/packet_sock_mmap: parse inode as unsigned long long (Andrei Vagin ) - zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) - files-reg: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix clang 'null pointer passed' (Adrian Reber ) - seize: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-inet: fix coverity IDENTICAL_BRANCHES (Adrian Reber ) - tty: Move tty layer shared init into tty_init_restore (Cyrill Gorcunov ) - fix segmentation fault caused by uninitialized mutex (Dengguangxing ) - Documentation: Create man page for libcompel (Harshavardhan Unnibhavi ) - flake.cfg: Update to yapf formatting (Pavel Emelyanov ) - lint: Print flake8 version before checking (Pavel Emelyanov ) - travis: Enable TLS testing (Radostin Stoyanov ) - zdtm: Add --tls option (Radostin Stoyanov ) - rpc: Add support for TLS options (Radostin Stoyanov ) - tls: Add --tls-no-cn-verify option (Radostin Stoyanov ) - page-xfer: Add TLS support with X509 certificates (Radostin Stoyanov ) - make: config -- Link with GnuTLS (Radostin Stoyanov ) - fsnotify: More precious error handling (Cyrill Gorcunov ) - c-lib: Install and uninstall libcriu.a (Uchio Kondo ) - Add CRIU_A to cleanup target (Uchio Kondo ) - c-lib: Add lib-a into all-y targets (Uchio Kondo ) - c-lib: Support to build a static archive (Uchio Kondo ) - zdtm: Fix memory and resource leaks (Radostin Stoyanov ) - criu/vdso: Purge CONFIG_VDSO (Dmitry Safonov ) - pie/build: Add CFLAGS_PIE to CFLAGS (Dmitry Safonov ) - util-vdso: Check chain for STN_UNDEF (Dmitry Safonov ) - x86/vdso: Don't insert trampolines in vsyscall (Dmitry Safonov ) - rt-vdso: Be verbose if !blobs_matches() (Dmitry Safonov ) - arm/pie: Provide __clear_cache() (Dmitry Safonov ) - arm: Provide aeabi helpers in ARM format (Dmitry Safonov <0x7f454c46@gmail.com>) - arm: Build {pie-, }util-vdso with CONFIG_VDSO_32 (Dmitry Safonov <0x7f454c46@gmail.com>) - vdso/arm32: Add vdso trampoline support (Dmitry Safonov ) - parasite-vdso: Add ugly casts for arm32 (Dmitry Safonov ) - vdso/arm: Add vdso symbols from kernel (Dmitry Safonov ) - cr-check: Add check for mremap() of special mappings (Dmitry Safonov ) - pb2dict: Resolve Python 2/3 compatibility issues (Radostin Stoyanov ) - pb2dict: Fix is_string() check for Python 2 (Radostin Stoyanov ) - zdtm: Check stats file presence before reading (Pavel Emelianov ) - aarch64: Remove stack pointer from clobber list (Radostin Stoyanov ) - test/s390: add a new patch to xtables libraries (Andrei Vagin ) - util: use F_DUPFD when we don't want to overwrite an existing descriptor (Andrei Vagin ) - stats: Make dstats shmem (Pavel Emelianov ) - zdtm: Check pages stats after dump (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - make: Use asciidoctor by default (Radostin Stoyanov ) - python: Drop six dependency (Radostin Stoyanov ) - sk-unix: fix coverity NULL_RETURNS (Adrian Reber ) - image: fix coverity RESOURCE_LEAK (Adrian Reber ) - util: fix coverity FORWARD_NULL (Adrian Reber ) - sk-unix: fix coverity RESOURCE_LEAK (Adrian Reber ) - sk-unix: fix clang 'value is never read' (Adrian Reber ) - sk-queue: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix clang 'potential memory leak' (Adrian Reber ) - sk-inet: fix coverity RESOURCE_LEAK (Adrian Reber ) - proc_parse: fix coverity RESOURCE_LEAK (Adrian Reber ) - pie/restorer: fix clang 'value is never read' (Adrian Reber ) - page-xfer: fix clang 'value is never read' (Adrian Reber ) - pagemap: fix coverity FORWARD_NULL (Adrian Reber ) - pagemap: fix clang 'free released memory' (Adrian Reber ) - mem: fix coverity RESOURCE_LEAK (Adrian Reber ) - lsm: fix clang 'Use of memory after it is freed' (Adrian Reber ) - lib/c: fix coverity DEADCODE (Adrian Reber ) - libcriu: fix coverity RESOURCE_LEAK (Adrian Reber ) - log: fix coverity OVERRUN (Adrian Reber ) - image: fix clang 'dereference of a null pointer' (Adrian Reber ) - files-reg: fix coverity NULL_RETURNS (Adrian Reber ) - files: fix coverity RESOURCE_LEAK (Adrian Reber ) - cr-service: fix clang 'dereference of a null pointer' (Adrian Reber ) - cr-service: fix coverity STRING_OVERFLOW (Adrian Reber ) - compel: fix clang 'value stored is never read' (Adrian Reber ) - cgroup: fix clang 'free released memory' (Adrian Reber ) - autofs: fix coverity RESOURCE_LEAK (Adrian Reber ) - x86/crtools: do not error when YMM is missing (Zhang Ning ) - build/criu/pie: Move trampolines to restorer-obj-y (Dmitry Safonov ) - criu/ia32: Consolidate compat vdso and move to arch/x86 (Dmitry Safonov ) - make: Move CR_NOGLIBC into CFLAGS_PIE (Dmitry Safonov ) - compel: Don't use CFLAGS_PIE for libcompel.so (Dmitry Safonov ) - build: Use cflags from compel for pie.lib.a (Dmitry Safonov ) - Makefile.crtools: Remove bogus ccflags-y (Dmitry Safonov ) - make: Don't export ccflags-y (Dmitry Safonov ) - build: Move __ASSEMBLY__ define to the top Makefile (Dmitry Safonov ) - arm/build: Move -marm cflag to CFLAGS_PIE (Dmitry Safonov ) - build/pie: Add comments to build files (Dmitry Safonov ) - lazy-pages: fix stack detection (Mike Rapoport ) - crtools: Print err messages from check_options() (Radostin Stoyanov ) - config: Exit with error if ps-socket is std fd (Radostin Stoyanov ) - util: cr_daemon: Drop keep_fd argument (Radostin Stoyanov ) - zdtm: Add UDP broadcast test (Radostin Stoyanov ) - sk-inet: restore SO_BROADCAST option (Radostin Stoyanov ) - zdtm: Simplify string to boolean conversion (Radostin Stoyanov ) - [coredump]: correct the parsing of reg_files from files.img (guoqd ) - test/exhaustive: Replace map by list comprehension (Harshavardhan Unnibhavi ) - cgroup: Add "ignore" mode for --manage-cgroups (Dmitry Safonov ) - zdtm/thread-bomb: Limit stack size in thread-bomb (Dmitry Safonov ) - x86/compel/infect: Be verbose on remote mmap failure (Dmitry Safonov ) - zdtm/vdso/ia32: Ignore vsyscall page appear (Dmitry Safonov ) - zdtm/vdso/ia32: Use uint64_t for /proc/self/maps (Dmitry Safonov ) - test/bers: Fix sizeof to memset (Rikard Falkeborn ) - test: add missing va_end (Rikard Falkeborn ) - files-reg: Remove redundant inner if (Rikard Falkeborn ) - test: remove unused variables (Rikard Falkeborn ) - test/zdtm: Move assignment after return value check (Rikard Falkeborn ) - compel/s390: Fix return value in error path (Rikard Falkeborn ) - compel/s390: Fix memset sizeof (Rikard Falkeborn ) - criu/clone: stack size is too small for Android (Zhang Ning ) - test: socket_udplite -- Test shudowned sockets (Cyrill Gorcunov ) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (Cyrill Gorcunov ) - arch: add Hygon CPU Vendor ID("HygonGenuine") checking in compel_cpuid() (hygonsoc ) - Convert spaces to tabs (Radostin Stoyanov ) - zdtm/ia32: fcntl() wrapper for old glibc(s) (Dmitry Safonov ) - zdtm: Refactor seccomp_filter_{threads,tsync} (Radostin Stoyanov ) - criu: Version 3.12.1 (Andrei Vagin ) - lsm: fix compiler error on Fedora 30 (Adrian Reber ) - lsm: don't reset socket contex if SELinux is disabled (Andrei Vagin ) - lsm: fix compiler error 'unused-result' (Adrian Reber ) - selinux: add socket label test (Adrian Reber ) - sockets: dump and restore xattr security labels (Adrian Reber ) - test: Verify that sockcreate does not change during restore (Adrian Reber ) - lsm: also dump and restore sockcreate (Adrian Reber )- mount: ignore root change in cgroup mounts in case of container rename (Pavel Tikhomirov ) (#PSBM-108126) - spfs: fix usage of new_cg_root_get (Pavel Tikhomirov ) (#PSBM-108126)- zdtm: add scm07 SCM_RIGHTS & SCM_CREDENTIALS case (Pavel Tikhomirov ) (#PSBM-99868) - sk-queue: fix SCM restore in case when SCM_RIGHTS & SCM_CREDS in one packet (Pavel Tikhomirov ) (#PSBM-99868) - sk-queue: fix lost ScmEntries during SkPacketEntry copy (Pavel Tikhomirov ) (#PSBM-99868)- binfmt_misc: isolate binfmt_misc dump logic from mountinfo/mountpoint dump. (Pavel Tikhomirov ) (#PSBM-96362) - build: Adjust versions for u16 (Pavel Tikhomirov ) - zdtm: add propagation group with mount flags to mount_complex_sharing (Pavel Tikhomirov ) (#PSBM-96308)- Added ipset requirement (#PSBM-103070)- PSBM-102980 (Alexander Mikhalitsyn ) (#PSBM-102980)- PSBM-102972 (Alexander Mikhalitsyn ) (#PSBM-102972)- PSBM-102791 (Alexander Mikhalitsyn ) (#PSBM-102791)- PSBM-102605 (Alexander Mikhalitsyn ) (#PSBM-102605)- PSBM-96385 PSBM-100080 (Pavel Tikhomirov ) (#PSBM-96385 #PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080) - PSBM-100080 (Pavel Tikhomirov ) (#PSBM-100080)- PSBM-100083 (Valeriy Vdovin ) (#PSBM-100083) - PSBM-100083 (Valeriy Vdovin ) (#PSBM-100083) - PSBM-99926 (Alexander Stefanov ) (#PSBM-99926)- PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433) - PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433) - PSBM-101145 (Pavel Tikhomirov ) (#PSBM-101145) - PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433) - PSBM-101433 (Pavel Tikhomirov ) (#PSBM-101433)- PSBM-64123 (Valeriy Vdovin ) (#PSBM-64123)- PSBM-100775 (Pavel Tikhomirov ) (#PSBM-100775)- PSBM-99969 (Alexander Mikhalitsyn ) (#PSBM-99969)- PSBM-100053 (Pavel Tikhomirov ) (#PSBM-100053)- Fixup 4fd65f5762002a8ed57c6c5b3b2f189f70ce3b74 (#PSBM-99360)- mount: Order call_helper_process calls (Cyrill Gorcunov ) (#PSBM-99360) - Revert "restore: Serialize access to last_pid"- build: Adjust versions for u13 - restore: Serialize access to last_pid (#PSBM-99360) - Revert "./test/zdtm/static:conntracks: Support nftables" (#PSBM-99112)- PSBM-99194 (Pavel Tikhomirov ) (#PSBM-99194)- PSBM-99292 (Pavel Tikhomirov ) (#PSBM-99292)- pie: restorer -- Show pids statistics on thread creation failure (#PSBM-99230)- PSBM-99001 (Pavel Tikhomirov ) (#PSBM-99001) - PSBM-99101 (Vitaly Ostrosablin ) (#PSBM-99101)- PSBM-98958 (Pavel Tikhomirov ) (#PSBM-98958) - PSBM-98958 (Pavel Tikhomirov ) (#PSBM-98958)- PSBM-98888 (Pavel Tikhomirov ) (#PSBM-98888) - PSBM-98888 (Pavel Tikhomirov ) (#PSBM-98888)- pie/restorer: Fix typo in debug print (#PSBM-98453)- PSBM-98702 (Pavel Tikhomirov ) (#PSBM-98702)- PSBM-98502 (Pavel Tikhomirov ) (#PSBM-98502)- PSBM-98438 (Pavel Tikhomirov ) (#PSBM-98438)- PSBM-98231 (Pavel Tikhomirov ) (#PSBM-98231)- PSBM-96943 (Pavel Tikhomirov ) (#PSBM-96943)- PSBM-98094 (Pavel Tikhomirov ) (#PSBM-98094)- PSBM-97810 (Pavel Tikhomirov ) (#PSBM-97810)- PSBM-97787 (Pavel Tikhomirov ) (#PSBM-97787)- test: Add pipe04 test - pipes: Make pipe_data_dump dynamic (#PSBM-97048)- restorer: Add debug print for clone call (#PSBM-97408) - mount: fix external mounts so that they pass check-mounts (Pavel Tikhomirov ) (#PSBM-96385)- PSBM-96981 (Cyrill Gorcunov ) (#PSBM-96981)- PSBM-96973 (Pavel Tikhomirov ) (#PSBM-96973)- zdtm: make grep_errors also grep warnings (Pavel Tikhomirov ) (#PSBM-60715) - inventory: skip warning in case of no parent directory (Pavel Tikhomirov ) (#PSBM-60715) - dedup: convert noisy warning to debug and improve messages (Pavel Tikhomirov ) (#PSBM-60715) - zdtm/inotify: add a test that no unexpected events appear after c/r (Pavel Tikhomirov ) (#PSBM-60715) - inotify: cleanup auxiliary events from queue (Pavel Tikhomirov ) (#PSBM-60715) - vtty: tty_verify_ctty -- Fix a typo (#PSBM-96852) - mount/restore: create mountpoint for auxiliary binfmt_misc mount (Pavel Tikhomirov ) (#PSBM-96621)- mount/restore: create mountpoint for auxiliary binfmt_misc mount (Pavel Tikhomirov ) (#PSBM-96621)- mount: delay setting unbindable flag where possible (Pavel Tikhomirov ) (#PSBM-96376) - mount: fix error print in case of failed bind-mount (Stanislav Kinsburskiy ) - mount/restore: create auxiliary binfmt_misc mount in the root yard (Pavel Tikhomirov ) (#PSBM-96082 #PSBM-96362) - mount: remove a leftover mnt_path check (Pavel Tikhomirov ) (#PSBM-96087) - mount: check error return of cut_root_for_bind (Pavel Tikhomirov ) (#PSBM-96087) - mount: fix parentheses nit in else condition in do_bind_mount (Pavel Tikhomirov ) (#PSBM-96087)- build: Adjust version for vz7-u12 - check-mounts/spfs: skip flags check for nfs (Pavel Tikhomirov ) (#PSBM-96106) - check-mounts: check all mntnses before failing to have a full picture (Pavel Tikhomirov ) (#PSBM-96106) - mount/check-mounts: remove auxiliary cr-time mount from tree after umount (Pavel Tikhomirov ) (#PSBM-96082)- pie/restorer: Reread last_pid on error (#PSBM-96105) - pie/restorer: Fix fd leaking on error path (#PSBM-96105)- seize: Print tracer pid for debug sake (#PSBM-96110)- mem/pagema-cache: Drop confusing log (#PSBM-95760) - mem/shmem: Use pmc_ helpers instead of accessing map directly - mem: generate_iovs -- Use pmc_get_pfn_from helper - mem/pagemap-cache: Provide api for map access - mem/pagema-cache: Make sure we're not accessing stale data - stats: Make dstats shmem (Pavel Emelianov ) - shmem: Save pages stats too (Pavel Emelianov ) - mem: Update stats for overflow page pipes (Pavel Emelianov ) - mem/shmem: Fix typos for_each_shmem macro - mem/shmem: Use xmalloc in collect_sysv_shmem - mem/shmem: Reorder code in expand_shmem - mem/shmem: Use xrealloc_safe in expand_shmem - mem/page-pipe: Use xrealloc_safe in page_pipe_add_hole - mem/pmc: Print pid for debug sake - mem/pmc: Use pr_warn_once if cache is disabled - mem/page-xfer: Add log prefix - mem/vma: Sanitize struct vm_area_list - mem/vma: Drop never used VM_AREA_LIST macro - mem/vma: Use vm_area_list_init where appropriate - mem/vma: Use memset for vm_area_list_init - mem/page-pipe: Use ssize_t for splice/tee results - mem/page-pipe: Align members for readability sake - mem/page-pipe: create_page_pipe -- Drop redundant zero assignment - mem/page-pipe: Eliminate redundant pipe_off setup- Add phaul requirement (#PSBM-95828)- scripts/nfs: collect nfs mount servers only from ve processes (Pavel Tikhomirov ) (#PSBM-95775)- spfs: make spfs logs relative to criu working directory (Pavel Tikhomirov ) (#PSBM-59204)- pid-reuse: Ensure we're fetching params from ve0 (#PSBM-95422)- fsnotify: Allow to get updated restored wd (#PSBM-91520) - Revert "vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly" - criu.spec: Add python-ipaddress for python-criu package (#PSBM-94578)- vz: close_fds -- Addition to 6af5df67245755cf7e75553ee65b4a360cbdc602 (#PSBM-95035)- vz: close_fds -- Skip closing external service fd (#PSBM-94949) - netlink: Fix for 52828b9aa350cb027c2cb4c1330e0cd7ceac4b46 - vz7: x86,cpu -- Fixup for 4d76e16247621082580e1d137aeba18791040541 - vz7: action scripts: set spfs environment in run_scripts (Stanislav Kinsburskiy ) - log: Increase early log buffer- build: Switch to v3.12 vanilla branch - files-reg: Fix 847db9c3239f9951407a2d09b794eea63d24b2df - vz7: cpu -- Move vz_cpu_parse_cpuid_override to early_init (#PSBM-85265) - test: bers -- Provide --pidfile option - fsnotify: Add error print for nexwd failure (#PSBM-91520) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-93461) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511) - spfs: Fix typo in get_spfs_mngr_sock (#PSBM-93663) - spfs: When fetching sfd provide a copy of it (#PSBM-93663) - spfs: Return proper service fd from install_service_fd call (#PSBM-93462) - mount: fix order of mnt namespaces in united mount tree (Pavel Tikhomirov ) (#PSBM-93305) - test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - zdtm: use --check-mounts by default (Pavel Tikhomirov ) (#PSBM-86686) - rpc: Add interface for --check-mounts option (Pavel Tikhomirov ) (#PSBM-86686) - mount: check that mounts tree restored without any hidden problems (Pavel Tikhomirov ) (#PSBM-86686) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) (#PSBM-86686) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) (#PSBM-86686) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) (#PSBM-86686) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) (#PSBM-86686) - epoll: Fix qsort args passing - test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov ) - zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022) - mount: temporary create needed ancestor directories for deleted root (Pavel Tikhomirov ) (#PSBM-77022) - arch,x86: Investigate OSPKE status when handling PKU (#PSBM-91098) - ve: tty -- Preallocate space for itty pool (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert - ve: tty -- Drop leftover comment - ve: tty -- Investigate master fds with a mutex taken (#PSBM-90662) - ve: rst,files -- Guard list with mutex (#PSBM-90662) - test: tty-inherit -- Don't forget to clean buffer (#PSBM-94706) - test: tty-inherit -- Handle parse_pid_stat errors (#PSBM-94405) - ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance, v2 (#PSBM-76490) - crtools: Show command line in log - files: Select proper master fd when collecting fd (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper - test: netns_sub_veth -- Disable for a while - restore: Fix hang if root task is waiting on zombie (#PSBM-89830) - restore: Don't ignore errors on wait in restore_one_zombie - restore: Add more detailed log in wait_exiting_children - restore: zombie -- Add more detailed log on signals - inet: raw -- Add compatibility layer for old images - net: Add prefixes for better logging (Cyrill Gorcunov ) - mount: cr_pivot_root -- Try temp directory first (#PSBM-89582) - mount: Fix typo in message - ve: Add helpers for debug sake - fown: test -- Improve error messaging in file_fown_dead - fown: test -- Update file_own_dead to test O_PATH case - fown: Don't fail on dumping files opened wit O_PATH (#PSBM-89680) - fown: test -- Add file_fown_dead - fown: Dont fail if owner is a dead pid (#PSBM-88336) - .gitignore: Add patches/ - ve: tty -- Add more detailed debug print in ctty verification - ve: tty -- Save pid of a task which setups a controlling terminal - ve: tty -- Save tty_pgrp in process tree upon read - unix: Don't forget to restore original errno - pr-warn: Add missing newlines - compel: Don't forget to zap remote_map pointer after release (#PSBM-89231) - ve: tty -- Don't stuck if several ctty opened - ve: tty -- Save virtual group id - ve: tty -- Collect real ppid, pgid, sid on dump - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty - unix: Disable switching mount namespace (#PSBM-89126) - vz7: files-reg -- Show which exactly file can't be created - unix: Don't forget to close ns descriptor on error path - tun: Add compatibility with old images - test: bind-mount-unix -- Implement real connect - unix: unix_prepare_bindmount -- Allow to connect via relative name (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets - unix: bind_unix_sk -- Add ability to skip waiters notification (#PSBM-88274) - unix: make_socket -- Break connected pair if requested - unix: make_socket -- Add more detailed logs - unix: break_connected -- Add a log recod - unix: bindmount -- Show details about queuer - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - test: sk-unix-ucred -- Make compatible with gcc 8 - vz7: image -- Add compat layer for Core entry (#PSBM-88238) - test: cgroup04 -- Disable - unix: bindmount -- Move mounting code to be called before first mount - vz7: unix: Add compatibility with u7 images (#PSBM-86861) - unix: test -- Add bind-mount-unix test case - zdtm: Add sstrncpy helper (Cyrill Gorcunov ) - unix: Add support for bindmounted sockets - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets (Cyrill Gorcunov ) - unix: image -- Move uflags into enum - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - unix: Fix path resolving for sockets with abs symlinks in paths - vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - spfs: suppress compilation warnings by roughly approximating path lenths (Pavel Tikhomirov ) - vz7/mount: show the real mount which is behind the clean mount (Pavel Tikhomirov ) - vz7: reenable not-failing cgroup tests in automatic runs (Pavel Tikhomirov ) - spfs: Fix nil dereference if no bindmount present (#PSBM-86775) - zdtm: temporary make mnt_ext_auto and private_bind_propagation noauto (Pavel Tikhomirov ) (#PSBM-85251) - net: Add net log prefix - vz7: net -- Add missing newline into debug message - files: Don't forget on stipping deleted postfix on linked files (#PSBM-84731) - netlink: Change NETLINK_REPAIR number (Kirill Tkhai ) (#PSBM-83415) - files: Don't fail on cgroup directories mode change (#PSBM-83154) - test: unlink_multiple_largefiles -- Make noauto - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin ) - vz: test,file_lease00 -- Disable for a while - vz: test,pipe03 -- Don't run in uns - vz: test,transition,fork -- Postpone for a while - vz: test,thread_different_uid_gid -- Postpone for a while - vz: test,sched_policy00 -- Drop ns flag for a while - vz: test,cgroups -- Skip testing via zdtm run - vz: test,tty -- Use ns flavor - vz: test,pty -- Use ns flavor - vz: zdtm,mount -- Don't fetch veid when testing and skip cr moutns - vz: zdtm,restore -- Skip entering veX when testing - vz: zdtm,dump,bc -- Skip bc read/write when testing - vz: zdtm,net,iptables -- Don't enter userns for a root - vz: kdat -- Query zdtm status runtime - vz: zdtm -- Export ZDTM_RUN variable to notify criu - vz: zdtm -- Don't fail in __construct_root if entries exist - vz7: net: do iptables restore in ve0 (Stanislav Kinsburskiy ) (#PSBM-58574) - vz7: net: iptables_tool_{dump,restore} helpers introduced (Stanislav Kinsburskiy ) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573 #PSBM-61812) - tty: Move session lookup leader into find_session_leader - tty: Fetch ctty index based on sid - tty: Add is_ctty helper - tty: Don't check for group inheritance - files-reg: Prepare for sysfs entries mode change (#PSBM-80585) - arch, x86: int80 -- Clobber all rX registers (#PSBM-80095) - spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733) - spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: improve prints in spfs_set_mode() and spfs_release_replace() (Stanislav Kinsburskiy ) - spfs: improve SPFS manager start debug and error output (Stanislav Kinsburskiy ) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy ) - tty: Use mnt_id for first lookup of toplevel devpts (#PSBM-78460) - ns: Set hookups for all namespaces (Kirill Tkhai ) - ns: Set nested namespaces hookups (Kirill Tkhai ) - vz7: service: Allow keep_open flag for a WAIT_PID command (Pavel Vokhmyanin ) (#PSBM-58198) - net: execute iptables-restore in a target network namespace (Andrei Vagin ) (#PSBM-75531) - action-scripts: Export mount namespace roots via CRIU_MNT_NS_ROOTS (#PSBM-71861) - mount: Add export_mnt_ns_roots helper (#PSBM-71861) - scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153) - tty: collect_one_tty_info_entry -- Move tracking setup into main cycle (#PSBM-70929) - tty: collect_one_tty -- Make sure the index is in range - tty: tty_has_active_pair -- Make sure no overflow happened - tty: tty_test_and_set -- Make sure no overflow happened - tty: Fix __tty_verify_active_pairs - tty: Use macros for bitmap length - vz7: images -- Add task_core_entry_vz730 stub (#PSBM-67671) - vz7: Log into /var/log/mesages large ghost files dumps (Andrei Vagin ) (#PSBM-68320) - vz7: page-xfer: Make error message more verbose (#PSBM-68738) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint (Stanislav Kinsburskiy ) - vz7: mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (#PSBM-68062) - vz7: criu: export join_ve helper (Stanislav Kinsburskiy ) - vz7: page-xfer: handle a case when splice returns zero (Andrei Vagin ) (#PSBM-68732) - vz7: mount: allow any types of NFS mount for a while (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: mounts: support NFS bind-mounts in the same shared group (Stanislav Kinsburskiy ) (#PSBM-68663) - vz7: criu: don't abort criu in lookup_create_item() (Andrei Vagin ) (#PSBM-68607) - vz7: dump: set pid->state for threads (Andrei Vagin ) (#PSBM-68585) - vz7: mounts: support only shared NFS mounts in inits mount namespace (Stanislav Kinsburskiy ) (#PSBM-66945) - vz7: mount: Switch user_ns before mount binfmt_misc (Kirill Tkhai ) (#PSBM-68377) - vz7: ve: Call binfmt_misc-mounting code in call_in_child_process() (Kirill Tkhai ) - vz7: mount: Move binfmt_misc-mounting code to separate function (Kirill Tkhai ) - vz7: mount: Consider EBUSY binfmt_misc mount return as error (Kirill Tkhai ) - vz7: mount: Don't search for siblings inside self (Dmitry Safonov ) (#PSBM-67723) - vz7: sk-queue: fix non-fatal print log level (Stanislav Kinsburskiy ) - vz7: cr-service: Init page_ids laterly (Dmitry Safonov ) - vz7: images: Initialize images earlier (before page-server starts) (Dmitry Safonov ) (#PSBM-67335) - vz7: pages: Share page_ids between ns dump-helpers (Dmitry Safonov ) (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump (Stanislav Kinsburskiy ) - vz7: files-reg: forbid migration of opened device files on NFS (Stanislav Kinsburskiy ) (#PSBM-55590) - vz7: scripts: cleanup error output in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: scripts: check service mountpoint is not empty in systemd-autofs- restart.sh (Stanislav Kinsburskiy ) (#PSBM-67544) - vz7: mounts: print NFS nested mountpoint info (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: mounts: add unsupported mount helper (Stanislav Kinsburskiy ) (#PSBM-67466) - vz7: spfs: fix usage of mi->ns_mountpoint (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (Stanislav Kinsburskiy ) (#PSBM-66943) - vz7: tests: shm-unaligned -- Use unique key for simultaneous run (#PSBM-66764) - vz7: scripts: use absolute binaries paths systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66967) - vz7: scripts: skip spfs mount points in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) (#PSBM-66285) - vz7: scripts: check service mount point in "skip_service" systemd-autofs- restart.sh (Stanislav Kinsburskiy ) - vz7: scripts: "skip_service" helper introduced in systemd-autofs-restart.sh (Stanislav Kinsburskiy ) - vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Kirill Tkhai ) - vz7: Makefile: Fix scripts installation - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (Stanislav Kinsburskiy ) (#PSBM-65483) - vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185) - vz7: restore_sk_queue -- Show how many bytes already sent (#PSBM-64628) - vz7: sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: dump: Any non-negative return code of run_scripts means an error (Andrei Vagin ) (#PSBM-62583) - vz7: seize -- Show detached pid in freezer_detach - vz7: Show status of uninterruptable task (#PSBM-63211) - vz7: ucred -- Drop packets from dead processes (#PSBM-62603) - vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - vz7: test: Add ucreds test - vz7: Zap file size checking for "atop" (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (Andrei Vagin ) (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 (Andrei Vagin ) - vz7: socket: don't restore ucred from kernel messages (Andrei Vagin ) - vz7: netlink: dump/restore netlink options (Andrei Vagin ) - vz7: netlink: restore queues and only then restore opts (Andrei Vagin ) - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: criu: add more information about control messages (Andrei Vagin ) (#PSBM-60643) - vz7: test: check ucred for netlink messages (Andrei Vagin ) - vz7: netlink: dump and restore ucred-s for netlink messages (Andrei Vagin ) (#PSBM-59339) - vz7: mount: fix mounting non-root shared mounts (Andrei Vagin ) (#PSBM-55494) - vz7: pipes -- Restore pipe size via userns call (#PSBM-59829) - vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper - vz7: tty: Fix devpts mounts resolving (Cyrill Gorcunov ) (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper (Cyrill Gorcunov ) - vz7: Unlimit UBC when chekpointing (#PSBM-53593 #PSBM-61534 #PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: zdtm: check a netlink socket with in-kernel state (Andrei Vagin ) - vz7: netlink: allow to dump netlink sockets with in-progress operations (Andrew Vagin ) - vz7: ghost files: don't check ghost size if it's an NFS path (Stanislav Kinsburskiy ) (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED - vz7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - vz7: util: Add rmdirp helper - vz7: mount: handle error from restore_shared_options() (Andrei Vagin ) - vz7: seize: Add additional diagnose messages (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (Andrei Vagin ) (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (Stanislav Kinsburskiy ) (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory (Stanislav Kinsburskiy ) - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (Stanislav Kinsburskiy ) (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (Kirill Tkhai ) (#PSBM-52320) - vz7: cg: Don't dump devices.list (#PSBM-50551) - vz7: cr-restore: use spfs helpers to control spfs manager (Stanislav Kinsburskiy ) - vz7: spfs: add new helpers to replces bash scripts calls (Stanislav Kinsburskiy ) - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry (Stanislav Kinsburskiy ) - vz7: mount: create a temporary mount to restore shared and master groups (Andrey Vagin ) (#PSBM-47508) - vz7: files-reg: fix silly-renamed files migration (Stanislav Kinsburskiy ) - vz7: files-reg: improve spfs_file helper (Stanislav Kinsburskiy ) - vz7: spfs: remove obsolete code (Stanislav Kinsburskiy ) - vz7: files-reg: migrate "spfs" files as ghost-ones (Stanislav Kinsburskiy ) - vz7: files-reg: conditionally dump content in dump_ghost_file (Stanislav Kinsburskiy ) - vz7: files-reg: split create_ghost (Stanislav Kinsburskiy ) - vz7: scripts: remove obsolete scripts (Stanislav Kinsburskiy ) - vz7: Makefile: install spfs-release-replace.sh script (Stanislav Kinsburskiy ) (#PSBM-49726) - vz7: util: mkdirname helper introduced (Stanislav Kinsburskiy ) - vz7: dump: Show task comm early - vz7: spfs: do not tolerate file existence on creation (Stanislav Kinsburskiy ) - vz7: spfs: fix freeze cgroup path discovery (Stanislav Kinsburskiy ) - vz7: cgroup: new_cg_root_get helper introduced (Stanislav Kinsburskiy ) - vz7: criu: remove NFS unlinked files restriction (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs unlinked file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: files-reg: migrate spfs file as "link remap" objects (Stanislav Kinsburskiy ) - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file (Stanislav Kinsburskiy ) - vz7: spfs: explicitly pass size and mode to spfs_create_file (Stanislav Kinsburskiy ) - vz7: link_remap: do not create excessive links for a single file (Stanislav Kinsburskiy ) - vz7: mount: forbid dumping overmounted NFS (Stanislav Kinsburskiy ) (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data (Andrew Vagin ) - vz7: netlink: restore data in a received queue for netlink sockets (Andrei Vagin ) (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages (Andrew Vagin ) - vz7: check: check whether NETLINK_REPAIR is supported or not (Andrew Vagin ) - vz7: netlink: request flags for netlink sockets (Andrew Vagin ) - vz7: files-reg: forbid to dump unlinked NFS files (Stanislav Kinsburskiy ) - vz7: proc_parse: forbid dumping NFS remote locks (Stanislav Kinsburskiy ) - vz7: files-reg: create spfs file in case of parent mount is SPFS (Stanislav Kinsburskiy ) - restore: pidfile -- write before post-restore stage (#PSBM-90289) - log: Write more details in write_pidfile - vz7: compel -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - vz7: tty: Save task current terminal if present - vz7: files: Allow to dump ploopX files opened (#PSBM-49723) - vz7: spfs: remove "ns_list" option from "replace" command as obsolete (Stanislav Kinsburskiy ) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (Eugene Kolomeetz ) (#PSBM-44207) - vz7: scripts: restart all systemd automount services (Eugene Kolomeetz ) (#PSBM-46672) - vz7: util: Add cr_set_root/cr_restore_root helpers (Andrew Vagin ) - vz7: spfs: do not treat existent file as error in create_reg_file (Stanislav Kinsburskiy ) - vz7: scripts: spfs-release-replace.sh introduced (Stanislav Kinsburskiy ) - vz7: criu: spfs -- Fixup various nits for NFS sake - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (Stanislav Kinsburskiy ) (#PSBM-26967) - vz7: mount: Add support for NFSv4 (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFSv4 type added (Stanislav Kinsburskiy ) - vz7: mount: add support for NFS (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: NFS type added (Stanislav Kinsburskiy ) - vz7: spfs -- Mitigate sock_seqpacket_connect - vz7: spfs -- Mitigate spfs_manager_socket_path - vz7: mount: add support for SUNRPC Pipefs (Stanislav Kinsburskiy ) - vz7: protobuf/mnt.proto: RPC Pipefs type added (Stanislav Kinsburskiy ) - vz7: scripts: allow-nfs-ports.sh added (Stanislav Kinsburskiy ) - vz7: action-scripts: ACT_POST_NET_LOCK stage added (Stanislav Kinsburskiy ) - vz7: scripts: spfs-change-mode.sh added (Stanislav Kinsburskiy ) - vz7: spfs: delayed mounts facility introduced (Stanislav Kinsburskiy ) - vz7: cr-restore: declare SPFS_MNGR_SK service fd (Stanislav Kinsburskiy ) - vz7: filemap: collect mapped file fs type (Stanislav Kinsburskiy ) - vz7: aio: Don't fail if kernel does not support aio wait (Kirill Tkhai ) (#PSBM-42488) - vz7: Wait aio pending requests (Kirill Tkhai ) (#PSBM-42488)- spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-94209 #PSBM-92070) - Revert "spfs: Retrieve NFS server IP address from mountinfo" - Revert "script/spfs: resolve dns to ip for iptables utility" (Pavel Tikhomirov )- spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-92070)- script/spfs: resolve dns to ip for iptables utility (Pavel Tikhomirov ) (#PSBM-92070)- Revert "spfs: Retrieve NFS server IP address from mountinfo" (#PSBM-93882)- build: Makefile.version - net: add support for "net/core/*" sysctls (Jan Dakinevich ) (#PSBM-91415) - spfs: Retrieve NFS server IP address from mountinfo (Pavel Vokhmyanin ) (#PSBM-92070) - sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-93461) - files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511)- sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-93461)- files: make rst_remaps shmalloc'ed to see it's change in other process (Pavel Tikhomirov ) (#PSBM-93511) - files: split remaps list to two one on dump one on restore (Pavel Tikhomirov ) (#PSBM-93511)- spfs: Fix typo in get_spfs_mngr_sock (#PSBM-93663)- spfs: When fetching sfd provide a copy of it (#PSBM-93663)- spfs: Return proper service fd from install_service_fd call (#PSBM-93462)- mount: fix order of mnt namespaces in united mount tree (Pavel Tikhomirov ) (#PSBM-93305)- test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - zdtm: use --check-mounts by default (Pavel Tikhomirov ) (#PSBM-86686) - rpc: Add interface for --check-mounts option (Pavel Tikhomirov ) (#PSBM-86686) - mount: check that mounts tree restored without any hidden problems (Pavel Tikhomirov ) (#PSBM-86686) - mount: rework mount tree build step on restore (Pavel Tikhomirov ) (#PSBM-86686) - ns/restore/image: do not read namespace images for non-namespaced case (Pavel Tikhomirov ) (#PSBM-86686) - ns: make rst_new_ns_id static (Pavel Tikhomirov ) (#PSBM-86686) - mount: remove useless check in populate_mnt_ns (Pavel Tikhomirov ) (#PSBM-86686)- epoll: Fix qsort args passing- test: epoll -- Add migrated targets (Cyrill Gorcunov ) - epoll: Add suppport for migrated targets (Cyrill Gorcunov ) (#PSBM-90012) - epoll: Fix typo in message when no target found (Cyrill Gorcunov ) - epoll: Drop duped and closed targets (Cyrill Gorcunov ) - test: epoll -- Add file inherited case (Cyrill Gorcunov ) - epoll: Ignore migrated targets (Cyrill Gorcunov ) - epoll: Defer queued epolls to write at the end of checkpoint (Cyrill Gorcunov ) - epoll: Eliminate potential variable shadowing (Cyrill Gorcunov ) - Revert "test: epoll -- Add migrated target test" - Revert "epoll: Eliminate potential variable shadowing" - Revert "epoll: Defer queued epolls to write at the end of checkpoint" - Revert "epoll: Drop duped and closed targets" - Revert "epoll: Add ability to restore migrated targets" - Revert "epoll: Save virtual pid for targets" - Revert "epoll: Fix typo in flush_eventpoll_dinfo_queue"- restorer: add additional debugging on clone errors (Pavel Tikhomirov ) (#PSBM-92904) - epoll: Fix typo in flush_eventpoll_dinfo_queue (#PSBM-92672)- early_init: Force to unlimit files on early init (#PSBM-92451)- Revert "test: Add unlink_dir test" - Revert "files: Rework clean_one_remap to order ghost dirs removal"- test: Add unlink_dir test (Cyrill Gorcunov ) - files: Rework clean_one_remap to order ghost dirs removal (Cyrill Gorcunov ) (#PSBM-91524) - files: Add file_remap_init (Cyrill Gorcunov ) - util: Add mkdirpat_precise helper (Cyrill Gorcunov ) - Revert "files: Order ghost directories enties" - Revert "test: Add unlink_dir test" - test: sockets_dgram -- Don't use /tmp (Cyrill Gorcunov )- zdtm/mntns_deleted: check if c/r is fine with deleted directory ancestor (Pavel Tikhomirov ) (#PSBM-77022) - mount: temporary create needed ancestor directories for deleted root (Pavel Tikhomirov ) (#PSBM-77022)- test: Add unlink_dir test (Cyrill Gorcunov ) - files: Order ghost directories enties (Cyrill Gorcunov ) (#PSBM-91524) - arch,x86: Investigate OSPKE status when handling PKU (#PSBM-91098)- ve: tty -- Preallocate space for itty pool (#PSBM-90662) - ve: tty -- Eliminate possible race in ve_itty_insert - ve: tty -- Drop leftover comment - ve: tty -- Investigate master fds with a mutex taken (#PSBM-90662) - ve: rst,files -- Guard list with mutex (#PSBM-90662) - ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance, v2 (#PSBM-76490) - sockets: Don't exit with error if raw module unloaded (Cyrill Gorcunov ) - sockets: Be more verbose in collect_err (Cyrill Gorcunov ) - net: libnetlink -- Drop ERROR keyword from default handler (Cyrill Gorcunov ) - net: sockets -- Don't spam log with known errors (Cyrill Gorcunov ) - net: libnetlink -- Call error handler instead of unconditional error message (Cyrill Gorcunov ) - test: epoll -- Add migrated target test - epoll: Save virtual pid for targets - epoll: Add ability to restore migrated targets (#PSBM-90012) - epoll: Drop duped and closed targets - epoll: Defer queued epolls to write at the end of checkpoint - Revert "epoll: Ignore migrated tfds on checkpoint" - Revert "test: epoll -- Add file inherited case" - zdtm.py: also check that mount flags are restored correct (Pavel Tikhomirov ) (#PSBM-82991) - zdtm: test dumping file on overmounted mount fails (Pavel Tikhomirov ) (#PSBM-82991) - files: open files on overmounted mounts are not supported (Pavel Tikhomirov ) (#PSBM-82991) - zdtm: ghost on readonly fs (Pavel Tikhomirov ) (#PSBM-82991) - mount: remount ro mounts writable before ghost-file restore (Pavel Tikhomirov ) (#PSBM-82991) - mount: save the result of mnt_is_overmounted (Pavel Tikhomirov ) (#PSBM-82991) - mount: remove unused argument of do_restore_task_mnt_ns (Pavel Tikhomirov ) (#PSBM-82991) - files: don't add double slash to path in create_ghost (Pavel Tikhomirov ) - vz7: Add Makefile.version - crtools: Show command line in log - Rebase to vanilla criu v3.11- restore: pidfile -- write before post-restore stage (#PSBM-90289) - Revert "restore: pidfile -- Write from ve0 context"- restore: pidfile -- Write from ve0 context (#PSBM-90289)- log: Write more details in write_pidfile - files: Select proper master fd when collecting fd (#PSBM-90293) - pstree: Introduce pstree_pid_cmp helper- test: epoll -- Add file inherited case - epoll: Ignore migrated tfds on checkpoint (#PSBM-89961) - test: netns_sub_veth -- Disable for a while - epoll: Eliminate potential variable shadowing (#PSBM-89961)- restore: Fix hang if root task is waiting on zombie (#PSBM-89830) - restore: Don't ignore errors on wait in restore_one_zombie - restore: Add more detailed log in wait_exiting_children - restore: zombie -- Add more detailed log on signals- raw: Don't carry zero options into the image (#PSBM-89822)- inet: raw -- Add compatibility layer for old images - inet: More readable content in show methods (Cyrill Gorcunov ) - sockets: Improve helpers to make sockets more readable (Cyrill Gorcunov ) - net: Add prefixes for better logging (Cyrill Gorcunov ) - inet: raw -- Add socket-raw test (Cyrill Gorcunov ) - inet: raw -- Add checkpoint and restore of raw sockets - inet: raw -- Split lookup_socket helper (Cyrill Gorcunov ) - inet: raw -- Add preloading raw_diag module (Cyrill Gorcunov ) - inet: raw -- Add raw sockets into can_dump_inet_sk (Cyrill Gorcunov ) - inet: raw -- Skip IP_FREEBIND for ipv6 SOCK_RAW sockets (Kirill Tkhai ) - inet: raw -- Prepare gen_uncon_sk for raw sockets (Cyrill Gorcunov ) - inet: raw -- Reuse already known family and type in gen_uncon_sk (Cyrill Gorcunov ) - inet: raw -- Fetch socket type and check for being raw in can_dump_ipproto (Cyrill Gorcunov ) - inet: raw -- Check for kernel diag module support (Cyrill Gorcunov ) - inet: raw -- Add constants needed to fetch properties of a raw socket (Cyrill Gorcunov ) - compiler: Add NELEMS_AS_ARRAY helper (Cyrill Gorcunov )- mount: cr_pivot_root -- Try temp directory first (#PSBM-89582) - mount: Fix typo in message - ve: Add helpers for debug sake- fown: test -- Improve error messaging in file_fown_dead - fown: test -- Update file_own_dead to test O_PATH case - fown: Don't fail on dumping files opened wit O_PATH (#PSBM-89680) - fown: test -- Add file_fown_dead - fown: Dont fail if owner is a dead pid (#PSBM-88336) - .gitignore: Add patches/- ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance, v2 (#PSBM-76490) - ve: tty -- Add more detailed debug print in ctty verification - ve: tty -- Save pid of a task which setups a controlling terminal - ve: tty -- Save tty_pgrp in process tree upon read - Revert "ve: tty -- Add support of tty inheritance" - Revert "ve: tty -- Fill ctty deps from the root task" - Revert "ve: tty -- Add tty-inherit test" - unix: Don't forget to restore original errno - pr-warn: Add missing newlines- ve: tty -- Fill ctty deps from the root task (#PSBM-89336)- image: Add missing newline into messages - zdtm: check criu restore with --auto-dedup (Pavel Tikhomirov ) (#PSBM-89056) - image/dedup: use userns_call to be able to open images for write (Pavel Tikhomirov ) (#PSBM-89056) - Punch holes in input files when restoring anonymous non-shared memory if --auto-dedup is enabled. (Pawel Stradomski ) (#PSBM-89056)- cr_pre_dump_finish: Fix ignorance of error upon enter (#PSBM-89231) - compel: Don't forget to zap remote_map pointer after release (#PSBM-89231)- ve: tty -- Add tty-inherit test - ve: tty -- Add support of tty inheritance (#PSBM-76490) - ve: tty -- Don't stuck if several ctty opened - ve: tty -- Save virtual group id - ve: tty -- Collect real ppid, pgid, sid on dump - ve: tty -- Add kdat entry to test if wa have ability to restore inhertied tty - x86: cpu -- Don't fail if member is not present in image (#PSBM-89215)- unix: Disable switching mount namespace (#PSBM-89126) - vz7: files-reg -- Show which exactly file can't be created - crtools: Show command line in log - unix: Don't forget to close ns descriptor on error path- test: tun -- Check if names are not clashed in different ns (#PSBM-88851) - tun: Add compatibility with old images (#PSBM-88851)- tun: Add support for multiple net ns (Cyrill Gorcunov ) - tun: Set net ns before opening master (Cyrill Gorcunov ) (#PSBM-88714) - tun: Define log prefix (Cyrill Gorcunov ) - test: sk-unix-mntns -- Check for unshare code - test: tun_ns -- Make sure unshare passed - test: bind-mount-unix -- Implement real connect - unix: unix_prepare_bindmount -- Allow to connect via relative name (#PSBM-88274) - unix: unlink_sk -- Don't unlink bindmounted sockets - unix: bind_unix_sk -- Add ability to skip waiters notification (#PSBM-88274) - unix: make_socket -- Break connected pair if requested - unix: make_socket -- Add more detailed logs - unix: break_connected -- Add a log recod - unix: bindmount -- Show details about queuer- Revert "vz7: scripts: use absolute binaries paths nfs-ports-allow.sh" (Pavel Tikhomirov ) (#PSBM-88499) - nfs: when allowing ports in CT netns on dump use host's iptables binary (Pavel Tikhomirov ) (#PSBM-88499) - python-criu: Add dependency on python-six (#PSBM-88425)- inet: raw -- Skip IP_FREEBIND for ipv6 SOCK_RAW sockets (Kirill Tkhai ) (#PSBM-88262) - test: sk-unix-ucred -- Make compatible with gcc 8- vz7: image -- Add compat layer for Core entry (#PSBM-88238) - unix: typo fix (Andrei Vagin ) - unix: check that a length of a socket is less than UNIX_PATH_MAX (Andrei Vagin ) - compel: Make sure the hostprog is built early (Cyrill Gorcunov ) - compel: Move lib files into lib-y (Cyrill Gorcunov ) - nmk: Make collect-deps to be more precise about targets (Cyrill Gorcunov ) - nmk: Add obj and lib deps gathering via helpers (Cyrill Gorcunov ) - nmk: Add collect-target-deps helper (Cyrill Gorcunov ) - nmk: Add collect-hostprogs-deps helper (Cyrill Gorcunov ) - nmk: Align continuations (Cyrill Gorcunov ) - nmk: Drop unneeded ld_flags (Cyrill Gorcunov ) - nmk: Gather reserved vars on top of build (Cyrill Gorcunov ) - nmk: Filter out already seen targets from collect-deps (Cyrill Gorcunov ) - nmk: Don't include deps on mrproper (Cyrill Gorcunov )- x86: cpu -- Require compatibility on instruction level by default (#PSBM-88119) - x86: cpu -- Use native uint_x types - Rebase to vanilla criu v3.10- mount: fix segmentation fault in can_mount_now on no mnt_master (Pavel Tikhomirov ) (#PSBM-86978)- unix: Add compatibility with u7 images (#PSBM-86861) - unix: image -- Restore mnt_id index - zdtm: temporary make mnt_ext_auto and private_bind_propagation noauto (Pavel Tikhomirov ) (#PSBM-85251) - dump/files: remove a leftover from dead_pid_conflict (Pavel Tikhomirov ) (#PSBM-55217) - mount: fix regression where open_mountpoint failed on readonly fs (Pavel Tikhomirov )- zdtm: add a test for non-uniform shares (Pavel Tikhomirov ) - mount: remove validate_shared as now we allow non-uniform sharings (Pavel Tikhomirov ) (#PSBM-78703) - mount: use propagation groups in propagate_mount replacing excess search (Pavel Tikhomirov ) - mount: improve can_mount_now using propagation groups (Pavel Tikhomirov ) - mount: put all mounts which propagate from each other to a list (Pavel Tikhomirov ) - zdtm: check children of shared slaves restore (Pavel Tikhomirov ) - mount: fix can_mount_now to wait children of master's share properly (Pavel Tikhomirov ) - zdtm: add a test for unsupported children collision (Pavel Tikhomirov ) - mount: add helper to check unsupported children collision (Pavel Tikhomirov )- inet: raw -- Storm the test with all protos (#PSBM-86357) - inet: raw -- Lookup for collected bit on non-raw sockets only (#PSBM-86357)- zdtm/static: add a test to check epoll file descriptors (Andrei Vagin ) - epoll: Use epoll queues to speedup multiple duped fds (#PSBM-86295) - files: make_gen_id -- Promote to be general helper (Cyrill Gorcunov ) - epoll: Add kid_lookup_epoll_tfd helper (Cyrill Gorcunov ) - epoll: Exit with error if tfd is missing (Cyrill Gorcunov ) - epoll: Save fields of target files in eventpoll_tfd_entry (Cyrill Gorcunov ) - epoll: Add kcmp_epoll check - epoll: Align members in assignments (Cyrill Gorcunov ) - epoll: Print efd id when showing targets (Cyrill Gorcunov ) - epoll: Show tfd in decimal form (Cyrill Gorcunov ) - epoll: Add support for multiple duped fds (Cyrill Gorcunov ) - Revert "epoll: Add support for multiple duped fds" - Revert "epoll: Drop unneeded variable from cycle" - Revert "test: eventfs00 -- Extend to test duped fd" - Revert "epoll: Fix typo in var type"- epoll: Fix typo in var type (#PSBM-86256)- Revert "mount: don't lose shared options for bind mounts"- fdstore: Unlimit fdstore queue on start (#PSBM-86038) - Revert "fdstore: Print detailed error when queue is exhausted" - test: eventfs00 -- Extend to test duped fd (Cyrill Gorcunov ) - epoll: Drop unneeded variable from cycle (Cyrill Gorcunov ) - epoll: Add support for multiple duped fds (#PSBM-60161) - Revert "test: eventfs00 -- Extend to test duped fd"- fdstore: Print detailed error when queue is exhausted (Cyrill Gorcunov ) (#PSBM-86038) - zdtm: shared options should not be lost for bind mounts (Pavel Tikhomirov ) - zdtm.py: also check that sharing options are restored for mounts (Pavel Tikhomirov ) - mount: don't lose shared options for bind mounts (Pavel Tikhomirov ) (#PSBM-85251) - unix: test,sk-unix01 -- Fix data sending for be machines (Cyrill Gorcunov )- net: veth -- Don't force to create master peer index if no nsid (#PSBM-85558) - net: Add net log prefix- test: eventfs00 -- Extend to test duped fd (Cyrill Gorcunov ) - epoll: Use kcmp to find proper target file (Cyrill Gorcunov ) (#PSBM-60161) - epoll: Use real file transferred for target fds check (Cyrill Gorcunov ) - epoll: Pass drained fds to dump_one_file - epoll: kdat -- Check if we have KCMP_EPOLL_TFD support - kcmp: Add epoll definitions (Cyrill Gorcunov ) - kcmp: Drop empty line at EOF (Cyrill Gorcunov ) - kcmp: Beautify kcmp-ids.h (Cyrill Gorcunov ) - kcmp: Cleanup sources (Cyrill Gorcunov ) - Revert "vz7: epoll -- Dont fail on dup'ed fd restore" - Revert "vz7: epoll -- Use real file transferred for target fds check"- inventory: save dump_uptime for criu dump if track_mem is set (Andrei Vagin ) (#PSBM-85936) - zdtm: check that pid-reuse does not break iterative memory dump (Pavel Tikhomirov ) (#PSBM-67502) - zdtm/lib: add pre-dump-notify test flag (Pavel Tikhomirov ) - memory: don't use parent memdump if detected possible pid reuse (Pavel Tikhomirov ) (#PSBM-67502) - inventory: add a helper to get entry of parent pre-dump (Pavel Tikhomirov ) (#PSBM-67502) - inventory: save uptime to know when dump had happened (Pavel Tikhomirov ) (#PSBM-67502) - parse: add a helper to obtain an uptime (Pavel Tikhomirov ) (#PSBM-67502) - Revert "parse: add a helper to obtain an uptime" - Revert "stats: save uptime to know when dump had happened" - Revert "stats: add a helper to get stats of parent pre-dump" - Revert "memory: don't use parent memdump if detected possible pid reuse" - Revert "mem: Fix typo in detect_pid_reuse" - Revert "mem: pid-reuse -- Don't fail if no stat image present" - Revert "pid-reuse: temporary use stat file from cwd if has no parent stats" - x86: cpu -- Proceed even if xsavec detected for dev reason (Cyrill Gorcunov )- unix: Add bind-mount-unix test case (Cyrill Gorcunov ) - unix: Add support for bindmounted sockets (#PSBM-82616) - unix: Move shared data init into early stage (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets into own list (Cyrill Gorcunov ) - unix: Collect images before opening mountpoints (Cyrill Gorcunov ) - unix: Collect bindmounted unix sockets - unix: image -- Move uflags into enum - unix: image -- Shift mnt_id index (Cyrill Gorcunov ) - zdtm: Add sstrncpy helper (Cyrill Gorcunov )- x86: cpu -- Show which exactly features are failing in fpu capability mode (Cyrill Gorcunov ) - x86: cpu -- Use rt information since it might we filtered - x86: cpu -- Add ability to ignore xsaves (Cyrill Gorcunov ) - compel: cpu -- Add ability to clear features (Cyrill Gorcunov ) - x86: cpu -- Report when unsupported compact xsave frame detected (#PSBM-83611) - x86: cpu -- Check for xsaves bit on cpu validation (Cyrill Gorcunov ) - x86: cpu -- Show additional xsave info on init (Cyrill Gorcunov ) - x86: cpu -- Add new instruction bits to check (Cyrill Gorcunov ) - x86: cpu -- Sync bits with kernel - crit: Show cpuinfo image - x86: Use uint_x types in rt_sigcontext (Cyrill Gorcunov ) - vz7: net -- Add missing newline into debug message- vz7: Move cpu_init into early_init (#PSBM-85265)- unix: test -- Add sk-unix01 test (#PSBM-82615) - unix: Improve debug message when collecting socket (Cyrill Gorcunov ) - unix: Add support of ghost sockets (#PSBM-82615) - unix: Use decimal format for inode printing (Cyrill Gorcunov ) - unix: Rename unlink_stale to unlink_sk (Cyrill Gorcunov ) - unix: Move unix_resolve_name declaration on top - sk-unix: don't pass a negative value to close() (Andrei Vagin ) - parasite: Rename misnamed nr_pages (Dmitry Safonov ) - zdtm: mount tmpfs into /run in a test root (Andrei Vagin ) - fs: take into account that cr_system overrides standard descriptors (Andrei Vagin ) - net: workaround a problem when iptables can't open /run/xtables.lock (Andrei Vagin ) - zdtm: create /run in a test root (Andrei Vagin ) - criu: fix 'criu --version' - service: don't cache a service descriptor - files: drop O_TMPFILE from file descriptor flags (Andrei Vagin ) - criu: print criu and kernel versions from log_init() - criu: initialize logging for libraries from log_set_loglevel() - zdtm: check an exit code of a straced restore (Andrey Vagin ) - zdtm.py: fix a logic about determing a test flavor in a error case (Andrei Vagin ) - unix: split dump_external_sockets() for readability (Andrey Vagin ) - unix: fix an error code in bind_unix_sk() - unit: don't check ui->ue->name.len twice in bind_unix_sk() (Andrey Vagin ) - unix: split bind_unix_sk() for readability (Andrey Vagin ) - unix: restore sockets on correct mount points - unix: resolve a socket file when a socket descriptor is available - kerndat: check the SIOCUNIXFILE ioctl for unix sockets - unix: handle sockets with USK_CALLBACK as external sockets (Andrey Vagin ) - sockets: Add sock_type_name and tcp_state_name helpers (Cyrill Gorcunov ) - unix: Unify id and ino prints (Cyrill Gorcunov ) - seccomp: Don't exit from __export_restore_thread (Cyrill Gorcunov ) - seccomp: Use own seccomp_metadata_t type (Cyrill Gorcunov ) - action-scripts: check a return code of get_service_fd - kdat: fill kdat by zero-s before initializing it (Andrei Vagin )- files: Don't forget on stipping deleted postfix on linked files (#PSBM-84731)- unix: Improve init_unix_sk_info - unix: Unify printings on peer open (Cyrill Gorcunov ) - unix: Print reverted dir info if only directory provided - unix: Don's spam with warning if nothing to unlink (Cyrill Gorcunov ) - unix: Adjust unix_desc_ops members - unix: Adjust unix_sk_info members - unix: Use uint32_t instead of u32 - unix: Use one word log prefix (Cyrill Gorcunov ) - arch, ppc64: Add missing atomic_dec_and_test helper (Cyrill Gorcunov ) - seccomp: Fix building issue on recent kernels (Cyrill Gorcunov ) - mem: Fix typo in detect_pid_reuse - seccomp: Fix typo in collect_filters - tun: don't leak a file descriptor (Andrei Vagin ) - pie/log: print space after timestamp (Andrei Vagin ) - compel/log: increase a max line length (Andrey Vagin ) - sfd: Don't forget to test sfd_map when closing old fds (#PSBM-83892)- swrk: Don't forget to setup loggin into compel (#PSBM-84029) - cpu: x86 -- Call for cpu_init before kerndat_init (#PSBM-84029)- seccomp: Move changed ptrace flags setup after creds (#PSBM-84198)- seccomp: test,seccomp_filter_threads -- Fix compilation on old distros - seccomp: test -- Open in readonly mode (Cyrill Gorcunov ) - seccomp: test,seccomp_filter_threads -- Use multiple threads (Cyrill Gorcunov ) - seccomp: Dont forget to suspend filtering on threads (#PSBM-78762)- files: define O_TMPFILE (Pavel Tikhomirov ) (#PSBM-83713)- seccomp: test -- Add seccomp_filter_threads (Cyrill Gorcunov ) - seccomp: Add engine to checkpoint per-thread seccomp chains (#PSBM-78762) - seccomp: Add engine to restore per-thread seccomp chains (#PSBM-78762) - seccomp: Fetch seccomp flags if kernel provides (Cyrill Gorcunov ) - seccomp: Move seccomp_info into seccomp.h (Cyrill Gorcunov ) - seccomp: Define log prefix (Cyrill Gorcunov ) - seccomp: compel -- Add PTRACE_SECCOMP_GET_METADATA definition (Cyrill Gorcunov )- pid-reuse: temporary use stat file from cwd if has no parent stats (Pavel Tikhomirov ) (#PSBM-82864)- files: fix clone_service_fd overlap handling (Pavel Tikhomirov ) (#PSBM-83472)- netlink: Change NETLINK_REPAIR number (#PSBM-83415) - files: Fail dump if dump_one_file() fails (Andy Tucker )- sfds: Fix UB in choose_service_fd_base due to calling __builtin_clz(0) (Radoslaw Burny ) - files: Don't fail on cgroup directories mode change (Cyrill Gorcunov ) (#PSBM-83154)- files: Don't fail on cgroup directories mode change (#PSBM-83154)- zdtm: Add tun_ns test (Andrew Vagin ) - net: Dump tun device net id in img (Andrew Vagin ) - tun: Check that net ns of tun device is dumped - tun: Check tun has ioctl() cmd SIOCGSKNS - net: Extrack ioctl() call from kerndat_socket_netns() - test: unlink_multiple_largefiles -- Make noauto (Cyrill Gorcunov ) - zdtm: Add a test to check if we can C/R ghost files with no parent dirs. (Vitaly Ostrosablin ) - restore: Do not init fdstore twice - sk-unix: Use unsigned values for inodes (Cyrill Gorcunov ) (#PSBM-82945) - vz: test -- Make socket_udp-corked use different port (Vitaly Ostrosablin )- mem: pid-reuse -- Don't fail if no stat image present (Pavel Tikhomirov ) (#PSBM-82806)- vz: pipes -- Restore pipe size in sync mode (#PSBM-82796) - unix: Fix nil dereference in find_queuer_for (#PSBM-82796)- inet: raw -- Add simple socket-raw test (Cyrill Gorcunov ) - inet: raw -- Add restore of raw sockets (Cyrill Gorcunov ) (#PSBM-82683) - inet: raw -- Dump raw sockets options (Cyrill Gorcunov ) - inet: raw -- Add raw sockets into can_dump_inet_sk (Cyrill Gorcunov ) - inet: raw -- Prepare gen_uncon_sk for raw sockets (Cyrill Gorcunov ) - inet: raw -- Reuse already known family and type in gen_uncon_sk (Cyrill Gorcunov ) - inet: raw -- Fetch socket type and check for being raw in can_dump_ipproto (Cyrill Gorcunov ) - inet: raw -- Check for kernel diag module support - inet: raw -- Add constants needed to fetch properties of a raw socket (Cyrill Gorcunov ) - Revert "vz7: sk-inet: Add initial support for raw sockets" - Revert "vz7: test: Add simple socket-raw test" - Revert "vz: test,socket-raw -- Disable for a while" - memory: don't use parent memdump if detected possible pid reuse (Pavel Tikhomirov ) (#PSBM-67502) - stats: add a helper to get stats of parent pre-dump (Pavel Tikhomirov ) (#PSBM-67502) - stats: save uptime to know when dump had happened (Pavel Tikhomirov ) (#PSBM-67502) - parse: add a helper to obtain an uptime (Pavel Tikhomirov ) (#PSBM-67502)- vz: net: Skip IP_FREEBIND for ipv6 SOCK_RAW sockets (Kirill Tkhai ) (#PSBM-82558)- seccomp: test -- Add seccomp_filter_threads (Cyrill Gorcunov ) - seccomp: Allow to dump thread with different seccomps (Cyrill Gorcunov ) - seccomp: Drop no longer needed comment (Cyrill Gorcunov ) - seccomp: Drop filter mode on tsync propagation (Cyrill Gorcunov ) - seccomp: dump_seccomp_filters -- Be ready for chains absence (Cyrill Gorcunov ) - seccomp: collect_filters -- Drop unneeded parent (Cyrill Gorcunov ) - seccomp: Always setup chain flags (Cyrill Gorcunov ) - seccomp: Try use tsync flag if possible (Cyrill Gorcunov ) - seccomp: Add restore of per-thread filters (#PSBM-78762) - seccomp: Don't use BUG_ON in dump_seccomp_filters - seccomp: Rename last_filter to img_filter_pos - seccomp: Speedup entry cleaning - seccomp: Add support of per thread filters on dump - seccomp: Produce thread core records - seccomp: Drop leftover member from pstree - seccomp: Untaggle entries from process_tree - seccomp: Move filter position into seccomp_entry - seccomp: images,core -- Move seccomp data into per-thread origin - seccomp: Use tid_real member name - seccomp: Drop pi_creds from dmp_info - seccomp: Drop pstree_item from find_inherited - seccomp: Define prefix for logging - seccomp: Use collected seccomp_entry to figure out if filter is present - seccomp: Collect seccomp data on per-thread basis - seccomp: Move seccomp_info into seccomp.h - seccomp: Fetch seccomp flags if kernel provides - compel: seccomp -- Add PTRACE_SECCOMP_GET_METADATA data - eventpoll: Take into account number of semi-valid fds when dumping (#PSBM-81809)- eventpoll: Take into account number of semi-valid fds when dumping (#PSBM-81809) - check: Include sys/mount.h before linux/aio_abi.h - log: pr_warn_once -- Fix formatting- version: Lift up version to 200 - tty: ctty -- Add support for multiple inherited ctty opened (#PSBM-76490) - tty: Move session lookup leader into find_session_leader - kdat: Add test for ctty inheritance - tty: Fetch ctty index based on sid - tty: Add is_ctty helper - tty: Don't check for group inheritance - check: Include sys/mount.h before linux/aio_abi.h - log: pr_warn_once -- Fix formatting- inotify: Use fast way of obtaining desired watch descriptor number (#PSBM-81411) - kdat: Add check for inotify() INOTIFY_IOC_SETNEXTWD cmd (#PSBM-81411)- inotify: Fix open_*notify_fd() never fails - inotify: Do not DDOS by debug message on restore watch descriptor- files: change error to warning in linkat_hard error path (Pavel Tikhomirov ) - zdtm: check ghost restores on readonly fs if it is also a ghost in other writable bind (Pavel Tikhomirov ) - files: make convert_path_from_another_mp always return relative path (Pavel Tikhomirov ) (#PSBM-72351)- files-reg: Prepare for sysfs entries mode change (#PSBM-80585)- vz7/cgroup: fix ifpriomap skip (Pavel Tikhomirov )- zdtm: improve tempfs_overmounted test (Pavel Tikhomirov ) - mount: do remaps for child-overmount of another overmount (Pavel Tikhomirov ) - mount: fix try_remap_mount (Pavel Tikhomirov ) - mount: fix mnt_resort_siblings to work as described (Pavel Tikhomirov ) - zdtm: now tempfs_overmounted will pass so remove crfail (Pavel Tikhomirov ) - mount: make open_mountpoint handle overmouts properly (#PSBM-57362) - mount add umount_overmounts helper to make mount visible (Pavel Tikhomirov ) - mount: add __umount_children_overmounts helper to make mount visible (Pavel Tikhomirov ) - mount: add mnt_is_overmounted helper to check mount visibility (Pavel Tikhomirov )- restore: Split restore_one_helper() and wait exiting zombie children- Revert "vz7: bc, restore -- Check for failcounters on error" (#PSBM-80056)- arch, x86: int80 -- Clobber all rX registers (#PSBM-80095)- spfs: start SPFS manager in containers network namespace (Stanislav Kinsburskiy ) (#PSBM-79733)- spfs: switch mounts mode to STUB after root yard depopulation (Stanislav Kinsburskiy ) - spfs: return duplicated socket from usernsd (Stanislav Kinsburskiy ) (#PSBM-79462) - spfs: improve prints in spfs_set_mode() and spfs_release_replace() (Stanislav Kinsburskiy ) - spfs: improve SPFS manager start debug and error output (Stanislav Kinsburskiy ) - spfs: remove redundant spfs_service_fd() helper (Stanislav Kinsburskiy ) - spfs: improve error and debug output for spfs_mount() (Stanislav Kinsburskiy ) - spfs: introduce request_spfs_mngr_sock)() helper (Stanislav Kinsburskiy )- criu: Don't fail if ghost file has no parent dirs. (Vitaly Ostrosablin )- tty: Use mnt_id for first lookup of toplevel devpts (#PSBM-78460) - ns: Set hookups for all namespaces - ns: Set nested namespaces hookups- Revert "vz7: sfd: Lift up own fd limit on bootup" (#PSBM-67194) - vz7: service: Allow keep_open flag for a WAIT_PID command (#PSBM-58198) - test: static,aio01 -- Use proper type for context - test: sigaltstack -- Drop useless test of a leader stack (#PSBM-76744)- Revert "restore/cgroup: make root task enter cgroups before setup-namespaces action" (#PSBM-76648 #PSBM-76609) - soccr: c/r ipv6 sockets which handles ipv4 connections (#PSBM-72350)- soccr: c/r ipv6 sockets which handles ipv4 connections (#PSBM-72350)- restore/cgroup: make root task enter cgroups before setup-namespaces action (#PSBM-64756)- sk-inet: restore a value of SO_REUSEADDR (#PSBM-75515)- compel: x86,compat -- Make sure mmap fits compat task size (#PSBM-76379) - compel: Do not loose sign of result in compat syscall (#PSBM-76379)- compel: Do not loose sign of result in compat syscall (#PSBM-76379)- mount: export_mnt_ns_roots -- Fix lack on ending EOS- mount: allow overmount on parent with shared group (#PSBM-69501) - mount: fix parent shared group dependency in can_mount_now (#PSBM-69501)- net: execute iptables-restore in a target network namespace (#PSBM-75531) - vz7: crit: Use lu for pagemap images (#PSBM-75112) - vz7: image-desc -- Make pagemap and pagemap-shmem images to use lu (#PSBM-75112)- action-scripts: Export mount namespace roots via CRIU_MNT_NS_ROOTS (#PSBM-71861) - mount: Add export_mnt_ns_roots helper (#PSBM-71861) - build: Rename snapshot to tarball- vz7: libsoccr: ignore data in a sent queue, if a connect is closed (#PSBM-67026) - make: Add snapshot target- scripts: add "-w" to iptables command (Stanislav Kinsburskiy ) (#PSBM-73153)- kdat: if iptables-restore has xtable lock support do wait on lock - Revert "net: Call ip[6]tables-restore with -w parameter"- fsnotify: Filter event mask from old kernels (#PSBM-73140)- net: Call ip[6]tables-restore with -w parameter - Revert "net: Execute ip[6]tables-{save,restore} with -w option"- net: Execute ip[6]tables-{save,restore} with -w option (Kirill Tkhai )- net: Execute ip[6]tables-{save,restore} with -w option- autofs: use safe xatol() and xatoi() helpers (#PSBM-72109) - util: xatol() and xatoi() helpers introduced - Revert "vz7: util: xatol() and xatoi() helpers introduced" - Revert "vz: autofs: use safe xatol() and xatoi() helpers" - vz: autofs: use safe xatol() and xatoi() helpers (#PSBM-72109) - vz7: util: xatol() and xatoi() helpers introduced - zdtm: Implement different per-thread credentials testcase- vz: autofs: use safe xatol() and xatoi() helpers (#PSBM-72109) - vz7: util: xatol() and xatoi() helpers introduced - zdtm: Implement different per-thread credentials testcase- vz7: vdso: Map vdso with arch_prctl() if kdat.can_map_vdso (#PSBM-71884) - vz7: vdso/restorer: Don't map compatible vdso if it was unmapped (#PSBM-71884) - vz7: vdso: Don't park vdso/vvar if restoree doesn't have them (#PSBM-71884) - vz7: kdat: Add test for presence of vdso mapping API (#PSBM-71884) - vz7: vdso: Don't read pagemap or parse symtable (#PSBM-71884)- vz7: tests: do not try to read more than packet in AutoFS test (#PSBM-71078) - Revert "vz7: zdtm: print autofs request size, if read more than expected" - Revert "vz7: zdtm: fix autofs tes compilation" - Revert "vz7: zdtm: fix package memory allocation in autofs.c"- vz7: zdtm: fix package memory allocation in autofs.c (#PSBM-71078) - vz7: tty -- Fix TTY_BITMAP_BITS - vz7: image -- Add compat layer for Core entry (#PSBM-67671)- vz7: sk-unix -- Drop redundant unix_sk_cinfo reference- vz7: sk-tcp: Print libsoccr_save() error message - vz7: zdtm: fix autofs tes compilation (#PSBM-71041) - tty: collect_one_tty_info_entry -- Move tracking setup into main cycle (#PSBM-70929) - tty: collect_one_tty -- Make sure the index is in range - tty: tty_has_active_pair -- Make sure no overflow happened - tty: tty_test_and_set -- Make sure no overflow happened - tty: Fix __tty_verify_active_pairs - tty: Use macros for bitmap length - vz7: images -- Add task_core_entry_vz730 stub- Rebase on CRIU v3.4 (#PSBM-70650)- zdtm: print autofs request size, if read more than expected (#PSBM-70345)- test: mount -- Add bind-mount-unix - sk-unix: Handle bindmounted dgram sockets on restore (#PSBM-69473) - sk-unix: Save mnt_id for bindmounted entries (#PSBM-69473) - versions: Increase to not conflict with hotfix series- version: Force increase for hf1 - fsnotify: open_handle -- Handle multiple mounts with same s_dev (#PSBM-69473) - Log into /var/log/mesages large ghost files dumps (#PSBM-68320)- fsnotify: open_handle -- Handle multiple mounts with same s_dev (#PSBM-69473) - Log into /var/log/mesages large ghost files dumps (#PSBM-68320)- pie, restorer: Fix typo in wait_helpers (#PSBM-69378)- page-xfer: Make error message more verbose (#PSBM-68738)- Revert "sfd: Reserve service descriptors early" (#PSBM-69279 #PSBM-69259) - Revert "sfd: Don't forget to close pre-opened tty service fd"- sfd: Don't forget to close pre-opened tty service fd (#PSBM-69211)- sfd: Reserve service descriptors early (#PSBM-68738)- vz7/cgroup: Skip for awhile ifpriomap property restore (#PSBM-66683)- vz7: bc, restore -- Check for failcounters on error (#PSBM-68868) - vz7: criu: update second "iptables restore" helper to work in VE#0 (#PSBM-58574) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint- vz7: criu: update second "iptables restore" helper to work in VE#0 (#PSBM-58574) - vz7: systemd-autofs-restart.sh: return meaningful value from restore_mountpoint- vz7: criu: threads -- Allow uids/gids being different (#PSBM-68756) - vz7: sk-inet: udp -- Don't fail on calling shutdown on disconnected socket (#PSBM-68062) - vz7: mount: restore_task_mnt_ns - Lookup for mount namespace conditionally (#PSBM-68062)- net: do iptables restore in ve0 (#PSBM-58574) - net: iptables_tool_{dump,restore} helpers introduced - criu: export join_ve helper- restore: Fix deadlock when helper's child dies (#PSBM-67930) - page-xfer: handle a case when splice returns zero (#PSBM-68732)- mount: allow any types of NFS mount for a while (#PSBM-68663)- mounts: support NFS bind-mounts in the same shared group (#PSBM-68663)- criu: don't abort criu in lookup_create_item() (#PSBM-68607) - dump: set pid->state for threads (#PSBM-68585) - mounts: support only shared NFS mounts in inits mount namespace (#PSBM-66945)- mount: Switch user_ns before mount binfmt_misc (#PSBM-68377) - ve: Call binfmt_misc-mounting code in call_in_child_process() - util: Implement clone_in_child_process() helper - clone_noasan: Allow to create CLONE_VM|CLONE_VFORK processes - mount: Move binfmt_misc-mounting code to separate function - mount: Consider EBUSY binfmt_misc mount return as error- vz7: files -- Don't access value from stack in outer contex - mount: Don't search for siblings inside self (#PSBM-67723) - vz7: vdso: Map vdso with arch_prctl() if kdat.can_map_vdso (#PSBM-67017) - vdso/restorer: Don't map compatible vdso if it was unmapped - vdso: Don't park vdso/vvar if restoree doesn't have them - kdat: Add test for presence of vdso mapping API - vz7: vdso: Don't read pagemap or parse symtable (#PSBM-67017) - vdso: Introduce type for checking vdso hint in maps file - vz7: sk-queue: fix non-fatal print log level - vz7: netlink: fix warning print- vz7: vdso: Map vdso with arch_prctl() if kdat.can_map_vdso (#PSBM-67017) - vdso/restorer: Don't map compatible vdso if it was unmapped - vdso: Don't park vdso/vvar if restoree doesn't have them - kdat: Add test for presence of vdso mapping API - vz7: vdso: Don't read pagemap or parse symtable (#PSBM-67017) - vdso: Introduce type for checking vdso hint in maps file - vz7: sk-queue: fix non-fatal print log level - vz7: netlink: fix warning print- cr-service: Init page_ids laterly - images: Initialize images earlier (before page-server starts) (#PSBM-67335) - pages: Share page_ids between ns dump-helpers (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump - vz7: files-reg: forbid migration of opened device files on NFS (#PSBM-55590)- images: Initialize images earlier (before page-server starts) (#PSBM-67335) - pages: Share page_ids between ns dump-helpers (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump - vz7: files-reg: forbid migration of opened device files on NFS (#PSBM-55590)- pages: Share page_ids between ns dump-helpers (#PSBM-67335) - vz7: mount: check for mount is unsupported only on dump - vz7: files-reg: forbid migration of opened device files on NFS (#PSBM-55590)- scripts: cleanup error output in systemd-autofs-restart.sh (#PSBM-67544) - scripts: check service mountpoint is not empty in systemd-autofs-restart.sh (#PSBM-67544)- mem: Don't assume guard page is returned in procfs with new kernels (#PSBM-67433) - kerndat: Detect if we have guard page mangle in procfs output- mounts: print NFS nested mountpoint info (#PSBM-67466) - mounts: add unsupported mount helper (#PSBM-67466)- Drop libcompel explicit dependency from criu- Split libcompel and libcompel-devel to subpackages- spfs: fix usage of mi->ns_mountpoint (#PSBM-66943) - spfs: pass both "mountpoint" and "ns_mountpoint" paths to manager (#PSBM-66943)- Revert "vz7: sfd: Move service fd helpers into separate file" (#PSBM-65382) - Revert "vz7: sfd: Rework install, clone helpers to use fcntl" (#PSBM-65382) - Revert "vz7: sfd -- Don't forget to skip reserved fds on clone" (#PSBM-65382) - files: remove extra newline from a message- mount: don't use phys_stat_resolve_dev() in open_mount() (#PSBM-66981) - vz7: tests: shm-unaligned -- Use unique key for simultaneous run (Cyrill Gorcunov ) (#PSBM-66764)- scripts: use absolute binaries paths systemd-autofs-restart.sh (#PSBM-66967)- zdtm: run page-server via rpc - lib/py: allow to execute page-server as a child process - service: allow to execute page-server as a child process - scripts: use absolute binaries paths nfs-ports-allow.sh (#PSBM-66901)- ia32/feature-test: Don't check i686 libraries presence - nmk: Provide try-asm build check function - mount: Find NS_ROOT for cr-time mount on restore (#PSBM-66457)- vz7: sfd -- Don't forget to skip reserved fds on clone (#PSBM-66874)- Revert "vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump" - Revert "vz7: restore -- Lift up own file limits" - vz7: sfd: Lift up own fd limit on bootup (#PSBM-65382) - vz7: kdat: Add fetching files stat (#PSBM-65382) - vz7: sfd: Rework install, clone helpers to use fcntl (#PSBM-65382) - vz7: sfd: Move service fd helpers into separate file (#PSBM-65382) - x86/ia32: fix build with DEBUG=1 (Dmitry Safonov ) - vdso/compat: Don't unmap missing vdso/vvar vmas (Dmitry Safonov ) - pie/vdso: return back ELF header mismatch error (Dmitry Safonov ) - ia32/futex: restore compat_robust_list (Dmitry Safonov ) - ia32/futex: add dumping compat_robust_list (Dmitry Safonov ) - restorer: remove always true `has_futex' arg (Dmitry Safonov )- scripts: skip spfs mount points in systemd-autofs-restart.sh (#PSBM-66285) - scripts: check service mount point in "skip_service" systemd-autofs- restart.sh - scripts: "skip_service" helper introduced in systemd-autofs-restart.sh - vz7: tests -- Drop _GNU_SOURCE from source code (Cyrill Gorcunov ) (#PSBM-66278)- vz7: fs: Add new argument to fstype::parse() and use it in binfmt_misc (Cyrill Gorcunov ) - make: Report dependencies absence more exactly - ia32: Rename has_compat_sigreturn => compat_cr - ia32: Clearify if 32bit C/R is compile-disabled- vz7: Makefile.version -- Adjust number for new series - vz7: Makefile: Fix scripts installation - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (#PSBM-65483) - vz7: tty: Make sure no /dev/tty inheritance exist (#PSBM-65637) - vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185) - vz7: test: sk-unix01 -- Make sure the dir with ghost files are empty - vz7: sk-unix: Don't wait on socketpair (#PSBM-65051) - vz7: sk-unix -- Add info print about slave peers - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - vz7: sk-unix -- Fix typo in namelen comparision (#PSBM-64715) - vz7: sk-queue: Add missing newline into log - vz7: restore_sk_queue -- Show how many bytes already sent (#PSBM-64628) - vz7: test: sk-unix01 -- Fix compilation - vz7: sk-unix: Don't append ghost postfix on subsequent checkpoint (#PSBM-55992) - test: Add sk-unix01 test - vz7: sk-unix: Add ability to restore sockets with deleted vfs addresses - vz7: sk-unix: Print cwd been restored if @name_dir is present - vz7: sk-unix: Don't warn if nothing to unlink - vz7: sk-unix: Collect deleted identical addresses in the queues - vz7: sk-unix: Make USK_ flags in shift form - vz7: sk-unix: Drop empty line at eof - vz7: sk-unix: Use add_post_prepare_cb_once helper - vz7: sk-unix: Drop empty line - vz7: sk-unix: Use generic xptr_pull in dump_one_unix_fd - vz7: sk-unix: Use native types in unix_sk_info - vz7: sk-unix: Adjust unix_sk_info members - vz7: sk-unix: Adjust unix_sk_cinfo members - vz7: sk-unix: Make can_dump_unix_sk being boolean - vz7: pipes: Use add_post_prepare_cb_once - vz7: tty: Use add_post_prepare_cb_once - vz7: restore: Add add_post_prepare_cb_once helper - sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: sk-queue -- Show peers in hex form (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: epoll -- Dont fail on dup'ed fd restore (#PSBM-63850) - vz7: dump: Any non-negative return code of run_scripts means an error (#PSBM-62583) - vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: seize -- Show detached pid in freezer_detach - vz7: Show status of uninterruptable task (#PSBM-63211) - vz7: files -- Select proper master fd when collecting fd (#PSBM-63355) - vz7: pstree -- Introduce pstree_pid_cmp helper - vz7: page-xfer -- Handle partial splicing (#PSBM-63161) - vz7: ucred -- Drop packets from dead processes (#PSBM-62603) - vz7: epoll -- Use real file transferred for target fds check (#PSBM-62108) - vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - test: Add ucreds test - vz7: pagemap -- Use ssize_t type where appropriate (#PSBM-62199) - vz7: compel -- Use unsigned long for arguments (#PSBM-61961) - vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: Drop redundant comment - vz7: restore -- Lift up own file limits (#PSBM-63094) - vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump (#PSBM-63002) - vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573) - vz7: kdat: Add fetching files stat - vz7: Don't forget to restore memory cgroup limits on pre-dupms (#PSBM-61534 #PSBM-53593) - vz7: Zap file size checking for "atop" (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 - vz7: socket: don't restore ucred from kernel messages - vz7: netlink: dump/restore netlink options - vz7: netlink: restore queues and only then restore opts - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: mount -- Add lookup_first_fstype helper - vz7: criu: add more information about control messages (#PSBM-60643) - vz7: test: check ucred for netlink messages - vz7: netlink: dump and restore ucred-s for netlink messages (#PSBM-59339) - vz7: eventpoll: Skip inaccessible descriptors (#PSBM-60042) - vz7: pipes -- Restore pipe size via userns call (#PSBM-59829) - vz7: mount: fix mounting non-root shared mounts (#PSBM-55494) - vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: tty: Fix devpts mounts resolving (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper - vz7: tty: Save task current terminal if present - vz7: Unlimit UBC when chekpointing (#PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: Make get_dumpee_veid been exported - vz7: zdtm: check a netlink socket with in-kernel state - vz7: netlink: allow to dump netlink sockets with in-progress operations - vz7: sk-inet: Fix lookup for raw sockets (#PSBM-55835) - vz7: shmem: skip zero pages - vz7: shmem: don't write zero pages into an image - vz7: seccomp -- Switch to prctl interface if syscall is not implemented (#PSBM-55593) - vz7: ghost files: don't check ghost size if it's an NFS path (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED - vz7: test: Add simple socket-raw test - vz7: sk-inet: Add initial support for raw sockets (#PSBM-51614) - vz7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - vz7: util: Add rmdirp helper - vz7: mount: handle error from restore_shared_options() - vz7: seize: Add additional diagnose messages (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (#PSBM-52320) - vz7: cg: Don't dump devices.list (#PSBM-50551) - vz7: scripts: remove obsolete scripts - vz7: cr-restore: use spfs helpers to control spfs manager - vz7: spfs: add new helpers to replces bash scripts calls - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry - vz7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - vz7: files-reg: fix silly-renamed files migration - vz7: files-reg: improve spfs_file helper - vz7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - vz7: files: Allow to dump ploopX files opened (#PSBM-49723) - vz7: spfs: remove obsolete code - vz7: files-reg: migrate "spfs" files as ghost-ones - vz7: files-reg: conditionally dump content in dump_ghost_file - vz7: util: mkdirname helper introduced - vz7: files-reg: split create_ghost - vz7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - vz7: dump: Show task comm early - vz7: spfs: do not tolerate file existence on creation - vz7: spfs: fix freeze cgroup path discovery - vz7: cgroup: new_cg_root_get helper introduced - vz7: criu: remove NFS unlinked files restriction - vz7: files-reg: migrate spfs unlinked file as "link remap" objects - vz7: files-reg: migrate spfs file as "link remap" objects - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - vz7: spfs: explicitly pass size and mode to spfs_create_file - vz7: link_remap: do not create excessive links for a single file - vz7: mount: forbid dumping overmounted NFS (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data - vz7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages - vz7: check: check whether NETLINK_REPAIR is supported or not - vz7: netlink: request flags for netlink sockets - vz7: files-reg: forbid to dump unlinked NFS files - vz7: proc_parse: forbid dumping NFS remote locks - vz7: files-reg: remove "unreachable" protobuf field as redundant - vz7: files-reg: create spfs file in case of parent mount is SPFS - vz7: files-reg: do not create spfs file in case of external resource - vz7: spfs: remove "ns_list" option from "replace" command as obsolete - vz7: compel -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - vz7: scripts: restart all systemd automount services (#PSBM-46672) - vz7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - vz7: util: Add cr_set_root/cr_restore_root helpers - vz7: spfs: do not treat existent file as error in create_reg_file - vz7: scripts: spfs-release-replace.sh introduced - vz7: criu: spfs -- Fixup various nits for NFS sake - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - vz7: mount: Add support for NFSv4 - vz7: protobuf/mnt.proto: NFSv4 type added - vz7: mount: add support for NFS - vz7: protobuf/mnt.proto: NFS type added - vz7: mount: add support for SUNRPC Pipefs - vz7: protobuf/mnt.proto: RPC Pipefs type added - vz7: scripts: allow-nfs-ports.sh added - vz7: action-scripts: ACT_POST_NET_LOCK stage added - vz7: scripts: spfs-change-mode.sh added - vz7: action scripts: set spfs environment in run_scripts - vz7: regular files: create temporary spfs file if marked as unreachable - vz7: spfs: delayed mounts facility introduced - vz7: cr-restore: declare SPFS_MNGR_SK service fd - vz7: regular files: protobuf "unreachable" field introduced - vz7: filemap: collect mapped file fs type - vz7: reg_file_entry: add "mode" variable - vz7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - vz7: Wait aio pending requests (#PSBM-42488) - vz7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - vz7: Merge vanilla 3.0- vz7: Makefile.version -- Adjust number for new series - vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (#PSBM-65483) - vz7: tty: Make sure no /dev/tty inheritance exist (#PSBM-65637) - vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185) - vz7: test: sk-unix01 -- Make sure the dir with ghost files are empty - vz7: sk-unix: Don't wait on socketpair (#PSBM-65051) - vz7: sk-unix -- Add info print about slave peers - vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - vz7: sk-unix -- Fix typo in namelen comparision (#PSBM-64715) - vz7: sk-queue: Add missing newline into log - vz7: restore_sk_queue -- Show how many bytes already sent (#PSBM-64628) - vz7: test: sk-unix01 -- Fix compilation - vz7: sk-unix: Don't append ghost postfix on subsequent checkpoint (#PSBM-55992) - test: Add sk-unix01 test - vz7: sk-unix: Add ability to restore sockets with deleted vfs addresses - vz7: sk-unix: Print cwd been restored if @name_dir is present - vz7: sk-unix: Don't warn if nothing to unlink - vz7: sk-unix: Collect deleted identical addresses in the queues - vz7: sk-unix: Make USK_ flags in shift form - vz7: sk-unix: Drop empty line at eof - vz7: sk-unix: Use add_post_prepare_cb_once helper - vz7: sk-unix: Drop empty line - vz7: sk-unix: Use generic xptr_pull in dump_one_unix_fd - vz7: sk-unix: Use native types in unix_sk_info - vz7: sk-unix: Adjust unix_sk_info members - vz7: sk-unix: Adjust unix_sk_cinfo members - vz7: sk-unix: Make can_dump_unix_sk being boolean - vz7: pipes: Use add_post_prepare_cb_once - vz7: tty: Use add_post_prepare_cb_once - vz7: restore: Add add_post_prepare_cb_once helper - sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: sk-queue -- Show peers in hex form (#PSBM-64009) - vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: epoll -- Dont fail on dup'ed fd restore (#PSBM-63850) - vz7: dump: Any non-negative return code of run_scripts means an error (#PSBM-62583) - vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: seize -- Show detached pid in freezer_detach - vz7: Show status of uninterruptable task (#PSBM-63211) - vz7: files -- Select proper master fd when collecting fd (#PSBM-63355) - vz7: pstree -- Introduce pstree_pid_cmp helper - vz7: page-xfer -- Handle partial splicing (#PSBM-63161) - vz7: ucred -- Drop packets from dead processes (#PSBM-62603) - vz7: epoll -- Use real file transferred for target fds check (#PSBM-62108) - vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - test: Add ucreds test - vz7: pagemap -- Use ssize_t type where appropriate (#PSBM-62199) - vz7: compel -- Use unsigned long for arguments (#PSBM-61961) - vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: Drop redundant comment - vz7: restore -- Lift up own file limits (#PSBM-63094) - vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump (#PSBM-63002) - vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573) - vz7: kdat: Add fetching files stat - vz7: Don't forget to restore memory cgroup limits on pre-dupms (#PSBM-61534 #PSBM-53593) - vz7: Zap file size checking for "atop" (#PSBM-61459) - vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248) - vz7: netlink: avoid ENOBUF when a netlink queue is dumped (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 - vz7: socket: don't restore ucred from kernel messages - vz7: netlink: dump/restore netlink options - vz7: netlink: restore queues and only then restore opts - vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606 #PSBM-61459 #PSBM-61851) - vz7: mount -- Add lookup_first_fstype helper - vz7: criu: add more information about control messages (#PSBM-60643) - vz7: test: check ucred for netlink messages - vz7: netlink: dump and restore ucred-s for netlink messages (#PSBM-59339) - vz7: eventpoll: Skip inaccessible descriptors (#PSBM-60042) - vz7: pipes -- Restore pipe size via userns call (#PSBM-59829) - vz7: mount: fix mounting non-root shared mounts (#PSBM-55494) - vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: tty: Fix devpts mounts resolving (#PSBM-59223) - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper - vz7: tty: Save task current terminal if present - vz7: Unlimit UBC when chekpointing (#PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: Make get_dumpee_veid been exported - vz7: zdtm: check a netlink socket with in-kernel state - vz7: netlink: allow to dump netlink sockets with in-progress operations - vz7: sk-inet: Fix lookup for raw sockets (#PSBM-55835) - vz7: shmem: skip zero pages - vz7: shmem: don't write zero pages into an image - vz7: seccomp -- Switch to prctl interface if syscall is not implemented (#PSBM-55593) - vz7: ghost files: don't check ghost size if it's an NFS path (#PSBM-56159) - vz7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED - vz7: test: Add simple socket-raw test - vz7: sk-inet: Add initial support for raw sockets (#PSBM-51614) - vz7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - vz7: util: Add rmdirp helper - vz7: mount: handle error from restore_shared_options() - vz7: seize: Add additional diagnose messages (#PSBM-53929) - vz7: mount: bind-mount autofs mounts via a file descriptors (#PSBM-53194) - vz7: spfs: create control socket in /run/spfs-manager/ (#PSBM-59199) - vz7: spfs: move SPFS manager to corresponding container's dump directory - vz7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (#PSBM-52353) - vz7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372) - vz7: mount: Enter/exit VE while mounting CR-time binfmt_misc (#PSBM-52320) - vz7: cg: Don't dump devices.list (#PSBM-50551) - vz7: scripts: remove obsolete scripts - vz7: cr-restore: use spfs helpers to control spfs manager - vz7: spfs: add new helpers to replces bash scripts calls - vz7: files-reg: move ghost_apply_metadata out of create_ghost_dentry - vz7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - vz7: files-reg: fix silly-renamed files migration - vz7: files-reg: improve spfs_file helper - vz7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - vz7: files: Allow to dump ploopX files opened (#PSBM-49723) - vz7: spfs: remove obsolete code - vz7: files-reg: migrate "spfs" files as ghost-ones - vz7: files-reg: conditionally dump content in dump_ghost_file - vz7: util: mkdirname helper introduced - vz7: files-reg: split create_ghost - vz7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - vz7: dump: Show task comm early - vz7: spfs: do not tolerate file existence on creation - vz7: spfs: fix freeze cgroup path discovery - vz7: cgroup: new_cg_root_get helper introduced - vz7: criu: remove NFS unlinked files restriction - vz7: files-reg: migrate spfs unlinked file as "link remap" objects - vz7: files-reg: migrate spfs file as "link remap" objects - vz7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - vz7: spfs: explicitly pass size and mode to spfs_create_file - vz7: link_remap: do not create excessive links for a single file - vz7: mount: forbid dumping overmounted NFS (#PSBM-48620) - vz7: zdtm: add a new test to check netlink sockets with queued data - vz7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - vz7: sk-queue: add an ability to dump addresses for messages - vz7: check: check whether NETLINK_REPAIR is supported or not - vz7: netlink: request flags for netlink sockets - vz7: files-reg: forbid to dump unlinked NFS files - vz7: proc_parse: forbid dumping NFS remote locks - vz7: files-reg: remove "unreachable" protobuf field as redundant - vz7: files-reg: create spfs file in case of parent mount is SPFS - vz7: files-reg: do not create spfs file in case of external resource - vz7: spfs: remove "ns_list" option from "replace" command as obsolete - vz7: compel -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - vz7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - vz7: scripts: restart all systemd automount services (#PSBM-46672) - vz7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - vz7: util: Add cr_set_root/cr_restore_root helpers - vz7: spfs: do not treat existent file as error in create_reg_file - vz7: scripts: spfs-release-replace.sh introduced - vz7: criu: spfs -- Fixup various nits for NFS sake - vz7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - vz7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - vz7: mount: Add support for NFSv4 - vz7: protobuf/mnt.proto: NFSv4 type added - vz7: mount: add support for NFS - vz7: protobuf/mnt.proto: NFS type added - vz7: mount: add support for SUNRPC Pipefs - vz7: protobuf/mnt.proto: RPC Pipefs type added - vz7: scripts: allow-nfs-ports.sh added - vz7: action-scripts: ACT_POST_NET_LOCK stage added - vz7: scripts: spfs-change-mode.sh added - vz7: action scripts: set spfs environment in run_scripts - vz7: regular files: create temporary spfs file if marked as unreachable - vz7: spfs: delayed mounts facility introduced - vz7: cr-restore: declare SPFS_MNGR_SK service fd - vz7: regular files: protobuf "unreachable" field introduced - vz7: filemap: collect mapped file fs type - vz7: reg_file_entry: add "mode" variable - vz7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - vz7: Wait aio pending requests (#PSBM-42488) - vz7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - vz7: Merge vanilla 3.0- vz7: scripts: systemd-autofs-restart.sh -- Enter container net ns upon join (#PSBM-65483)- vz7: tty: Make sure no /dev/tty inheritance exist (#PSBM-65637)- vz7: fs: Populate opts.has_binfmt_misc on dump only (#PSBM-65367)- vz7: filesystems: binfmt -- Add debug print on dumping stage (#PSBM-65185)- vz7: test: sk-unix01 -- Make sure the dir with ghost files are empty - vz7: sk-unix: Don't wait on socketpair (#PSBM-65051) - vz7: sk-unix -- Add info print about slave peers- vz7: sk-unix -- Adjust default dgram qlen for systemd sake (#PSBM-64628) - Revert "vz7: sockets: Separate socket buffer size setting into a helper" - Revert "vz7: sk-unix -- Restore qlen before pushing queued data back" - Revert "sk-queue: Queue length must be sync"- vz7: sk-unix -- Fix typo in namelen comparision (#PSBM-64715) - vz7: sk-queue: Add missing newline into log - vz7: restore_sk_queue -- Show how many bytes already sent - vz7: test: sk-unix01 -- Fix compilation- vz7: sk-unix: Don't append ghost postfix on subsequent checkpoint (#PSBM-55992)- Revert "unix: switch into the root mount namespace before cleaning stale sockets" (#PSBM-64369)- test: Add sk-unix01 test - vz7: sk-unix: Add ability to restore sockets with deleted vfs addresses (#PSBM-55992) - vz7: sk-unix: Print cwd been restored if @name_dir is present - vz7: sk-unix: Don't warn if nothing to unlink - vz7: sk-unix: Collect deleted identical addresses in the queues - vz7: sk-unix: Make USK_ flags in shift form - vz7: sk-unix: Drop empty line at eof - vz7: sk-unix: Use add_post_prepare_cb_once helper - vz7: sk-unix: Drop empty line - vz7: sk-unix: Use generic xptr_pull in dump_one_unix_fd - vz7: sk-unix: Use native types in unix_sk_info - vz7: sk-unix: Adjust unix_sk_info members - vz7: sk-unix: Adjust unix_sk_cinfo members - vz7: sk-unix: Make can_dump_unix_sk being boolean - vz7: pipes: Use add_post_prepare_cb_once - vz7: tty: Use add_post_prepare_cb_once - vz7: restore: Add add_post_prepare_cb_once helper - unix: a unix name can be a non-null terminated string - unix: Do pr_perror() before cleanup - files: Sanitize helpers for scattering two-headed files - unix: Factor out common parts restoration (v2) - unix: Fix tail processing for peer-less sockets - unix: don't leak a file descriptor - unix: switch into the root mount namespace before cleaning stale sockets - Revert "vz7: sk-unix: Restore deleted sockets together with removed dirs"- sk-queue: Don't fail if we're dumping dead process queued creds (#PSBM-62778)- sk-queue: Queue length must be sync (#PSBM-64009) - vz7: sk-queue -- Show the creds we're sending (#PSBM-64009) - vz7: sk-queue -- Show peers in hex form (#PSBM-64009)- vz7: seize -- Wait for seize in thawed state (#PSBM-63841) - vz7: freezer -- Add set_freezer_state helper (#PSBM-63841) - vz7: epoll -- Dont fail on dup'ed fd restore (#PSBM-63850)- vz7: dump: Any non-negative return code of run_scripts means an error (#PSBM-62583)- vz7: sk-unix -- Restore qlen before pushing queued data back (#PSBM-63762) - vz7: sockets: Separate socket buffer size setting into a helper (#PSBM-63762) - vz7: seize -- Show detached pid in freezer_detach- vz7: seize -- Make sure there is enough space for eol on debug print (#PSBM-63211) - vz7: Show status of uninterruptable task (#PSBM-63211)- vz7: files -- Select proper master fd when collecting fd (#PSBM-63355) - vz7: pstree -- Introduce pstree_pid_cmp helper - vz7: page-xfer -- Handle partial splicing (#PSBM-63161)- vz7: restore -- Lift up own file limits (#PSBM-63094) - vz7: Make rlimit_limit_nofile_self being global- vz7: Unlimit self RLIMIT_NOFILE resource for dump/predump (#PSBM-63002) - Revert "vz7: Increase the number of files limit"- vz: zdtm/mnt_ext_auto: add different bind-mounts of external mount (#PSBM-46753) - vz7: mount: migrate bindmounts of external mounts (#PSBM-46753) - vz7: mount: save ext_real_root for external mounts (#PSBM-46753) - vz7: mount: remove excess mi->external checks - vz7: mount: fix confusing naming- vz7: ucred -- Drop packets from dead processes (#PSBM-62603)- vz7: epoll -- Use real file transferred for target fds check (#PSBM-62108) - vz7: epoll: Report error instead of BUG (#PSBM-62108)- vz7: sk-queue -- Add support of ucreds in unix sockets (#PSBM-61095) - test: Add ucreds test- vz7: parasite-syscall -- Move rlimit_limit_nofile into parasite_cure_remote (#PSBM-62267)- vz7: spfs: create control socket in /run/spfs-manager/ (#PSBM-59199) - vz7: pagemap -- Use ssize_t type where appropriate (#PSBM-62199) - pagemap: Support async pages reading by chunks (v2)- fsnotify: skip non-direcory mounts (#PSBM-57362)- test: Add shutdown'ed UDP socket test - sk-inet: Add support for shutdown'ed UDP/UDPlite sockets (#PSBM-61550)- vz7: parasite -- Use long for memory size (#PSBM-61961) - vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: parasite-syscall -- Export rlimit_[un]limit_nofile - vz7: Unlimit and limit file number for dump stage only (#PSBM-61812)- vz7: dump -- Set file limits back before fetching them into dump (#PSBM-61812) - vz7: parasite-syscall -- Export rlimit_[un]limit_nofile - vz7: Unlimit and limit file number for dump stage only (#PSBM-61812)- vz7: Unlimit and limit file number for dump stage only (#PSBM-61812)- vz7: Fix net_cls controllers transition (#PSBM-61851 #PSBM-60606) - vz7: Drop redundant comment - vz7: Drop debug leftover from 0a3713ab2c44f- vz7: Unlimit and limit file number resource for c/r sake (#PSBM-61573) - vz7: kdat: Add fetching files stat - vz7: parasite: Switch to map-files interface is memfd failed - vz7: memfd: Print detailed error if memfd_create failed - Revert "vz7: Dump only known controllers" (#PSBM-61768)- Revert "vz7: Dump only known controllers" (#PSBM-61768)- vz7: Don't forget to restore memory cgroup limits on pre-dupms (#PSBM-61534 #PSBM-53593)- vz7: Don't rename net_cls if no net_cls,net_prio present (#PSBM-60606 #PSBM-61459) - vz7: Zap file size checking for "atop" (#PSBM-61459)- vz7: dump_packet_cmsg -- Allow to receive timestamp data (#PSBM-61248) - vz7: restore_sk_queue -- Drop trailing tabs - vz7: dump_sk_creds -- Don't leak memory for SkUcredEntry (#PSBM-61248)- vz7: systemd-autofs-restart.sh: fix issue with removed check_fs_type reference (#PSBM-60980) - vz7: Fix type conversion in dump_packet_cmsg- vz7: netlink: avoid ENOBUF when a netlink queue is dumped (#PSBM-60643) - vz7: netlink: skip pktinfo scm if a sender group is less than 32 - vz7: socket: don't restore ucred from kernel messages - vz7: netlink: dump/restore netlink options - vz7: netlink: restore queues and only then restore opts- vz7: cgroup -- Rename net_cls to net_cls,net_prio on the fly (#PSBM-60606) - vz7: tty -- Don't fail if @mnt_id is not present in images (#PSBM-60606) - vz7: mount -- Add lookup_first_fstype helper- vz7: criu: add more information about control messages (#PSBM-60643) - docs: criu -- Explain pre-resume stage - action-scripts: Add "pre-resume" stage (#PSBM-58742) - Revert "vz7: Add ACT_POST_SIGRETURN" - vz7: Fix type conversion in dump_packet_cmsg- vz7: test: check ucred for netlink messages - vz7: netlink: dump and restore ucred-s for netlink messages (#PSBM-59339)- vz7: eventpoll: Skip inaccessible descriptors (#PSBM-60042)- vz7: pipes -- Restore pipe size via userns call (#PSBM-59829)- vz7: eventpoll: Fix dependency check (#PSBM-59550)- vz7: tty: Fix devpts mounts resolving (#PSBM-59223) - vz7: test: pty05 -- Extend test for unshared mount ns- vz7: files: Fix test and set endianess problem (#PSBM-58228) - vz7: tty: Optimize dependencies check - vz7: files: Merge collect_gen_fd() and collect_used_fd(), and call it unconditionally - vz7: files: Kill pid parameter of open_fdinfos() - vz7: eventpoll: Use generic list for eventpoll files - vz7: tty: Use generic list for tty files - vz7: files: Move ctty fixup to open_fd() - vz7: tty: Set dependencies between masters, slaves and ctty - vz7: files: Kill struct file_desc_ops::post_open - vz7: files: Make recv_fd_from_peer() non-block - vz7: files: Add new_fd parameter to file_desc_ops::open() - vz7: files: Set fds event after sending fd to peer - vz7: eventpoll: Make post_open stage may fail - vz7: files: BUG on reopening already opened fle - vz7: timerfd: Kill post_open stage - vz7: inet: Use task_st futex for notification instead of per-port - vz7: inet: Link sockets in port_type list - vz7: unix: Wait a peer using task_st futex - vz7: unix: Link connected to peer sockets to its list - vz7: files: Add fdinfo_list_entry::stage - vz7: files: Implement {set,clear,wait}_fds_event() - vz7: bits: Add test_and_set_bit() - vz7: pstree: Add task_st bit field - vz7: headers: Move lock.h into include/common/ - vz7: files: Merge states iteration into open_fdinfos() - vz7: files: Kill fd_open_state::receive_fd stage - vz7: files: Kill want_post_open_stage() - vz7: files: Kill fd parameter of transport_name_gen() - vz7: files: Kill file_desc_ops::want_transport() - vz7: files: Receive real fd numbers using recv_fd_from_peer() - vz7: files: Make sending fds to peers async - vz7: files: Allow to receive further fds - vz7: files: Add fle_init() for initialization new fdinfo_list_entry - vz7: files: Move derefferencing of TRANSPORT_FD_OFF to send_fd_to_peer() - vz7: files: Move closing fle's transport_fd to recv_fd_from_peer() - vz7: files: Send/receive fds with pointers on their struct fdinfo_list_entry in receiver- pcs7: mount: fix mounting non-root shared mounts- vz7: test: pty05 -- Add testing of multiple devpts instance - vz7: tty: Add support for multiple devpts instances (#PSBM-58616) - vz7: tty: Save mount ids for terminals into image - vz7: tty: mount -- Add mount_resolve_devpts_mnt_id helper - vz7: tty: Save task current terminal if present - vz7: tty: Print rdev and dev pair in case of error - vz7: tty: Unify id printing- vz7: Makefile.version -- Adjust number for new series - Rebase to vanilla criu v2.10- vz7: Unlimit UBC when chekpointing (#PSBM-53593) - vz7: restore -- Enter destination veX once usernsd is up (#PSBM-56407) - vz7: Add ACT_POST_SIGRETURN - vz7: Make get_dumpee_veid been exported - vz7: zdtm: check a netlink socket with in-kernel state - vz7: netlink: allow to dump netlink sockets with in-progress operations- pcs7: tcp: bind tcp sockets after enabling the repair mode (#PSBM-57413) - Revert "pcs7: tcp: bind tcp sockets after enabling the repair mode"- pcs7: tcp: bind tcp sockets after enabling the repair mode (#PSBM-57413) - pcs7: scripts: Print error value in case of action script fail- Rebuild in 7.3 environment- pcs7: sk-inet: Fix lookup for raw sockets (#PSBM-55835)- zdtm: add a test to check a mount tree with overmounts (Andrei Vagin ) - mount: clone a mount namespace to open a detached mount (Andrei Vagin ) (#PSBM-57135) - mnt: try to split a mount tree to restore over-mounted mounts (Andrei Vagin ) - mnt: rename roots_mp into root_yard_mp and make it global (Andrei Vagin ) - mnt: add a sub-id to print_ns_root (Andrei Vagin ) - mnt: clean up (Andrei Vagin ) - mnt: add a function to check whether a mount overmounts something (Andrei Vagin )- pcs7: shmem: skip zero pages- pcs7: shmem: don't write zero pages into an image- pcs7: zdtm: check sequence numbers for tcp sockets - pcs7: build: install libnet-dev - pcs7: zdtm.py: pass a test PID into zdtm hooks - pcs7: zdtm: add test cases on TCP_SYN_SENT - pcs7: zdtm: add a test for unconnected tcp sockets - pcs7: zdmt: add more checks into socket-closed-tcp - pcs7: zdtm: check sockets in the TCP_CLOSING state - pcs7: zdtm: add test cases on TCP_CLOSE_WAIT and TCP_LAST_ACK states - pcs7: zdtm: add test cases on TCP_FIN_WAIT* states - pcs7: tcp: add support for synsent - pcs7: tcp: allow to dump intermediate closing states - pcs7: inet: dump source and destination addresses for closed sockets - pcs7: soccr: add support for syn-sent sockets - pcs7: soccr: add support for half-closed sockets - pcs7: soccr: move connect from criu to soccr - pcs7: soccr: add source and destination addresses to libsoccr_sk_data - pcs7: criu: check whether tcp_repair can be enabled for half-closed sockets - pcs7: soccr: add prefixes for log messages and print errno - pcs7: soccr: add '\n' to all loge/logd - pcs7: criu: enable soccr logging - pcs7: build: only generate soccr config.h if necessary - pcs7: soccr: Generate config.h dynamically - pcs7: soccr: rectify Alpine build - pcs7: make, soccr: let CRIU depend on libsoccr - pcs7: soccr: Add soccr.h's comments - pcs7: soccr: Handle connection state - pcs7: soccr/tcp: Restore queues using library - pcs7: soccr/tcp: Restore socket's info after binding it - pcs7: soccr/tcp: Restore socket's info before binding it - pcs7: soccr/tcp: Prepare connection info for restore - pcs7: soccr/tcp: Read queues contents using library - pcs7: soccr/tcp: Fill actual connection info using the library - pcs7: soccr/tcp: Introduce blob with connection info and getter for it - pcs7: soccr/tcp: Add _pause and _resume to library and use it - pcs7: soccr: Add logging - pcs7: soccr: Wire into builder - criu.spec: Add libnet-devel requirement for tcp-close sake- pcs7: seccomp -- Switch to prctl interface if syscall is not implemented (#PSBM-55593)- pcs7: restore: Fetch mmap_minimal_address runtime (#PSBM-56797)- pcs7: ghost files: don't check ghost size if it's an NFS path (#PSBM-56159)- pcs7: criu: Fix open() retval analysing (#PSBM-56384)- pcs7: fs: Fix retval analysing erratum (#PSBM-56384)- pcs7: Always define CONFIG_BINFMT_MISC_VIRTUALIZED- pcs7: Adjust version for 2.8 series - Rebase to vanilla CRIU-2.8 series- pcs7: test: Add simple socket-raw test - pcs7: sk-inet: Add initial support for raw sockets (#PSBM-51614)- pcs7: Don't use executable stacks in @syscall_ip (#PSBM-55989) - Revert "pcs7: criu: proc_parse -- Add guard page the same way as kernel detects them" - Revert "pcs7: parasite: Don't try to start executing syscall from guard page"- pcs7: parasite: Don't try to start executing syscall from guard page (#PSBM-55989) - pcs7: criu: proc_parse -- Add guard page the same way as kernel detects them (#PSBM-55989)- pcs7: test: Add del_standalone_un_dentry test - pcs7: sk-unix: Restore deleted sockets together with removed dirs (#PSBM-55495) - pcs7: util: Add rmdirp helper - pcs7: test: rmdir_open -- Delete two levels of directories - pcs7: criu: files-reg -- Create a complete path to delete dentry - pcs7: util: Make mkdirpat more generic- pcs7: mount: don't create a temporary directory if /tmp exists - ps7: mount: fix mounting non-root shared mounts (#PSBM-55494) - pcs7: mount: handle error from restore_shared_options()- seize: Add additional diagnose messages (#PSBM-53929)- pcs7: mount: bind-mount autofs mounts via a file descriptors (#PSBM-53194)- pcs7: Fix seize_cgroup_tree error code collide- pcs7: freeze -- Wait for exiting tasks to complete (#PSBM-53282)- pcs7: scripts -- systemd-autofs-restart.sh: explicitly return result from get_fs_type (#PSBM-53239)- pcs7: spfs: move SPFS manager to corresponding container's dump directory- pcs7: mount: Correct s_dev conversion in mount_cr_time_mount() (#PSBM-52460)- pcs7: mount: Set opts.has_binfmt_misc regardless of mnt_ns level (#PSBM-52513)- pcs7: mount: Move adding cr-time binfmt_misc to collect_mnt_namespaces() (#PSBM-52513) - pcs7: mount: Do not fail on shared cr-time mounts mismatch (#PSBM-52513)- pcs7: restorer: add forgotten CLONE_FS flag for threads clone (#PSBM-47623)- pcs7: scripts: add unmasked NFS route print to nfs-ports-allow.sh (#PSBM-52353) - pcs7: mnt -- Fix case where ve cgroup not found- pcs7: mnt -- Fetch VEID from cgroup for migration sake (#PSBM-52372)- pcs7: mount: Corrent sibling path when parent and child have the same mountpoint (#PSBM-52346)- pcs7: mount: Enter/exit VE while mounting CR-time binfmt_misc (#PSBM-52320)- mount: Prohibit second binfmt_misc superblock (#PSBM-47737) - mount: Restore binfmt_misc content in case of missing mount - mount: Forced mount unmounted binfmt_misc to do not lost its content - mount: Autodetect binfmt_misc - mount: Create binfmt_misc image w/o device suffix - mount: Move binfmt_misc entry restore code to subfunction - mount: Collect new type binfmt_misc.img image entries - image: Rename binfmt_misc image format as "old" - pcs7: shmem -- Inspect pages before the dump (#PSBM-52138)- pcs7: systemd-autofs-restart.sh: fix error handling in case of system limitation (#PSBM-51299)- seize: collect_pstree -- Add missing error sign return (#PSBM-51428)- pcs7: Adjust version for v2.5.x.x series - pcs7: conflict resolve - pcs7: scritps: systemd-autofs-restart.sh -- Do not treat absence on bindmount as error (#PSBM-50684) - pcs7: cg: Don't dump devices.list (#PSBM-50551) - unix: don't drop the path on unix sockets if they don't exist (Dmitry Safonov ) - pcs7: Increase the number of files limit (#PSBM-46761 #PSBM-50607) - pcs7: scripts: remove obsolete scripts - pcs7: cr-restore: use spfs helpers to control spfs manager - pcs7: spfs: add new helpers to replces bash scripts calls - pcs7: files-reg: move ghost_apply_metadata out of create_ghost_dentry - pcs7: Lift up local version - pcs7: Dump only known controllers (#PSBM-46382) - pcs7: log: Print version into the log (#PSBM-50239) - pcs7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - pcs7: files-reg: fix silly-renamed files migration - pcs7: files-reg: improve spfs_file helper - pcs7: mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - pcs7: util-vdso: correct vdso symbol's length - pcs7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - pcs7: files: Allow to dump ploopX files opened (#PSBM-49723) - pcs7: spfs: remove obsolete code - pcs7: files-reg: migrate "spfs" files as ghost-ones - pcs7: files-reg: conditionally dump content in dump_ghost_file - pcs7: util: mkdirname helper introduced - pcs7: files-reg: split create_ghost - pcs7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - pcs7: seize: Wait the freezer to complete before processing tags (#PSBM-49439) - pcs7: dump: Move task_comm_info helpers into seize.c - pcs7: spfs: do not tolerate file existence on creation - pcs7: dump: Show task comm early - pcs7: spfs: add device files creation support (#PSBM-48985) - pcs7: spfs: fix freeze cgroup path discovery - pcs7: cgroup: new_cg_root_get helper introduced - pcs7: criu: remove NFS unlinked files restriction - pcs7: files-reg: migrate spfs unlinked file as "link remap" objects - pcs7: files-reg: migrate spfs file as "link remap" objects - pcs7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - pcs7: spfs: explicitly pass size and mode to spfs_create_file - pcs7: link_remap: do not create excessive links for a single file - pcs7: proc_parse: fix vma file open mode recognition (#PSBM-49199) - pcs7: log: files-ext -- Show exactly which file can't be dumped - pcs7: criu: util -- Add __read_fd_link helper - pcs7: mount: forbid dumping overmounted NFS (#PSBM-48620) - pcs7: zdtm: add a new test to check netlink sockets with queued data - pcs7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - pcs7: sk-queue: add an ability to dump addresses for messages - pcs7: check: check whether NETLINK_REPAIR is supported or not - pcs7: netlink: request flags for netlink sockets - pcs7: files-reg: forbid to dump unlinked NFS files - pcs7: proc_parse: forbid dumping NFS remote locks - pcs7: files-reg: remove "unreachable" protobuf field as redundant - pcs7: files-reg: create spfs file in case of parent mount is SPFS - pcs7: files-reg: do not create spfs file in case of external resource - pcs7: spfs: remove "ns_list" option from "replace" command as obsolete - pcs7: namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - pcs7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - pcs7: scripts: restart all systemd automount services (#PSBM-46672) - pcs7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - pcs7: util: Add cr_set_root/cr_restore_root helpers - pcs7: spfs: do not treat existent file as error in create_reg_file - pcs7: seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - pcs7: scripts: spfs-release-replace.sh introduced - pcs7: criu: spfs -- Fixup various nits for NFS sake - pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488) - pcs7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - pcs7: Initial sync with vanilla v2.4 - log: Print version into the log (#PSBM-50239) - files-reg: fix silly-renamed files migration - files-reg: improve spfs_file helper - mounts: export is_root_mount helper - Revert "sk-unix: forbid to dump NFS unix sockets" (#PSBM-47017) - mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - util-vdso: correct vdso symbol's length - Makefile: install spfs-release-replace.sh script (#PSBM-49726) - files: Allow to dump ploopX files opened (#PSBM-49723) - version: Adjust numbering - Revert "files_reg: carry rdev with regular files" - seize: Wait the freezer to complete before processing tags (#PSBM-49439) - spfs: remove obsolete code - files-reg: migrate "spfs" files as ghost-ones - files-reg: conditionally dump content in dump_ghost_file - util: mkdirname helper introduced - files-reg: split create_ghost - files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - dump: Move task_comm_info helpers into seize.c - pcs7: arch, x86 -- Fix typo in cpuid masking code (#PSBM-49423) - spfs: do not tolerate file existence on creation - dump: Show task comm early - spfs: add device files creation support (#PSBM-48985) - files_reg: carry rdev with regular files - spfs: fix freeze cgroup path discovery - cgroup: new_cg_root_get helper introduced - criu: remove NFS unlinked files restriction - files-reg: migrate spfs unlinked file as "link remap" objects - files-reg: migrate spfs file as "link remap" objects - spfs: pass mount ID instead of namespace descriptor to spfs_create_file - spfs: explicitly pass size and mode to spfs_create_file - link_remap: do not create excessive links for a single file - cr-dump: discover fs type in fill_fd_params_special - proc_parse: fix vma file open mode recognition (#PSBM-49199) - tty: Don't forget to add eol when inverting slave pts paths (#PSBM-49008) - tty: Fix typos in vt driver choosing (#PSBM-48614) - mount: don't do MS_REC|MS_PRIVATE for host mounts (#PSBM-46298) - log: files-ext -- Show exactly which file can't be dumped - criu: util -- Add __read_fd_link helper - mount: forbid dumping overmounted NFS (#PSBM-48620) - zdtm: add a new test to check netlink sockets with queued data - netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - netlink: request flags for netlink sockets - sk-queue: add an ability to dump addresses for messages - check: check whether NETLINK_REPAIR is supported or not - unix: Do not autobind unnamed unix sockets (#PSBM-48446) - pcs7: images: Sync format with vanilla criu (#PSBM-48283) - sk-unix: forbid to dump NFS unix sockets - files-reg: forbid to dump unlinked NFS files - proc_parse: forbid dumping NFS remote locks - files-reg: remove "unreachable" protobuf field as redundant - files-reg: create spfs file in case of parent mount is SPFS - files-reg: do not create spfs file in case of external resource - spfs: remove "ns_list" option from "replace" command as obsolete - rpc: Implement @timeout interface (#PSBM-48256) - namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222) - rpc: Add interface --freeze-cgroup option (#PSBM-44613) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748) - dump: Allocate root_item before run pre-dump scripts (#PSBM-47737) - scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - net/sysctl: fix ipv4 forwarding (#PSBM-47355) - scripts: terminate systemd-autofs-restart.sh if saved mountpoint is missing (#PSBM-44207) - scripts: return non zero if save_mountpoint() fails (#PSBM-44207) - scripts: remove bogus command substitution in systemd-autofs-restart.sh (#PSBM-44207) - scripts: detect EOF on read in a usual way in systemd-autofs-restart.sh (#PSBM-44207) - mount: don't add a separate entry for each enabled file systems - scripts: restart all systemd automount services (#PSBM-46672) - sk-unix: Fix path resolving for sockets with abs symlinks in paths - util: Add cr_set_root/cr_restore_root helpers - zdtm/ptrace_sig: don't print from signal handlers (#PSBM-47772) - test: file_locks01 -- Test for dev change if only env is set (#PSBM-47714) - test: fanotify00 -- Test for device change if only env set - test: static, fanotify00 -- Don't compare @s_dev in test (#PSBM-47667) - spfs: do not treat existent file as error in create_reg_file - seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - build: Don't forget to relink arch builtins on change - scripts: spfs-release-replace.sh introduced - Revert "scripts: spfs-release-replace.sh introduced" - scripts: spfs-release-replace.sh introduced - scripts: call readlink in CT context in systemd-autofs-restart.sh - scripts: single style for command substitution in systemd-autofs-restart.sh (#PSBM-44207) - tty: Don't forget to unblock tty peers - tty: Save @flags unconditionaly for consistency - zdtm: check in-flight data in ttys - tty: Write unread pty buffers on post dump stage (#PSBM-41399) - criu: don't interrupt do_new_mount() after appling mount options (#PSBM-47489) - aio: Consider AIO pages as "should be dumped" (#PSBM-47489) - test/sockets: add test for shut down stream unix sockets (#PSBM-47023) - sk-unix: ignore shutdown mismatch in unix sockets - scripts: fix strings comparison in systemd-autofs-restart.sh - net/sysctl: zero-init stable_secret strings (#PSBM-30942) - net/sysctl: remove excess type conversions for sysctl_entry.type - net/sysctl: silence read error in case of CTL_FLAGS_READ_EIO_SKIP - zdtm/net/ipv6: add test for string stable_secret - sysctl: fix allocation for array of pointers - zdtm/net/ipv6: add test for confs - zdtm/net/ipv6: add devconfs6 and rand_range6 - zdtm/net/ipv6: allow inacurate match for mldvX_unsolicited_report_interval - zdtm/net/ipv4: split save_and_set and check_and_restore - zdtm/net/ipv4: replace rand limits with rand ranges - zdtm/net/ipv4: make save_and_set and check_and_restore reusable - restore/net/ipv6: net device and def/all configuration - dump/net/ipv6: net device and def/all configuration - net/ipv6: add devconfs6 array to store config option's names - net/ipv6/protobuf: add device config options for ipv6 - net/ipv4: add net_conf_op to reuse for ipv6 - protobuf: add SysctlEntry for ipv4/ipv6 sysctl confs or some others - sysctl: add CTL_FLAGS_HAS to mark successful sysctl_op request - zdtm/net/ipv4: rename devconfs4 and rand_limit4 and dir4 - net/ipv4: suffix devconfs with "4" - net/ipv4: add new sysctls - pcs7: criu: spfs -- Fixup various nits for NFS sake - pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - pcs7: cgroup: Fix early update of @dir_name in rewrite_cgsets (#PSBM-46987) - plugins: Initialize plugins control by default - pcs7: mount: add support for external block devices (#PSBM-39381) - pcs7: aio: Fix mmap retval analysing - pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488) - mount: create a clean mount only if a sub directory is bind-mounted (#PSBM-46908) - mount: dump a file system only if a mount point isn't overmounted (#PSBM-46908) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46908) - Revert "mount: dump a file system only if a mount point isn't overmounted" - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere" - scripts: fix mountinfo parsing in systemd-autofs-restart.sh (#PSBM-46889) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46732 #PSBM-46662) - mount: remove an extra condition from mounts_equal() - mount: handle a case when parent and child mounts in the same directory - mount: dump a file system only if a mount point isn't overmounted - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere" (#PSBM-46732) - autofs: support of "hidden" catatonic mounts (#PSBM-46572) - autofs: rework pipe search logic a bit - build: Add ability to generate gprof output - pcs7: scripts -- Make sure -1 pid is not passed (#PSBM-46572) - pcs7: Increase the number of files limit (#PSBM-46761) - scripts: do not use stat to discover fs type in systemd-autofs-restart.sh (#PSBM-46756) - scripts: save and restore target mount for autofs service (#PSBM-46672) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46662) - pcs7: Dump only known controllers (#PSBM-46382) - Revert "cg: Add ability to dump predefined controllers only" - Revert "pcs7: Increase the number of files limit" - criu: dump filemap as soon as possible (#PSBM-46355) - autofs: collect new pipe fd as used (#PSBM-46601) - autofs: do not create dentries for indirect mount on bind-mounts (#PSBM-46572) - pcs7: Increase the number of files limit (#PSBM-46355) - build: install -- Don't forget to init DESTDIR - scripts: fix typo in binary path in systemd-autofs-restart.sh - restore: Wait for userns being prepared before moving into cgroups (v3) - Revert "restore: Wait for userns being prepared before moving into cgroups (v2)" - cg: Add ability to dump predefined controllers only (#PSBM-46382) - scripts: join pid namespace in systemd-autofs-restart.sh (#PSBM-46470) - files: try to change fsuid only if linkat() failed (#PSBM-46201) - criu: tty -- Restore tty params synchronously (#PSBM-46382) - restore: Wait for userns being prepared before moving into cgroups (v2) (#PSBM-46360) - Revert "restore: Wait for userns being prepared before moving into cgroups" - autofs: use temporary value for virtual pgrp on dump - restore: Wait for userns being prepared before moving into cgroups (#PSBM-46360) - files: Correctly handle tasks with no open file descriptors (#PSBM-46269) - autofs: install -- Fix libexec prefix (#PSBM-46249) - autofs: install -- Ship scripts/systemd-autofs-restart.sh (#PSBM-46249) - pcs7: Update Makefile.local - criu: action-scripts -- Don't access @root_item_pid if not present - zdtm: check the mem_dirty_track if --pre or --snap is set (Pavel Emelyanov ) - ppc64le: fix build with UFFD (Pavel Emelyanov ) - Fix compilation of action-scripts.c (Pavel Emelyanov ) - kdat: Remove tcp_max_rshare (Pavel Emelyanov ) - tcp: Send as much as possible (Pavel Emelyanov ) - join-ns: Fix join-ns zdtm test (Pavel Emelyanov ) - sk: handle erorors of lseek (Pavel Emelyanov ) - util: don't leak a socket (Pavel Emelyanov ) - namespaces: don't leak memory on error paths (Pavel Emelyanov ) - cr-restore: set NS_PID environment variable before "post-resume" hook (Pavel Emelyanov ) - scripts: systemd-autofs-restart.sh added (Pavel Emelyanov ) - build: Add export of sublevels and extra (Pavel Emelyanov ) - build: compel -- Drop double targeting (Pavel Emelyanov ) - cr-restore: "post-resume" hook introduced (Pavel Emelyanov ) - criu: opts -- Shuffle init_opts order (Pavel Emelyanov ) - compel: Drop config.h from deps (Pavel Emelyanov ) - ns: Options join-ns and unshare are conflicting (Pavel Emelyanov ) - compel: Initial commit for standalone tool (Pavel Emelyanov ) - compel: piegen -- Introduce actions (Pavel Emelyanov ) - compel: piegen -- Add @arch option (Pavel Emelyanov ) - compel: piegen -- Add @uapi-dir option (Pavel Emelyanov ) - join-ns: add join-ns zdtm test (Pavel Emelyanov ) - join-ns: perform join_namespace according to join-ns opts (Pavel Emelyanov ) - join-ns: add join-ns option to criu CLI and RPC (Pavel Emelyanov ) - uffd: add handling of zero pages (Pavel Emelyanov ) - uffd: introduce uffd_handle_page (Pavel Emelyanov ) - uffd: increment uffd_copied_pages only in one place (Pavel Emelyanov ) - uffd.c: move the code out of the 'main' function (Pavel Emelyanov ) - uffd.c: make some variable static global (Pavel Emelyanov ) - uffd.c: move code into subfunctions (Pavel Emelyanov ) - uffd.c: remove unused variable vma_size (Pavel Emelyanov ) - autofs: free leaked opts in autofs_mount (Pavel Emelyanov ) - autofs: free leaked info in autofs_mount on error path (Pavel Emelyanov ) - autofs: free leaked AutofsEntry in autofs_dump_entry (Pavel Emelyanov ) - autofs: do not close NULL image (Pavel Emelyanov ) - uffd: remove handling of VDSO pages (Pavel Emelyanov ) - uffd: do not treat VDSO pages as lazy (Pavel Emelyanov ) - uffd: Fix pr_debug format for vma start (Pavel Emelyanov ) - autofs: fix device id modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: fix device id printf modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: do not treat old kernel as error in autofs_parse() (Pavel Emelyanov ) - autofs: include limit.h before auto_fs.h (Pavel Emelyanov ) - autofs: fix build on Fedora 22 (Pavel Emelyanov ) - uffd.c: do not call unneeded functions (Pavel Emelyanov ) - cr-restore: move add_ns_shared_cb declaration to include/namespaces.h (Pavel Emelyanov ) - Fix userfaultfd code with newer compilers (Pavel Emelyanov ) - check: "autofs" feature added (Pavel Emelyanov ) - zdtm.py: create "dev/autofs" root contruction (Pavel Emelyanov ) - zdtm: add autofs test (Pavel Emelyanov ) - mount: create target directory for AutoFS indirect mounts. (Pavel Emelyanov ) - autofs: restore stage introduced (Pavel Emelyanov ) - autofs: declare ioctl helpers and constants (Pavel Emelyanov ) - pipes: export collect_one_pipe_ops() helper (Pavel Emelyanov ) - files: new dup_fdinfo() and dup_fle() helpers introduced (Pavel Emelyanov ) - files: new "used" files list introduced (Pavel Emelyanov ) - autofs: dump fsinfo stage introduced (Pavel Emelyanov ) - autofs: parse fsinfo stage introduced (Pavel Emelyanov ) - protobuf: autofs entry introduced (Pavel Emelyanov ) - devices: add support for /dev/autofs (Pavel Emelyanov ) - protobuf/mnt.proto: AutoFS type added (Pavel Emelyanov ) - unshare: Check private remount error code (Pavel Emelyanov ) - unshare: Define UNSHARE_MOUNT_PROC constant (Pavel Emelyanov ) - pstree: try to find a free pid between busy pids (v2) (Pavel Emelyanov ) - pstree: use rbtree to find a specified pid (v3) (Pavel Emelyanov ) - pstree: prepare to store all pid-s in rb-tree (v3) (Pavel Emelyanov ) - pstree: split alloc_pstree_helper (Pavel Emelyanov ) - pstree: move state from pstree_item to pid (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 2) (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 1) (Pavel Emelyanov ) - Remove static from prepare_task_entries function (Pavel Emelyanov ) - Make skip_pages function available criu-wide (Pavel Emelyanov ) - unshare: Support pidns (Pavel Emelyanov ) - unshare: Mount new proc (Pavel Emelyanov ) - unshare: Support mntns (Pavel Emelyanov ) - unshare: Preparations and CLI option (Pavel Emelyanov ) - pcs7: Extend version output via local build (#PSBM-45009) - build: criu -- Don't forget to cleanup arch directory - cg: Add rollback in get_cg_set (#PSBM-45553) - cg: Add rollback for add_cgroup (#PSBM-45553) - cg: Fix use-after-free in put_ctls (#PSBM-45553) - pie: open_detach_mount -- Use pr_perror for regular build - util: return aligned pointers from shmalloc() - Makefile: drop 'rebuild' from help message - nmk: build.mk -- Add @libso-y helper - nmk: build.mk -- Add @hostprogs-y mode - nmk: msg.mk -- Add host- messages - nmk: build.mk -- Shrink gen-cc-rules - nmk: build.mk -- Drop any-match rule - nmk: build.mk -- Fix deps for target mode - nmk: build.mk -- Squash gen-rule-x into gen-cc-rules - nmk: Drop rules.mk - nmk: rules.mk -- Fix AFLAGS typo - tests: remap_dead_pid[_root] -- Run in namespace only - log: add gnu-styled output to stdout - build: images -- Add missing cleanups - namespaces: zero struct ns_id when allocating - criu: use strsignal to describe kill reason - nmk: build.mk -- Fix ar rule for external libs - nmk: build.mk -- Make process depend on Makefile itself - nmk: build.mk -- On cleanup use cleanup-y only - nmk: utils.mk -- Add cleanify helper - nmk: utils.mk -- Drop redundant spaces - nmk: build.mk -- Fix typo in gen-ar-target-rule - nmk: rules.mk -- Add per-obj flags - nmk: build.mk -- Drop unused objlist target - nmk: rules.mk -- Drop @CFLAGS_ and @ASFLAGS_ but add ability to bring them via param - build: add mrproper target - build/nmk: add mrproper-y - build: Drop @images - nmk: scritps/macro.mk -- Enhance gen-built-in - x86/restorer: drop unused struct pt_regs - types: Remove setns override with sys_setns - rst-malloc: adjust free_bytes in rst_mem_align_cpos - netfilter: add -n to iptables and ip6tables calls - build: docs -- Use autogenerated footer - pstree: try to find a free pid between busy pids (v2) - pstree: use rbtree to find a specified pid (v3) - pstree: prepare to store all pid-s in rb-tree (v3) - pstree: split alloc_pstree_helper - pstree: move state from pstree_item to pid - criu: seize -- Don't left dangling @processes_to_wait_pids pointer - libnetlink: back port a fix for nlattr_parse() - netlink: Use nlattr instead of rtattr - criu: pstree_switch_state -- Fix nil deref on error path - irmap: use kdev everywere - dump: check for conflicts with the dead processes - irmap: don't try to dereference a null pointer - mounts: handle device numbers in different formats properly - criu: Use __NR_memfd_create for testing memfd presence - build: Conditionally defined SYS_* constants - build: criu -- Don't link with syscalls library - mount: don't use a shared mount to get a clean mount - mount: master_id should be 0 for new mounts - mount: restore a shared group for propagated mounts - build: clean up various other bits - build: Add verbose message on packages needed for CRIU building - build: Unify phony forms usage - pre-dump: don't waste time in error cases - dump: pre-dump should never kill processes - make: Improve tar generation - pcs7: Update local version - dump: don't call rollback actions from a signal handler (#PSBM-44371) - mounts: Skip already bound siblings in propagate_siblings() - PCS7: cgroup: Always restore predefined VE props (#PSBM-41406) - files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost() - seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795) - mount: separate private remount conditions for external and non-external (#PSBM-42829) - plugin: Add PRE_DUMP stage into plugins - dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199) - scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov )- pcs7: scritps: systemd-autofs-restart.sh -- Do not treat absence on bindmount as error (#PSBM-50684)- pcs7: cg: Don't dump devices.list (#PSBM-50551)- unix: don't drop the path on unix sockets if they don't exist- pcs7: Increase the number of files limit (#PSBM-50607) - pcs7: scripts: remove obsolete scripts - pcs7: cr-restore: use spfs helpers to control spfs manager - pcs7: spfs: add new helpers to replces bash scripts calls- pcs7: files-reg: move ghost_apply_metadata out of create_ghost_dentry- pcs7: Lift up local version - pcs7: Dump only known controllers (#PSBM-46382) - pcs7: log: Print version into the log (#PSBM-50239) - pcs7: mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - pcs7: files-reg: fix silly-renamed files migration - pcs7: files-reg: improve spfs_file helper - pcs7: mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - pcs7: util-vdso: correct vdso symbol's length - pcs7: Makefile: install spfs-release-replace.sh script (#PSBM-49726) - pcs7: files: Allow to dump ploopX files opened (#PSBM-49723) - pcs7: spfs: remove obsolete code - pcs7: files-reg: migrate "spfs" files as ghost-ones - pcs7: files-reg: conditionally dump content in dump_ghost_file - pcs7: util: mkdirname helper introduced - pcs7: files-reg: split create_ghost - pcs7: files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - pcs7: seize: Wait the freezer to complete before processing tags (#PSBM-49439) - pcs7: dump: Move task_comm_info helpers into seize.c - pcs7: spfs: do not tolerate file existence on creation - pcs7: dump: Show task comm early - pcs7: spfs: add device files creation support (#PSBM-48985) - pcs7: spfs: fix freeze cgroup path discovery - pcs7: cgroup: new_cg_root_get helper introduced - pcs7: criu: remove NFS unlinked files restriction - pcs7: files-reg: migrate spfs unlinked file as "link remap" objects - pcs7: files-reg: migrate spfs file as "link remap" objects - pcs7: spfs: pass mount ID instead of namespace descriptor to spfs_create_file - pcs7: spfs: explicitly pass size and mode to spfs_create_file - pcs7: link_remap: do not create excessive links for a single file - pcs7: proc_parse: fix vma file open mode recognition (#PSBM-49199) - pcs7: log: files-ext -- Show exactly which file can't be dumped - pcs7: criu: util -- Add __read_fd_link helper - pcs7: mount: forbid dumping overmounted NFS (#PSBM-48620) - pcs7: zdtm: add a new test to check netlink sockets with queued data - pcs7: netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - pcs7: sk-queue: add an ability to dump addresses for messages - pcs7: check: check whether NETLINK_REPAIR is supported or not - pcs7: netlink: request flags for netlink sockets - pcs7: files-reg: forbid to dump unlinked NFS files - pcs7: proc_parse: forbid dumping NFS remote locks - pcs7: files-reg: remove "unreachable" protobuf field as redundant - pcs7: files-reg: create spfs file in case of parent mount is SPFS - pcs7: files-reg: do not create spfs file in case of external resource - pcs7: spfs: remove "ns_list" option from "replace" command as obsolete - pcs7: namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748 #PSBM-49423) - pcs7: scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207) - pcs7: scripts: restart all systemd automount services (#PSBM-46672) - pcs7: sk-unix: Fix path resolving for sockets with abs symlinks in paths - pcs7: util: Add cr_set_root/cr_restore_root helpers - pcs7: spfs: do not treat existent file as error in create_reg_file - pcs7: seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - pcs7: scripts: spfs-release-replace.sh introduced - pcs7: criu: spfs -- Fixup various nits for NFS sake - pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488) - pcs7: criu: tty -- Restore tty params synchronously (#PSBM-46382) - pcs7: Initial sync with vanilla v2.4- log: Print version into the log (#PSBM-50239) - files-reg: fix silly-renamed files migration - files-reg: improve spfs_file helper - mounts: export is_root_mount helper- Revert "sk-unix: forbid to dump NFS unix sockets" (#PSBM-47017)- mount: sysfs -- Use slave mounting for the root (#PSBM-50010) - util-vdso: correct vdso symbol's length- Makefile: install spfs-release-replace.sh script (#PSBM-49726)- files: Allow to dump ploopX files opened (#PSBM-49723) - version: Adjust numbering - Revert "files_reg: carry rdev with regular files"- seize: Wait the freezer to complete before processing tags (#PSBM-49439) - spfs: remove obsolete code - files-reg: migrate "spfs" files as ghost-ones - files-reg: conditionally dump content in dump_ghost_file - util: mkdirname helper introduced - files-reg: split create_ghost - files_reg: remove unused "struct ghost_file" from mkreg_ghost prototype - dump: Move task_comm_info helpers into seize.c- pcs7: arch, x86 -- Fix typo in cpuid masking code (#PSBM-49423) - spfs: do not tolerate file existence on creation- dump: Show task comm early - spfs: add device files creation support (#PSBM-48985) - files_reg: carry rdev with regular files- spfs: fix freeze cgroup path discovery - cgroup: new_cg_root_get helper introduced - criu: remove NFS unlinked files restriction - files-reg: migrate spfs unlinked file as "link remap" objects - files-reg: migrate spfs file as "link remap" objects - spfs: pass mount ID instead of namespace descriptor to spfs_create_file - spfs: explicitly pass size and mode to spfs_create_file - link_remap: do not create excessive links for a single file - cr-dump: discover fs type in fill_fd_params_special - proc_parse: fix vma file open mode recognition (#PSBM-49199) - Set hash for -u1 branch- tty: Don't forget to add eol when inverting slave pts paths (#PSBM-49008)- tty: Fix typos in vt driver choosing (#PSBM-48614)- mount: don't do MS_REC|MS_PRIVATE for host mounts (#PSBM-46298) - log: files-ext -- Show exactly which file can't be dumped - criu: util -- Add __read_fd_link helper- mount: forbid dumping overmounted NFS (#PSBM-48620)- zdtm: add a new test to check netlink sockets with queued data - netlink: restore data in a received queue for netlink sockets (#PSBM-28386) - netlink: request flags for netlink sockets - sk-queue: add an ability to dump addresses for messages - check: check whether NETLINK_REPAIR is supported or not - unix: Do not autobind unnamed unix sockets (#PSBM-48446) - pcs7: images: Sync format with vanilla criu (#PSBM-48283) - sk-unix: forbid to dump NFS unix sockets - files-reg: forbid to dump unlinked NFS files - proc_parse: forbid dumping NFS remote locks - files-reg: remove "unreachable" protobuf field as redundant - files-reg: create spfs file in case of parent mount is SPFS - files-reg: do not create spfs file in case of external resource- spfs: remove "ns_list" option from "replace" command as obsolete- rpc: Implement @timeout interface (#PSBM-48256)- namespace: mark mount namespaces as populated after the forking stage (#PSBM-48222)- rpc: Add interface --freeze-cgroup option (#PSBM-44613) - pcs7: arch, x86 -- Add support for vz7 specific cpuid masking (#PSBM-47748) - dump: Allocate root_item before run pre-dump scripts (#PSBM-47737) - scripts: remove bogus command substitution in nfs-ports-allow.sh (#PSBM-44207)- net/sysctl: fix ipv4 forwarding (#PSBM-47355) - scripts: terminate systemd-autofs-restart.sh if saved mountpoint is missing (#PSBM-44207) - scripts: return non zero if save_mountpoint() fails (#PSBM-44207) - scripts: remove bogus command substitution in systemd-autofs-restart.sh (#PSBM-44207) - scripts: detect EOF on read in a usual way in systemd-autofs-restart.sh (#PSBM-44207)- mount: don't add a separate entry for each enabled file systems (#PSBM-47221)- scripts: restart all systemd automount services (#PSBM-46672)- sk-unix: Fix path resolving for sockets with abs symlinks in paths - util: Add cr_set_root/cr_restore_root helpers- zdtm/ptrace_sig: don't print from signal handlers (#PSBM-47772) - test: file_locks01 -- Test for dev change if only env is set (#PSBM-47714) - test: fanotify00 -- Test for device change if only env set - test: static, fanotify00 -- Don't compare @s_dev in test (#PSBM-47667)- spfs: do not treat existent file as error in create_reg_file - seize: Take --timeout option into account when freezing processes (#PSBM-47539 #PSBM-47538) - mount: create a temporary mount to restore shared and master groups (#PSBM-47508) - build: Don't forget to relink arch builtins on change - scripts: spfs-release-replace.sh introduced - Revert "scripts: spfs-release-replace.sh introduced" - scripts: spfs-release-replace.sh introduced - scripts: call readlink in CT context in systemd-autofs-restart.sh - scripts: single style for command substitution in systemd-autofs-restart.sh (#PSBM-44207) - tty: Don't forget to unblock tty peers - tty: Save @flags unconditionaly for consistency - zdtm: check in-flight data in ttys - tty: Write unread pty buffers on post dump stage (#PSBM-41399)- criu: don't interrupt do_new_mount() after appling mount options (#PSBM-47489)- aio: Consider AIO pages as "should be dumped" (#PSBM-47489) - test/sockets: add test for shut down stream unix sockets (#PSBM-47023) - sk-unix: ignore shutdown mismatch in unix sockets - scripts: fix strings comparison in systemd-autofs-restart.sh- net/sysctl: zero-init stable_secret strings (#PSBM-30942) - net/sysctl: remove excess type conversions for sysctl_entry.type - net/sysctl: silence read error in case of CTL_FLAGS_READ_EIO_SKIP - zdtm/net/ipv6: add test for string stable_secret - sysctl: fix allocation for array of pointers - zdtm/net/ipv6: add test for confs - zdtm/net/ipv6: add devconfs6 and rand_range6 - zdtm/net/ipv6: allow inacurate match for mldvX_unsolicited_report_interval - zdtm/net/ipv4: split save_and_set and check_and_restore - zdtm/net/ipv4: replace rand limits with rand ranges - zdtm/net/ipv4: make save_and_set and check_and_restore reusable - restore/net/ipv6: net device and def/all configuration - dump/net/ipv6: net device and def/all configuration - net/ipv6: add devconfs6 array to store config option's names - net/ipv6/protobuf: add device config options for ipv6 - net/ipv4: add net_conf_op to reuse for ipv6 - protobuf: add SysctlEntry for ipv4/ipv6 sysctl confs or some others - sysctl: add CTL_FLAGS_HAS to mark successful sysctl_op request - zdtm/net/ipv4: rename devconfs4 and rand_limit4 and dir4 - net/ipv4: suffix devconfs with "4" - net/ipv4: add new sysctls - pcs7: criu: spfs -- Fixup various nits for NFS sake- pcs7: nfs: build -- Add install of spfs-change-mode.sh and nfs-ports-allow.sh - pcs7: mounts: mount spfs instead of NFSv3 and NFSv4 (#PSBM-26967) - pcs7: mount: add support for NFSv4 - pcs7: protobuf/mnt.proto: NFSv4 type added - pcs7: mount: add support for NFS - pcs7: protobuf/mnt.proto: NFS type added - pcs7: mount: add support for SUNRPC Pipefs - pcs7: protobuf/mnt.proto: RPC Pipefs type added - pcs7: scripts: allow-nfs-ports.sh added - pcs7: action-scripts: ACT_POST_NET_LOCK stage added - pcs7: scripts: spfs-change-mode.sh added - pcs7: action scripts: set spfs environment in run_scripts - pcs7: regular files: create temporary spfs file if marked as unreachable - pcs7: spfs: delayed mounts facility introduced - pcs7: cr-restore: declare SPFS_MNGR_SK service fd - pcs7: regular files: protobuf "unreachable" field introduced - pcs7: filemap: collect mapped file fs type - pcs7: reg_file_entry: add "mode" variable - Add requirement for spfs package- pcs7: cgroup: Fix early update of @dir_name in rewrite_cgsets (#PSBM-46987) - plugins: Initialize plugins control by default- pcs7: mount: add support for external block devices (#PSBM-39381)- pcs7: aio: Fix mmap retval analysing- pcs7: aio: Don't fail if kernel does not support aio wait (#PSBM-42488) - pcs7: Wait aio pending requests (#PSBM-42488)- mount: create a clean mount only if a sub directory is bind-mounted (#PSBM-46908) - mount: dump a file system only if a mount point isn't overmounted (#PSBM-46908) - mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46908) - Revert "mount: dump a file system only if a mount point isn't overmounted" - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere"- scripts: fix mountinfo parsing in systemd-autofs-restart.sh (#PSBM-46889)- mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46732 #PSBM-46662) - mount: remove an extra condition from mounts_equal() - mount: handle a case when parent and child mounts in the same directory - mount: dump a file system only if a mount point isn't overmounted - Revert "mount: don't overmount a mount if it should be bind-mounted somewhere" (#PSBM-46732) - autofs: support of "hidden" catatonic mounts (#PSBM-46572) - autofs: rework pipe search logic a bit - build: Add ability to generate gprof output- autofs: support of "hidden" catatonic mounts (#PSBM-46572) - autofs: rework pipe search logic a bit - build: Add ability to generate gprof output- pcs7: scripts -- Make sure -1 pid is not passed (#PSBM-46572)- pcs7: Increase the number of files limit (#PSBM-46761)- scripts: do not use stat to discover fs type in systemd-autofs-restart.sh (#PSBM-46756)- scripts: save and restore target mount for autofs service (#PSBM-46672)- mount: don't overmount a mount if it should be bind-mounted somewhere (#PSBM-46662)- pcs7: Dump only known controllers (#PSBM-46382) - Revert "cg: Add ability to dump predefined controllers only"- Revert "pcs7: Increase the number of files limit" - criu: dump filemap as soon as possible (#PSBM-46355)- autofs: collect new pipe fd as used (#PSBM-46601)- autofs: do not create dentries for indirect mount on bind-mounts (#PSBM-46572)- pcs7: Increase the number of files limit (#PSBM-46355) - build: install -- Don't forget to init DESTDIR - scripts: fix typo in binary path in systemd-autofs-restart.sh - restore: Wait for userns being prepared before moving into cgroups (v3) - Revert "restore: Wait for userns being prepared before moving into cgroups (v2)" - cg: Add ability to dump predefined controllers only (#PSBM-46382)- scripts: join pid namespace in systemd-autofs-restart.sh (#PSBM-46470) - files: try to change fsuid only if linkat() failed (#PSBM-46201) - criu: tty -- Restore tty params synchronously (#PSBM-46382)- restore: Wait for userns being prepared before moving into cgroups (v2) (#PSBM-46360) - Revert "restore: Wait for userns being prepared before moving into cgroups"- autofs: use temporary value for virtual pgrp on dump - restore: Wait for userns being prepared before moving into cgroups (#PSBM-46360)- files: Correctly handle tasks with no open file descriptors (#PSBM-46269)- autofs: install -- Fix libexec prefix (#PSBM-46249) - autofs: install -- Ship scripts/systemd-autofs-restart.sh (#PSBM-46249)- autofs: install -- Ship scripts/systemd-autofs-restart.sh (#PSBM-46249) - autofs: install -- Ship {_libexecdir}- pcs7: Update Makefile.local - criu: action-scripts -- Don't access @root_item_pid if not present - zdtm: check the mem_dirty_track if --pre or --snap is set (Pavel Emelyanov ) - ppc64le: fix build with UFFD (Pavel Emelyanov ) - Fix compilation of action-scripts.c (Pavel Emelyanov ) - kdat: Remove tcp_max_rshare (Pavel Emelyanov ) - tcp: Send as much as possible (Pavel Emelyanov ) - join-ns: Fix join-ns zdtm test (Pavel Emelyanov ) - sk: handle erorors of lseek (Pavel Emelyanov ) - util: don't leak a socket (Pavel Emelyanov ) - namespaces: don't leak memory on error paths (Pavel Emelyanov ) - cr-restore: set NS_PID environment variable before "post-resume" hook (Pavel Emelyanov ) - scripts: systemd-autofs-restart.sh added (Pavel Emelyanov ) - build: Add export of sublevels and extra (Pavel Emelyanov ) - build: compel -- Drop double targeting (Pavel Emelyanov ) - cr-restore: "post-resume" hook introduced (Pavel Emelyanov ) - criu: opts -- Shuffle init_opts order (Pavel Emelyanov ) - compel: Drop config.h from deps (Pavel Emelyanov ) - ns: Options join-ns and unshare are conflicting (Pavel Emelyanov ) - compel: Initial commit for standalone tool (Pavel Emelyanov ) - compel: piegen -- Introduce actions (Pavel Emelyanov ) - compel: piegen -- Add @arch option (Pavel Emelyanov ) - compel: piegen -- Add @uapi-dir option (Pavel Emelyanov ) - join-ns: add join-ns zdtm test (Pavel Emelyanov ) - join-ns: perform join_namespace according to join-ns opts (Pavel Emelyanov ) - join-ns: add join-ns option to criu CLI and RPC (Pavel Emelyanov ) - uffd: add handling of zero pages (Pavel Emelyanov ) - uffd: introduce uffd_handle_page (Pavel Emelyanov ) - uffd: increment uffd_copied_pages only in one place (Pavel Emelyanov ) - uffd.c: move the code out of the 'main' function (Pavel Emelyanov ) - uffd.c: make some variable static global (Pavel Emelyanov ) - uffd.c: move code into subfunctions (Pavel Emelyanov ) - uffd.c: remove unused variable vma_size (Pavel Emelyanov ) - autofs: free leaked opts in autofs_mount (Pavel Emelyanov ) - autofs: free leaked info in autofs_mount on error path (Pavel Emelyanov ) - autofs: free leaked AutofsEntry in autofs_dump_entry (Pavel Emelyanov ) - autofs: do not close NULL image (Pavel Emelyanov ) - uffd: remove handling of VDSO pages (Pavel Emelyanov ) - uffd: do not treat VDSO pages as lazy (Pavel Emelyanov ) - uffd: Fix pr_debug format for vma start (Pavel Emelyanov ) - autofs: fix device id modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: fix device id printf modifier on error path in autofs_mnt_open (Pavel Emelyanov ) - autofs: do not treat old kernel as error in autofs_parse() (Pavel Emelyanov ) - autofs: include limit.h before auto_fs.h (Pavel Emelyanov ) - autofs: fix build on Fedora 22 (Pavel Emelyanov ) - uffd.c: do not call unneeded functions (Pavel Emelyanov ) - cr-restore: move add_ns_shared_cb declaration to include/namespaces.h (Pavel Emelyanov ) - Fix userfaultfd code with newer compilers (Pavel Emelyanov ) - check: "autofs" feature added (Pavel Emelyanov ) - zdtm.py: create "dev/autofs" root contruction (Pavel Emelyanov ) - zdtm: add autofs test (Pavel Emelyanov ) - mount: create target directory for AutoFS indirect mounts. (Pavel Emelyanov ) - autofs: restore stage introduced (Pavel Emelyanov ) - autofs: declare ioctl helpers and constants (Pavel Emelyanov ) - pipes: export collect_one_pipe_ops() helper (Pavel Emelyanov ) - files: new dup_fdinfo() and dup_fle() helpers introduced (Pavel Emelyanov ) - files: new "used" files list introduced (Pavel Emelyanov ) - autofs: dump fsinfo stage introduced (Pavel Emelyanov ) - autofs: parse fsinfo stage introduced (Pavel Emelyanov ) - protobuf: autofs entry introduced (Pavel Emelyanov ) - devices: add support for /dev/autofs (Pavel Emelyanov ) - protobuf/mnt.proto: AutoFS type added (Pavel Emelyanov ) - unshare: Check private remount error code (Pavel Emelyanov ) - unshare: Define UNSHARE_MOUNT_PROC constant (Pavel Emelyanov ) - pstree: try to find a free pid between busy pids (v2) (Pavel Emelyanov ) - pstree: use rbtree to find a specified pid (v3) (Pavel Emelyanov ) - pstree: prepare to store all pid-s in rb-tree (v3) (Pavel Emelyanov ) - pstree: split alloc_pstree_helper (Pavel Emelyanov ) - pstree: move state from pstree_item to pid (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 2) (Pavel Emelyanov ) - Try to include userfaultfd with criu (part 1) (Pavel Emelyanov ) - Remove static from prepare_task_entries function (Pavel Emelyanov ) - Make skip_pages function available criu-wide (Pavel Emelyanov ) - unshare: Support pidns (Pavel Emelyanov ) - unshare: Mount new proc (Pavel Emelyanov ) - unshare: Support mntns (Pavel Emelyanov ) - unshare: Preparations and CLI option (Pavel Emelyanov ) - pcs7: Extend version output via local build (#PSBM-45009) - build: criu -- Don't forget to cleanup arch directory - cg: Add rollback in get_cg_set (#PSBM-45553) - cg: Add rollback for add_cgroup (#PSBM-45553) - cg: Fix use-after-free in put_ctls (#PSBM-45553) - pie: open_detach_mount -- Use pr_perror for regular build - util: return aligned pointers from shmalloc() - Makefile: drop 'rebuild' from help message - nmk: build.mk -- Add @libso-y helper - nmk: build.mk -- Add @hostprogs-y mode - nmk: msg.mk -- Add host- messages - nmk: build.mk -- Shrink gen-cc-rules - nmk: build.mk -- Drop any-match rule - nmk: build.mk -- Fix deps for target mode - nmk: build.mk -- Squash gen-rule-x into gen-cc-rules - nmk: Drop rules.mk - nmk: rules.mk -- Fix AFLAGS typo - tests: remap_dead_pid[_root] -- Run in namespace only - log: add gnu-styled output to stdout - build: images -- Add missing cleanups - namespaces: zero struct ns_id when allocating - criu: use strsignal to describe kill reason - nmk: build.mk -- Fix ar rule for external libs - nmk: build.mk -- Make process depend on Makefile itself - nmk: build.mk -- On cleanup use cleanup-y only - nmk: utils.mk -- Add cleanify helper - nmk: utils.mk -- Drop redundant spaces - nmk: build.mk -- Fix typo in gen-ar-target-rule - nmk: rules.mk -- Add per-obj flags - nmk: build.mk -- Drop unused objlist target - nmk: rules.mk -- Drop @CFLAGS_ and @ASFLAGS_ but add ability to bring them via param - build: add mrproper target - build/nmk: add mrproper-y - build: Drop @images - nmk: scritps/macro.mk -- Enhance gen-built-in - x86/restorer: drop unused struct pt_regs - types: Remove setns override with sys_setns - rst-malloc: adjust free_bytes in rst_mem_align_cpos - netfilter: add -n to iptables and ip6tables calls - build: docs -- Use autogenerated footer - pstree: try to find a free pid between busy pids (v2) - pstree: use rbtree to find a specified pid (v3) - pstree: prepare to store all pid-s in rb-tree (v3) - pstree: split alloc_pstree_helper - pstree: move state from pstree_item to pid - criu: seize -- Don't left dangling @processes_to_wait_pids pointer - libnetlink: back port a fix for nlattr_parse() - netlink: Use nlattr instead of rtattr - criu: pstree_switch_state -- Fix nil deref on error path - irmap: use kdev everywere - dump: check for conflicts with the dead processes - irmap: don't try to dereference a null pointer - mounts: handle device numbers in different formats properly - criu: Use __NR_memfd_create for testing memfd presence - build: Conditionally defined SYS_* constants - build: criu -- Don't link with syscalls library - mount: don't use a shared mount to get a clean mount - mount: master_id should be 0 for new mounts - mount: restore a shared group for propagated mounts - build: clean up various other bits - build: Add verbose message on packages needed for CRIU building - build: Unify phony forms usage - pre-dump: don't waste time in error cases - dump: pre-dump should never kill processes - make: Improve tar generation - pcs7: Update local version - dump: don't call rollback actions from a signal handler (#PSBM-44371) - mounts: Skip already bound siblings in propagate_siblings() - PCS7: cgroup: Always restore predefined VE props (#PSBM-41406) - files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost() - seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795) - mount: separate private remount conditions for external and non-external (#PSBM-42829) - plugin: Add PRE_DUMP stage into plugins - dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199) - scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov )- pcs7: Extend version output via local build (#PSBM-45009)- build: criu -- Don't forget to cleanup arch directory - cg: Add rollback in get_cg_set (#PSBM-45553) - cg: Add rollback for add_cgroup (#PSBM-45553) - cg: Fix use-after-free in put_ctls (#PSBM-45553) - pie: open_detach_mount -- Use pr_perror for regular build - util: return aligned pointers from shmalloc() - Makefile: drop 'rebuild' from help message - nmk: build.mk -- Add @libso-y helper - nmk: build.mk -- Add @hostprogs-y mode - nmk: msg.mk -- Add host- messages - nmk: build.mk -- Shrink gen-cc-rules - nmk: build.mk -- Drop any-match rule - nmk: build.mk -- Fix deps for target mode - nmk: build.mk -- Squash gen-rule-x into gen-cc-rules - nmk: Drop rules.mk - nmk: rules.mk -- Fix AFLAGS typo - tests: remap_dead_pid[_root] -- Run in namespace only - log: add gnu-styled output to stdout - build: images -- Add missing cleanups - namespaces: zero struct ns_id when allocating - criu: use strsignal to describe kill reason - nmk: build.mk -- Fix ar rule for external libs - nmk: build.mk -- Make process depend on Makefile itself - nmk: build.mk -- On cleanup use cleanup-y only - nmk: utils.mk -- Add cleanify helper - nmk: utils.mk -- Drop redundant spaces - nmk: build.mk -- Fix typo in gen-ar-target-rule - nmk: rules.mk -- Add per-obj flags - nmk: build.mk -- Drop unused objlist target - nmk: rules.mk -- Drop @CFLAGS_ and @ASFLAGS_ but add ability to bring them via param - build: add mrproper target - build/nmk: add mrproper-y - build: Drop @images - nmk: scritps/macro.mk -- Enhance gen-built-in - x86/restorer: drop unused struct pt_regs - types: Remove setns override with sys_setns- rst-malloc: adjust free_bytes in rst_mem_align_cpos- netfilter: add -n to iptables and ip6tables calls - build: docs -- Use autogenerated footer - pstree: try to find a free pid between busy pids (v2) - pstree: use rbtree to find a specified pid (v3) - pstree: prepare to store all pid-s in rb-tree (v3) - pstree: split alloc_pstree_helper - pstree: move state from pstree_item to pid- criu: seize -- Don't left dangling @processes_to_wait_pids pointer- libnetlink: back port a fix for nlattr_parse() - netlink: Use nlattr instead of rtattr- criu: pstree_switch_state -- Fix nil deref on error path- irmap: use kdev everywere - dump: check for conflicts with the dead processes - irmap: don't try to dereference a null pointer - mounts: handle device numbers in different formats properly - criu: Use __NR_memfd_create for testing memfd presence - build: Conditionally defined SYS_* constants - build: criu -- Don't link with syscalls library - mount: don't use a shared mount to get a clean mount - mount: master_id should be 0 for new mounts - mount: restore a shared group for propagated mounts - build: clean up various other bits - build: Add verbose message on packages needed for CRIU building - build: Unify phony forms usage - pre-dump: don't waste time in error cases - dump: pre-dump should never kill processes - make: Improve tar generation - pcs7: Update local version - dump: don't call rollback actions from a signal handler (#PSBM-44371) - mounts: Skip already bound siblings in propagate_siblings() - PCS7: cgroup: Always restore predefined VE props (#PSBM-41406) - files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost() - seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795) - mount: separate private remount conditions for external and non-external (#PSBM-42829) - plugin: Add PRE_DUMP stage into plugins - dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199) - scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov ) - Add dep for libnl3-devel- dump: don't call rollback actions from a signal handler (#PSBM-44371)- mounts: Skip already bound siblings in propagate_siblings()- PCS7: cgroup: Always restore predefined VE props (#PSBM-41406)- files-reg: Fix rm_parent_dirs() counter - files-reg: Delete ghost file numeric index - files-reg: Revert: Make try_clean_ghost() use struct ghost_file ptr - zdtm: Disable unlink_regular00 by default - zdtm: Add unlink_regular00 test - files-reg: Recreate deleted parent directories during restore of ghost file - files-reg: Create ghost files in first existing parent directory - files-reg: Move applying ghost file metadata from create_ghost() to separate function - files-reg: Make try_clean_ghost() use struct ghost_file ptr - files-reg: Refactor create_ghost()- seize: detach from external processes before killing dumped processes (v2) (#PSBM-43795)- mount: separate private remount conditions for external and non-external (#PSBM-42829)- plugin: Add PRE_DUMP stage into plugins- dump: save master_id for the root mount (#PSBM-43260) - crtools: describe the inherit-fd option - parasite: Don't left memfd opened inside dumpee (#PSBM-43199)- gitignore: ignore some more generated testcases (Pavel Emelyanov ) - seize: remove extra \n from the error message (Pavel Emelyanov ) - seize: don't detach from a task if a freezer cgroup is set (Pavel Emelyanov ) - seize: detach from all processes before waiting the root task (Pavel Emelyanov ) (#PSBM-43089) - zdtm: Add suid flag to binfmt_misc test (Pavel Emelyanov ) - ns: Remove __rst_new_ns_id (Pavel Emelyanov ) - fds: Remove unused arg from close_old_fds() (Pavel Emelyanov ) - tmpfs: don't try to dump mountpoint at 0 fd (Pavel Emelyanov ) - criu [PATCH] post-setup-namespaces (Pavel Emelyanov ) - service: add support for the --external option (Pavel Emelyanov ) - dump: add some stray newlines to pr_infos (Pavel Emelyanov ) - binfmt_misc: Make debug printed using pr_debug() (Pavel Emelyanov ) - zdtm: Add binfmt_misc test (Pavel Emelyanov )- scripts: post-setup-namespaces - seize: remove extra \n from the error message (Cyrill Gorcunov ) - seize: don't detach from a task if a freezer cgroup is set (Cyrill Gorcunov ) - seize: detach from all processes before waiting the root task (Cyrill Gorcunov ) (#PSBM-43089) - make: Add Makefile.version (Cyrill Gorcunov ) - ppc64: introduce CPU feature checking operations (Pavel Emelyanov ) - zdtm/test: Fix live/static/netns-nf dependency (Pavel Emelyanov ) - zdtm.py: Add optional dependency support (Pavel Emelyanov ) - mem: Handle the case when kernel doesn't support dirty track reset (Pavel Emelyanov ) - kdat: Handle pagemaps with zeroed pfns (Pavel Emelyanov ) - zdtm: Use /usr/bin/diff instead of /bin/diff (Pavel Emelyanov ) - remap: fix dead pid remap of /proc/ (Pavel Emelyanov ) - test/session00: close a signal pipe in all processes (Pavel Emelyanov ) - fix compilation after previous commit (Pavel Emelyanov ) - util: Optimize vaddr_to_pfn (Pavel Emelyanov ) - zdtm/chroot: wait when a child closes a descriptor (Pavel Emelyanov ) - make: update target to measure code coverage (Pavel Emelyanov ) - zdtm/session00: wait when a child closes fd (Pavel Emelyanov ) - zdtm: Correct syscall numbers for fanotify00 testcase (Pavel Emelyanov ) - define macro for stack alignment (Pavel Emelyanov ) - tty: use PRIx64 to print dev_t (Pavel Emelyanov ) - zdtm.py: Force per-test logs if report is requested (Pavel Emelyanov ) - arch: define the readlinkat syscall for all architectures (Pavel Emelyanov ) - zdtm: Align stack pointer for arm64 (Pavel Emelyanov ) - restorer: Update RESTORE_ALIGN_STACK for arm64 (Pavel Emelyanov ) - restore: Align stack to 16 bytes for arm64 (Pavel Emelyanov ) - arm: Fix wrong system call number (Pavel Emelyanov ) - criu-log: introduce print_once (Pavel Emelyanov ) - kerndat: do not report errors on feature test (Pavel Emelyanov ) - dump: write an inventory image after dumping all processes (Pavel Emelyanov ) - test: add a new test to check external terminals (Pavel Emelyanov ) - zdtm: add a new test to check inherited tty-s (Pavel Emelyanov ) - tty: allow to dump and restore external terminals (v2) (Pavel Emelyanov ) - crtools: add ability to set list of external resources (Pavel Emelyanov ) - tty: use a pair of dev and rdev to identify a terminal (Pavel Emelyanov ) - jenkins: add a script to check inherit file descriptors (Pavel Emelyanov ) - mnt: Allow for external mounts to be fsroot ones (Pavel Emelyanov ) - zdtm.py: unfreeze test processes before killing them (Pavel Emelyanov ) - syscall: use a correct type for timer_t (Pavel Emelyanov ) - mount: Fix spelling error in a error message (Pavel Emelyanov ) - arm: proc_parse -- Fix u64 format warnings (Pavel Emelyanov ) - mount: change the root master_id on restore only (Pavel Emelyanov ) - cr-check: add logiuid feature (Pavel Emelyanov ) - criu: fetch kdat.has_loginuid value on C/R (Pavel Emelyanov ) - kerndat: add has_loginuid to kerndat_s (Pavel Emelyanov ) - creds: restore -- Honor rst_mem_alloc rules (Pavel Emelyanov ) - tcp: Try harder to restore recv queue (Pavel Emelyanov ) - zdtm.py: When no logs, do not add them to report (Pavel Emelyanov ) - zdtm.py: Mark nouser tests as such (Pavel Emelyanov ) - jenkins: Add user mode job (Pavel Emelyanov ) - proc: Fix aio mapping detection (Pavel Emelyanov ) - zdtm.py: Check how user-mode works (Pavel Emelyanov ) - parasite: Load code blobs via memfd (Pavel Emelyanov ) - proc: Use smaps path for file (Pavel Emelyanov ) - pagemap-cache: Use greedy mode if pagemap inaccessible (Pavel Emelyanov ) - vdso: Don't fail if pagemap is not accessbile (Pavel Emelyanov ) - dump: Dont read prohibited kernel files (Pavel Emelyanov ) - kerndat: Read anon shmem dev via maps (Pavel Emelyanov ) - util: Ability to ignore errno when opening proc (Pavel Emelyanov ) - parasite: Add @pad argument for syscall run (Pavel Emelyanov ) - proc: Get full file path into handle_vma (Pavel Emelyanov ) - criu: Remove security (Pavel Emelyanov ) - test: different_creds -- Enhance the testing (Pavel Emelyanov ) - zdtm: Add ARRAY_SIZE into the header (Pavel Emelyanov ) - zdtm: set the dumpable flag after setuid (v2) (Pavel Emelyanov ) - zdtm.py: don't worry if a test class doesn't have ns() and static() (Pavel Emelyanov ) - test/inhfd: use os.fdopen instead of a home-made class (Pavel Emelyanov ) - cpt/rst: access and modification time of ghost files (Pavel Emelyanov ) (#PSBM-41401) - creds: dump -- Implement per-thread dump of credentials (Pavel Emelyanov ) (#PSBM-41416) - creds: restore -- Implement per-thread restore of credentials (Pavel Emelyanov ) - creds: Move proc_status_creds::cap_X at the end of structure (Pavel Emelyanov ) (#PSBM-41416) - creds: Allocate CredsEntry for every thread in core_entry_alloc (Pavel Emelyanov ) - creds: protobuf -- Move @creds_entry into @thread_core_entry (Pavel Emelyanov ) (#PSBM-41416) - xmalloc: Add xmemdup helper (Pavel Emelyanov ) - arm: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - ppc64: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - x86: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - Fix 'mnt_path' may be used uninitialized in this function (Pavel Emelyanov ) - zdtm_ct: Mount binfmt misc in ct creation (Pavel Emelyanov ) - jenkins: Mount binfmt misc in run_ct (Pavel Emelyanov ) - jenkins: build criu with debuginfo (Pavel Emelyanov ) - zdtm/file_locks04: use test_waitsig() to synchronize child and parent (Pavel Emelyanov ) - zdtm/fifo_wronly: wait when a child opens a file descriptor (Pavel Emelyanov ) - zdtm.sh: remove warnings about existent directories (Pavel Emelyanov ) - binfmt_misc: Skip dumping if it's not virtual (Pavel Emelyanov ) - zdtm.py: Test how freeze cgroup works (v2) (Pavel Emelyanov ) - zdtm/pstree: check return codes (Pavel Emelyanov ) - zdtm/pstree: read from a correct file descriptor (Pavel Emelyanov ) - test: wait when a prepartion stage will be completed (Pavel Emelyanov ) - pipe00: when while a child is preparing file descriptors (Pavel Emelyanov ) - zdtm/socket_close_data01: wait a child before c/r (Pavel Emelyanov ) - zdtm/sigpending: wait a child before C/R (Pavel Emelyanov ) - zdtm: don't hardcode file names in test soruces (Pavel Emelyanov ) - test: write_read10 -- Wait for children to create (Pavel Emelyanov ) - test: write_read_10 -- Fix typo in testing opened file descriptor (Pavel Emelyanov ) - zdtm:mntns_open: wait when a child process opens descriptors (Pavel Emelyanov ) - zdtm/mountpoints: wait when a child process opens descriptors (Pavel Emelyanov ) - files-reg: fix compilation issues (Pavel Emelyanov ) - mountpoints: don't re-create /dev/null (Pavel Emelyanov ) - rst: set mode on ghost-files after write (Pavel Emelyanov ) (#PSBM-41401) - dump: add timeout for collecting processes (Pavel Emelyanov ) - dump: factor out cleanup code into separate functions (Pavel Emelyanov ) - dump: fix return code in message on pre-dump failure (Pavel Emelyanov ) - seize: slightly cleanup collect_pstree() exit path. (Pavel Emelyanov ) - cr-restore: optimize {loginuid,oom_score_adj} restoring (Pavel Emelyanov ) - mount: use xsprintf() in resolve_external_mounts() (Pavel Emelyanov ) - sysfs_parse: use xsprintf() in fixup_aufs_vma_fd() (Pavel Emelyanov ) - irmap: use xsprintf() in irmap_update_dir() (Pavel Emelyanov ) - cgroup: use xsprintf() in rewrite_cgsets() (Pavel Emelyanov ) - mount: use xstrcat() in attach_option() (Pavel Emelyanov ) - util: new string helpers introduced (Pavel Emelyanov ) - test: block prctl in seccomp_filter (Pavel Emelyanov ) - pie: move seccomp before creds to avoid resoring them after setuid (Pavel Emelyanov ) - test: setuid in seccomp_filter test to have it fail (Pavel Emelyanov ) - ptrace: start tracing processes before restoring creds (Pavel Emelyanov ) - zdtm: check shared mounts more carefully (Pavel Emelyanov ) - mount: do nothing if a root mount isn't slave (Pavel Emelyanov ) - zdtm.py: fix comparing files, maps and mounts (Pavel Emelyanov ) - Fix compilation after previous commit (Pavel Emelyanov ) - files-reg: restore PR_SET_DUMPABLE flag after setfsuid (Pavel Emelyanov ) - unix: Fix double restoring of peerless unix sockets, which are peers for others (Pavel Emelyanov ) - loginuid: save value of loginuid from a target userns (Pavel Emelyanov ) - lsm: don't leak apparmor string in the case of "unconfined" (Pavel Emelyanov ) - zdtm.py: tests should not inherite file descriptors from zdtm.py (Pavel Emelyanov ) - seize: do not try to detach killed tasks (Pavel Emelyanov ) - zdtm: Change oom_score_adj score value (Pavel Emelyanov ) - files: check fd flags after restore (Pavel Emelyanov ) - restore: restore freezer cgroup state (Pavel Emelyanov ) - restore: split finalize_restore into two stages (Pavel Emelyanov ) - cgroups: save freezer state during dump (Pavel Emelyanov ) - crit: The 'mems' explorer (Pavel Emelyanov ) - crit: The 'fds' explorer (Pavel Emelyanov ) - crit: The 'ps' explorer (Pavel Emelyanov ) - crit: Explore action and stubs (Pavel Emelyanov ) - zdtm.py: bind-mount a test root as slave (Pavel Emelyanov ) - makefile: use zdtm.py to execute tests (Pavel Emelyanov ) - zdtm.py: compare a set of mounts before and after c/r (Pavel Emelyanov ) - zdtm.sh: fix a value of ZDTM_THREAD_BOMB (Pavel Emelyanov ) - zdtm.py: don't mix tab and spaces (Pavel Emelyanov ) - zdtm.py: collect fds and maps for all test processes (Pavel Emelyanov ) - mount: don't take into acount the root master_id (Pavel Emelyanov ) - mount: don't remount a slave mount as private when it isn't required (Pavel Emelyanov ) - zdtm: add loginuid restore test (Pavel Emelyanov ) - zdtm: add test for oom_score_adj restore (Pavel Emelyanov ) - criu: unset loginuid value before creating userns (Pavel Emelyanov ) (#PSBM-41993) - criu: restore loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - criu: dump loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - make: Fix @install-criu target (Pavel Emelyanov ) - test: report actual errno on seccomp prctl failure (Pavel Emelyanov ) - zdtm.py: Add action for cleaning nsroot (Pavel Emelyanov ) - Rename cr_opts.ps_port into port (Pavel Emelyanov ) - Introduce the read_into_buffer helper (Pavel Emelyanov ) - seize: don't wory if a cgroup contains some extra tasks (v3) (Pavel Emelyanov ) - fstype: "mount" callback introduced (Pavel Emelyanov ) - pstree: more pstree-related helpers (Pavel Emelyanov ) - jenkins: No parallelizm for group test (Pavel Emelyanov ) - zdtm.py: Add write perms for all bins in test (Pavel Emelyanov ) - zdtm: Fix compilation after previous commit (Pavel Emelyanov ) - jenkins: Add groups (Pavel Emelyanov ) - freebind: Use different ports (Pavel Emelyanov ) - zdtm.py: Fix deps for group start (Pavel Emelyanov ) - criu: tty: pick only master as a control terminal (Pavel Emelyanov ) (#PSBM-42093) - test: Add inotify02 into the Makefile (Pavel Emelyanov ) - crit: Speed up jenkins test ~60 times (Pavel Emelyanov ) - crit: Fix ipc load/dump for io.BytesIO input/output (Pavel Emelyanov ) - crit: Add dump for semaphores (Pavel Emelyanov ) - crit: Add handling of msgqueue (Pavel Emelyanov ) - crit: Add dump method for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for semaphore images (Pavel Emelyanov ) - zdtm.py: Add step-by-step execution (Pavel Emelyanov ) - zdtm.py: Print out and strace file names (Pavel Emelyanov ) - zdtm.py: Print test output on screen when possible (Pavel Emelyanov ) - zdtm.py: catch KeyError instead of ValueError for sets (Pavel Emelyanov ) - mount: fix a race between restoring namespaces and file mappings (v2) (Pavel Emelyanov ) - mount: pick out a function to set ROOT_FD_OFF (Pavel Emelyanov ) - crit: Fix casts for fixed and sfixed types (Pavel Emelyanov ) - seize: get_freezer_state -- Relax stack (Pavel Emelyanov ) - zdtm.sh: set a type argument for mknod (Pavel Emelyanov ) - zdtm.py: don't worry if uns isn't in run_flavs (Pavel Emelyanov ) - mount: stop doing anything if populate_mnt_ns() failed (Pavel Emelyanov ) - mount: don't worry if a binfmt_misc image is empty (Pavel Emelyanov ) - jenkins: Fix CRIT test to skip non-criu images and provide cumulative output (Pavel Emelyanov ) - mount: don't add dot to a path (Pavel Emelyanov ) - crit: Pretty print vma flags and status (Pavel Emelyanov ) - mount: umount a temporary mount with MTN_DETACH (Pavel Emelyanov ) - pagemap-cache: add const-qualifier to pmc's vma (Pavel Emelyanov ) - page-xfer: fix wrong hole address offset (Pavel Emelyanov ) - test: Add inotify02 (Pavel Emelyanov ) - zdtm.py: Fix zdtm_test._env data type (Pavel Emelyanov ) - sysctl: don't skip erros (Pavel Emelyanov ) - sysctl: really skip missing entries in __nonuserns_sysctl_op() (Pavel Emelyanov ) - criu: x86_32: change stack align to 16 bit on parasite head (Pavel Emelyanov ) - criu: add the mnt_id feature if a test uses more than one mntns (Pavel Emelyanov ) - zdtm.py: skip the uns flavor if userns isn't suppported (Pavel Emelyanov ) - lsm: add a --lsm-profile flag (Pavel Emelyanov ) - crit: Encode back pretty IP addresses (Pavel Emelyanov ) - crit: Show devices nicely (Pavel Emelyanov ) - jenkins: Add test for crit de/encode correctness (Pavel Emelyanov ) - zdtm.py: Run tests in best flavor (Pavel Emelyanov ) - zdtm.py: Count skipped tests (Pavel Emelyanov ) - mount: don't rewrite root for external mounts (Pavel Emelyanov ) (#PSBM-41932) - unix: Add support for restoring receive queue for unix DGRAM sockets (Pavel Emelyanov ) - zdtm: add mntns_rw_ro_rw to the test list (Pavel Emelyanov ) - mount: fix restoring a bind-mount when its root is overmounted (Pavel Emelyanov ) - mount: refactor do_bind_mount() (Pavel Emelyanov ) - mount: pick out a function to bind mount a point in a tmp place (Pavel Emelyanov ) - mnt: Carry run-time device ID in mount_info (Pavel Emelyanov ) (#PSBM-41610) - zdtm.py: The groups_test class for running groups (Pavel Emelyanov ) - zdtm.py: Generator of groups of tests (Pavel Emelyanov ) - zdtm.py: Prepare zdtm_test and flavors for mass test start (Pavel Emelyanov ) - zdtm: Remove unneeded re-exec (Pavel Emelyanov ) - zdtm: Factor out ps showing code (Pavel Emelyanov ) - zdtm: Introduce explicit prepare_namespaces() routine (Pavel Emelyanov ) - fs: Add binfmt_misc support (Pavel Emelyanov ) - zdtm: Add socket_close_data01 test (Pavel Emelyanov ) - Update source (Cyrill Gorcunov ) - Remove obsoleted patches (Dmitry Mishin )- mnt: Allow for external mounts to be fsroot ones (Pavel Emelyanov ) - zdtm.py: unfreeze test processes before killing them (Pavel Emelyanov ) - syscall: use a correct type for timer_t (Pavel Emelyanov ) - mount: Fix spelling error in a error message (Pavel Emelyanov ) - arm: proc_parse -- Fix u64 format warnings (Pavel Emelyanov ) - mount: change the root master_id on restore only (Pavel Emelyanov ) - cr-check: add logiuid feature (Pavel Emelyanov ) - criu: fetch kdat.has_loginuid value on C/R (Pavel Emelyanov ) - kerndat: add has_loginuid to kerndat_s (Pavel Emelyanov ) - creds: restore -- Honor rst_mem_alloc rules (Pavel Emelyanov ) - tcp: Try harder to restore recv queue (Pavel Emelyanov ) - zdtm.py: When no logs, do not add them to report (Pavel Emelyanov ) - zdtm.py: Mark nouser tests as such (Pavel Emelyanov ) - jenkins: Add user mode job (Pavel Emelyanov ) - proc: Fix aio mapping detection (Pavel Emelyanov ) - zdtm.py: Check how user-mode works (Pavel Emelyanov ) - parasite: Load code blobs via memfd (Pavel Emelyanov ) - proc: Use smaps path for file (Pavel Emelyanov ) - pagemap-cache: Use greedy mode if pagemap inaccessible (Pavel Emelyanov ) - vdso: Don't fail if pagemap is not accessbile (Pavel Emelyanov ) - dump: Dont read prohibited kernel files (Pavel Emelyanov ) - kerndat: Read anon shmem dev via maps (Pavel Emelyanov ) - util: Ability to ignore errno when opening proc (Pavel Emelyanov ) - parasite: Add @pad argument for syscall run (Pavel Emelyanov ) - proc: Get full file path into handle_vma (Pavel Emelyanov ) - criu: Remove security (Pavel Emelyanov ) - test: different_creds -- Enhance the testing (Pavel Emelyanov ) - zdtm: Add ARRAY_SIZE into the header (Pavel Emelyanov ) - zdtm: set the dumpable flag after setuid (v2) (Pavel Emelyanov ) - zdtm.py: don't worry if a test class doesn't have ns() and static() (Pavel Emelyanov ) - test/inhfd: use os.fdopen instead of a home-made class (Pavel Emelyanov ) - cpt/rst: access and modification time of ghost files (Pavel Emelyanov ) (#PSBM-41401) - creds: dump -- Implement per-thread dump of credentials (Pavel Emelyanov ) (#PSBM-41416) - creds: restore -- Implement per-thread restore of credentials (Pavel Emelyanov ) - creds: Move proc_status_creds::cap_X at the end of structure (Pavel Emelyanov ) (#PSBM-41416) - creds: Allocate CredsEntry for every thread in core_entry_alloc (Pavel Emelyanov ) - creds: protobuf -- Move @creds_entry into @thread_core_entry (Pavel Emelyanov ) (#PSBM-41416) - xmalloc: Add xmemdup helper (Pavel Emelyanov ) - arm: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - ppc64: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - x86: syscalls -- Wire in sys_setgroups (Pavel Emelyanov ) - Fix 'mnt_path' may be used uninitialized in this function (Pavel Emelyanov ) - zdtm_ct: Mount binfmt misc in ct creation (Pavel Emelyanov ) - jenkins: Mount binfmt misc in run_ct (Pavel Emelyanov ) - jenkins: build criu with debuginfo (Pavel Emelyanov ) - zdtm/file_locks04: use test_waitsig() to synchronize child and parent (Pavel Emelyanov ) - zdtm/fifo_wronly: wait when a child opens a file descriptor (Pavel Emelyanov ) - zdtm.sh: remove warnings about existent directories (Pavel Emelyanov ) - binfmt_misc: Skip dumping if it's not virtual (Pavel Emelyanov ) - zdtm.py: Test how freeze cgroup works (v2) (Pavel Emelyanov ) - zdtm/pstree: check return codes (Pavel Emelyanov ) - zdtm/pstree: read from a correct file descriptor (Pavel Emelyanov ) - test: wait when a prepartion stage will be completed (Pavel Emelyanov ) - pipe00: when while a child is preparing file descriptors (Pavel Emelyanov ) - zdtm/socket_close_data01: wait a child before c/r (Pavel Emelyanov ) - zdtm/sigpending: wait a child before C/R (Pavel Emelyanov ) - zdtm: don't hardcode file names in test soruces (Pavel Emelyanov ) - test: write_read10 -- Wait for children to create (Pavel Emelyanov ) - test: write_read_10 -- Fix typo in testing opened file descriptor (Pavel Emelyanov ) - zdtm:mntns_open: wait when a child process opens descriptors (Pavel Emelyanov ) - zdtm/mountpoints: wait when a child process opens descriptors (Pavel Emelyanov ) - files-reg: fix compilation issues (Pavel Emelyanov ) - mountpoints: don't re-create /dev/null (Pavel Emelyanov ) - rst: set mode on ghost-files after write (Pavel Emelyanov ) (#PSBM-41401) - dump: add timeout for collecting processes (Pavel Emelyanov ) - dump: factor out cleanup code into separate functions (Pavel Emelyanov ) - dump: fix return code in message on pre-dump failure (Pavel Emelyanov ) - seize: slightly cleanup collect_pstree() exit path. (Pavel Emelyanov ) - cr-restore: optimize {loginuid,oom_score_adj} restoring (Pavel Emelyanov ) - mount: use xsprintf() in resolve_external_mounts() (Pavel Emelyanov ) - sysfs_parse: use xsprintf() in fixup_aufs_vma_fd() (Pavel Emelyanov ) - irmap: use xsprintf() in irmap_update_dir() (Pavel Emelyanov ) - cgroup: use xsprintf() in rewrite_cgsets() (Pavel Emelyanov ) - mount: use xstrcat() in attach_option() (Pavel Emelyanov ) - util: new string helpers introduced (Pavel Emelyanov ) - test: block prctl in seccomp_filter (Pavel Emelyanov ) - pie: move seccomp before creds to avoid resoring them after setuid (Pavel Emelyanov ) - test: setuid in seccomp_filter test to have it fail (Pavel Emelyanov ) - ptrace: start tracing processes before restoring creds (Pavel Emelyanov ) - zdtm: check shared mounts more carefully (Pavel Emelyanov ) - mount: do nothing if a root mount isn't slave (Pavel Emelyanov ) - zdtm.py: fix comparing files, maps and mounts (Pavel Emelyanov ) - Fix compilation after previous commit (Pavel Emelyanov ) - files-reg: restore PR_SET_DUMPABLE flag after setfsuid (Pavel Emelyanov ) - unix: Fix double restoring of peerless unix sockets, which are peers for others (Pavel Emelyanov ) - loginuid: save value of loginuid from a target userns (Pavel Emelyanov ) - lsm: don't leak apparmor string in the case of "unconfined" (Pavel Emelyanov ) - zdtm.py: tests should not inherite file descriptors from zdtm.py (Pavel Emelyanov ) - seize: do not try to detach killed tasks (Pavel Emelyanov ) - zdtm: Change oom_score_adj score value (Pavel Emelyanov ) - files: check fd flags after restore (Pavel Emelyanov ) - restore: restore freezer cgroup state (Pavel Emelyanov ) - restore: split finalize_restore into two stages (Pavel Emelyanov ) - cgroups: save freezer state during dump (Pavel Emelyanov ) - crit: The 'mems' explorer (Pavel Emelyanov ) - crit: The 'fds' explorer (Pavel Emelyanov ) - crit: The 'ps' explorer (Pavel Emelyanov ) - crit: Explore action and stubs (Pavel Emelyanov ) - zdtm.py: bind-mount a test root as slave (Pavel Emelyanov ) - makefile: use zdtm.py to execute tests (Pavel Emelyanov ) - zdtm.py: compare a set of mounts before and after c/r (Pavel Emelyanov ) - zdtm.sh: fix a value of ZDTM_THREAD_BOMB (Pavel Emelyanov ) - zdtm.py: don't mix tab and spaces (Pavel Emelyanov ) - zdtm.py: collect fds and maps for all test processes (Pavel Emelyanov ) - mount: don't take into acount the root master_id (Pavel Emelyanov ) - mount: don't remount a slave mount as private when it isn't required (Pavel Emelyanov ) - zdtm: add loginuid restore test (Pavel Emelyanov ) - zdtm: add test for oom_score_adj restore (Pavel Emelyanov ) - criu: unset loginuid value before creating userns (Pavel Emelyanov ) (#PSBM-41993) - criu: restore loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - criu: dump loginuid & oom_score_adj values (Pavel Emelyanov ) (#PSBM-41993) - make: Fix @install-criu target (Pavel Emelyanov ) - test: report actual errno on seccomp prctl failure (Pavel Emelyanov ) - zdtm.py: Add action for cleaning nsroot (Pavel Emelyanov ) - Rename cr_opts.ps_port into port (Pavel Emelyanov ) - Introduce the read_into_buffer helper (Pavel Emelyanov ) - seize: don't wory if a cgroup contains some extra tasks (v3) (Pavel Emelyanov ) - fstype: "mount" callback introduced (Pavel Emelyanov ) - pstree: more pstree-related helpers (Pavel Emelyanov ) - jenkins: No parallelizm for group test (Pavel Emelyanov ) - zdtm.py: Add write perms for all bins in test (Pavel Emelyanov ) - zdtm: Fix compilation after previous commit (Pavel Emelyanov ) - jenkins: Add groups (Pavel Emelyanov ) - freebind: Use different ports (Pavel Emelyanov ) - zdtm.py: Fix deps for group start (Pavel Emelyanov ) - criu: tty: pick only master as a control terminal (Pavel Emelyanov ) (#PSBM-42093) - test: Add inotify02 into the Makefile (Pavel Emelyanov ) - crit: Speed up jenkins test ~60 times (Pavel Emelyanov ) - crit: Fix ipc load/dump for io.BytesIO input/output (Pavel Emelyanov ) - crit: Add dump for semaphores (Pavel Emelyanov ) - crit: Add handling of msgqueue (Pavel Emelyanov ) - crit: Add dump method for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for shmem pages (Pavel Emelyanov ) - crit: Add payload handler for semaphore images (Pavel Emelyanov ) - zdtm.py: Add step-by-step execution (Pavel Emelyanov ) - zdtm.py: Print out and strace file names (Pavel Emelyanov ) - zdtm.py: Print test output on screen when possible (Pavel Emelyanov ) - zdtm.py: catch KeyError instead of ValueError for sets (Pavel Emelyanov ) - mount: fix a race between restoring namespaces and file mappings (v2) (Pavel Emelyanov ) - mount: pick out a function to set ROOT_FD_OFF (Pavel Emelyanov ) - crit: Fix casts for fixed and sfixed types (Pavel Emelyanov ) - seize: get_freezer_state -- Relax stack (Pavel Emelyanov ) - zdtm.sh: set a type argument for mknod (Pavel Emelyanov ) - zdtm.py: don't worry if uns isn't in run_flavs (Pavel Emelyanov ) - mount: stop doing anything if populate_mnt_ns() failed (Pavel Emelyanov ) - mount: don't worry if a binfmt_misc image is empty (Pavel Emelyanov ) - jenkins: Fix CRIT test to skip non-criu images and provide cumulative output (Pavel Emelyanov ) - mount: don't add dot to a path (Pavel Emelyanov ) - crit: Pretty print vma flags and status (Pavel Emelyanov ) - mount: umount a temporary mount with MTN_DETACH (Pavel Emelyanov ) - pagemap-cache: add const-qualifier to pmc's vma (Pavel Emelyanov ) - page-xfer: fix wrong hole address offset (Pavel Emelyanov ) - test: Add inotify02 (Pavel Emelyanov ) - zdtm.py: Fix zdtm_test._env data type (Pavel Emelyanov ) - sysctl: don't skip erros (Pavel Emelyanov ) - sysctl: really skip missing entries in __nonuserns_sysctl_op() (Pavel Emelyanov ) - criu: x86_32: change stack align to 16 bit on parasite head (Pavel Emelyanov ) - criu: add the mnt_id feature if a test uses more than one mntns (Pavel Emelyanov ) - zdtm.py: skip the uns flavor if userns isn't suppported (Pavel Emelyanov ) - lsm: add a --lsm-profile flag (Pavel Emelyanov ) - crit: Encode back pretty IP addresses (Pavel Emelyanov ) - crit: Show devices nicely (Pavel Emelyanov ) - jenkins: Add test for crit de/encode correctness (Pavel Emelyanov ) - zdtm.py: Run tests in best flavor (Pavel Emelyanov ) - zdtm.py: Count skipped tests (Pavel Emelyanov ) - mount: don't rewrite root for external mounts (Pavel Emelyanov ) (#PSBM-41932) - unix: Add support for restoring receive queue for unix DGRAM sockets (Pavel Emelyanov ) - zdtm: add mntns_rw_ro_rw to the test list (Pavel Emelyanov ) - mount: fix restoring a bind-mount when its root is overmounted (Pavel Emelyanov ) - mount: refactor do_bind_mount() (Pavel Emelyanov ) - mount: pick out a function to bind mount a point in a tmp place (Pavel Emelyanov ) - mnt: Carry run-time device ID in mount_info (Pavel Emelyanov ) (#PSBM-41610) - zdtm.py: The groups_test class for running groups (Pavel Emelyanov ) - zdtm.py: Generator of groups of tests (Pavel Emelyanov ) - zdtm.py: Prepare zdtm_test and flavors for mass test start (Pavel Emelyanov ) - zdtm: Remove unneeded re-exec (Pavel Emelyanov ) - zdtm: Factor out ps showing code (Pavel Emelyanov ) - zdtm: Introduce explicit prepare_namespaces() routine (Pavel Emelyanov ) - fs: Add binfmt_misc support (Pavel Emelyanov ) - zdtm: Add socket_close_data01 test (Pavel Emelyanov ) - fixed repository url - Prepare for builds from forked repository- backport 0004-criu-tty-pick-only-master-as-a-control-terminal.patch, #PSBM-42590- backport 0003-seize-don-t-wory-if-a-cgroup-contains-some-extra-tas.patch, #PSBM-42145- backport 0002-mnt-Carry-run-time-device-ID-in-mount_info.patch, #PSBM-41610- backport 0001-mount-dont-rewrite-root-for-external-mounts.patch, #PSBM-41932- Update to 1.8- criu segmentation fault, coredump created, #PSBM-41394- backport 0009-tty-open-all-terminals-with-O_NOCTTY.patch- backport 0008-tty-Restore-controlling-terminal-once-per-session.patch- remove 0008-rst-Re-use-opened-fd-when-restoring-private-mappings.patch- backport 0007-page-server-Fine-grained-corking-control-v3.patch - backport 0008-rst-Re-use-opened-fd-when-restoring-private-mappings.patch- backport 0006-fsnotify-Add-ability-to-force-resolve-paths-for-watc.patch- backport 0001-ptrace-don-t-stop-a-process-if-it-was-not-in-the-sto.patch - backport 0002-bfd-add-breadchr.patch - backport 0003-proc-read-all-data-from-proc-pid-task-tid-children-v.patch - backport 0004-proc-parse_children-appens-new-processes-to-a-specif.patch - backport 0005-seize-don-t-catch-all-processes-from-a-freezer-cgrou.patch- Update to 1.7.2- backport 0001-ipc-save-local-user-and-group-id-s-for-ipc-objects.patch - backport 0002-sk-unix-Fix-typo-in-name-length-estimation.patch- Update to 1.7.1- Add criu-d150d6f2-freezer_dont_catch_kernel_threads.patch- Update to 1.7- Update to 1.6.1- Rebuild with new protobuf-c package- Update to 1.6- Create python-criu and crit subpackages- Update to 1.5.1- Update to 1.4- Update to 1.3.1 (#1142896)- Update to 1.3 - Dropped all upstreamed patches - included pkgconfig file in -devel- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild- Include inttypes.h for PRI helpers- Rebuilt for https://bugzilla.redhat.com/show_bug.cgi?id=1126751- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild- Update to 1.2 - Dropped all upstreamed patches- Create -devel subpackage- Fix the epoch of crtools- Rename crtools to criu #1034677- Update to 1.0- Update to 0.8- Update to 0.7- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild- Delete all kind of -fstack-protector gcc options- Added arm macro to ExclusiveArch- fix building on ARM - fix null pointer dereference- updated to 0.6 - upstream moved binaries to sbin - using upstream's make install- updated to 0.5- updated to 0.4- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild- added ExclusiveArch blocker bug- improved Summary and Description- updated to 0.3 - fix building Documentation/- remove macros like %{__mkdir_p} and %{__install} - add comment why it is only x86_64- initial release  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3.18.1.3-1.vz73.18.1.3-1.vz7  !!!!"###$%%%%%%%###!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*******************************************************+,,************************************************************************************************--.//.......01122debug.build-id16e4eb35f9f8b04d2dd2a30a149235b088f3f5b2e4eb35f9f8b04d2dd2a30a149235b088f3f5b2.debug35ab26bde588433d3f61d7a8a8f18ad3f2764ad6ab26bde588433d3f61d7a8a8f18ad3f2764ad6.debug84617f4d04f4ef7e771ba67d2d343d1f9cc02d27.debugc6da515973de267a6f66f0ea62a9159eec87a01bda515973de267a6f66f0ea62a9159eec87a01b.debugd6531369b47a5def0c3c63fae6c8471bb1281419531369b47a5def0c3c63fae6c8471bb1281419.debug.dwzcriu-3.18.1.3-1.vz7.x86_64usrbincompel.debuglib64libcompel.so.1.0.debuglibcompel.so.1.debuglibcompel.so.debuglibcriu.so.2.0.debuglibcriu.so.2.debuglibcriu.so.debugsbincriu.debugcrtools.debugcriu-3.18.1.3compelarchx86srclibcpu.chandle-elf.cincludehandle-elf.hinfect.cthread_area.cincludeasmcpu.hinfect-priv.hlog.hpiegen.hptrace.hrpc-pie-priv.huapiasmcpu.hinfect-types.hsigframe.hcompelasmbreakpoints.hcpu.hfpu.hinfect-types.hsigframe.hcommonscm.hcpu.hhandle-elf.hinfect-util.hinfect.hksigset.hlog.hloglevels.hpluginsstdasmsyscall-types.hptrace.hsigframe-common.htask-state.hinfect-rpc.hinfect-util.hinfect.hptrace.hsrclibhandle-elf.cinfect-rpc.cinfect-util.cinfect.clog.cptrace.cmain.ccriuaction-scripts.caio.capparmor.carchx86cpu.ccrtools.cincludeasmcompat.hdump.hkerndat.hrestore.hrestorer.htypes.hvdso.hkerndat.csigaction_compat.csigframe.cautofs.cbfd.cbitmap.ccgroup-props.ccgroup.cclone-noasan.cconfig.ccovering-mounts.ccr-check.ccr-dedup.ccr-dump.ccr-errno.ccr-restore.ccr-service.ccrtools.cdevices.ceventfd.ceventpoll.cexternal.cfault-injection.cfdstore.cfifo.cfile-ids.cfile-lock.cfiles-ext.cfiles-reg.cfiles.cfilesystems.cfsnotify.chugetlb.cimage-desc.cimage.cimg-streamer.cincludeaction-scripts.haio.hasm-genericint.hautofs.hbfd.hbitmap.hcgroup-props.hcgroup.hclone-noasan.hcovering-mounts.hcpu.hcr-errno.hcr-service.hcr-syslog.hcr_options.hcriu-log.hcriu-plugin.hcrtools.hdevices.heventfd.heventpoll.hexternal.hfault-injection.hfdinfo.hfdstore.hfifo.hfile-ids.hfile-lock.hfiles-reg.hfiles.hfilesystems.hfsnotify.hhugetlb.himage-desc.himage.himg-streamer.himgset.hinet_diag.hipc_ns.hirmap.hkcmp-ids.hkcmp.hkerndat.hlibnetlink.hlinuxaio_abi.hmount.hopenat2.hrseq.huserfaultfd.hlog.hlsm.hmem.hmemfd.hmount-v2.hmount.hnamespaces.hnet.hnetfilter.hnetlink_diag.hpacket_diag.hpage-pipe.hpage-xfer.hpagemap-cache.hpagemap.hparasite-syscall.hparasite.hpath.hpid.hpidfd-store.hpipes.hplugin.hposix-timer.hprctl.hproc_parse.hprotobuf-desc.hprotobuf.hpstree.hptrace-compat.hrbtree.hrestore.hrestorer.hrst-malloc.hrst_info.hsched.hseccomp.hseize.hservicefd.hsetproctitle.hshmem.hsigframe.hsignalfd.hsk-inet.hsk-packet.hsk-queue.hsockets.hspfs.hstats.hstring.hsyscall.hsysctl.hsysfs_parse.htimens.htimerfd.htty.htun.huffd.hunix_diag.hutil-caps.hutil-pie.hutil-vdso.hutil.huts_ns.hvdso.hvma.hipc_ns.cirmap.ckcmp-ids.ckerndat.clibnetlink.clog.clsm.cmem.cmemfd.cmount-v2.cmount.cnamespaces.cnet.cnetfilter.cns-common.cpage-pipe.cpage-xfer.cpagemap-cache.cpagemap.cparasite-syscall.cpath.cpidfd-store.cpiepie-util-vdso-elf32.cpie-util-vdso.cpie-util.cparasite-blob.hrestorer-blob.hpipes.cplugin.cproc_parse.cprotobuf-desc-gen.hprotobuf-desc.cprotobuf.cpstree.crbtree.crst-malloc.cseccomp.cseize.cservicefd.csetproctitle.cshmem.csigframe.csignalfd.csk-inet.csk-netlink.csk-packet.csk-queue.csk-tcp.csk-unix.csockets.cspfs.cstats.cstring.csysctl.csysfs_parse.csyslog.ctimens.ctimerfd.ctty.ctun.cuffd.cutil.cuts_ns.cvdso-compat.cvdso.cimagesapparmor.pb-c.capparmor.pb-c.hautofs.pb-c.cautofs.pb-c.hbinfmt-misc.pb-c.cbinfmt-misc.pb-c.hbpfmap-data.pb-c.cbpfmap-data.pb-c.hbpfmap-file.pb-c.cbpfmap-file.pb-c.hcgroup.pb-c.ccgroup.pb-c.hcore-aarch64.pb-c.ccore-aarch64.pb-c.hcore-arm.pb-c.ccore-arm.pb-c.hcore-mips.pb-c.ccore-mips.pb-c.hcore-ppc64.pb-c.ccore-ppc64.pb-c.hcore-s390.pb-c.ccore-s390.pb-c.hcore-x86.pb-c.ccore-x86.pb-c.hcore.pb-c.ccore.pb-c.hcpuinfo.pb-c.ccpuinfo.pb-c.hcreds.pb-c.ccreds.pb-c.hdevice.pb-c.cdevice.pb-c.heventfd.pb-c.ceventfd.pb-c.heventpoll.pb-c.ceventpoll.pb-c.hext-file.pb-c.cext-file.pb-c.hfdinfo.pb-c.cfdinfo.pb-c.hfh.pb-c.cfh.pb-c.hfifo.pb-c.cfifo.pb-c.hfile-lock.pb-c.cfile-lock.pb-c.hfown.pb-c.cfown.pb-c.hfs.pb-c.cfs.pb-c.hfsnotify.pb-c.cfsnotify.pb-c.hghost-file.pb-c.cghost-file.pb-c.hgoogleprotobufdescriptor.pb-c.cdescriptor.pb-c.himg-streamer.pb-c.cimg-streamer.pb-c.hinventory.pb-c.cinventory.pb-c.hipc-desc.pb-c.cipc-desc.pb-c.hipc-msg.pb-c.cipc-msg.pb-c.hipc-sem.pb-c.cipc-sem.pb-c.hipc-shm.pb-c.cipc-shm.pb-c.hipc-var.pb-c.cipc-var.pb-c.hmacvlan.pb-c.cmacvlan.pb-c.hmemfd.pb-c.cmemfd.pb-c.hmm.pb-c.cmm.pb-c.hmnt.pb-c.cmnt.pb-c.hnetdev.pb-c.cnetdev.pb-c.hns.pb-c.cns.pb-c.hopenvswitch.pb-c.copenvswitch.pb-c.hopts.pb-c.copts.pb-c.hpacket-sock.pb-c.cpacket-sock.pb-c.hpagemap.pb-c.cpagemap.pb-c.hpidns.pb-c.cpidns.pb-c.hpipe-data.pb-c.cpipe-data.pb-c.hpipe.pb-c.cpipe.pb-c.hpstree.pb-c.cpstree.pb-c.hregfile.pb-c.cregfile.pb-c.hremap-file-path.pb-c.cremap-file-path.pb-c.hrlimit.pb-c.crlimit.pb-c.hrpc.pb-c.crpc.pb-c.hrseq.pb-c.crseq.pb-c.hsa.pb-c.csa.pb-c.hseccomp.pb-c.cseccomp.pb-c.hsiginfo.pb-c.csiginfo.pb-c.hsignalfd.pb-c.csignalfd.pb-c.hsit.pb-c.csit.pb-c.hsk-inet.pb-c.csk-inet.pb-c.hsk-netlink.pb-c.csk-netlink.pb-c.hsk-opts.pb-c.csk-opts.pb-c.hsk-packet.pb-c.csk-packet.pb-c.hsk-unix.pb-c.csk-unix.pb-c.hstats.pb-c.cstats.pb-c.hsysctl.pb-c.csysctl.pb-c.htcp-stream.pb-c.ctcp-stream.pb-c.htime.pb-c.ctime.pb-c.htimens.pb-c.ctimens.pb-c.htimer.pb-c.ctimer.pb-c.htimerfd.pb-c.ctimerfd.pb-c.htty.pb-c.ctty.pb-c.htun.pb-c.ctun.pb-c.hutsns.pb-c.cutsns.pb-c.hvma.pb-c.cvma.pb-c.hvxlan.pb-c.cvxlan.pb-c.hincludeapparmor.hcommonasmatomic.hbitops.hbitops.herr.hlist.hlock.hscm-code.cscm.hxmalloc.hlibccriu.ccriu.hsoccrsoccr.csoccr.h/usr/lib//usr/lib/debug//usr/lib/debug/.build-id//usr/lib/debug/.build-id/16//usr/lib/debug/.build-id/35//usr/lib/debug/.build-id/84//usr/lib/debug/.build-id/c6//usr/lib/debug/.build-id/d6//usr/lib/debug/.dwz//usr/lib/debug/usr//usr/lib/debug/usr/bin//usr/lib/debug/usr/lib64//usr/lib/debug/usr/sbin//usr/src/debug//usr/src/debug/criu-3.18.1.3//usr/src/debug/criu-3.18.1.3/compel//usr/src/debug/criu-3.18.1.3/compel/arch//usr/src/debug/criu-3.18.1.3/compel/arch/x86//usr/src/debug/criu-3.18.1.3/compel/arch/x86/src//usr/src/debug/criu-3.18.1.3/compel/arch/x86/src/lib//usr/src/debug/criu-3.18.1.3/compel/arch/x86/src/lib/include//usr/src/debug/criu-3.18.1.3/compel/include//usr/src/debug/criu-3.18.1.3/compel/include/asm//usr/src/debug/criu-3.18.1.3/compel/include/uapi//usr/src/debug/criu-3.18.1.3/compel/include/uapi/asm//usr/src/debug/criu-3.18.1.3/compel/include/uapi/compel//usr/src/debug/criu-3.18.1.3/compel/include/uapi/compel/asm//usr/src/debug/criu-3.18.1.3/compel/include/uapi/compel/common//usr/src/debug/criu-3.18.1.3/compel/include/uapi/compel/plugins//usr/src/debug/criu-3.18.1.3/compel/include/uapi/compel/plugins/std//usr/src/debug/criu-3.18.1.3/compel/include/uapi/compel/plugins/std/asm//usr/src/debug/criu-3.18.1.3/compel/src//usr/src/debug/criu-3.18.1.3/compel/src/lib//usr/src/debug/criu-3.18.1.3/criu//usr/src/debug/criu-3.18.1.3/criu/arch//usr/src/debug/criu-3.18.1.3/criu/arch/x86//usr/src/debug/criu-3.18.1.3/criu/arch/x86/include//usr/src/debug/criu-3.18.1.3/criu/arch/x86/include/asm//usr/src/debug/criu-3.18.1.3/criu/include//usr/src/debug/criu-3.18.1.3/criu/include/asm-generic//usr/src/debug/criu-3.18.1.3/criu/include/linux//usr/src/debug/criu-3.18.1.3/criu/pie//usr/src/debug/criu-3.18.1.3/images//usr/src/debug/criu-3.18.1.3/images/google//usr/src/debug/criu-3.18.1.3/images/google/protobuf//usr/src/debug/criu-3.18.1.3/include//usr/src/debug/criu-3.18.1.3/include/common//usr/src/debug/criu-3.18.1.3/include/common/asm//usr/src/debug/criu-3.18.1.3/lib//usr/src/debug/criu-3.18.1.3/lib/c//usr/src/debug/criu-3.18.1.3/soccr/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generichttps://virtuozzo.com/cpioxz2x86_64-redhat-linux-gnu?7zXZ !#,] b2u jӫ`( ^N LwBmifE ; υϡٺ|`{ UWwlFLEjS:VՐL ߸ Ë/[ lQhZ^M>KOn?;(k\Z7u洧W P𛡞X Ye MI߀[feUԬ OP1cHXF^}D!$(1tl!iOng9)ŋab];OmAE(^jQ眲\9kPƛA?(R눳KH)AڦXLח:ځ7kwPTC0]BArC"Mdmpa?Q2Pƞ/5v~:3Df`\s)0 Aey8&}$(ąU"hiI:t١'~s]~G_;`&ǓNƂ)^] L=YBTg2ԴDD˘%s'{Y,jcU?̄|n ZᮟCn%#"痩1zrܨ#_-S{6`_u?M*CO@li 91%"9X\q:4pv:0xHH~H, ] 0ٱlWGȶ죏e <޲׵E"A+ l5t^4_ VF.-sXe*ELL  %F@ݩ4_[];@+95?ǯ*+2a}ŒH-8JMB}Q51#J 7Ő t 0R4jЊĦ2D1ʼn`<*`ofn+za:`G12CK{412Ûz긋ּlqPHMNTwDQŒtholJaϬI!K_oz1; ']Pa:ry;ıA;1W\;G{NTA_%ƫ9c OQͩS86': 2j=RFic. 2ޟXd|I0"U*ZdLmbt5"~L:;^,HK,*N::7JbyP YIA/{gk2pSԳG"6T:v(ˇ>6pjv/1p|ntʜ(m(|CS"/.SpJ[- 3qUG\60POr߹iK譃6Sd, 14N$m%;Z;;BwolDr2F{e±IVu/+rݲYpeyV>]?O[ +\{z<͎ifxUˈe9'ǂP]\ 覿oFR~F'g]%&+{=>lGpsCrzEIÝ|d0G/9;`q1rgKdOx%Nˋ>1 jqvKN{Bm;#Ũ5 kk51A1,p0L ~׈2pK>(SQt"3N!S01 Vg7\)jsiw:siX$"a,'@FyHy;J8L(LVD@(%W%PٝuzJMؾoց*n²96$Ҽ29~ժRI16hr:I'@&*,."r{jz>l+% SfW:ȞS%كArܭ}hCj$ݵe aJ/]a'_ o5[gP5.3Xt?+ct0 I#6Xj_*C,vl*o ^Mm97Eyp{EǟieZ7Dە<– `Fb"Ͷ%VVN,:zI==F$鉑ۙ*o6CC,xq \ +:pNPخIﭹui%T_e"[2XVHKf\ua<Hwr.1gCȥG}2->RӝOc RzfӊL^9g35EΜuAI:&J:RVH %ʚЙU7K*rge<|eeoPy"@_.b':j`d+OBRul-5t?|nh 4\IZXr/~$M6]aeWQ=3 fX2y^9)W!Ε^D pT !$^a#23ju=3D}NW2- bXFaCVxˆil~cyţ3m`Iяཧ7K? 'g^X8&$!tHOVҳ@Lϲ/[P&T+kI,VjC:n' [g΋3,UH;<[Tys T˴y' -@W|n!wM ,@ou?%YkXX1TO e ֠ā՗+J5"4Ř (d(ePy*@g[b|쭂m+z-5CG;/G <$`iJOZg|6ާm3g)hhFU\өPf¡WB!p}6Q|' qEC h8B߀TAZA:u'Uͣd*T* vzqX˩5yZW-Nb\D|!/,V>t+hÂ(X$-,9%-}"ܣ: y9,N L/ S[uRB8z6zXyTA#ǕO|ҡ ^DooW.ˈ1q`ch;Q/̬P]|X3WzEL/܄d֦!v/rM?CHN)G|Wqȶve ր8ck V ='9=y÷!ʱ_w0Y#2V XBh$ڭKWtD}>mK@Wk_=3BT`S y+JWlqfa(ĐӍ4:˹M$9#P@|7W, \Y@T-#(-Ei~ؕLz]Бx 鱬|sD !3 b-~8@z&'2/vb6z;.-nxdB6uGyKlm,f*S5Ѥe5yczaײ.VɘkҰpm ف Iw2I_d^o@e@chE5x&'շeY/G'rI =p9ALaQ֑2{"kp=rbR"^0htw~:0+|Y~^K[\FSm~@#,ܺ\8i:`d Yj1xrwMDBC3]:@јmHtm%rM}Yy< ^w(cDܚTzKG3=(Kߢ7]B P3Tx6y5%e2g7,6DQˍ`٭g4ץ_y=5@I!bI&9)4KӃ|WqC;Kc&ڲV>(klcɡG?Wp~. ,L%aiY3Ɍh-ﺹ<ڷh2q[:Z@? a1uu;b "B.b8 vT@LAvQt@!5p?XN{"4xٸ -rٙ6L?aVqGkB"@H@$P߄!J^Hk]wUc3,=щ,D`~m>^wO^ݜ ƔM\JOah C:TF=|<8Vʽf #ڶ;TSNb;~Zupb. ,/^$toqiy\a #5!>?aԴ$-c>e9d:1z-L1uG(w~32a6~Y(/{43ʱ⤯$]Y[f9%Zz0?]әDQY_M__Pު%Ɗ=P?i\t4nlvo/W-~;rl(sX/&⋂~׭}fikEƈ%xP0a_<%2AnO04l3Y%5 xWy5I+Q:M"2K[ԋIThȳ\+_3S ̠_QNS\K_U~o@Pn*>k{!_v\›BSEfR7?+8L]Npi]UjGB#AmSs**[h sG,)ˆqڙ(kbX ׸E 5S!iaZxuǨ?\t5wfYG H}-"`3, hzp2HG|a0=FRx :|(IH4@G`N9#ޖ3ve 2BeyUiY> ^i+ʐa9JtՇ0~ FX:5I?ɪ[͉O=푭1f^% y_)p0]@!2a3U ]А|>[X# +8&'IZ9_}aff*h8VjU5;\uuod| ?Zx4F7DXo,CJ.˛MA& R]/>֫UO zW8zL7&dzwd((yWglGPίژ'&y3t^oiiٗk.~8sy2<3:#, 2zn &v+rǶB0z!If# _ 8_j+=pLlj|f)xv Tzg @EжٶK K} ]KQQeMqBN$IIPU'9~Ox4Z$z6ijm >IM\w'B_*֢0sø;&Jk杉8۱Sݝ|aDyvug,r¸2emUXP3L5zErٚo䩖^nBިttO׽yA0䘖ÿ_ -D؅(wL0ϟ`Mm!(hlެtMP>I@j%PU$&l]RkɠO' |pDfhn5g.V|;+B<hSf' +ܞ]10 X~^0Lt-@` QdE`P{y@&t˪ AR{\bC\6O75mqg/nOW7 GˊHH OFf:ݥURB * [G;Ϫl}D%J: nNʛF:O/%ބgm U[[~~+b`|>̡5la(Dͦ]5Vxlxu/,ew L2`#`/rr z" IL99Um˳jV[ 貗yT¾"dCTy7mK ݽ(k1OtZմBtn2`n&RZʩJ14co쾆` ;]}(O_W% nk-(b @YP Sغh$9)TUA@t']uȐM#5rnE&Pr %2eG@5ӭR?ϱp%JpH9۴ xȼHaBKa9Z(^5>oawGr0wX$\,C%4/߸ҡa?lcϻ~c %4G!nY?0:U'8NG}Uq>dQ)3(?K`1Rb%0éᓚ =5 D,1p.*-ϫ-h jzaQ-b%'n]wL%.6GH1VZWd]*EqKA.S-lTyb8ADW]ëڼ^򭇌{mZM+Cbd.ش wrO7a!⋆*\DZ6Zs' i=i@4zYU AHJAo>9 ݖHz/Iվ[uPQ-A玭_a \w8S#ir=Tx㔬@gn&E=ذXr:]>,Mcu(=bOٻn\0^͝%W0- AJmQ%D3|ITg7fWtďnapHBJKg5ˎv)VDC\wL{vC%IYȧXu[' )`À@Qt2N `oc EY:HeEٕ KĉZ Zx$׶[Цy׻?X&wlAG+"찴j$a7Фݫri{ollm@cv*+`gIbryh/4r KL杩B/&HYY11.5(g⊆UVaP?\R71PhwA;[mj[tppK&;Ne 9FK&c߷~ܐeduK+[m~{y5Ln|V{5LWtr(m_HC2| zqG4EWXhX$;gpc [*זdԝkf5%&3P7ztZK!G3pb[fr 0Vv͸Hu4w>g^K# Y;Qrݔs"^ܼ˺x(}sm}0n%P3YS 6q-GuSu XZ&~sZ6}V7]C+1,9Я$$6{]el<Ɉ"mV]7?n/5uk^<EJtVz$zyV7?7Kg"+ƚќ*wvB qm^ܰjxպ$ we;_v6O N;AY8fAJ%?U$I\9ζt2Yf^n(KpnySr0KrU mcM ƬL+S.7r*M۾EF-7t_c_c 7BV?IPY1# Rm[ ;p'dqm~B2"bWr"o*yRC`aav$G-ܬ/ݦ++Yx׶D:V޳?psqZCԮnԷm QYGNuK0ӟ4qA^}' (|7O 9~1V |07#\P *s2?uŶŢ} TN鈁i(} ?콪*!{E "'GBrWd zI7)vVJ=hYQs0 6_?-* /ETےq%b˴"ob1vFf!P 1KmmBis/d{"wnî[6~ H \CUv==[C,'O4"O _wCL( hkp7iUj3@zpV[5r IL*(vfP'Z3VIgإ\h6NL ]hw~>TJ@n2O(8R(.[ӛ,;&j;/}.n꽇h kAٽ՘CGLU=q1k$fdRĹBi(7 7r|9cjMDdC hVcFu"[aJ%X%e@U+4_x믽S-}dGJ %(H$hP=QjXc 8x29ƒ }LǮD/D<N+K] A"A^JزP$awD3:Z񓸄slYBw|.ղ>E\}Enw_z#tVs~'n\_@KOw>_8Imb _Iy ;_}px 9QGUnp ~4ghr,xNq6'"@*DFB%@/g}Cψ>kegR!r0J6x'BRX%Eo7Z=8SvtwG?V_fyq6yt?ݾ- 1~uKvA)a7[Pc ^PA]<0b9T73T@0m(Ix'kOz0ǿAl*.mfF`RPxt"fSHy5i|?Ц OV ij+9QL<2L^~o-@ аBp5lO%XҌQl(=]a>~.j 9)-Yau_$Bi'6FمdLM2ڠߤR8SU,_k7v" G,jgكՒ]@N/ b1޿w6m:byY`"'dX$[tٺb(]Mtd/ҥ]W5Z0\'B)})=˷ruΠi\Z4 /=Sà cxE-EưfC֠iwZy-kW_n>h871`TEDQup%ˀsKWGm$uw# T_\7QE?s9 %~taw =ܠ tɸZ ]n I;t{ իxq>|;0f'"ʵ]^y-bQ}\ޏ  ,4 .d @iI9f9>q 8JSC1ȹR6Oy<4 _D/ -~-i͕pd?Fǯ b@ZS/tr%⯇u2$y{27uLz"V3C滹Ygx瑲}-|nVx2 HUcq09WD0;JU(]ZA3ĨۮN1-d2 Fw֐6e<%6yfI9g Eqw6$qFY]!RڳB4xޓ9Ģ-/JB5d;e]+,ʷv7%p3(^(}u'8 6v7;P| et%pd\Mm~N%;:n#hwUC {i/9QQMmZ∼7ą˶!_bAb7JkH|x'J{/OaTb4$X!OЩ=-"ӄ֤v"Oۺki!::FoRR"{7rcb տGk]|k{Z` K"F :J+h=cV/5y·8z4G²y*PB[}P =oGDam%ӊ]9 FZ!XΛhX鴮L2!h򗭨Eqpx*Vk4sξ:.5|7X5]#X֍ 8Z$ZsSIs-gg6HL4$}.J"0w~\sK .ob҃k*-U nONeC=H~"k؅jLRia|+mܘP0/:[>( \TR:6j]FhG}53̧F^RxM4>+kj;†?U׾{?pM$ĺq9J Lg;y. p lp1XjsjV6qL,};b?3 a9ȲW߄5s4Ih+ۙ/oMYɈPϊbtuϑ{ (1Acy@fBf׋S~LS8 lE!%Re[eeo^"m%jlv}bx5߿;ㅛ ߎi{h1ՄtvZ2( &ɉH(={ǴZsjTPi~ D.pv혯`:|1mӔw0l7 u\0 ep/ J52םt_-M+.U7*s$V@Pk~c@Gbhʉ7ހ>4{##><ԇf+~Sʈ+PԴ{?o,q&mZbjgE9ښe2@YTqt@;rDI1fyWs4-hvb3R}*;c "yZCQu!4ʮ*؞C<'p*Cc}ݏul汎Q$$l".魲0M9- & A Jr[.Xu)55I. g*~!+ŠCMH(gL_T+>4ُˎ>nDAeG;[wX'ky5oq)Vw>O Skf),dV5>#5CElxet](+{Ʃ}|f0{Ie(Ekb;Oe%1~Ɓx2q{('1+'w >gt>W8FXə+:fГXbCIWքHZ<5հ,-4 AP>%&ڕ8B;oy,`a:Vpvٙ %ەٝ ǀ!nD́K2+ɶśb=0 t08"xWO(t\}N;h̋p+s*Rt.{oI,~|*z?.ra`N9LFd mS,&CQ7g٬ }dh{Ƿ{e)c,=nkK HHSʋ9=1@,ԇ]#AFRyfQs%(~AfLh5S]Wep٥JV6hW!:YXV$okD\*_n 5o0V+1i5 V3Vݓ37 ,A'OXq@qiq0ګ>^F=z]D hnJƂxYekPL`лΥ%mmNB!Ueg0z}H+/|f\mfV|nu#J1hMAQC'* 8`&K7DqZTV|+(JǦ(_Ç \"2KG=)፻aҜe:5?kka/r.^P8eUb9-%I}՞0r;OF-RSn~>Zy3Y;> 7;`SvM+{=Ij57Ѐ(Joi[\p73=Y_2J!9H+p-M۱W-l?,.N~ȞjL?Z.#˜yr5CGI- -D#ʮwn xi"\K-N9Y|2F& iUHƕtM+RxK{뻴-^yg /dx uq'y6$0@UxZcmޅ"8CInAHk 6;a2׷r?epf8)|,}?xDJ#4|=Ll{0}6g˄1e>FŰl4 tR OuHB]+wtSj)݊ZV \9 c5ag||H>ojO WCåYt2 >OV|iPEB1%8~r\isB4Z^k|&dcz0}ZCΚ45-خh-@m_~04 :3l'Beg]d)k56$EڀRL o;z6Oxs CR^؉wû K' e)0lKFT#ᵽn~J A5.J~6صX6:+-ڐk|k^\B.3fUDG[!Xlt4T\첀wly8.fP@JIjHqgU1R8EqnZvt{Rx"1< Y$  x@m%v*蓸N&|]hٵA3A8+P8g/ғR8<PmfDlΘj03N.όܓrzSBABv61Z)koU<77z8ػ;Aׅ Z]]-zWjlxb%?dh 1oR'D2Ԫ''X̓zKɧ̌a!Mg~^%I#& F1Xﻅ{yb}Ay6=TvF?ÇF*FNTnI-Tps}̈Gr)$4e Ϟh$d,f׿uoy ߉&C+6fX 760ap: Ƿg1)2V!mP˄^x%2O+42`JϫsKJ2Lt+12)#$ ZUEia8ME"YI=f̖ZLӉ3Vͨnb!S2փH~ķK0 3Dy,F\;v"ұƚW1XU܉}PK0@6cu5NE /ڈ٣V50Zy7$!>eX"co8Z 6۾M, 0Gkf4eKRڙ9n0ŢdX k#UzNGc@0EJQZ8~]ƵUm!Sf(?HgSwoڀjaj5d=x[gҟ3%ք6gWlA7?؉5P . {lZvXG0 fBӻmG[qt/_DW7a8yV{Idpn⭯#4*6KXlX{qJWV H.8wV=S z:zz]Oa*E3} $*9zy!RV{r'3${(4ׇZM#ؽVfYXTA2+H y5 5Po-Έn:ζ?r';^e6tm&l/[#'oou{x]"Ѓb6bJrLJ ,!]QŵLB[R啈@FF`ܱ1 bA̞l7w #Q8 w {̓<N`-fRxڃ7mY.͝C~vdskkqq}JV'֣\RH1)LjP+z-ҚETuĶޓ^vpO ^&O70 CL<27:~ISiz{ DLފtj @ꔾ~U ?Rt_@]tsuU+b$K2,J,!B7Dţnl9(mٝ"k~YLlZ`_W-En#?v5׼zbYkQ<_wˍp ;l+ӑ_=zo+>b.rZ:}`UnxWf8M=ĭtp:BeJ>鉪|A hA=L:)fT0P9](sk,;_ͰwJѶ^x| `mtM^rgBn굼oֲZޫ+l}7֛\ ,>"'Kk k߄psО8,u?G L2ĸbFF]Fl} &–-m*x+ !/S0> h;b{ag=1Mx8&8w~XYx:|g6>_sW 7IaEI0Ao@3fkJ`4Gr9@8fx/ɖYJ&>[}B^mJjpf^J`l  <<~o=ٞ4CO1<,c78գYk?NjC>?]]oJ܂zx֫.V=e~[5|]F1bJœcD=2 mKGEB|U׭"ɜ+Fn-!l+^& TwZ31t;n|^CrPLnWw\I6mHC04|EaHKnjjnB>>$AC}-}!p.ElShpkAU#ǩx2J\u_nQ7lh_/6 nJy _LX6(p-%3̠TCm0͚Y|!)K]a72qv(CkJ<6cGYv{Ep`uh0sU[Yx+<ۉ>?\J]j9Ga8&TL{{ƝZsZuJFhX̊2O/̤c+>` oY釥oFxxJ5-a"#RC:VBX'le͹@1Pz3Qs{[ӂ֑5w=4E"o%%攍JĖ0XA;( :dh)"9Ios4I`XMc{º$9sbαW)Bd&-/1*lGKRƋ.T2I2Xd2$Xa̟\^)9p(ČqRsfM/꦳S$C@MJKa4Xy 4T2MQ?Гv3Qp ̦),js$ \ ^sDHta>S^|~4jʼLʱ dkxBuD4ZQ>Sn3*ƹC"c%fug 9uKv*9\*x= -XRPhqG!?{*I(zV:-bo#\vMA4ȇ|e f=pPeڦ!vR\,)pm_rkz@4۲|@M[kOG"o.+p1f-9Y-uf4<`!Qk&oBMq1ы `_m}vBGBOkESJ:0))8:A E\{3y@T;Q֤ڌxMU}PsGUӑ.D!h'7esHqBn_лLԢmtI;.㇢ a̮ޱχ)Yib™[ͯj"nuζ~!_ZzkfV+|0GC[QDd2LD#[M` I!W8 3M7wkIz:q@Jc}v䬳6JKB%"֕_hjoQ~aK $lC¥$+Mޝd{ᔚ#$)㐏FBuLelHc !c_EZ%$x HLIj,dVhL;BW1#ֻ}7eqێc $3 25yRzh_b׽ߦ/HPcwsY3ujbqVnkg !9Y5lfJ _mS hٿo4}&_mÚ:wdKtjnoRG\Y'$~'0L|&\-+Q#^qV!\E Sp9l#>N;RF(۰-#VaWa8h $9x*~{88/1~*kL犾ھx_P[яgfEgGVGZ 0K|XJ.P7 KEƼ1[]'++y h؄~% 06৕MEp57STb(!tJA.Kɾ'UkdQD=i}zȣbʕaI+_zĜD [TbMےkAtXrP>muA6\3]S;unXy&b;:@F.fx:f˄Z2\oʻbWh܋>WOԣ)YSwK_OzQܓ7֨2.B*jTlIÖQm~OaQ~y ୬qvv^*]23h!bdֶ>m@~%g2:4Q0#݆΢/.|3iqmU] pMkЬ<`mlw#*zڟc8qNalhHR縗?@M$Qvwy'kF6,Aۘ5!rfT+j& r@fbCZօBzV3w<(t !jYùLRl.F2<^캇QIe兆i !ˣk(4^e o[E 2p$6BR b6%Ftv qTW {7(\9-NXC~s 06D߲P_^bH[c_Ԝ$4ofȼ //*up ʈ(BpdYt'ߜ}U;2i}\rsa9c9P#zz$[^|w}P[R AZ|IIawvל:\7\hM7*Vei8_ŗ$x4)_E$Iې>sC6ɤM9GgvHpdȸg*)1~h]>nV8-^OJq]p=r3cIuR" ]o&#lXsĵ@>c9WNJk=Lt`j 2E<؝WCpEq ޳ J<9w婺1uڼe)샀)o|vW`s7 es]^Ts!x/ٯRr±l3y~w֟+2I|t2MU(l{F 1P) #58%o[:]3VqWPoMpg[Xb*L Zj^ [f4נ#UB"+-3e~7WV#)iBjA# '풵QV@}zM8\-3v 3<ۜ@3fyͱ1:tQn?:K:nl%C%x?R9>b^jZ>u{_2Nmy^3 <*A\ZbOkݷ: #o^3 nim`Vd^~*4*9IE~8@Auَ͍lBv\.m4|8)w0 ѝfhڹ+ $T4B. *G5 _ĀiF-K_ŭ_~"OW/YHNVkcd$cƘ,~ЩLy_&]p@G+Z;κy[Ś Bdw>ްυ_y*in9ȱtNH9/i GܜQRi܌ɧfDei2 'O(OCcOF7ͭ3 w8Cg%r2d!:&mp^$>$T< !plj0?ƤÃ8{MIůc1ՃYVqd)M* ׶NL7|-ݼjgqurY4赠G ?aMdpb>Ђ~P[7aEL`4b!XLl2՚h!7b4C}Z+Tg<ΚFY5//D=;Z,r 9oebvJ榼G/GuDc*yS/mXL%c[V/v9Բ;I+S̍,K=㚼ղJ?'7'h=\'J jmrieѮ7 ·w9T-ޒJa|9("!r0ckVRiLk];cXI%,0FVNR ʹ* 2L9ߪD1;CbꤾF .~=Rmz43"x 5j\-}#>'k&V"iJ$;Ip $'] 'iz>+A:"](ʹ_j*pC'<=Z鉦4u}cEY3,-4\e!7BBBRayХST(NCd?j+VقO1T6;=M+KydI^oͤ;np7ί[!`|VI-__܎`z},&uO,>YW$';xo.B")o/v"R|6GL=? FJqƠr](Aљ:)07-(II]<2=]4ú80] 3u|)b%!QuʹC\9I=sjE'd2:B /D9KlC}nUcQ=(`MR]hus`n0(oSPZCljRُۗ]{&AL`*Y;SHlu.(:H$A( \>f{tIRdS .J/ik%K@`3;jԛx ١^ _  y}6c`NXkږ{K=j^+' k.痣pR'2n8}Ql+s&a T85. ڌڌ_T&u h^@Uwƒ ,G<@;f=TADү9B]*΢2lJTg /hܜۨMgDgTC4&D$Nf և,YI7 sbqecƉ/-[oyYL:}e_+iU"5'HhslC: =q6{zO7t^"HnޒI'*CH= IJľdތsuڸ\^CXA2[U8rPqG6Hh㈪X0DX k҈Pyk1^Іcwl2d Dt5đH.9qGڽ -\;Ṛ|tF NVL8{ŵW7J(ֿvRtCU޷o@Nn#(CxHqR[O:{4SBZ R 'RU%.S{-FDJD[[Ū麻f?۩pop,/nfKB|cScǩfm|`IX2/C}^nnlǥ-VKEO#>fPה(7/-&,8Y*sO %~%ݢ]D~~累~`o/NWL8S|L TWA 4qޞAdWSh$ zϽe3#~^㶼)(xeO W7vڦ%097:j~/[9U8,!㺌B릱C/ħ3ݥ\li -2n̘jW%9rp NTc#q ~Th{:Zo]O5~n}3V<5쑗[6%'[~-Y&E5YluyL$0ejmIk5>Ww`ɺ}m{RK)?$q\Kk9fA1DS1ind^.Uce\3Գbrq{Ϩ!꿭ZA\o5MXNucħʒ>\9x+^ӽ i#7& cY^FF .+<L&Nk!+Q6w,y={c7A=^9 gw%Mv+2+̄UG* %rrf{mm?>A+ahh*W^ ZghgF!aWͨ9,{c)FlHlQ%2lJbB1)K& 75D) eȾ7(gKhe? g\_g9-9ۦD1(T)7RRBƸz}pdoE 0?|5be[Y C(4ݶԌPL$5W]V#w?1 1éYGG- ];K` hʪ5n,g*y F6x "'dmԥj{DڹY|N D # I,e 7PΡ `a'[P"Sv) Z)7ХAgtCچ W!~cԬYSZ^9.XȬc5AoA~!g0mY ɇg?3F[Ik*^A.*V}Pot(Gszߥ n-0~gOO8J4Ji%'3 (PnUk@̉۸ot>sUNTyO9 u0ބbaAgRJjhS>l]4.iZ@;y\Y.[!F6F Pj,qE cy uiySwn݀n"B3DI_+tꏎ, sЎW(q[ 5jVl\9 b}ન\k-DB7Ly wUQ߻WgQ zػtK?LCp$a7WIv:pVe"E`5E]9Fxxi*i[+MCE)}Ke%*'s\cm&.2ʹl/7P,9+z̗R0s"|{.Nx~aʚ[&dH:Z,_j XMex"o>GOXVH++K lq +$TKXE]h،? hX 5VUhB )9;wM9lW5-bNJwzj2P\!m =gav2p@RhQ%4̿8cx3|KPw9c< i{t1I[[`YŘ1%cQM4gЬ3)[y `.S!]Cq9CpM ī C 睢Cv|(\kfixMFu*" LԘ `i :©s)B$NFlYp*4jmBIPAφ&^!XjR>VL+E0Nm̢D$*g(5YGz%1Mf$2C}S)/Tv'^> P*ԝ iwn$E#? Q6F ]C"PQ .CV-(u`=;.EzFRΎ9?NAe`\`c/[uB˽20Y'DZ"WZ<=~-r~PЈnQB/)ϟ9؀ܖ 8j'Q6ԶxLǝk)|ky:[r-_8({Dy+i5ô v(-G t ;*I!8 h}2VxhB˟QUI&b~ E28O .J8 ^ۆִC'>°.IFY:ŗblM, ۤ)X4$)sHV OZ k!X lH5QptSc5InlRZ-TTL³fe<{}dHn8Ʀ7)LVzT[`nU?F;*j 8n7MXIP348Lur7bB9~_6r, 0vD[n]п}!Ge,) lҫ;4v;6|;ߎj@+BJߤ}Gpr/Lg]X0 }?#k$^7H }SD~whX~Z@*8Mܞ%i$_oT2^Wsaj$1K00P KRw R3vТ]W z_ar+h-&qJοbt8?%pkOk&oTw?BFLBCIv..'YK EzI4REG`\nNfjkR)DZ(%iG Oe`6һT~ps+'>)vE5ozѳw3I4A),5?-$X6oq"S= !X9XI⪋Hg45_:5 (>0yqNzqf  I' (;R;LP. ,EoPosgaIx7vq^R7dLGb@A%~N jG/{QʾaYB+ļ_4@j5a &`-:N6$IYEfHCV[Xw}`CmK"䘤$:Y;RpHe{JuӋ4~ ZG#Zp"EfRTp Q 7.^!g +[H4Z]w+;:*9Mz^j C-4_Zlh 5'ā< r<);wO$ǜ}Co.im̩ N2;["y~Gڡ\jGx\j(Bl`V9heL7a]?RP%I"C',ՠ;5zVѭ= L0ߠa16) x#~Rzt4OQi~ Ʈ;j'B%HP{Pɭ(\+n9 fxt>㲐]Yfʪkg%gl74\,S=C黯JQ?RkA+PII7XLqٻNV/E#Xm U;O}*A1m^) $doS/2WUW4ɉ xʮ0o9YF5$lB(Zn6ct4Reys;4[Spj֘SxJУ&IKÛ, -y Xoc,GG{K!]XP~P<^8ؖFF]Z}WڻݻƗ$7|Gy0sFtfO,2SɬRV,BEfU?zG |ĕ} ЊH B/}gA.Tzt6.kج Vq$9[w8v2[brNV^<R$3 .=;w0; @OhbXqGA*48#ĉ)ѺHefpעUf PWxa&Hh5[b;GEubƵCT>s߮CUΊRҿϺRfIy?kJ{e.qc0~x6 +>Hl`*'nٺ W'Ѳ(ջ_i> ׇ\u˽L\>!?% >im|!2^ɤBF _1٧dmAY:f]U7aXs ʋKpllyTfWf/[FL;tҦB2y&eOm" 1&.h>A-i{eM>i:|s94Sq1g:scD $9m%< /[]6`(JVѳp,a!4o֥CUֳ[dHʚV7,܄ɒPW8nQ m%^AIe@ #}-e!fU)܇粴w#R2Zq}nGWJVͫX>dE0OS _u" [K.TY XR1J^eU<%nXb=I^zzӏFNެ>_Q!:yT`O['0R&uŲ(@#YrMVd6<>4UN>*FS.%//P)pLt(kXJZ"ɳD a躇 p2kBfniA XNC@N-9Ɍj8P:+in̋ۍ6b.R/~i^X3r;{j0gW 1f|RumSI.ݱՔj/nLUߕMܵ!]\:O [jZ\ %{8<ʹ;WpWH~K&O`݉ ʅR\S|kj1H$G)[v @:fu@< 99Y|C G;lek/7,+kDZrYa=Z~F%ƺA.  0P#~=(}17p&6=ooT@RAT uO=tm.ݹ|.M2<;yϰ1Y pFZͳAxA+ 4;=As+h nK?rFeG}Fڃ"4c ]s'&:_t}PrXB>6_H M2`}h1,嵦svXz]_7v +PER?.1U > n,~xs c,;z%R৔:={BaT]E{g8qIseJ-΢*,O gިOW]P~K~5Ж؅g&K)b]Ldr[#㏤"m;GޭpA|0DJt!KYr,(uc4M LTMFTG|Ԓ,0di,XZgWb,ѧ3SgfxI=6_t:&N%baB17#hJBi68/] ~EA+1U␉>7l鵤/!ͧWՍ Y/m/(;qeP|Jـ:a٬3LyQ1q!<{_9¼!lNԮִ44x^׋eMUaJTVn=%<1 6Rى)2{GcfT')A&>ɠP!&V7` P6{ᙡ]>ů)^O ,gf9#IMwfϭE( ` G |FV,<0Ɍ{"S| ~)+(6'B0w( q l;DO^-3Ŏ^< 攺TV[E VV"(R 7ܶse%rJxkHXbqkYj;U.r`d# ~z9(~ңYSțm~E * 4Z0",`Y@[)hBp//;WJ9I.ȫ7g:7"IH6݇AhlP8֡<V H&xMO2w% ӻʙl %8SM[;YoE˩~]`ٟ=bD^7{Av߽r b5ޛ\=jC@OWKjUTw,Na+G]ɋԊi~m\ɯ^]ZI]vsV:Y+̥NT9䕥l=륍U'pi/uJ5D:@#_ S- {*0Ć_ZwVkә;"JPjʇP{a )4,/LܱK,]+<-0/&҂A{q&<&Ws.5f6mZFR7V±BJs䊞ld%sz:WJ3Bg=(Cd}6@FSvX.kFE{ Hw^Jn,Zwv\~;:{DEHI]A[`0t0;?q95R-I-a|+oVxroZr2^x*K" %Fr(Qw5?R8_RZ5ٗU07 شDz/T Z lcU{ z*p=*}?h\ُH2OgBCѻ]Tݎ)&!5)>!~PJ tS ۨ;35 {}bۡ"l  {^EsF 2dS9>878l&#;Z%q%QB"ediI-U+=GjpI8Z_Aܗ0EXtT_9jBmjmPYM*eNo =0f\nb#9Q `}g7R؞'`"ao jOGߩ_IDj0gH˄L{D7"B(˻Su1d.c oE}Cn7LTx}Ν, }Y,.̧Ky[","ޠwku:ՊC곴ݪbe Y$]Խ $$KtC1P igLy) J&H'#({eU#ݒ`vEs^D9z]XgXԉJ RF GN.aECYso%o )U,h*5 ̪,xH\2nqb\o/Z2_v !V^yf4GEMw50bd܃RR#Ӫ2}jPà0%ͷ88O%AשuE.Nu*mXcvc>{9I2E~S99nȜ.t3B8(u ROݔq`}QR=sMq-4qO'/9}ܭ٥lW  *Ӈ5U'-FLKB߹|0Q HJ l$Xgcj wz>8p9(>vDڳȿYޘ!`Wk_ JJLdq5F6Hm.f@<&Y`QFpHG.\(FEIVH5W [G4;$ ւ(:6*RKx1̫)-mtr!8*Z5ւq}65[JmDJB,}wV?h6MjZ/OO~7(8ũ! _7haKV=%ۍUgcrDWc( >҆BJ9h''~ |mW &RtW?0@a>kze)IA/!5AO\qX곑UdL'e}WP=GGF=V9Ֆ#.`*uObE3zvg6<9c2Z "&f}cOs7ڛr~0Lg~'KqHhA[TRj 2iFt7o& 4;= Gk~6w 5!䑏^ sn ,Lg^1\}Fd)@o0LTW k+M%ӕ|*ݥʞ/Zy`hK1J"=ks3`iwY, 5"{?}:UEM:Rm+˔03 D{(l^"=;ܺ=+IP5 N!B+"*Y kkUr*ZxKM3\{ 2A0ӘhH#0hv+,`=fOϭE#g&y"0fH'6;^%^ݾ.Gܧ j Г %][qmD`4CS- 8ߒ3  [LH &tQoX\HP`[c7\ b}n @i3_Vʆz8tUL̀[Mᒙb؂r2Jt!b~,m Ɨ@N ŌN!5CzU@DNuDLx#~2jwzEjk8z`49sи(;I:8Ӊhّ&2١d9PCCLo+]ϡ}]h%?@qLu0oDh<3-ViGÑSy;wܺ!2/.P8J Ku_\|6ŐĦdOb|ܞZ4Y oDOW Lw`}ߡ_c#F&#{h4+Ok o$$00G`6- &0Mbu4u0(9goEyyx"):QO ~|u?*7c(~[c;g# ))7tK,dUD>C3(Uʱ"YwHL^'F c<)=c*ikH c궥XBjC~GvQ5;>@O֏) CJ:\ hf3Y@v0tÙݫ>`Q}?11N;_m;96%WܮFā"ıYcԯ5 iyfMŧ868s@l(s4vѾA^e+q څvF`dQ1֝)W܇'=YU6m"K C)AoXr6+,k=N"b /64_2>^FtNn u_Oiߥ!5)A,l;Gv$Yt4wA5rzn@mS<&4Jfe " WDŽEx' (_}v1D #^̳h2 Y zg c3ooiY /?L?u-C_I ^#Q.wx<?%5h_(9,;$q4p;nʽUga<e`-o@Xgjo-~xf iv?lQH<pG<!ш03fmr.Cu0!`FA QvS8ܨGna=>v@)ͬP1l\ͯ=pxVi^@`x[!Y_~bcv?/eoU6b|>DLgT`4Xprvµ9Z~Ք^Zsܕ\ٷ_ug:*i% 3[F? jnU=`;$. ._ȱzhqvPR2]Q1RJyrbPQr~0_if  'ߧ6l 7ʧ*Sb~ iIhhr]<Ƒe)4=u.wv2 >own?܅ê {nzub(~X"33'|DIk| ~^Ї˧#F :ʮI[$q48-`lT6*_x"- UҘc_uI4vNi{ oJ1 t9]hm }!oWtmWSm'0(3_zFQC\a7L,Wt^/0YnJJ9%q2lȗkyQuR-7Sk!0 L"(S TV53v>D) yJgo[2K5HGTC ;DhGH]άIJz Ny7DJ<]kE)ᬦ8aٙtwM3Ziy?{<[!ũG) L0_VWIĚHVc]̡8;EGp y))1^d#abdMR5[_5݄Ж4k1!P#bpp~L# *t/~0(iIӷ\}ݕz%eΣ A]ơţIj zs[|đpcZ0>#Oć c J;$$q%fjasxяb7έ?Tݽ!f_CV ݩ^<,Lی l ]QM`] ~YqGg?ۘ/#UA G G[V ]jPuL rg]f[w~H Ek .^e2p>vf( A766PAaU PУүֈt* x7V\(0cF5Z)L5<`%;ZXisˀoet}㟮$m:16sDE,fѥ(ڞq|DcGL;>scpU(7>PʛC\,a8k [Y,,@5su0p*$5JG4ne i+Y׽P^ڣ)F%[^oz5 {h` @8& iPe/m7żqsmɶUӫJe_jxH2ɉ5M6 f5/@sB[:opi^h~[ -z.r8v0>Uy7f^Qg9xi4N '껅XHo)&V.a5JwY YP%j2P_z;ӑvC>B#6Q۶Dkơ$37y܆>;it?9y y9’%sGqKLa+ lVrF?䴹\L%h .7邭ZHKinB߳14kgשAYOΖg4 P8[Z;I@Lʚ/D=fgHHlF^2I0<4%JI>B Khgqo?8F` 쫳̾&)bFR9"8dX !F ȯSVZmN.#!, KqND8^fM @*PUG&SFoH*/ԗ#B{c~{ފX $-G tQ\9|v:}%Ii\W'PS^ڊ\B!L' x dUķ, 4D9Ɛe"`ۅ' Ns,Wen*=x2v$ׂIHN4Qv?k!4;Cy>eP],Q4  de>Vjx9dSrTI]mj5_V44VSg/hyL4䮈zUvLh5`VCq$wILJ2A^hiʝ4)-c^ Ɍ$VTY^VB͙7P/h m.ML?,nJD3,Jxo2_RKT详S`F݂k,3]W䎼:cB֨1V -HB7.:[pn ɲCF|= b<(cU%7a6U>'`$G,}6@H^  rVv a,`6d>, NBg#X\KqEg2pL0ƅphG 2vNs&z&NSDҰ{r:0<7Ƅ(w!sIvE>ߋ}ԜJRc3b;YVfWm.vҚ&DP9y ɐYa(0^V{G&D 1'yd=VwyOV[j2P(_Ҡ|Ĺ޻4⽊(!l͔ Y08BtwOp#E8V2l(%q1;և2S}YR!wp{}_Y>A cњd@u9Su~\L-f+^Ot/Y"+deW U^d*)kTϮ&X=/d\&ghETxƘ= AMF}|ޗP4w$5٫jl{(k?ٹr6PVٸ#QBk6X˓zK أa1%1`dfF|&f\R%,5qZJ~=CU ZbsJh C^5MARam.Qk)Ԁiy;'H"@'OvSuq*HH83獗30 wk ˓ߕd<dZ={Rth<$v.E.w orȿ'NB;dW(:3Avݠ:02`ķ84zCZS ,Ea4t! s"=?~tJGRQ {o_-gAv(rNh6PJ<7M.ߠǐ7!O^fDZǟ/+ @L98rwz"5=z#<ԛA/(^fXˢ&Wr#f[H $ߟM-H99c0W/s>k F%[ImS*~LVbwx6~Frpۉ3ZY"'}5+%c &nr>FD/3\apj'Ρ=VDd3C+._/\;n Qцm$))|Q%PKJ281в1eP*'mK2u+)YMuG@>O#55cȲV3bϗ]JѺ1Ja-#,*3ܚEndx~qR^s9r\j"[ J!\ t<,xhed䬙H̹p,v1s;]i{RnoPcXM=袜P̡Dđ_G /Vయ`A W^Y21oE(m3K[ΧjAnv<9.OyAI$|>řa_8xVL_~m"1yؠw/$Z$,GEuaMŹh:`!)27)m&suHoG̀C`r4".lf0je&%b2CQT$dm0&!)|s'ԖQ/ߐgkkpXڑںBʙ/NRO=rVOY}l,i>(JohYk" u(0^I;)PCZ5):D5QeNr>P=䋍cfY:t%3?s|90&Z hCn{ֿ ݍ.x闲GND/뀸* +Ez#;JQw ZJ~NInWPESf l:u\i,uC֡3ˇgfR [v*NMN@6Z`dfC##@$W{2#y }\=2ʦ&>rϼ|HAlQ_FL(#O+a9|yv?ѷxn|ӓ 9#˺oAvq\*]d@[~ߍT.rVr־՚J%}P5iMhp/+L.A®er%d!$'c2bw8>2۔, UK?WѨr.W&Rn|3NC8E Z!_U_‹Nׄ_8lBm읜; v^l rw4ҏ i8'e9`cQH&$n?ʕ.S:Acw)28a3ܤlnZ|R¤r#% }hu\cؽ;QEa'Cp<ຝP!Ŵ 9No\wh iӿ @Tcɸj02e9+F1ܮ+QN^(p|MY6ܳ8uM_;E}-{mR玢JDӌ[h* OgT L{R͎&`FǦe>#ߌ=ϰ !Q Mi+]"x@tEBK7Z} hh[ EI^2tN )l{K_T,ZjO..[]!{a;=$:D0V3vJbq_9|*P:lF$fzEoaDcbӡy1&K5Bzc]Ǟg{ipŶ)&TXӵp)}0q>?MnLnfS % \Y?S#cb[! 4#5Z8},;~:8>X?/ϭ@N!8e\ VK8kŵ@~+x?C&EM|jl8 DT[N5K=BTM(4EUaBGQ+HB{-JO&8r09ʊ/4A,<$UytĖD)P#0'?@_`)O[ SfHN4g3񛭐f P[^){֯7hd R_%J\x7B* N.#{cI뢅Ϙ7;#vP, .Œ| ~:5 YD]h&㷶sjؤ y]=7j3?cZz`3ѸXY?נvw0tvַ%0qscq>s=e.3|W:7c.Hgvvb]-~{1~Dd$1yfRGP*ڜ4O&ukc;!λ sLxnM=/9pSShTB $3Q)jdDSշx mD[c-_5F7Ճp.u0$Aplʿ>{Y>OؓW ^$\:pٵwcР3{ѲÜxtv%{Z%r0&viMę:6.l]ڂ5 |<4_ƾvѕsW\H3qƼFzПhu+T:c&FqMhc_wRp}wR{qJ- D|VjNJ xZKLm 9K;ID?B-{M NK(Wh |k;=ۅINs;X1x>#ueJ5 3!)2LMf1Ɨ j \.IrJƹ~qDRч>^t0LMhr3i|X< ek|g;& ^Eb';C_*Dxck4QiL 7@zYFy^RO `.r"._ژeДGۙ=FvLp OA%EWAUϾdm vx"VN=ge{*+ a(A+a J =5?]gSuw*z5 g,AQg ^w2/%_:ۃq'-%Lc/IH|+{}q*$1ɡӗ0BIun1֎´̓IPA\OB(x_ U#'m{ :i0%;O{ﴚ Vu/P[v؁8 7|}c%[% rӁ 1b`CRSbT_j,n~M͔sV\TX6yN53ꁢy %ǟZ-n]+O`vWiQ ;sd;jM,mq.luy7̮m.@,}WF,\) |~H4e9g MlV2 Sb\1]?,T@ o Vd X秬5*h7KG;6e͵d]~uPR#Iwi(3RS8霓49m7i6`k'CWg=ܿWux8|Ds/П]E_K߿i +/*$(iw=/#EɧЛc[ὺ)l@{>Yf#)#[XWhM>J J5_uΒlA1ɐ|7tjA77]11-Id@mS-z$X^yTƠ H5͝{oFLI1Z;sll Er!6; [۟3FTA9@ YWmPa,-@%iҮynlp5zT8Y\v[+}o]uƀRy!O>%7OTq%*<%]h6smmCX蜕jiaqj(Oq[m# G ώf/ j¤_@V?+ HgzyY ~;*ZS+mJ_)H}Etu`݅ԶK-uPK&tH\Mҗk]~0Eh]IpvɅ',_G7j 7Y 5.%hOvhZ: MyDK^!b*"kw%?]0t'}!03xWrcJ!ѓһCoC&&/UEIk #fw wx7 &1=v[PC3s""9(o B>< NMw3M="{X x>覘]8;ece4bI3" 7қ/pN#WB(cpX IEiNd%2 `8u!4HꗀY c;^łAAԾ`Bg}Ęgkķ=;—a3Gײ=n?x Lmqn 0@" x? .9ߋ^Ukha,o,12ꤸUQq=~ =|v7o TFOx6fݡ~#YQ.ƨ6̓mmo5ca_/2Z|ے{F)u`n9G.eyKIDɠ@˽hȢAa[#Vl-3E#\t,uZO\Uҡ(m!*(t.#qJtnˊ%P^GEZK8'T$ݕo&;~PI{^, Rр`ƈ%~/#Euq3B(,az܅f-T_ :N{+0 sx߱b/W#O88a^l,(σf:0E')M^ZNcDh_ l؆OCDosx#BʂC.jI#*t;F?R4T:Z&!и%51Ylg.F݁s)( =>smkӍ}$)^15 & !r2͝H,D<#u:dZ&E;>ep~_eB>U0L+) 7론JŗST/) 2^>=4bRIӶ'I \\n oZZN،qRgݑycqK$>qb;RGq{[\E$ 4uY"yUu5E!L5l [TaJ ^#ױ`W_D82i `PJ{wA}vzcDbpiܚ[Wu*J.;\]Hf6'I S''$gۂRZĹ_DA#)ujG J}i`܅n"Ws0 X=gM hm PjK!לS %³K,BwЗ3I !/!AoN̥9"+n6lj?u%Dg#Qhү1Q h~5*OvfVڀoHI0- bA60YIzM\%vLxASQ8ڧܶdh3RM(]o*\Vyb (@otZF)^9#e٬Hy9{7Eúq2V3l0m#'j$&KM$ju]d58C5XACq,:@;x[?!yIND6ìjpV]KK\sew# ERBL7qD~LvZV5[RQO G3uça;`G8A^ш`a >g`/p`Hh.az/K`uEBX٠ 6"e[C00O!yҋ`~9៮yNrޏ~uɶkrTC`@V wq:JKM\UKB"*{#o bQ\7%#ɲ=:QVN/b{U AupSFlŬnGh=#[%U)™变1UK$adñl\_u!Jn9}v00k*ZiLos'0zZm#ŧ_H :x3V=8m|K'ԛf=8e'!/ZۑQ6랤lw>zSM =,FCQϴ2 >r#YOP ܚ+w0%\5J4Ն'Ѧ[?|L@uM=&RNfX{͗YIfS\ܶ:LeY@A۲Ldwz:H };/mCH} 2Q } zt3En[C,U5¹?JF>=pV0zzyroQ~6LBG84`'BkB"miԲrG ʏitg5;:)Q79nfDTtFbVt3dloE?1ǺFvF(mEQDRɞ$ BÂˏm.@gF#HB%j,iPa*@COFhNy$'ǖiZS *W'8ͳ7.x&8a.*z=2G uޱO'[hkq` -y!qF li߂9S‚L{菖KЀ^j:r,3.TC|z/>D2gT{^CY5t R\>q"DԌ=9J{AS#85C][PD^72!0Ct.(=꜠)tF sZ&̉C= p_u_۞fҜ !ZvϦEN RE`wtEL =T\en-ejn\Mlsem*gRņ]?{H6UH[ɑH1mx2| ES`ޘO92f nнraE' (,B HǝOU]ޜ`e-Z~#@1{U]P`*]FfCߠJ.Ǣ ?on($' R\ݓ6R~f9bubBNA5\f'#^=G/bz8d#(rn졅_3nڱ(/].9Ō3ٜkU[6v`)kQbbP9y8ykSY4AR9?YЭ I,LR$0!FZ*J- ?K#|ç1qhİF8~M-&0݉,#8fǐtPezD `^ˢDܺl%prT;3fPY%x؇! s*"^GŰ⋚5bCѽ]xC@JO|ZԠm4J6Ki א^|Io_ſ8a$g6#qُw])-p[qL,i#A,CڻiY)vU '4\I'v+Ky`}V[Wx#_&J乾>,-X.5l7ı.TN WZݭ- T"fimJnWmWì!_9V| m9[=>nnS0\*9.39 }彈hP9 ,A=g , E5 4E4U:&(4=& =IYPɻ$GMfd)vg4#RRG;]dU;.Ѯ c --B:7wĸ~]a d^UZ_Wm~bvprS,$8$Nuټ,gwqncGx.WfZ։r%6$V WSsxu^9ߏndQ@S 4`aKo͌*7S-9?*h-ɖx߲hʎi&P/NaM?PA)4OD&< u͞б3o 9gTf؞iXU"ȓ"ϿB}^N@{<.72zXZe`QvG̹Yf_Zi,WX`Hx1RzsoR*To߭loWR-)>"re_bR ѪEX N5W>Iٮ풢4XLw>5Sb?x#9)q7Jqq3uJLU{؀_p-}c+іdl" x^U3 dZvrV`:*p 0*c|"`QZe2~RNB H"Lqp*k q1Rm_Lk2ԤCef{s_йog)i$ގ}1V_" o*dqȦ&>^m[<Y>A SgX=h EZxql`_L* ":^R-_u{1CWԧ1f.0 = .s6A-n=i+Vxa]NRM1F;zkQ4=@hX#@^%%068h W,o悒8)ȗֺY mp.wk-9|T||sb$t6`F"g]z6rC7dRhrpph_5[(7\m7I!z$ޘ|>bz@|#؟'y~wBA+ͫ_Y0t45BXXZi%)%Mb\Y Ë2&? 6"'F{UݜL&_> ٺ7>p5mtrt& `oq.nwԊOYtVsFC@[]$I<\ -hȉs dT:bZnhZϲ >ar E|pQE KrU:R8Zم,=dul~alq(f̽ k*MGz>~Qk,fBP>ՍGġ4Jmt d.Tz8ۡ12ifHTuOnHNr2 tsO22*ʟ"?]ʸQ}ve38Zx!]s,Ya7(C'fG@Y ̈́pr9l5w u8$@ɮMj30䞕 t⢧`3M{,y <ţAA0E|k G_#p_j7JmixLLF fޠ>.'Rް䅻R޳T8d8)Y*ۄ wXC",u`+{+Ӈg;H4C9OR_CGRAf:t oiTMi] N4XOg203zיs ${M,ņmI^ l"jO gܒ?E>5Ӵ'L l m$ڰ9B'&mʈ|]N1oa8rij׉䭳VByTDefDt0lG3R56 eKq7ўh$t~3?j A'-s{Wj>l/ mDÀgAl_QQϊ6j\e2L_޻!Ϟ=dTk4', RhqEl \k-+.|FLH9<=4x`dN ]p!" _(1:_ hO5D~ⷵ,Ǎw"x;RNTND,}x¯ RƘ#D.YLneYĦZ>ʶ4ʻU 7 sgs"#mո6Pl߿P 3+ib+d~\A2Vx*߮La`+N7甜QzO>a.mv8 OZܳrD6+λ9ggfϪWZe/TۦʾM!d݌oC iZSiRErdڑ~|j6Tw5km!!#AzTc$xYA|m J_|B%(ܯ 1}whP}Kd Rț&Ӻ^b;|hbY$~ d5"Wu3)i'OQj^.D 5 VTF/dcuUH78&#~րN#TӇ.ֹNS~=ÙS6OTԾaq)q^ yHQ$ܿBgH(^GPsLx*{f "b-u bH7_]z*}WCCdp5lRa tŹOmUr8tIU R6Y ׸5l`c|]蔺IU'|PM4#w:i%3*ͣLJ?{;K.7Np[ymtݫ2 \{SFB. 5}W7ɝKvOf#ͯCח4'ro뮂vS*>W= _2ʘ8,_y ZypKRӏǜ~|yt!嘢2L6?Z{ ~ZnTX( k0#BXxڣձt|߿=5*2R܎B@&\W'NPeNc2%;ۄ4)k2,lYby [ݓTljdNU+Kq,rWR^R^B?^@/d1;ZL۰Cy iX$毛ҥ#W,8@4t&׼;Åp=bP~;^qIahTWz; F?b4[3J&~K obq}^\ 0|曂H 3mVwyy`#G8AP)[uSoQ5r_tֿ0]1--_(95śkϬW[xU vP&^+I=Wkk^M- Ky.kwuw6AZ.̎<<'P 4C< !Uѓ0ZǸXr ^Y[{~?NPueA^**>:˚,@uL B҇hfrQas"|1Zȹ0!8u] gbRHkۣ݌ژم`'Ek ~ Ja~g_([oT7Z$L = ޱ}KjCBݓ0QIœۊn`cZQ jѮúĕrWt픑PD^R3Whտ&8P Ew19[>!(򲺶( {Wl?Pz,\ : TLVm:5Y}&AjJ{38~VǧA耸}I9Վx ܿOE8Z1,XApv7}Lb9QTݮr,~2ΡPejlgAV3&8-[ߥ20QjZaa@\OBߨ9xڷ9d^uJ oO_5@)PYO 5/ąyQŁDe! t C| IO`_zƵnN]ߘv΋b쫙v[kT5L\u72W  1GA27z^`Pߐ)W9D )7Qnˢ`SbQ36W߈ñG'dLpKPL) }?e e0>Kg}(85㸨qNCaJ# [9W;SJ&&v(#]Q448%w ( y|e0ڏ(I^('AF|wVe 8n!-0Yӟ4֬*whV Jx4+\t8?˜-q7_"c0r|^љ@U2%<#䘙 %q&2Bdء?$27\L3N>|~&Ρ*ǚ:6f<5-{j> =izr.'Wq@~z DC>@@ʫ{EHVw(ɵjO<{qWRHB;KFs^u!A#O߰—BLQz}t{f n@ԑsh٭ܓf^3^/Yw_>hӎ23<38 Ϊ ywgN#Y Rim:Y<.enTnD3(]$XCH@R'V&];~zY LD %Eb:>Xa8Q f [ A}3ެ Wk(z;`i3우zIj-o}CR:V :/5>I0C92z/bmtRO_gM-oQlDe'Hբ.lJ֙4.vW`/:S“f͵l@8жtl;? δ3.~ ǍL]L;Sa7ek2X{>y2eI ?ٙ"BѠHy'{7+4g*[V3OgDX1S%$rě!)l^W_?홖:CܕE?gG DmR/"I=r45?< Tw \$x0NO˹-_ۆ=OFuFI+BlpO &xYzU9d9uvZ*x_l3/ˮ'Yi_eQ5T&GJO1 WgDh2UFJp(h9LC+45 DdI|/sF%-vmc =_fϫ5*ur̥uŜ:.wS~ظtKv7ʤvC/9Լ1b˔$rfyQ3VR npxL52P3Dҫ.sѳ,]xXY7gAj,qGsi͡п"~mlLN<_uD"Sy{=gi^eW@ypBqWtSGo JnGJܨ6)f߹9{vr),c8tukvfO`o4=> GJ P/<>SwY`#I6<象#x89anw)l'-gT`c0ufd~:Dg_Q`:]ׄRQ.Ϗ$Uµ98KS wE>}zub0ITXyLi.!`7 oVTK]8:3L{J9YM#rdR԰2'60~|ubz]LI)i,Vc,3"cN7f?W&T{Q~-p#|WMĈFm5G92&ΦLQDR4|\(dt &?"h`%m@]C4#GhЂhʫe' ^ Gi-jJOX]nk'Ԋ3EQ#2CCR-&# =!"Z=Y'#'/=={ xٳVCHNcg4Rg%piz Q/84$C5߰kaYpo;5vM>CCEOxx11"!Z!C;ú[(?u[@iw: cOw\"C), _:1ny} aEvpWQdکy6FDh^eϖD4|X.~e^P'S[ퟏs0M:[{K^JCIW|)ץD/.?^Eun/WXN1G̢Yo:f޺%5ave7ܽx;4,щf;&"ɏ7I:t%y,t`)m} M`^4[1bO+7"}r䨸v7@ō&&>=@*t[29gόa'gm^o8Ǎ> h3!6QagEGmcxP"ΈTPt*xo6hPh:{>;>閕DBz9ϢE?$ B>z1G6587Q/]&FF&-Uь6 cҝ^dаwie[E3J" ^8ez&fJG0 ,$AD P[bCɜk/'B` jh\aA.݋|KEh]$p|շ=B e⒎pKt8q)/NƮy^ءheOUw/][PiU%Z! U3EAneS[ѕk{kBtBaR-M5X7y%圞*o㠴_@o{*žzMX() B7 *%QbMl/B@h`T-+En)\'0|w sSw'IP> \eZٱާ4vkl} #LMw5`e [4/U 0'AQ3رomt3ClP ˱2E,EI z@o`Qoktw/$ ]qKH4qGQ ˂_i5}EүYXvw# ɉPRG!gCS=O}35cjwAK(670D3W-WŮغ-HVuwP};`ln\,P=9n˽;T?[-Mhx;3cq?}R^o-5?+]D{!o#"ȃW]-u-2cLKf,3O, %^̷¿jݹ7虌Q}-z`[O߆CO:%+1!ڻ)ҐK)@ z ›QMt ~smX(Qz{#3C± *#1ܩy^Z U4 T:x!D8Ay_eMOSOe&xX“ꌎX_i#B:o|y&‰z K7$l?~ONd{Ht^CO6Ĕiq+Έ8%JAUK.8 h0W$h#D{ #?s xc"ID)l!VE7ZJNN1 8q)K8I_lQ1C s|?9 Χ33 5Q8 O#{< O#= yo:+X&C+;p9>E=O4%[.8[qa-DI/$wֈ+UX[2rD͕\Ҟ#GWATK+2u2T^q[4@AO^)+=s`zեVM4+,b4 ?R2!~sR@4w!jQB|hC<|7wJ;8P8Yz`?C&wy=R,9iw^*?|JPb q@*ug2ϘF8\19%C!}DY&%^kcc3|DgsͣF6DLwbl1h.9ؓb^)謮Wye'p_l½"Rml7t{E['mh55Lkؕ%v@Jg#|t,;K]fPN9̲}*Iz!n/:n+=?/Rp W Q\V!UXh+kF-lZ TYvEow]{Rx,j&|%-akڛ9 n?9]\#%^I4N)|rdNP#Q?hcb4yjiF[E[< 8bWU~@HE̖(Rmt]%󹪋\!aJu?B s:t}NU,M9zr&-Z[@e(\pqu0{ѡUlb M̨Sƫ.\d2?eC"m&2.l,>]cA^xa9gſܞ`!0t \ҠS'fV GDbIsm#7Hv?Ҿlam"*s_:3rг]&^nicBC+[*}cemEu^DUbuv l*fDl#/.?|+{b奌Fk[6Wfk]KɶbB뿬?E΃#n}{!=8xF:?N9G JdV1RθM B>}6ae'/S=ֹUb@Y`zP@-z|*c铷qjDŽ n-8tl r*%% K.xc݈Sv}2%,|6QzJ=JPzr,вjp{#,Js0'jqXV$X\ 0i Fx` RuZ?x^7ȯfJJ(f8C %4ۧL!If2w,x.cT/5鷽%؍ҟHN!+h; s̽6ҿ<Fs# ɉrٻ1x9*VqjS8-wNjo{+O${uIf7?+ Y}kxT8ɰq`yr7a|SVc.} 6sV~q!ҧGED1o{멦`4pçb_+4"w{m1SD{.0/ۣSՎ8vT'N~ >k5|YD/t"I=:_e\(r:8 j5&P2@UI|eV_D`QOiJ2)Duc)̇WW\`lC?N=ۤg+įEʛ;n}+ŵ–9 7De}0K102Z'3h\#b-=튔 [;ضu&}+uO ҃EG-!aMx5KNly_\SZ¥bLVA M*ZVAN꤂u4)"''U>YdhJ/lz( (FM,#j;W(qb1\!83=Sq&e7۫InUչt(KLg?X[gChA87]VfbSB#wPyKT74G0V3|$娊50egלvB5X4Î(DQ>(T cfxm O1Ps`JB,TOpo,=W;Dκѿ9c4k2ul{øLU7q3ArG}Lg:O?0zLq]Z9G #Stb%ay9*Dl%Վ11nSdX"9A{3~K|u0Kar,D亘bB3K?(n%8!pV7"4c$}I6Dz71=FTgT7=wt#@ęړbJ`jb~]Fv?%q"US]n/\o71~[U,t(WrBJso0`KKi&ݎ(kG|AHI[v7ӚOǗu2{zvLpguqmdr8AE qLT^% 톞E.)Gu&L8߳\aimzoNrݍkh'N9Ly2\*ɼ'| rg@#|P!t ^!4 !""_?}HX6R_HX-cgLidē:HƻLk5:}zm_S]y:1LRհN)9Ҩ< WcS ,Mt4.Xj&ub1io}[7WE8q+NOiC>-c1E^ 5g>Hn~_ гܳ!jMj&Fg?NO U;"VWL ;C*{Ga=sc:hJC+ mj= _C#D:hkb}Y֎\0ㅰbLYY8E{=qv^bT1TټyӡFSK ԟTK Wh ~'YZE]!Q3ǛA@`ad)LK{\(x\MԬ }j%bϤH4?殷àEK&:2pileAR)*hd"s{leBcv'^ݛGnc7(K{dp@UCk2V|8 >ok@n=bmEi:Kش'X$ߠ3'ϭ*vvWTjz[FIng [^](wѼZf gIzJD"Z: #ٶ.ɴ n. 1ZWB"%mj}#oK#Tj֢/'w͓+Ft>X yvZt/KX,' T@Kc!sq\$N'˧ `xbCjg-5p?}Xړa í@aciODp?Mk9ud~2 `K*|^|pOUs>cL1e3=K{ '򻗹E@ٌ# VW%*X2XnW$3/8.:=ÚQ.Y L zʉR[Lw៌KEcBBbcy]BT'-/T$X#MIގi RE2:|fOQoVR (a PI?A:{gFZXC^nR,m UnPekԬln[mt87n͸4$y. P!! ~ߜA73 SVޚLXqGP+hHH+a+x~ߕ;bW{[noCCz>Top (h^*{QGZ41`y/kF<"8tM7PIKe%\Scԥ0.xY ZKʴx:&O+C2WC{y6=J\y[N[>қn&LIsV󛭫v nqf.t=2ۋh[*>w|݈Z)Ǿ }㸢ZWnd==[Ȱ:"; ALkՈmŝfv#=(?lms}%PhK"(׶όCQo cJF KCBt?k5e̬h}jdUej^F%WSa[ZTRՃo]2r=J)TTfYlnB7>f {Oz5 )=* JT+sO%tܿ3t[\ X"im1̲ Z(ZjO3vɣz6 &!R9iKC@:7KFSlɘ , q 4m1mN?]Gg} \""Fs3FO\r p )-!r2Q%=Ozaj;a%u%|MVcj4qRg]s?13LѤskj nV(n/ohx47㤯U9ОnwZ4 sj}jVQnJ?/MTFR6eBS/6TQ-g>ay?r&`nF,41QY|qc(owImрOid,IT3y2p+<J;lX z mUؕwd-^Njlo<0_tk*Q3u_=}K RL:P8% `x]btG7:l=Jz>)^,Zf"S0n)5^zCˎ6JT(d֏x-Au\8s#m8IgSyU؀^ @#sU|3 1䰛5a-)0Z,pC H!%rtE$Z$F%Dž.V* m4-ӝ)|BilƟewƖc0M3]0@Ӟ:L{\BnL6e.<^kxB:!;JE #k<<%ҰO !_Y/EÈs \+o=s=MpeA˖d'w8eR Gka->A|9L|K)NMgS@S؉a&DnScFY?ni@g4=e|̧>MyR ӝ)6v?q9!jvQQJ.pK)qH߫>N:[.tmus3F;sTք Gى {`X.$sGthn7v/S*%!w / tB N`#qWE-Hu4iQILȟJoXlK {ή8l {̭sdݝMb!O~$P9%foWM-3]> Nj(X9 ?f ulMXs'AeNhO<ņ3P!X&Y3ON>I1oPYw|K֊K>7I|Lnb3谀$]?yE1'44't9N )UG"Bɚ/pNBUvFϊ($y;^s%X4[Io>R<TQSb?fh|g'xt j ߇ZUeFA숵6H/y7Yz7?gxJ n~xw8 l[>&[| X3L,Oi$E9?D^Y_>_ .ExOHeA3t=j@~_W"gh;,+y }8'(8I$h}Wꠡ8#uYcO`򥄳lN(i{2uyTSuw.LB׫ Fآqom5*,Z٪ccX.Kr y sgbm^ o?.('_]0Ly36T2 6} ꦪd5y#O=c ߈ ޿2&ޭDU}/dQ9>zƑ 7"mƦ0|H7( z&϶ [5oH6kjB5CDC "ǐ3KTJK:v\7qj 0r%GCØ c+uCV-8~yϚ&pw!2XjC1Hk›BW؆GAȀ-8E?YA7{-O '7R_#p=P⫃b"+xvd-,q;GKׅJlRx-B'>CKj)*[rϸ~~޸b'Vz9uh sgxE'sŘOmjx"6}k^I1ӉމIQnnWz [A+< !o FjՍ5֜v~H]Χ25e4}@e7% NRʉUȪ0n4 Jz#Δ^`ulƞL=\5/y]f!kzv:{WdnL^q{KO{ɋ zdغy˾`^\tSk o7xHBNثHPD%x;HwCJ 8_̩}4,3"{|PY`7nNj(M V1$C\]C aQW|>غ B_Kʹ:wk0p2~b'Vͺ)?P\=- GM5VTZ>o-y4MtlKfIwpR} ɿ5:Pg1g,{'?+ 0nQs#ٙl#yAu$S/n>qvnQD"VVDw+x)a_կ3^G"Ij?m¨ UYY viQzS0Izz"fU ?_WN# ip_z. g,q) 젴ϳtTS&ngpgw^F/L#z f=ޛZzjZ YZRSH79J/!JNzud(@ dܬY nEmA訁h֤[9PBEUShܙB}$h߼t }( _9Et4IQWn!ȲY[[塚f4oxƅ Ryϵ>vO @W2#L6XY!w%gh CwEͽh#g>e7 (EG(R-\mD;\!8 &$"ȝ7z"ݶC5n+ k i RIlN*xY-pnq)cDpIof"I|9{dD)& ݃Ȝj;zkO"Js> _j ʨ.ُf2zV'~ť9}4r+o&&wıRfo{9ߘlst Èpƕˀ^m#Jiu!Pr9ngㅷ[9rxm{meHpr5Oڱy59_4kR:avU+OV Z E[oi!d{u"1SPK[Vξ/e)fDYbrd4Ӗ'G4*fsc_X,cߋ3qR>V9Ef9X VQz"OŀW>SG`JVwnC ikLɼݛ+-e,!Kغ$(L{^~*#Nb]& 1L@$DSv_ػHK2==19V)2g=4攐Db9~6C-&@onIz:l ͳifuc`TZ{tlH8$ 4 UVv}1 ³X=SJҝ)|͠#tj jEi"C.J } jQJuG5.rKmzW%krN7U_ o޼8KPX nݔ(Y'BۣCOnq[suS٨AY+`{P`GS؈q1w Y)BBW^/ǟjaԯJNd/!`aMNF4nK%:T7v}˹FT7xnˉn-ZV:7@B:pEs] 8c̄5EUy0iĵN&oAzpc-2:Be΅iQ0^5hb` vBt ,y@* M,,@ ~ bb~a)Ulժkntm,^u񧦁Dư6P+0_GWL-Y=t$}m;! %~:W}#ggo]͠;H!kXm_ɓ7ȁ:z"@5m . /\*xto|H#iY]Atq&3lIDy”鯂`2F `aN-%݊*Avvk2 :q IIS$x$ϬP{MAӏPgB̖ūkW[{K""}ӯ Dis[*5gbV\. ZtY~ <;ϲe5Pi 6w?6V teWd\V Y{=|}T`Juc`"JnadX}WQ1V?;WyYg(:PR&[V|fLrjLf͞-y6GNpbwv@$-1F_d'g dͲoBK?֎`fiΗVg%VIG/fN(øjG;E6] 򺻙$Q$^э$ g_MuV m&JJS^eƟ(B̀(CaJW cg:@P9C(2$fPfkwe(PSI=g -:WRa?kȄ2!VN/Uv-l>nj&ћ)SxbXȮұOh'-P_Ѻ_si o}fЀ%, "ݪǘ:@DѶ8%Eg,i^X%H/2=psNTilmηO6ut72(\:ShJat1WlB{]mɆnpx-yr-#A*k!5g=wok_A㐥y5/K  8QrbQ+zDxT0Djrs#~܇Gr\~-;0\%Z\/ g9%,KOYF&M<9B:)xS VڒϼͫG9Fg7$vꔧE:QMaRh+p0mY-o 6lbi6Ջŝ"lZ_h|53xe})F}$0ቁ+Cmo楂#1)ȽZrR*yEAXU t9HvO!Ы N BzUMNc?n?O^SX=&#d̿-۷;tmKCNmG$םi'Yr̗ bem C (]ux4 G7]5&b~.%S*r@Wږ /-u&WktVBY;r:D̟RIVQ Í)]= _$|,ʚHr-M#`™H%ܖ(Jֺ-,S!^= հvE u% > /"X6@7}My+}{ސdR1&Zi!)9:wnho}P(<~#ͪPLsccHܔ2<V;W Mbf:kD )}a [Sڔu:9VS} [1΢u[$B KN72 &Aܱ)x26U7{u>? _C_RyO, T8aV'y$% K 6R0~)nmEC8wM٨_oßi 3ޛ(]-yVV_:L40zz2Sj,05mD^VAj{>ŞHȕ6o0U<:h#v1{f7=ϗ=OǨ|%<1/rf-D?OgLCDž+@HL lZK 0:gב|539\%q콚xe/q& >Q:JLđkn#߃Nݘ ͛]o.ЭE$9 qn\u7,mC-IEK5#g!*W8T0:率unC1[p748ԕKeOKjPp\iu$F]ou;Du*OK"w~3+w|NN   ;ј45LfTwmdQC)sjj5M)<|T~Zҳ٠(O ݬY'[_Ja9}|8#mr-GYynXfsyV#/_,ZyqXyHz?sg||R,UJM$`uEpr4d3OmeE4Z["'ѓ 7mOܵ ӎ֘dzNyym$ wOgH[cwXIҭUev +yiI_[%xҭ{A x|^x;rfi2A(R zoӝ`# {P/ fTA jSʡ <#46 rTYrHGW1j" Q1v Qے@lbFS3}.<,IWhȪH_ZچXZ*dƓ΅D쌀$ gHBl@oRҞ󎒪HL,DUF/e( -E  t#THg:[۰{}S8<E6,ʺʖ$ T"A`g r1j0"xr5 ,^úRCd}tPU ٟsoQ.ag:Z(*n ?b\{Msa5+P89~d%+a6H9p]jkk5GɧN- CbwW&@0k^PZ*F4]}>m }XE/j0p9jB9O8gB=gJ=ɋBN!ëw>> ?\„V]g,oizz{viPRBYwZhpt XVgԟaY,ۤ"f>*=ΖpKLe&!KK<|VWd*h3Catv/!dr<]7x-S×OaFЧZ_<paKz Oڅ֘IEQ,',N#Zo"ӟU`5NMx3 ĺg%JN=z`0<4MZr $@nq6mn^P}SiI;r]-ogІHfglP'&mH"f6ju2M0A AxyHEk~ A!0Ne_zoSs1NLVg4 X\gkmAMed]?)1mGGf*dK.jv p'T , _^.6Vx(D: W>p/B5< pXJZφ/+ o&sңwm BP1򄸀`ó@SE֠Ko9gvg)>狎iht3r(w.ms?BJ Gx $d}3|7k&scڼI`Z^4``mM`bppE"P7.H o*.@_z֐&\<Fw/!r'8$Ej#%';YǯF<iOoQ -V <^ĸ=Fz/3h@W$5&Kw&Oq nb Ĥ_xLG{`v5F<GڋՙjM9:""~"Ʀ`.n "VCu܍9p zjP@Ye]uCL nxCqЂ)p%TZak-{jmâq`tfAOpm|.ezTeS<?MAnv9: @ˏ_``s*# ژM:D,i*hQ2; 0{c('@)X Ly '7BjcB-B\GP auX7y-a; F~$g+̓q$] t#C̴ &`j)(*[)ɉ$kOiSbL0X8Xˠz)Ȇ?#O ۥBQ'I`!WF^o@3!og Ս%%-xiN(Nk]CP m{@D05Đ0DFL\ 5h7#᭪3f{y+D#;,e?E)Ч)+&gnjU%IxZ?\+YXmf؝Iq# sԋZ|[D  LF36Mk,dMfY7T|m%?#⻙76,^tDԛ1]\Ja{ QL'6Sc=S/Vgܠ&W`Gd}WN7.8'//|VfWoME&aE_K NY xOW+/?9PI2;I;cr-Bh((ڻy@dGxnD z<Ƒ/"4{߰g82rT$V}p l}G OgCPƖxJąOuxJ0gL)±[1ܟk&JY3**2V,oԘ~k$Rb1F2Ns+$d~Lش,e 6 Cڥh~K"J2U힌F1[XkǠң1ozFTݹ+1eh*1/!.7WBߖ#倔YW{ƭ;}J̏XײyJxN.(ޝFo q3PWbˉz^aGk^9 ;^4WNiJ;#@h_R i`ـw'M2anssW)8_ثф=p1d |jNiqx&Lj{-ʓE=TZY2} AN uL{tPP{HX%;3H2Λu7wBuaq nHuVlAbn}x>{7Lq?F?zٰNǶHׁ.B!!H1| {9%ׄaYa,;K. >M@}]Juaj̜Y!,qSx\K<>m9&=g*san= Lc+( o'oܬCHuᅑ͔"x9=Zqn@qft8:9Hd 97/;s$#/X @Zru2-v{׫nZ!LM]59j~q͗c3oa g;,zvR)W{wRVdRYbookԃ2KQ?C[et7Y`vP= A).[UDğ7m/#?&}@J~#Dy>fJ&.X X7tmR4?O{(1 G;^Aw}j!cՇP6g Аߊ ÑӁAݯe;+),XM&Jk|*qM-׳ɼ{Ӡ3k?%HQ@ { e]_`gbUf(KWGiz)J[7=ٰK%ՓzdK C Oo*]FRѳJQ=}SX}xl7'H9/QNaq ^oZV6n.*&B#-^l$Hs_s}lc"'eoOB:}#'pgZͭٮ˫צdBK~d2Hw:,Pvw_b#pp0W>|o 枔{#FsCmmQp]v$ClY'c:bKכA x+Isժ}`[# w_h[xV~"PbMGd25:6]%c0sZs9\XdRU-SN5jfRSu_xrރ>RuUX<1_>pq҆!y=]O7Bj*t~ I-ZBK'qv 󼻊䅹 (ǔv&!k; e:Zu$&V"{3EެtR)[z>1`aRcg Ъ B$j{7zyI¢rL#,d)ܘlx2sIa-:Mo` qB 2jB=cSiu nҋ=ġ|:Z:v#/0 K(Ȇ:\ k&' nQ(M@N(3VɞncYt-Y\`\IK $wê; ҚPr3((=ąKQh1Mn󺍎=a/wgru_O=UKp][~,$;~1t2zr@Qj#s-gҾ* +vd (LCU~\2  V,wΗ)"GcW0߽;g@=2!z}P |$"  i!Qh>]CŻj+J^YV_|<+ Y5ka9Z8JqxFB (AڦfR-:c'=x#&VU5 a{<~d:_*^Q%zwS삜5,@y-gku2瀯 h, )d-u.@Dx|g%9l^]z\T W 8&. ^bPVZuIp)5IF&{KpGfDgA7{ qd+n1R{|˱Bn\%# d0j4wsÈ hz{ 66̽A57tDog_t^]PG0崊v؈sDFU}EA܉uķh&)kLL( jw!H/#Hs]ԩ %7O!丆0*vT-eUfRpvz%/TWto" ET 6.kp^ t{V~zqۧc# ZP&V$py_?yhY6$~`䡣~HH>igچ0Ȑ3C"wQObFR5Mu Gc BTvm^V{ n`>$={]2#(bb[-t%5q^m!4haN_82)j,u!0|/."Ć!H%P9xdüϒF풲RrcN)*ۅ&A"(. r`bFWUǰQDZ 2sBsl nd,Vх,'bg0RgZ`˰$J!Is:,OX>coRi7؇Ei_ ntf\qr) jK ObeO†IK7ra)`Y/[*aȡYV ^FEtX 79C4n=OjdVs71SOǸÚ C}(EK`:2 zt`UЕ RcЙEMQ#.}zҙ ɗYqD]w']{]R"Uww&L:5AtTXm 6܀s5>8@үSb OzH_Mw?]~uK5Pڼ RlTH-4;h` ӈ1͝.zc8Q4Ic0*˲6,h" ՗\TՑXʬ' YpyQAp\fSKw:.RQMcW)SܽيŤO K͉7ЂG]c#BN+%T~)RWvVݨ*L = %2 JvةuDɣ!dŵvHw0@5b%;=?PVd~e{iOĕ,rTX.+d&yS8}4qҋLht9ʖfGU[Wv]y j'gnW&5&xXHAC!b[ -oe~ڪQ E<e/-QXWPbW-zyΓl`3h+K~l }\ڼ)txTA-#T3FYlYW]0+K`Ch-m*8"o*z YL< Fu+k *r" B#q~l pV).z`*o Oszz1E[$d'& Χq@?_>)7o,`C^ʯB\Gd UQ^ L~Ա_Sߍigjra e~P7.1ƌ-<,:00>(cƆ˘e41eрPuKK#pAaU#I(,**VJBa4w;zP$䣐h؊-3Og<ߤ7c'>^|8u6S~h_<j1٩mBqFm̨NQ\dSv6שtA- ~ Y ~e]H5ͧ3t_Ѓ`Q(09[>fa=XpP^BU,g\edtRS71c)2?~|V H6W(#fg-Q 3Ұ?.YDk~BuѩP2wRX7j1WVD]mP x#emMK˗wu*qMT mXA6?: D;? EƞNW^`[|IK#IfGͱM'bꑑpo^~x4M됨SxfyՈ$x7?O szpI>>HSub?V_OӰnч f x{yaYN$E1DÓVy/S83AV|dOdEgtU=\Ln`R{qyrUn\O1 ܍4V$+r }1.teDfc#9[]ZUV7x:ԑ8&ykXѼ dhDO@5+e8rɴrv>X[W7LOuk6$+ n{@!.CA჋3Gx 53%VիBzWs8&^TX6ݛY:",o]S*D||ҐqX}Qd8Q6i\Sbu6; hF\kRG ݔb=Ed"ANνL#x8,8K"س72lr کb!zJ|X8])u2 JϊA"B2j5<54Bր;L9gҹ8VtДqdB@!$9XC)XS!,?TV s XQjIUG;ߩP%3h' zump9s'̮ZE~[">V-LCIAebm1T#R(2Yj(*cb;0m[>2ey~ ;6v

h̖HOܕSIhʑ]Xn.)]lZBE?;F}JvEeA`pIjUUxǍ1 [}/.]?!qɍI@C-p#+mKN8q.vZwY t;ܠ4y!#clv_؍VT[6U~dJm].APs:T_k4yf eb]%V&K!x Ql=|bk(N@:cohWtmufY%raKބ8 *i]M|l Se3z@#0pks #܄'!֔n=|qTFTIh*O{R1Ϛn+ЁhYj|| f&tu E'c OI8R {M!O 0mElP?rwzqkɿ |=sd_7wL6R,kR^ߞ n;0Jh 6TxoJFxz$X6 3M T%z,swyŽZotRœ+qCR@rY'& @ԽH_۔fWxp{8"[qԇI_j`Uh0 >rk.fPe@;j3X?0 gåcFw:)t @B|˲vB;o\AuSlM'ئnM@h׶aņSiۢY&u-RYn%CUi2:Xp沇at̷ǂNtdtL[}kTC i!@:a!p9 %b勲L#)?Tfsu><7Zc%ΈMVS><"»Om.Y? u݀?,t,z -U͞ym' 2@txLǗ&bG#F]GC4F3am@zrqz\,-9XƑna WAFSi+Dm*TY#mv¢np+ELzNb4yJu~^P̤ ڧlLI.[3J7O+4T[Psg.4چ5a)*1]OQgkt8xP$/*4(Bչ:`[`683#l,Yerدrz#Hts*LA`\r0Q-B˶($P]! VbNy~+/0lEץc۴N rϙ`tiuuW)٭}&PCQ|.Si$͍ܿr ȼ(n5/`V7 (,2ֲh[6Vr,`:#L ;1?"|IDEr jv9!E?RD6窏da/DÙѺ3> *Ϡ[EhVut&?_oa+!Lk+=9!)xMcu+ޱA&RQCp~7{5yrlΡ$d~[& NA!Txs6)*1>Ɇ/j`D RKklu٩+˴|ǒ;A`nylڍERU}ֶrt摚tbv&KGi1 /_9(n g펢_1peƖ&B|ƹ"v* Q.ŠZ. Y(?H}#&C8:v:6c1Dyַ?hw$tUo`os;T?M̀l\'XK`S;o<ʀHE@' &N$R8Ǖ!צ|'"i:SxFRB@J Wa4-oQ׼@L{^NFqͶt3G'>>[%iO4bsӝ9 4G=hYZ&ޠH4j l+FN(m}3f>K2a1.o2ޅ\(L-̃oټoWws>xRFR;L^ JƵĖZybb?Tyn^뀶%`]ˇ,bg+aҝ!fT[#ڸ>L1_ѱ( xfl?oDk 913bx#Aw$GU޵!:˷JI-USxh$}|uoc2LNr"⏦0KlVZҺbm I R,ݔdH?Qx[5}ms\ʑĠ :B7P6 ,\a\̪56X6Pd#l3h it*+naWuw ;Yác7aBX^rr#*.vCЭދ6 G p vԘui,eV2; PpzӿAPןX=iL{3/i0lJMu3Ć8bTB*# G]Ni0C=f pvk#gB ` YZY1u]fnsdĸ^k:Q$w[-is̬AA{Ľ!-W9jQ9OxOEp>\pR&;1x=6];NPYif cKA׌#`IЋ)exbWW@gB)cll5|Puj:Y sWO$JoM2-io|VvdȤgВ'f:Kmtb $ RDXg3 2.|pQB(f[GCf[H{ŏ1tdzHJNM/Ak^g>]ht UcC7ip,4y<.::7@YmY'+=ywʈ0,jOwį4"Fșq"P/^v^1 tZp~ܓ;t-.LP!7@ Œx1L/FDEǜR~; ̎mCPG]ĹpW䍫I/ w2*l!PqI}カꦘ'suhA*!<@2'-]Y4P)jܷMؠ0g:"6 f)Z\<$ηe>l[vi̅L95"&YQD`x 4.).Ap퓋 YetËa[7nlRܬR,8O}p!t&uUܪ(* ~=(̌B L *4P-e/^8٪lӂ^7S@$%?AEJ$ y9iDnHS#NZxXFa|vA N?G * 3xNz( \lP6Ρ]að"ʂݽ#nc*P!AH8tŰV9l pu3}BR@ZzF46:>R-WJ%BܖאsmܯF]մT|kEm4Xʸ(VLrWv6m˲ @t w,ImRuo,~q .r4Ģk p{Tb#)ݣ*.1{ 0FOȀhycm_ݓ]''HtE>t~_Y/hP:`f+ns\#Y (d`'$i9PK)DՎmk'1O|ӕp29/BYa,7"Xj@+R1e8Z>m([Լ Df4]%'ta]Fr렲o:Tnx_)?Nn/T[ E7wDd6iX2'tldyoOL`"ژqq2ި d> S ق geOϼg^"eZK47b3UZOUs^>Rc֓_p(WШV++8Cq]qYOk!8okn*߆,{_',;"d"^#!_$Ð ZNYtho[ͯH{Vnb -)h%HύS'6`]ந'w~4Al.]wô5Whي.\H9RB7~/ VfpDVTMBՠ6[%;]80= P9^ݫ>(|Uۓ۳i @j ͫM{s-}B1`N~vQpQu?&(xV+0 )+\$yO.nH覤y d#];2So_}OOx'- NZ1㏀ >u x=gCEUN8_o3s)W ]Dđ&} byDw::j:|03E+T|ﴯQ'}bl *Qmn#ZnuCMVǑ kG+y96S}/6Iߔ|^cQYwހcSOLiG}9,;3-MID,~硁h*SXfQ20 D2$SfrN pvM⾗{G#J# /&q3DOlm w|"S{U6Řd!M;+9r{k'ǹ2Y>\'\Sၹq[QĊj%Hv3=Ccs8?*`E&i#?;~ 4>`v<8Zk rPݰ @8+}2'?Fҕʬ(ݎ/rH\ k͈>fOnfh6`VdM}yϴYQa=)Hd~CbzITFmܬpY :Q Z%[N {% m^qKRep[S\%Yr,?RdR5EVk(%N3cD>OY.TGMz4f&m:o"*86)<ߋGpd.Q]R/Y/n( ϑ ]'…fXAheh S< HqI g3 3^$`s8Li&|{YXK+9Ss8x8KY1XuUX̒-u&}IV=ϥ4֐Sxў9VUJF!cMxq1&a\Q:=T@ʬI;tY XF.&+Ҫ+VlX,_] O7{lAA8!Cv''0\z ;Zah'0Q{G~| G̨)=-s5k="Bus\C3f(q|h1|4KI첒QV;)34z̑/:toEze;7t\h8 &%xֱP{q,@j'eŽ1LPA99d:ݔg/̢7)pՅoW 0siT ݢ*4GgKkJ 5e)ŲErqݝ 15*3M{!Bn4-{UCw& ^@D:}ŠNoJ9t*$SEyK͛߮0"ujN("n5@?^ߏY uÂϣf릕ro#O*e'[%ULp.׆$D"5Pl& Yi€w6/#~o+ O{7(džn+>uD`0tGRΪ=X4D~ʠuvpӀ&֒"ql~vtPyoI'=w4h7L^|4ȥ/u%7↫zħi`R2*]%.oAy-P٢uA@&2}y{[t d,hELE9|wXG*ٳ^\'ț3ҿEi." w<~;aѻL[Aa?(/Kc?x6ّ2˪ŸǪh+/w7^ rrBXYstAxF&Jpy6G*^ y]p (z?W=b ì힪*Yb4`{/ؤ(ב,ef F&lq4RcxWLY~A!ʱiJU.ͦY{}]c^ cmͱ+\xNkm eɄ~n{@$ץW8Ȗ#C@wo5y6(En_C"Une 9 O0y`m#$˳ȳqzX6KAjv,t=ƒ2ʚpO. zvD ꗿZh&cCMn$o4g T&B y{0ޖ>d*VM{7KhMնH(@+f 28 +ÍZM=TQ2/^rt~H ѕNO&c’pK9_R:+ ^ΩDm ?*xzE%X8=a>#^Pc0 D[߼Ьf㜕ǺC/9S+50L 5pUg9 bV{vJe,/Z2e3lݎiT *qm)n?avC30}7 7soh\>JsAZExc3[%'E~hJpDu}Q'tk*\LEyW3gxxY4!h4'JlQTEyqzW]dh?]@WZ^O'aWqKVƕӤ]8Vdiƶ졼'= |hI);ys* _DGbw &7Q6' Ӕs喅e6>ՀMPH HE;?H.yVE(ô,rQx$$.8t&&TU=b7v`DbZ,}B;9ذoY'E*,qgêwifi yC{G wAdJ't&^&>T^Mk Ty\g`t $5!iw[ Ya\;'gQJ{;de w,bt]Pn?nrs21/U{7L"|Br\fyqD <;ܧUvV EϽH8ЙVGFD}Ȕcvv 2!tb(:Myxqӡbou֗O;gv-ƑVPTdz 5JAohi'nfol'3ǩ1wDum<}Dw+S%vɥ#P\}^@d^<` )q5Y?q+rcSϲTFq,$J~q}˿VpER?~piq834Ѿe?q%<>^~x G;R= tꥥRp7 W־9 GS;u. ; `X nN jZ5 Taa5S RʏI*(DxGW3 n>F{xŚ횡X=ڼt(#b m?QQí՞Ͱq۷>=Ҳ}"c|k$nve/3]gفhI dUȊxEM֪ 괆 p` &FlcgK"мuUbg- sb['FԦCjl{Wwr訙ϙsZ@ѕMTKb3:"^WL4`!y[|C tDߣg$wҼou0Ѫ~m>/o#^B cJE!:<,ٟSz(Cq$;jʣD~*< ų OI gt2˫ O";4p9|su6[lCI?<OC9BMd˔5W?/Zٖkkr_5㖎rռhw<(v ҿNSj Vga !|؂[>Dn-E*e$*Ūsj1ĔQr7Y#$30a5;]dyuɎ2 =Hq -eȁ|XQ\A_鍱}f?csRCM&AwuŤk)T,!g`]dwWfGX;p>8lյゾϛQ?%'g-&UO/{̴BB2 & 7(Awpcy_N)BT.[ sT5YC>??o[v/mr^"2w3t-Rߑ9(ͪ lziQs{aYxH ]&;(Vb,,' fB+vثG$(c4` aLLڳ0 Q"?2A WT UVc3~.ʲK'¨GoH}Sros `ӊAϗA03rY {Z;o' +{awmTlG?,v d稳v3ub+66uF\ދ'E!bPSTRp|B~S'#*+P([cl="lbHcJ!7(W$ʭ^>_nȱXϴ?tObՄ&u繸|\&i v?nJ݌ \d/ծNd_-);,dP!>ܯ'Q1)߈Q1s,g/,3+mc78TA$M`*ͬKiR'c&gcØJFDnj}AoOkʘv!qM TJv(d"=P_X-D %87 mϕ8CV-# *KVʲjAe$F%vli2%c*7 ݫQX\MX*N!+OES똑0Yw!̏CO?d暋E/-):>vN{8yE"> AK-6ƲgEivj*W'۠Lf+P!VKavl[R(7dwK}n3wgwOuiwbْv_cr(l0*nYh hP}+yeX^bQyŮ,,Kv?[&1#ѡ?Axz%=]W&D)(.xN!J .ϻ i{phC _t`"zt栒o,< .  ŝ:IZyz(MDeYIn_կ6lh&˓.Qo ȯj^_["v-Q8 IV#"&(_Ie`_Q=%nA? U\*A]>y - h4BP>Y3t1!U~nvR7 ҅:> h@!K0*,'+j4YTX+ WqAH#$E\jK?K" rcL Z]uIxW5[n3Aeo[ M\C#.Ya=s^{-:حԧ{?Qm`ղ(Oe}sնpvW)BX4Td ^T')lFkS-GSf+bg ȕuVbK'8}4˫kGͨj'`pKR:T#oZbNĿhҞ*@%^z$5CZ8b`*MM+ 9;u$%4G3SKh43Z|Z|B'ofLfLhiYtV-7ޜx:g [zDuB_=K6(QB_zl7U_,Kk򘇐qƐ#L#Öd_|=W>[;P&!7 >.WQkKMD旓?NYY-r$LGwt&?Li#=eVeyhOs$ѳAÅ!k J<|Oqٖ3|t}}ժ}Eh%X3'4_"%f'/Gj+ l|fn,[qb̆f}F+O|%~TihFn" }#BL왨aՅc*Wbp*kcY**'/B_qJ"{P-Lm}) )l Ӵ+X)=N^YgSq X3[$T PƳ WrIkyNE='b<^!axB\ɉW )ئYq%,&-D | N;bdJK(v?RLg$Y ˙yϲW+D9lω@ɓ8xkMՋ^s4 :wMIWwg~'FLNfo(>(yQyAN&@JXsCmK'[H܋֊H׺fnfOC b&?diŦI:@%+GGCFwN PfjmEIzu $x|OunBٳ D<)@0M.ױQ!^#$xWGN%͗X^ Qjz~aBv8ZBo%wyL_њ$S?^|"NeH_ufLtXHUIB{N|Ѕ]Ͱ)}YOq!|L7QT$?Ȃ;e77C'Tګt{4(m73?.[ku#Lq TSHMvpu~A[?֟ns<"n=0W޳<,fJ4dKm.U,ߔmQˢ5ڰPcnĒ1A\dVYӻPkM;]"|tO+6i)vD;-"aTE质J(6Yv,i gZ?T A{ D)I>Vt4޿5$5o8-D3[7w~j'KeN@ѽL ?8.72?uPb8|[0)ޙ41bǁ 㬤DpK1aCcq'k@%^iҲc%띻H'qO4"wDyi&v\XDzVu`it +X 1s:qvxѓT_v)P9 #ߪvV7}vnmLF(E/SFczh쾶ݏz7dz7yDFi4&P2 ]uw.˩C} &? D1o0N`Hy#QkjwIws 6H-9zD}"{ϔ\kD8ۺBTt*1ݦ%/?:~`Fd \s 'IΠ( 6 y>',v$W#$CiW/q;h;^AWbR *S] 3x"GMJ-FWG$[Shv܋iPJ}N+B_ 0AqV+\%C\suB}+nT _gR''_%8 l A"ceV-+-l!p|k!F v`Xry3ѩ⹽~ciصYG"0.pQO0oş]mnDpxtl}ۏxcF>SF{rg(_sw-L/Ѻ?ʖ1l#c1)%=m5A[hX9>YQ 5k`׈^f<ӂ5(APNZk/ǿ ~N\]_Nk䁎ۏ>bq5(({@uV2~Xw,B!L!^ i:aSP!Cֻ:(D l]_a]}g1<j=XTb*FgFpSSDW+Us_;-{ g8~zjP3Z;U:ŃW4wAuA9{.Zb]̡wTy 9d;pHot\r䌿O@67 bS^`$PSEnFߍWHpH*L} 6L9U?0;I}(!?v)I:PNDoW \y>MBB{PGױ%ihGwhQ] ߜFTo̮Ds:5vE*Peū*J%-{acen GEpNYrG"f'm .jt:d% td}F ۍEÆN=@74p\ɐ{JD !G|bfdbƀs4H9ZnR~mR!-ݸ=&?4rML*Nb%#Jo!#9Fk!4>f Zp"^5 cCRŏګ`=x]D8rY;w.x|s֠2G3o#I,]0jbeUU6qwsXm'+p)VD`w`j-J[JqS՝my緟c(1ODq2SNn-Чd Eb? #Ŀc L<<ܔ0@"M(у$r)`v?Pg/ 0L̚X#(N*w+ g7p=+L+7Pzu]\7rgk3>= b=wÚ1Ur \,^Y:&kHqW ٯ $kVDM;GS0x̺+[J!oxE&&MO%+;s擶@kG = 6n:(BtrS2Zf=c'IV4ѫŵߜ:1#vOJ5$Du9[Vc(vaQaDEq֊6tDΘ)qSB=[l'ʛޯO}ȓ+ ]FRMY2oN&Z;~yo1` *c+(>mlx`^"Ag莮>[ؚwri=YplN 6y"e/\?ӄco0ߨ>.~蠸eԩr<[BcY̮(:*'RrD(Skt]Oܙ:/*)c.$LΆES0F,zET!n#I*:oTxݦ9K>1S B#iSR@!r F]\iC6!'%}ޫ:xB1Dgq%A}_񕐽`:9<4k}H>gJe?'V*~n&%N&>NM88˲uz4Kɽ 77bsFn ~SwŦ/Crң^zO/;ls<'BLZgZі7m5kYA&L@d}߭°yL!i~!{tn쵐[[)p ; 8"XMr6=h$L ;YDY0t-W>82)$tc8|U2.#:Ox ͺ%2> [G4ž9YqAO#5t aA'5C<9|WNͽa)c)FհF\Q}mS)e1'w;BRd(]Xv6x0n-%KVop*Ά rp=p_{mņXߎ:j<1cJ HǗ;R.wtQA3]7|J\:͒ϧqE'`7])s[1|ft޴V*Ŧm>r4YLL?"ٮg"8UoD4,`S9~X+L@'eE*DP궝Un$'vf}+9H,Juo`͙[885_+T}--h)|ZeKB(b[񩕇["Ig$hP3 B^+qo#g5)KmJT-rݘȶ}E֌?%'9OݓcN :߰TAHy !8+f% ;J댷:T 6EӶ$t1~XtցYI$/}iSݶ2- >U0M[~z ]2 OAE>88亀0i Z9%븵I6O)[ fbrp'O!ٝ37BjmG0W薪x 5Qfk2}Lp Y5_+JV&]o7GQnF6Fĺݴt[Yr%Ao(e\l& QWE8=?P}"MEѹԪ)q=H]7e+!L՝4 &t]̑'z/iLqB-2X&R rWA}JOlκ6`E c&qrXtnh%"r f A>{4lGV)p0 V.1+\П]V M|VbgS bPp<58QߌckJ_9|b1߄{ ^8Fc&Ҽ'=ۡjuKm}0ZHugRrE뼟X'/tj&Z↻(1@w6x+aP^UfirB.9Be;E'AR|TJ9%ѐhwN> J]Ϸ&,ܻܒuJA\ nT(+Meۆ`l \Wd*84)Ngw/ڔ+9cwƚ>눠qIVo#$ॾoe'̧Ke.LAg7eWcp,Rl#\n6hgFڬt5H79zYCq5as-}B5qO)KЩ;Z~,kpT~㸹l!3'x"\9Zc>d֥CM$>~G|':Һ 196t4'&Wd ($8j]W}lg.T?8O ۡmm,X"Kf^;ެ)G`w/T5hh$&*VJL kx/cG e$>On!k7Rbo~m1x{H_uI/6j6: 97A$>xWVsA Y#A3#_7{|$'>69(*Zw)2ֽpNI~BGsxR jU@=h9O (t^S1&ΥR"w8eL ?&,32phiC _N3 K7 *QG4ѽbP_Lhf `xv^V˥$Df]"汀]墆I ؊nCAغĖTXo#/z0LAukWP˳iHV++7p6f8[fOcGtSQN!O;X0hjAY>^.e9iddZ">Ua&%MdN nj@ƌY2"w{ ԩ$m2M5Mtb#Q#DWib*1 ۚ-d[ԓ{#\6pv,% 4+yA>eV kV_pg[ E%z|XGQ2IUxSKg謻8_D_C5B ulҩǻW%A E4Wj_F.jZ.m0E^tGV2ZbKR]+l׷KiyWVYHWAq:&D DtIozÆTI|X~=oP'kx*\اCqHDʣ9ܐ{F73'dyk1ɝ+?'?(8 S4m}7jC~@ # $@-I˭*4luOS!| saZ&VȌ1̽Q5] [P &N3kB\`bz@ ꐚE>J|q N[X扳2㔭 ^TJe’39D:&IW+kw9Pw7gb0>bW'G aX^A[^/cfUM͜(=K/]] *&!MSuoz֬ف`=,D7TT1?M:I1ǟ2ۜ"q 33gMw"l_^$qyk`d*%Z},K°s99++aFI~Y.]no+I,?GTH@%(f}71:rF&4owu.tbQ򍃛ѭ>J'0zjV[1$[,NgyI> gygaL{V]4۵<0q) )5SU=nS²)s/uQYd+(jdBIE^82$7b剼``zcp=q U,e(l2 @`Wa#3K1D6Ӌkxq4m:gP 2_`(V`WYG *{~Ѫ۫Wx}G= 0|b{4Ӈ+G<Ĕ%7,mz(Q5DhÐ55Gs!:s6wOH(^P1"VZPeZm([Ôb F='zP@Xr n8_6*%^엺.9#mS@s_?BEFmP Q -_ve;Z A6#[B j=v~!SAlrM jLj$#>ָ /:2pKXk?ȂhFDkWN{糌e& +އlZ2s0Y{5F~tDFNCA|xqq ) Oog+' ӎ\_<&"Hl![C1oB$! r(ǃbdw5)Nϸo/pgBh}4LuhR%%`|:86(%Pn Dʸw͑4}A ciUYeh2>- 6-cYk<ѰT]ҡ׺Lpv6b$q(6}ln*o=B[(ob9^-}~߰ E:̼]=!sHRJaK4 x^*M@'PczXg- E(v#t0 4RC$Ω&XHGީllUBc>κ`6y<޷8izJFWOp\^FY)ӀJ9J1f Ł+}eJVN"^TYV8P3}p)ckR(ҜIR{ڒE dS둫B \ҼY3asl"vDuDV"Yyۂzr U핥"cztH@vg!GuTHR)Z-!8h+{r/qTcGJqڌ1D&yO)#O+ L4G2T0JCDo]3L6W-?PoI-dp ljH3 2 /*_"r2e(N$ɉ~bdVC .h4Ǐt˸R !H &~/VIJP< v'=(~TQ4\}2W8XS!6u^UemQ$k}P![,*Z36]6@i/Hvn ]u*xk[0{N}$8R׿ݠ͓Ew'p.T096'CǴOr|AtFO,K:8=7|~PҫVU-:/A#Ղ @p +R B͎Pfid !MnͽHDVW4j8̌>\7+A^;{𗑨g|6mل^xhɖCʘ;Y0}A1DAk&G'i#9thEJ?o)W^Mvsn{2}o q۽2]ռ,{3G7C?q#%ZhÙ,ɸ5Y_Z}6 b[A3a2|7%j*B Hb2x^F88x^iihSu뾙|DN,GIw-$=dM**@ x<mH*Q/{WdLBH͜I'8ؐV{JxKs&4ͫTP=(Y gjĆMGs@jE̤P{ ّ;}=a>uN3?}Q9u] p s7k׎U_&̂=c<i`s¸֑-"U3J\ ;ĠB~= C<"4عel?Rb.K8,Y89j9<( >q~oE#c< XCZ.lpy@܁r[Caf$ a<f ]$Uyk( oW8Wwmp柩2DW$Lm]離`6Y#C$,PӃKgJp-+#삩RZ̜bo]Rϒu)LL^Sŵ+Aɏ5~Ɖ*lr{XTu+LBqR^wѓ1oCgb eX0߆'E\]|UR{`(Qߋ 1ݠu좋/8̶C3畃 / Z*c:N]R,@ n7z9] x\g^IU_U5[>6L;t`NHx۱U7%n>ܠ(!w}ˮHk;I,=n@Jnbj0dzaXw2G5g_m2㪘5N~g@@LO1/4$Ϯ T_@RiΌ;@Nh!lP-x#eagP?~Q층$`pK?5|Aж F'pbkY"S>[paȧ0Z͖\%[%0[rB**T2Ѯr6-/J)F+}@0C# BqqCexiE1Ou5q]0C!r}[Y;R4[`Ԉ.&/$˥CACZ5t=KJ7aGLPOcke(1s miMa/?v9AgcR{q5}l u &$ q(z7*M[}^ǯԿ@?PUö1Hzۘe[o646'$5G%H_)bݘ%C6QE!*U`]j0'ea|~ ` @bh='û_3ڬxOZ |#'c\"X"9#R ~R+&wb1u_.-@N1Qmюi p3݉ ~7]G AkE$\s utKz}V٧ 2äYJ&фS"B [A|cmqR ]/v H/%m20hiB~P|T'V_uرWr^M4 cFSndoq.HEoຕ|["8.,_yD> e{efqj)Jړ?N^H$rl 6ax~-U W#ߤUS]N.9WvdKw0S6g?3y*(yA^&* ͠ Sp۝)s5I, I;5Z44uL `ioύgj O4iji+o6si"q=U$8wm`~wZcH. &@X2:5in16K1Ord $uӨQ=-ȟO%Y#p(95c%6Ǭ9|hjt6dC'7~LmTE*IaD1o]́|rX6+ T@y⍹'1 sjR9/MW-ۆV Rl Dhb@uۀ4 W%頪R.)70>o !6c`Db3 ٕ<N2}P;팖VsX)hB(~rd(Xצ[f@f%:>/!wĈh:4%oN .(܆ɾ;/C! XDoN AXY-18aR0fNYl e-fL1?zGM` U%VZrg7J McK)EF B+tC @z+qboʗǶ@FQ0Q?~54,Qe wKn,^=3StrX3՟EgvPOst;*":&C& NY@tZW⺖م"+Z%'l`ͼd>oDliv.LvjuݡK1-9oH,5:G4ez+DEMjaIo{#c˱g03ÞazrpQ hI}NQdSZ_If%=u -0L ҧ\j<+qO1 _O[Jk ݚ1no_XL+<@u2L F |SP]CJIX>|rw [!fG>|\!,UoA?QUB%ƽ%MG8R翫^КS8[LYP`{vd28Suf,%~E-;֥50qrV_Yel&[㹐/]L|je-c!avNh*WSNbgջHff`7d pvO&eBoLҐ)`{3؛Da+B&fĖ&UG|Fm/W&~}≫-fveuZkC`TD1Ip~z !^#Ra_܊ZFPX~;Fμ9۳&uz)3ئMmYӊ1?f?xK2^dYt iCT7߸tʋa2X߹Q$;}4Cm4- M mRPx Zɺ^>$>Ex mu}_'kt[*c+13`KNx_ 9 >p%|%*z|']|V g'$4? 7{%pIwp+K\Ϳ9LUbvM/ >~3k6ԬBT<-9)~BH{z:MU}Ʊ1B>y ;sHU1kjֳ;(/1짎؜X43N.KRG[%/lAC Iܑ+aSH8@>/.f!yNtaS>[z@f9Z :ѮpCSA>S wi2mm"ݠQbw&-\N3]yi 2>AW똜ǩ 2\g,r1*Nz pmjY%wY̞^sPT*pd=ٞy~j^UIL%Qĕ'mFĆn$h`+=ȱ}qh-Wl?O"߬A ̋R|WW,Q.x2HpOy-NT(3WXMb1OsiJZyX5&!yE_X\s{q]I1C4Xkywߔ]D+F`َ&XIdA|}⯓^Wǵgތ8j_J٪$nCi-Nͷڢ" !6٦ޔ5Ѯ;ݖR3 _4UMbUޅ9]_ Qׂih1eoDle^.( z2YIќϽeit,JKf67+@7ir50t>=^lY0 !س췐:eyyۡ?agFʓ.%8"z*+Sڐ\cz~lO,WHтۤSv=(V!htkj]Hsd9M]*s'HUbtTlBS'ޤ@BYL [SNH89F$#n 1A<g3pl=CV6QI,rܿ~'X#gjP Q QNӄP, !f .n$版!>]yO2i7-Aev .W + uMeP9b?Ec*Ib[u߶Hy`!5/fYcuTma~:UU .z!BB+i.>`6L/ў~'=E/J3;GKzPhuUVKOlZ2; B;h!([Ieqc,3> יj/]a8&<"й4)&br6lg4~^rLxn\K9e"2Bs]}v\4u{(jܟXPTuT ~L{1s:(<#}tπC*~A e2ufUv''=_PBs2~t$O#mM \ .j;*swKzPSB]$M,ljtxk;so*9RodEopy:I޲8I c`BW]!Ǟ13F7J֖^Q> rƒD!II ^RkxVlaYX|t1~Y 4 hlXeGm].h]85(H xwWpMӏC5"Ƞ55$FܵCD[@GyL?6>ȱ.Bo?U)&j@>`DRlסaYDf0g0/(Ű*T~d^2U$ &Ps<ﲫBRհIy9L'߉Z?C/*g?^ğ!kۓR2F/Y7!Q1);S匀( Ș“PE%t& fM餚1nn܀ך:uPbt+u-&Ԡȧ>~Hk\ ˄ÓPLhp&fRB೪!ZA9ƫHǖ#:2$ho]?ÀdŰrНY0H()jc{̌{._R_Rxsic ھ}h$PΕYvrj2tR]͓ĎbTT-]j۪A+unҺẉOd4}ɁӤg};+ܝAZexa5EZ\V033G'p&F)ᄃHB/+Qћ%g<:tBD$Ğ~D_p?BK.mk+ǯ#˞P (@!35'K1(֙}+Zo#b*bnhprB t$ 5MŌp 04t| ;ViKaPCR>&"V?%L9J #,x)!R߲b/dkm%!e-Oe3 9/,dG'y7 zU%=e+iq#Kkq 0ADޜFrx|04NZą$>UF2[~ǚ;ǢA^{ AVz7N>_Rɸ7c(/-x_Vx = VEjXE]z?wERX_cuQSBJ::!νoR30Z^M+G u)p)J=ݘS\i{~I.+K}y7nNl9 cGXʐ/|.DQј̷΋5p#WFrM߅ lRT޳0V^{<+Y03͍ ]!̷kj=ӈ~3 q㎜q\!ˈlm>\!~1fE+VTƎκkҤ}&@t-ҺԺ: _ŋΫt5~]]l^@)k c͆!d dߟ5>w֠3lPkrd;X R'>@갏O\k7eVβlaS@ZǑ> QcjN it %c~kiWM'X+^.,^r-s.xq1v)fxsK2C\)Ʈ#bP~a_IK.@G˕EwEj= 'H 9b~z_l83I#RmXbn;Ztz* ЧsJg5*D/fvX$L';Fxl72!FN1{Xw,ԵŠA'&z{K1)'wINc&Q-w@t멕:o>t ' ,9/=z q3?vX3QuM^“zɐ*%ñ3<)0ٹ~DP=?0'q0^(v<_H<Su; ٘XIcYhͣ7V( .c J3&aR3UR56s>2#;V-[~)3rgu{K,Ζuƶ/Z49\,,uPO' T@?<$N&Pr *0SWfHzoõ8Y/Sݐ׺)жR 0*eߋ:t^8雵drPwG݅,I6EP U`Q@r{ ?Sd3Ll¼؉ ÑmFs/SA|M72E%،KllBsf"hJXQE~jo_f6IkSg_,۽zb8u4'"2jY8Nh :WܡĝH<3\yޥwAACRd!$FA u3 dhW,cs{vܛ6&0E2kXk+w+͊+$8乴 mѰOsvJ/G>ᕡaz tpe2Mn/7wNv%Y bϥ4#. >(ZsZc[㌂]V  `O&l 'ª1&1 .DPǟw)]ŜLfK@O0{`eU$ ʯ<{^S oRw{ftB"9 y`> 7e$%܎_[~2ߺ&OAUc)d+F?gnғ$wc_|PdI?Gو?)q Jf`a1`-Yx4$ł#VXk:%9*vX wzռjq/lB )T%M 'lXWzl YŅ! +Q 6ѕ`;҃3,#Wv-+U!.Hr!Z$2 1:M&U|b|Zh^ UPxWyXKln,o׻Խם Zֆ]=IB%u]0pVyca\oZPNBq^"3AxcSX4 A2h~ޜ#whIY4cBXw9&I ZD*pS,V{"ڑj"y"B8B¡8D|}GY/`vHW%;3=/C! ^GTr5p/e RojK $4@X~s9otzn7gd"?I#{^_k䒕ӛ[9_=I+yM#߲ʥ/%~eT]Wzp޴#@(I~XHH?#'deN\ͪbkH-GLm3@x@$vVG7w eEr60.-AGBP2,$)ӑNn*lC/r6ԩbr)S\~A;??\R]_Sz~2ΏMwf[Sk+ oHjӡ^*Ruj=<TPFh_~t,V.1@\ pҥ"zgISYCenGv;9M!q&0B/\E7ViV/ķw.WV2w+R>\%$tvwVȇ#xԼjMńRMv8X)pxDFkdl 7l P_&l5 i /@OfLľ!(oXQ,.Ґl^3&(2ٿmynwu%!Wx[el `i<ΌI&(@Ҭ-zr&M62M~ICb@#>mK"z P J6cJin9f*jC罌V+$چvڝ㑎NE>.6&;>jN"4 s\S4fQIC_d޻4[;KräUr쳥I‘, uop,Ɨd]KC*%%*EGv?xi&-(Tŭ` O&ffL;Ň9 1`$g|Oc$l,Rnb$Ynڧ\ XƔ :y ࡱ=hǪT.n1vBmcw _7Юank"*3Tgkuk_`tCHG8u{ptnҌ,Wew*;GI8'QfdU13iE sF{+_Oư^fgeүmRfg n H (0[t 7{Q;D PqDsϐw^eOM SL qeW^A LypVZFز:&OV"%;ŕsØouO?p7* W۽8y rfؓ@*QE _[_C!.2K,dV.[adSռ*4Y:]FKqА0Y\CP{`DJOpG:xpd|߻w|&U+#Z[ϼV[𓲑tYy$}|AAuWdWL :nvh]HqONNµ H1l5dZE~,mv(Ox ZLyTb-@ ;;()<^ffJ<qߔ-=~dسr J~/DvICSΑ&ppҳ>w~o|m%VAkv;9c8aكW.O̖ M/mK o;k^ӈ)6u;K+!H(3/3r:>HQJ-#|gR犀i~f+oF*k9{4C1 `E/5Y16J=e鷲]ԣV3` xBtҸ8w3ppȖ  Ynݏ\጗hk^2eb(ՖAaM~d^o0M4z@p/h&Z VhFc-]?Ibn 3-r5.gzUJÏZEܽцHM[~k ̯<֔)%sZeR,;5/ ;,(߷ zQU.,X`C%e޸0TL;\i[r6~l;,Ln9vP{.%˱mw,?죈2e؁j"IL-uGlrp=1 Ov<@xofF%CY3fJ ` x^oֿa+OJry)t0!hE#b=숷W[a/ =ax/~A;Ux<=7`[c.?nHô7- )[⳱J~~QMO -fLk*[")Ke SBŔ\6Rӛq}d zf=ւ勼Uv&CCy17r1( CQwK79DĘޓ @te:2jltbC7jܷlLsX QԴ0Z|?R j2n\w}]n 2` rgػ!ˬ.2۔@+C7r=p.iHP[QwN BjG#%YT7;zũ<&RjJ8h3K}_uWnJH%a)TgeujyqA= "Hc0ٳ f`=x|z_^6sbCJEr?_aoVVq8-]A=]@Wt\6x++u yl=R(v@ksKvcyvPtvTF?aݑn$#^Fsϓv1w5k{h\`0S {nEE R=;YS :_߮E~O{姕 6_?}h[B\#zixD^s>3c0}7X˲k~x a fR+_ bO|Xf-M,c iسs$Z0j}ӓ%JEO%նg$&uحd5OJ$UyTKBiԶSmj~'U'[HLlFbX:a03/l9; NK!9hS/˙#0&_ܼGߜFEgY:61MKĦ^I`zNdC{jJƑU ٜ<+i8ON9CzDmoWfjע$ruj8ɞI%_stjHQM&Zr4v )r7y͛!!d/~=wV'U{ZWuUag\@OI0]Fd;a7HߝOJ o: =u+Lav @sf |&Ys/E.rl`=u57E Oxem\g5bһ릶A+`c3b6\S(2G^Y" <v:vI"]5bp^lj'U*<吘J7bD$(X(H#ܣ`lOeBHα.#p܇7]D,W1~w_v}JT#=V.})&þ$ Z N@S>Sʕ$\V-'Xܭn%* ۸X=.zbEk3^lv{.y85mC.kgHʚV_1NY3m$~1j^ƽ_&aQHcsV.f B6٣`5nshVtO~٧IH-M̤\ m !Q2&$ɻ=dGo{\pkd_CTIST/97B1[ʢWbP?/:Nl>pZZ犮+Jj >HὋC/ ғgw< ]BQPq}G u=ᚒr[:ZHpy ᛺.Yƀo@TB';Դ 4Q>=]G954; ǰ1~ >V1HLHנ<9~/ TuCYE @y8рyS3a HA%9tjy6 |z('~"/bw˕/ T ML&U- 7Њvyba G (a?&.X!Yl?֡ҤUPXvX}\ )M,nomCP=Aj6=/ߠne 4J6~7HjHf^:iz76Xy50ob(n `lW hŔBP]D8M@S)ՠ M*Fd$G8r50fQ[/JkBoPQɫ4kRa}Mo?UAmWT;蛭p-TWYXM0(6P?x|emf d+Y_u"ƼUl (ç+Xy6MA x G!arC qw!+G6U-1an:ʉ5J`-F:_mEI}G7e|鴒pd# ߁򤣜y?JXh4q+1Ozcn*rT3ζT{2lщ1O$5DBMw kõO@R>cNj5@&Y/&:>oy$Dbȩذ4 w9-E;;|OV¶/&g"6-S EȓӅt-&S:ɥ^(k ^/u+zWXQ ) Ax2>^G|DYOT3A"#$vr Tɨ(0w -O"[%x6B)Orc7ϥe{rMgr2<!t{83wbP AUŕ6ppW\û,,$x\ߚ^U2I7OdoYjsQHA8h+tpÔCb7 @knKo$4p4nZUJp"04acs\&ԡSuE *yMx`q4$(者VH\i}U{DRJ)r&RK2mm`pxCNT9|y-8]G%_oY?&J>x~]ؔjө&Lɳ<aD9oϻ8e%iƖx/AU"!p ,vR}2͆< $1t`6b2$MOEXr`o5>h=,٤cfw0ԇlj0lIݫ_[Ov0ڜӠtQ*֜z'tK|  .]Tm'Cf꽹0•Yŝ*mء+Sȷ$+V𓠭UA,d5ѡj8]8f]0A*.Ly p:=aHu:kFʓ¯qvԃ'wܱXXTi|$<7aD-}v5,8LD5a7 h9ID)<7~_z/I%7]="'Z-ֈN͍G~!V̦'lS`̵j}@QYy;JV4Ř .S}o ֫e˿a[1׈?\.}2&Q Eb ^VVQ$׾lԼ3Wv$Ǝ 3& aoZ ´BRWft MFMVk }RXϤ= .)4Keo:O‰a@ M&~szje舣x S@nqܳ01CcԈ.e]軖ܮ/Xs螻:-yjhp=v꩓ )/(8BϞ<&\L (iU9#(MVvacFwg9sYEKz;8(J4kA:[ ԭzKwaLVH1kU 7ܠN-Y2=N!#m̠zM`&`|Vfl .<ɿG:ƾլ|4a%ᩩ"ꋮڣ*jtk$׶|kɡbf˒󿖭|2*?গxV|BV ?OG\vG<@`O4}A^~ܣSFFo"31lf]￰(A` i3X3F$uNt~Rɺ_Đ;~Qj4!<.LCGr$Yq#p0ßqCdgBrUAdĺhw V%`D}gzŽxXӸȼDpjJGfYK;:vР$[/F ܉hJ>nW6V(}Qg8o oJ\AH%J{Q T/!Lҗe65ŊI' "Qe c+YA3>Ml~[G2YؙwC6d-@yFM36Љm ɢJ3v>,W(KkyzL^,rNzj2ԶN.tdio: =P8B!1jS䒅{}8|;lP;reGߌlnXx@#5!cnLJxU1>iUjlmNe%o?!&1xxyw]هւ}%].RitۓXGSEl9G n5uqp>^B߅ٴ9+gnoTISoj0kLa &|R ֽ l e asxc8% i?Txte6Pqh+# ]ZvJFլ ȡm|A8cZ%@yі yR&~fޚ;zp'4r٤βyѱnsgug=wg8GBJ_rE#~Pq狀l.,O#wws\5:2 @N{oz=Bu JC4T~b_"S:6:./ L#u=r( M+XvwK4x~> ȎzS5G=-G΃ER^6e[տ7Bdw-O-#9kJm~,_{qc0KG_Uk6K6jN@H*jX!W%pyL}?)\M0涫laPɑrue`}Ce 6|p3-^bź3hAHOJPʷJ͆BV<+P('D0fW)Z Y~&IVuKY.<|6?d&[ *%풦۸&^96fǓ]X֛J[>qG)3SJ0C z8H*{oX|[3^u&݅S,.m=2M6 /TD9@xرׇڵ/W i278k7<œ;"O(hjT b׋A$Uq l0+/S`H1 z1鐰_/y` 8L,L΂d\zs[`d'kHlj"L,Ffy|ic_*5fJ{cAyHR2=L&f~~܃ZwmB;ʕJ]cWou0N"Xb9C:[? x7xSS{i) W/-S8{_z"ܷ ^ٟBd {+_趴٦;9PHSpx/ 1UZA6{ ǁR P|`h?֥h~ZQs|!:c48 PǓ&5$S⏚=T"V_[ONJw9w*9uHԸєrE;mPE>}e5D< 'q!4 yK9lx#~f)KV҄>&k=GpGcwhOtx'2kTJyM-2,Fh*W%T*FQ"֊Y?ٺeݶ@ i !*nK#S+knvAWFN{[8fac~w޲fj5]X(K0.]Hӑ,\4v(K[[ip]ť~MhQ _~tZ楎P~Ր t]NZsk|o^M.[yx:jھ}åadGBs&y9eVpBv'Xu!-}l| ϒׇսqU x./a(7ctltQGmeS=d|pbTYKpqC Df+y)((s ^N$[t0b)TF oTCD:lRu3MU YWćڸP8ٴ̎&%FK8#kL{*yG2=a-m ۔@+]]L)J.I]m6JPn/ ĨjXD@ u^u qzXEjz0XiD~jS0[^r"l {*O3M5gX*c|o>yN9:>\^t 9?V9'Z FиWQƐSwև F Nbed,TSPob] Gevu7PsMr]%xN$Ltm#z$ ѝT6x?=/4.3K!Ͷ˫نձNS |ΨYꁧpB˪I Z*4fҜ5I)IݎT>F>v R^pYR|e pHtn[spX #s!y83CPxM}LP,DC 5]~O\&0F]E݅9N@r&>oӡs8L+Q4s^/)ahӡ1avY<:sdBVG`+Vnlg%UŤ1|oriIDc[t (7ƍKϯ u+6f*0cήoBb笷C5 bMK0c8<)y/=GG kXYdF\wL1?qiŷ9-i(u6d*/4gɓbm4o+o E= 0&'A ..Ng]R\4:C̈Gm<;:ZIw_8@P`v8{(Nrs.D ݱ;#8~QVQϡMI*eDH%"G3K=(dwwȡ>_@n(;?v0&/×9vvx<4ܖ^Dm3 Q ᷏U4Cuuk%-1p98?&ƨ G﷏\V,} b^[(=y{^9}֊-aG"M=oй*)!b~e V26ܮ8Xs˃=5Ne V2RM!U[EyQUoo:um܊vyg)37 :xt0 ;IT ?BDc>mpFoGO>G *Bbj@uB-k"d| CXó:\tbG$vz)4h-(C=IZ¨,̪8j7){-q:JUwǃe%]-ڙ[1fbNaj5d!PӲ|E|qpLo6ÆN~ڔQO.5+DD БL<-/%AEu XdѤM{85{NcK]Ũǂ"U(A+@Vg!$wsڜY_}w|d98*1w+a!*|eK3ئtF3a?0Q.HQ*{{H]F3op[BX $CD8 3JI _K/JV1mώF="G*=GPT˒YŌ$?eRVš3!EU 9Ӓ:Ud9Ku2PR=C>\'_ďLKmjiމ9{yѯWt}\"Gce%P0pgr X]|,@Bjh/*aˆXRn+vpaVN; Ung%2p{)zтhTc9wQ_0ECyMAZD$UI2Yٮ.צ5C'7[W~ jV2TiN](#śWFnԗn%GC^;^ m/mƅ|Ey);,vGgDQ_\(N*<' IxhyŌ>ǁ *Y04^JԽF]gܳG b؍$mԤXœ V~L|bʷx$կAߔ2fxpEM+uՙOnexhB6#` vnk-eU 8k rO {SoZtB*%/EpH x#t9;HRQP&/h#Vtte2ؗC7zr2MHփ,kK+byG99 41drl͛CUaޣ)v莺y Sv\*9_ Gw8 Z?Dqf|_J66X?Y_SH ,n["k\+ZA7X6gЅ\5230i|x c!U0?xmQ vڤyl|zlZK=|L5{0S<.Sp4fiM}Cl1q0etP̛qjڢ4uY#a~) rEa>Al8`7N Gꗧnd?OD# ͤ1nѩ~QÏZ*T0&G"8C;8{KGDU|'z\DC)ŀ^Z҄{0rbדfYvk;xYͳu6]4 0)HЧ锨ݸd.c&*SäfIyX@ǑX O߿qZXɏ5^)'7TY]L&.)FH`UݴFbXӰnZn_{#,x)~fH]0b6GyS g2-cCV׵[-(({3ȭd ~V<նœ̵T?AX[xq yHvtě Vp)+#p@9լd aSu,d$zj@p- \d)̫(A\[h͠ӡ5SB,!;G ]+wB( $ l}P1ue|K`k+EdK_,0oFee2נce}xݿ QRAVG߽C? N=4 9@xl=G,VT qB]^|z2Eۈ R;v58V`b}]1C)okTMZrͤ-bV@ӆϹq- 7sXnwAkMHq<n.~M;nN 7%k#a8- - jLEvLMrs\5.jų8-+;×}%<bP\xGFL\Hv_Zd+H_%IՄ 1|˲Y|CB5_0%T!)eJZ':ql!%$Ԧn튂B8ؠͪ5 U;%7A軌yiXIpFXt(}C̺QRoOR3)?} ޔ{f{^OZ'Jr~~wq5pazVs,慺FLgn/QuƑ{68H*B`oޛlxnQkkIXڧ'݀>cFPtH8PrI eW`fs)LuMalp? I]Yy$c .[:P{Ppl:4{]a"~:IF/1  VI2ـ0PYmͧnI^o|spGvM4x.aQM>HA Q+sSЋ5^g1 A HU/oSV)nM#?_ LK`S068a|{O9]aM7?3 |:LW/ X{:pC%W#h"$_0DQ߇vQִF6Dt{п/v Ѯ`X|V Z*w)1ell{k^aYNz"RXHc VBEں< O'Cɝ®WDeH ts&I.X'qTBŲ[\rD.rG Ek 5Z6Y"8z[X)` ;SЇBwr8e-6 ,Ydp2إ#.0g1ag]rNL+ڬ&6+|× "z"єc</5SVZs]6qV@GY#k6d{TVIAU}%NQYNzWlד[<F k&شODZ+X@fN(Cs,gڑS ?]JڟXgP}\@Gw${4UE>J;ͷdw7־WXm6ѕ[2 ryJ&+::$Cbb(DGKv~@zH`RMupsx$*Ƿ-yn[>uvƬh=`hvE(dzLQPЌEPِ[6b{2Dr1U*n!-YstqPfv;/Q3ϱ2]f^0EqKnk vx[Ww jP;ҎMjwg~ BPcy'6bm9Dj3e\ԫng|*Q?z$˛ &?1O:~PpP&RpXd^7 ]QXK>}G<>LD-6fzUuE_sp;:4tu6Q.FS/q)w^Úݜon'K:1SGQQZӝ4CKyY"3>!jմ+uѧ.8v?gF kO\.zR57ƅWQTϭ{l}P; F߳Y&UQ}KZ 6.*jW|jE:+ P,uV do tGj =Cd|zAKT}ypBE6}~i ?mb0GεӶ&t8-y |~}_uBF7=z0pd\rɣ_Ff9eګuLk'0)Éy]37 XD_㿵ݞ!n<. :|L^; jlC?yrhM+K4./,[͆p琎Өu3 QїfұMf/Q&O^@PR+y4J\!Sޣī--|(o=S kn,NcngX7NlDϸ E3̬tX-%z2>]|xG= ^{N?R+x۞!4#X=7zl7Qhlb\f]xq0^UlwI_?Ij' w0ܟaUVh@ TܴKXdyXw?W 5aO @i\:UvZ2=Ր4 J/C^wSZGC.@3%+ | )!EKonN?w#[H3>^((gsXQ 2440/_:Ɉp+Y;{> TlW\ߐ?mҍȂƚh>ߐjÀyP/!wŧàd3P2v}ݯ#ʟ5;8m!?ז-K, m*F qBϗw)v(,iA { Em槄}Y"򵳚Q8EWIďh/F4տoٟbN |= ._hE8ٖ;g0l֮U+RL~Z E,T#*ƽ(\XBD_%s^uwC~V-S^ZGTHh[=:Unvg c: $)%N*!;PQaUp3=m5a1 dcI= z=V!L;zRNDy[" *Z Xf>k@M3K0ȺJbKKn+j꯿.ȫ9B_gxYk'{iж_ I ܎DlX 2d\Il09s)PX+ 'jd[iI4is:Z0*µ3@a+?hCTx J Tf_+^F?Vj`- p=3J+(]4T{Y(qƟ5ab%l+.]:7\qT%hp 7ٚ#tNBlُ{!Sus/5"8ga>Ȗ G&?LD\ 42ϩ*K댗.@3DK;EFi!-/nqa*JHcn_A1SOy*#I͆X! EG8}J|AY4gX:i~ >#m~&cŊ$ݧIe*Ygt:vwmt}_4?X|!^/JG\ʇFH !uQqI7,m0V= fQ U|I'gˤCn`8SiTHMa2 HzB/b g;b,UA|J~Xv׸dZ4D#0BѻYMKk[w,H!B[[Bh|ryhGTFE[iwe1h(V4DI":KcK<Qm50|z*DR2+t&Bt2RyQs Cqee46G jbEk .*,V0}R2{7uiXe2.65W!e; w;]ȥѩzfBmCDow qy< =Ac?ނ9V7Ǥկ=d9@s[w!ob;"nߜtT{!( ,\V~ZuS?Bx ]j9үoW<$ #Ӯ_hJTs:7[(N/>D)Kt\~_{NΏpķXy Vdħ~x co:^k*XFzn#"bia"𬆬2N8]%\o)1{ Y%{n+ IK b0xcC/Dž.5Nd6Yj?͜?CGP!-4\PLЇH`]@&nr |%!ć>.q)q<>~`y@)*UK3& E9n[A 878X"St*aj[~F|Qa8om. k_h OxmT}ChI.'?B' Z?%;}vAӂy0@=2}ٷ G[-_%e6ŚAzB0&WL+ ^-Qx/z@j0&Eg{ oI`HGmp6]en?oM%! f QC`  >d@-Ff:ܣf!vP'㾳m[̕ 1AJXO:jo8.[wT'CjA$# ]##D}oD&t[%ky(`0yT3O㚿AތGDV3DX GWb0\J>8|ΪTD @̷Cei^i5&uц;\, E+9Gnwɐ4,=qth΋Xإ˩ El[h^ {oNd5 aɒaM;hqi@7,~۸ ̛` $ػBN7}ӱNmőP{ +)Axye ófo(%ADk W& It {0۩YgTQ~3>VVp1=Jf~+pی7lZ][J.I*iac>L5aJ,h84!4:2uW[~]kPa_\ hy?f O,M7 E 9Y`>}.AtnfKEjU>ڽ"\CѶ8*N`mҀozx=So2ZjpIUޱ.^9RuU*Nf77NEF[ݩsΟ2Fd@Z_MH\sRzSI)4$$0$9A0 a}Pu3K7W}twH-a ~aks!B@vϮ&y~- 2mEy6ĽQƗeC 5D(Dy@e#%e4^mdlWeݜ|8b]DӚ/!qYd@/FkZ3qMt"ԥ7.x\ Gy*R1.A9C-Hjʤ^2DR t?u|-6 WՑSV쭂q܇.uB@d}+nr'V=LC+/"3;tMȻ.c k7]5l9; h`ゕDQzg~+ùƬ f=0 ϣʍRt#ϋ=? N@Kg6$BͰX_;7's- 6LdȨbH)G׸w33ٍ[VءtD;2-Gfɐ(j6 Gr l,6f"0F%5fSԫTRs= u{uC.LW$#?X#ᙓ Q]•B(gumI{zQ2o2*,wj3}Z}A?@j oIqAV'"2*ýj#3V{>InѴՋC:؆z *mo\" n-7r ؛b>=g?Z[h G.P#B󇦳Zp Dj5K26nCkkXQ tW%{gD/m.tDF&ROoX5uBҌs"1ɐpqj}~NBp6f90v <8&`/`&g<ge7?Y<׉3ƬZC5J['z YG~_2ZbRsEcHKH)Fiʮ _ה_*>Q`_-O'odoO ~+‰LгQ;Dؔ$eBF"PuDy1φXnPyZ ÈWÉz sT-i|(jH$3!o sc|x9ȝqzbԣl liIh3O=J*i~ /Sn<3l^_,t/"aUx!E[3͢G糦AB(u[s-{7MiÑ&],)jēq,nv\ԝ +8͟xν8#5͎:ڳ]{]U;0ZLSAb/JpN@UU^\?ƥjYkYQthh(?sl%s쫲)LPוGS6q^L# ;<ɭCo~"iG#;/ mHy[SrsX[1g^*Ą5Xj!$ٍ"R &,YRRxu,4IL sYF<9Pi@ZCgQ#eN+eNڍ15~-c1;~KkJ%-rO\O%|ߎ`&RaRt^l\uáAtݥpFR.hّnQW nT0x^|L>oPeۀ+(5zwZl¨YA~i|5uI-[{Mx@\ٹF<)\֣&,_e x^.G7?| kR%D.@ArvE7闇(> ~:mdR~z#LZӦd?ݤq9t&$8L=?Xۻ; hg9+͚Q4Xzc2FwGA,!h8pr>H`>qA-.{Wéo/DmyV/0^v _Ep/uI"7Odze?Y9 ;wec.e-bX6 ufiu?QRlYm C]{.\ agg_`͂`{pin m, 8#XI3KxfHoQ'ncUBVQKxm@d]ƑqpF0@>H(4<6ɏkr\)c.4El^$~Klv\ޜ: huF^p|z T[hU]9Y,P@rBi1FDVGxU]W׉ݎ34Z5 Π Ѓ.OhM x &Hlr;owu0d)-O<2Js3#3TiwRP;C*}/;t}sgu*CnK܃u4Jײ{yU~-QG+$y_\4EΣ_ނKa.\$1'gq閿Nʍu% zRcۢ+6`ωڤtD|a8~ͱGfbhmvXB"n'k=>;+?[P u6a~;d O'tx3w=c̎ `CDsHVwp-vk)bz6)65#,D0ҕt 掫e<#./c0w&j~qCy-83ɔ!*09b`I Aҡ8єP"E%PY/oL@!,YD>Ăܪ/yKgDvk:F88 "K#ҭ$&YgH)+קW6scu8昁dPVJqyUZ+uU3)WaFCѾ+x@&:D( aE{B>C,& goU"g2i0 ~MM-ӒyxuY+\ YNV'|b^#{MM5+"Qzʧh5kl|fq!} w)$th$ŬOJ֓)wo:zd2+vO-TaAҷPw2f:3ݝ׿S9&v7Ra O#Q::}<`R0~fNHTG9Imo$ݤ0GzS8'(Q |zNt| F,I@ y %Hԡ;tukHϘ+֥,"I6@o`ƛNQt r F/又:#Nǭ(}hTK'>[F|$XziRߪ|VI^[ފ.zZ,lxxeU9]=vp)i>tp8uQaxb(Iy2'.%)ńYcѡ1TnAtTx&#R~HWq Dmί,R$a󸢻E3 %Hth?D kr4ܗJm^"OIy'xJ:H4 g#)uXlvsH5, fF0&&X'S 6{COM={eL}sK ֫C/}< Ie`{=N_@=`x'+4 OQ\5ZCN-|v-*Fd`eвQIZJ.FbOGjϾH 0g!63fReLwtaAGٍIFU3u%G~F[H=C|3wfM'@Lb+~D ѱٴxPYגK͵kN@uȗpfrQZ /,%UMXg'3,-3g$*BE4g4_s}\NybyqAϏɧ]wV!oJݫiѤg A ]umW9֧cfdU谙Flo/|XRɣbZTwa0.^~CPBap2SJQ_Yܱq$+h_X|b ױ_Xq }ZĿ *71vS+^m]4cI)~[]FFaL@u)qEN1x ONF._qU@T?DV,&NV +A nb 1sەypaak2?Ԏ̽X649hsW {B8@Y|㥨~M 'SuJ;Nx?@feD.ۙe _I'+w?"]-ol5~2CKdPp]֎1G&bЌ/H\CGMdL)`vDu.n4"*JJ֞_ı>a͗vGGtn\NA5wLgz'v؄j<ȟbI  Xzpf#s+B)o1--fb!18˧Mq V_na %iUQCv2bxΓDQzhK`StSm DŽ|$4+5`.c"1冮7A!:Cv΀v)UjTd2|>PQ9IH'5ﶰKVL_ yK6NGޅ: \} ,PDHǙЊO'7{Sq/7}]Rú5)ҧЗrY(  pSKusYQ7ihɀ",t֕βPDg{Dj#"^C tJ+G`o|\dۄBGtIcao{ td?>9lq71(}ޱnMx&Aq!&@Ѹ4yzYF=ҴDӶM96aJ'pNǗmT&}:UA 92`{lLdŐ8P' 41)9HЁW{ߚn ھz] S)p*?];Y9&?)~co26^uU&.dlm֙? x"Cs ݢxU=4}=2=^{"^AؽY3!u𥈺tӞ^mI-gPq컓OխCp2#3Le2:g?kdvX&ioGQ D^G?yaU{ZZ$2ZT 25!g% V9=x|osߵo0ۗP(<5N**cw`<[G@iAQ 1D}(}@řmCdQ;D7%;~1]F3\oy4-vb>~5OT/'w9Q.F!HIma)?d )yU-Ě08;ZɁ ưQ`# bpQf=Cl)mIl=Q̥ӛ|{ f'4"zae@A%Y0#wyY>*C69V(q\R33qFhԲ(KYWqwO"i^%b+Q>M/_l%{&j{PȾ]IDRZFt ~~aExZүU-a%e !]}Zs_]gT)"D҃KSya-bM,ޗpĿUNA ʾ5}6=VALNLfȴ6JLZ Ima)CyKӴRD9]3x8WiV6?}yA0"[F.sm or61p:bEC2䏶MFA_kr'x쬛-F}bT yhĊm ^(s4MB)4qy2I<b3=8{J_M9QN5)[0`0 l:UmZj8:+54={Y9>XujcOHQ^`j-dž(I |f\@RxGV1ÀLf.s"1-X|Tc `}SzzOIG)V[ " tut,? z+lWn3crtMa\>֤*FRGN$[CX S~9{md/kg2F3{Ac+Y_]*݉2\ɸzeG%kUSSMnO u&Q#k76$9`R @e4ŌTL:rИ>xڈ֩9\ޫ0LeG:8. ]by8q8&?B͹Wo;r`۽abI?zGX1V`nQ1uIE C?wGdVXްz3pH=g3?L|2[ǪWj{"Pk5c' $[Nn _SOzM<9p׷8p<-Q8%cbLEK\g:5+DˈI%p1ҭ Hօs5OMr!j|Q"gVOVOhqkDၵܓk6XЧ^{P2P3^tX2 ZP6.8E`X/[mJk ٣|8~,,;&ct/q ,JfZ!lS21SusXr,̜_ Y9pxg5^5y,n5Қ9Y[}^An@wuQ1S^b9 dYk % 3p:楥 Ѕ3 YO6Ӳt S5`cःHS_Ҳ"o$*rDx*F9*}zZR¨q͜h1xk|&u)Pǻ,gEZGBS5wey-/CĹ_zLj (UH+D+o˂OQJy3o9?>? 7;g=u@Հ nfI9>ۉ 57de[dq0~?B 0B R&Вig% tF Wc10 ^+BJXsvFy؉x2%z0X%'_o@lC͈%oNeCLyIb~&!wˣ@еT@wou<Ĭ``w,DPbq"'n!)8<"L᎖ 6nPZ-!x>VRD$-VqT"A,# kڪ}eSA](<=rPRp !ӝh}B6;Nfr^BW_*szvg%D|{7Vj`&Z"hjWbqg?]tFX /aʍ)*xb[C?D2D|nF*,C9!S)v%@z{5QD_7IiZ"P#Hlՠ7{T 樷*Yyܢtqdq|(`}#DzA8ceΎihv3ga( Lw\:_,EY־k1ll2zG-xsPVgmԢcQx3샷;D/HC  :O ϒ  *6`BWjF*hfO!FmG@bI,Բ/1AQd( 2djޖ o_fj`~U&B35+ղuV33zݖ2?[eEhfJtIOh<-XMn]^C/ٺkfuT8b7]\w[NmR*E',k];d<5m]wFXͥ% "p0 0ox / fgcB-tr2:gEEF~Ɇʀ_BSfbZлܿqzXf8W.hHDL)6;aAYW)/Yr;Hym-yvpX^pP}]Hf9UӋ(أ4l))y0F/~cfز*/$H:p&   eo mSpj{<]anN* NKJn"74D˜8YX Yɬ^xd/+xBs2^Љy>T;;,E`=RFDҒF5%s䇅PZE ab'#/8FxT~ 48+ܳ؎sDhnF]p%4b9#2flzĶLuYc|z C_.l{)"ZC  ^6¾QIQ~iCW8c}z vS(wDsrkΕ׻$3fROyݥu?<L0Nl K =}%3`7;]%r܅ o Դ qR4)b> 9 1P p|z eY{m9 PN# є6ĐZaQQԪ^Z]Q[ 4@Uqi%\! :P\m5ype0c8AfAEBhmʀajQ$3*B,'qE])tAsPcN+[kF(*Y_W6Zl!G.[Lژ&e}H*AeO#P˔?|ul9ɸ8.MNvGm5:@jy_6o%efUoK({j6L]W:V,im5=FeVu3|s]0Q_B`WOYK@ PLH\SLdh/MʶiR4tQ9\0P)3j_@x<<,U5j.#)r`KjG"A-7峡c ?3@j$r1uiIWbyԲ2+쀜2ԦcPo*}NRf(XZ&]u~4C4gqv%dQD vxlCԫCGʝO dRfW]jRקZalo벣!g wl|0{@GS[ilI!{ȩ+U&E!1 5P7E ]=,D+7!B˥vcg{rIpPPL^Ume >Ґ2mکk K.ϝ Ə I[{iZy}[D ^zus/C&T՝_x\(VQĽ 66ut7Fb^rj4)LS4Rlkx 2|%%N<1(%?GnP xjTkosE[z?k/6PG 89C~5?ݟQfumzk~_Qg>XYrv xj}ǯNu3(w4N%,/x 텛wu(5HO8t-´6ZX׆m#A(r]$$~CPR9Zhh1]K>b+O)SEk' A6:7`PYWѰL~h1fzeg.Pih;6tXNrWa'8d=܆E Q4j6-izuNqb' );lrվOHB; )I"RV$Lt-A4F|? 0XnZNj*Iű>jg{Җ9Ogv~+ykÑ.+O|plz% Z>MzWͭj]>Xv gd*q:`w:#Gp|`Vk kz"z[Sn.fCݶ H5t`QP]^/_#W^{ Vu =B/TQe\k=Kj,/<+ # =1:?neHpq,Ɩ4lAJ8b;a^5W)? 0늰o8fbg=jYkiRlS {q.7ˈϰzh}p|h*sKCBÝgo<ݡ=' \p&ÑE uZ 8]]9`IjV"3zfBU#6\e : ĐJ1aZ{0c^h;;ehKz@𡰴"i+9?Fy< /i9 2j Ctn,9ߏ HbDlLѩ>Od- Վ9x̳?.7RA"r/cش"O'JE;9VfQAgwFe _*'[]x WP~)e`gerBϻqw< Ot`$Jo֞)鮍mXJNOyF?6( ^h u%I΄MƋ o*(` iFh`!?;Y6N;*Z9=49_ۿ Exd5d0%m z&?kHqIK-ci_3s%ZҸxrXs8[)cd zQgekb!eim2}9X ѥ:K~7OKK?`d[fSLo}/[4n_Ijr[R.$-hpom>M̆l A_-BB@bānO6 ]`3DsPEث.%t ܭ= ģϤGJm(C-6#iL(0dv8_1:e=Ԏa˾„t})|lZ)7(3u׾*~!1X3^@ hkyD)7,ó 쫙ҍO@B?3ɫ=(IYH돺qAJX-֕n$|/mV4m)G Z4{/[F@6z[ %Z9RH Fa cl9U's%Lsbo#)ٯY=Hֵ+ZP;'`I)ڙ ?bB";\;" ~;g$,!_绞'SZf U"{] Ɇ{.GF X4UR̈OUJ9"dq~1q=F )sڸ=("Bq&h2PCÒ}{|fq 'I?2`+Ae\/Аy'&TM1tCwдglZPSP΃`g7tcYFP~|5 +Ӛ&K(4i"K"xa?0+\u2PlHsPO.N* n.++>H+~{p h8Dulw3h1+1t-xx 2[|0rJZYD /N0 㤀QTx\ 蝩%BzCn'+-+\+Dxk;cue":t/ πx (66$ mxX>ymOHx, j ᨉ)pB!bww]'btߨtϦ k9P ˮ6t&&uāEh'x%CaYcB뷽x0Ns3Ŝ$ic9x=={Aj(9gq_&*,[=>^? ]GS{k%COhK&k"z^yGjP閉!Z3/sjIŵ=;L|tUЪX$qVӥNlr 4"xKE^-bkؚ%K-&B?4#e+:.ѪxS~{WfcGMRb`P'Wڸxk5t{Z&2Y5ʴDC;0Vypc qV'H`Ds&hzo}U{n[:n}ןOпİgǃwT)wEBaǦRb\7%jf{l)ԟ πh^*̽[ʙ_#Ɯ.99luyNc^]3=eV˸")A1%[#y!8gCb{L5l3dh:3xP~+ jn>or%&t_⬷3Y^:p!na<DՉ'**Xf_P>xw?SduA}LSY]-",|Fڶb(2u}t҃ N^; T;h,1Mqʝؽ+-kA=}id].61!7t38ytcljvnj_ns?by)PnC3GH};om};D\fVQ %ڰ~U 0q7Hh 3K6d$JW/uGGf/ȣ-'ׄzGghN Ɨ'9!rUT>* {=ŗ$>֧ǰEXGI8Db% J7ݳ/Kˢ9y$xD߰cCg"bٹQӽx̢;[gUQ+ c0цZ`,T{2|smuSFYh8rܷ3%˾ǘ)(fmn [VX^7M =yFP_0YlWeӊ+Zf90T;jy\3պ7P[}B}fE4覠wvcH dK0H[&WȈorBش׽z)X>t4$ݖ&߉PpDxOңk"$h?fI5OeM7[.3.ΡFXdo`\N砞>:eT 9qЌE[>*|<0IS⩱woYĞOTܹyjR-s"1baɠG5GG$1ZE'dc%_K7f `fhH)/8|1?SגcPxV@P޷6jh-I"R$S5Qv wTA3cO +ĐW79',=䐁hn;0Qq<m%MHx.jۙMnŗgE U&&7Հd LɗAkq"5 |0]^kC7|K@B <76x8 x {s6_B'bzj!N#j1۳3|mwl0s$i Mq;ROt lf'匲ag=v:ҫ~҂VI uWl9rZNj@x[\:6hSƚ*meR*J$mkR΋ 5xu1O]JG7{f,*_J<3W^Ioo \&X١*]se۬8 :X@\zbEM_&e!X']aBE])zLD_<ސ©A6ߒ hŅET[l'wwhyX v"e%io@뵨,V]%L:10ϸ t]6(?` s dP꤉&:oG%w-n ZCϛ6;$UA:秎4Q H5KFiyQ寇/ +xsd{XXǭ{Q&z_XAS[_<Ri1i^NRM> KHrib88^>2mx)oNp㫺VSHKsv_F":%yy|s79Ko T{d_R"ѵGL\+ֽf|sFubo /pT9%o[NExʿ }9K{Ҋ9?4!,Vw;G2,RW"$1P;J Ca4.6ma谨S i2U13|J|!xsr(Ik$tN WRc$M:bF<'pT!"6%+# 8ؤ *~*tZ~D99+6"*v+mqb\vbv^0Cƾ)Ũ+FvB"%9Ο#_X̂NՔD^pz\nC$c4|ȧ Zݝ.2%ɇYZWPiԛsY]"kSD1+ݕ&*^L"ĝd"6LrY{9Cn/=k(&ܠsJBOZgX*p3:i+]K!SF4wQ-ݜiyCZT:n{{tEA@"GD [=| -͌ʏl]IL/0v p;?h|Q(P?[;4!VEaXX7&}6qgX ݋UtJ//ʉV|j/TR,AsdFFE&\p ڞ4Dıx괬Lc<0m;f5$AN^(?Sn-0}80mͫ/O˨iCn=pWeZ; >=&%=|Dp1GW-Un:WaJ=Q7~pjn`|^ω!a$C' 6 f ⯻R%'Τ4; YZ Fl.t>x?4:qT8ׂ߯M*.ʮmWAZjpN : oU&4օwz "Zl)&mӣޮ qg3>LJFjZDE_A;G8gZ9/0w q~ZDXӑa=e.&EJdb2e7 -Y~t#92%IޙbDJ~\Iw(zƓ&؇Ϊ9̭K˸úχڨ_ & 6LgPmC|ύ{M[S\$Tc}; jX2ƕ\:cMU _䙧 Bx5zm7kյF~ĒFD,77G2K]ggKuF)x!Kc/~vҊ34W8x^{cL#ʾR!Id~EDpTH"1ew̮/?[>n9WV^q̧JZ3E7ص}빡 h~8ڥǣB<]۳n(/ xƺ ?^4̥T_q.in7Tk^qs?ArgHz0tr5q23<;ƹ`zQ f>_b$of "nO.i"#䓀2YxpiO3$)_{1I ,;kC, $x3"m3*Z݀Op HaJ}.bߗ42rD , s=[[;2T70=GzQ%*v3:y@:O9wsDqX8cRf1K:5+-7Kѽ %6Q }MdQTq_9J,uzy뚶0 |- 0de(#DB79]ȚMO0-(FJU)ԷF=F Af^+92HӐZYu?>SkŏR"c򓯍U+/:wPƯ Ĩl|ܷ?j1P: 6}yt;(MFIA?a]hNY( ~l~A@,ҏC~ԀͮBv)rM,%p;')jG" ޠPa#9Y {wNװ" Z1g(6**n=]Oo>b )%6Cu2~Mȉ%&/s+qV0ͱä<-n면'eE8YIFY3 @.8a:AD얬)mҦ5dz'E`h6-p,}(j$C20(f^oVճ>0۾9^W@k=B ®Izcm+6ا˛痑RMK2p3*D>Yd6''9A[Vvjӥ糨9ℋ2]U}!(/J~Ӊ'O /?jv 6}P_ZO?ŵe V'{NrvPiՎh FShP /`h4M^ÀNCe]6J;=bu?ۛr݄GT:nLLC%9m@D*jydɽ5mT5o4oxgK/G1v -\( ,T*+:8?#x^A17J,8˃)Q$.Q 'ŃpOajy/Y.FʇQ 쏗TBgNg73-n09ߪݤFbNՉ%k&Z˷Z--N*[rA!tw. nh\]gx)މ2s&s{ݜpq\߀#OaNP:B, ?rJ$:Q|~LjSpC֤}U99Ht,nPA_!pӨo|c\W'D!8-X~X/a/f@hVr7y !SnLO'"w?!e4jև`?;}O.)R%^kͧnx \axȇ%1Oy9q ܂ mP2O9dȴ,d}#xmlsNk7` }Z'3ra큿Fk"ߤݒk}yUv_ܰYryy'TжaUЉ =vD f 8jtVE4˷Iv)w{Bf=*WzӔ)kbP>\1Y9h5?L[&7x@YNxSgjQUOn1 |TsҐZ8.r`LdGхW|s~h<$Nf5̺QI[H>^DV#Q_i]Q6ykֆk.T/˺))!h8gM6{> zSpmܡ>[|l/ >-A&X͡sOjGP;2 Ĵ#ny<6"~ԩpw2#Ψ>;q@my" .$/q'gn<ˡn3Cc$XTB) ݮf@/c OGY{tD@gM8'{h~N h1bPhƵ9?aFᔅvj_/#`=orsZ + XY5t?@ZlϚ֢nߞ$^zk-$6i.;[-FBc'\+}ӌaĨTtP+BalW,& RuG߂ńl»a.c<ly"%/IGIC rGSqGEO`Y GeH/yTGz]5=&`΃!lr9ڵ,h ؈V~zh-w#j fi ҔcU瓴괆JmѪptPBeԌ+"Ij\~}6UΫl$')z 0+ȆfӴWݱoy¨9w>D-N0Eɵqwq(5 ||hF!"i$_Z9FTXC%>_3?Btxq;h3*݀$k8Dq:b2}~+f~y89+=Z= d97rk58~V)q_U@R 8hN*_-⩝>D B\%F$hZ1yw.ui \x2J?};*&zu2 v><4!Ѫ"EH:էhUIZOU#'2bWۊJlSVE>MYV2V&cl&Xsz@ZgnBY'{KGl"t`y!Տa*~^Q5Ok^¹4صkgmB'&eźk}%;1vErp&cٓ,..ڂJzv7O5+.¼曊JU2b<pv_q]^>/B_<V(X:!icP4wCx'C#.T~I}K!sB/4gN̤&,0e8X['i^D[98QL~,/IDQUWN B夢F M6l^c7#)=OVos {%Q&ɡ,ׇ'@0ԅ#!z-zݖHo ~fBe+C5CUfv8VE)f,UE kũ#hV5 5QY#+%kNy^Jta}CWNĐ3KZ334}:K׷;V>nWěKk[j3g#GIG8^.N U\ T49grRr65-b89Mʴ "WQw\𬋼E5:q[Nu@[?]r`&|~O{st*94iHT.%kP|ÑD=KiHZvgbm+.uΔ5{xQR˶ B@emZI$tig^N18x R:ȇGM"'ºZۿCoЂE޴:#_c,c ~]W"N(N d_EdYe_"zSb.1OB;>@oߠ fז;3$|F_<|/ilqHNqyL`kh5ĹaT]X·^A*@-юa^_-$=UkR/-| Vǡ܅|6A^t3ρGa:rG}a +&v{Ykb/Sd~=&JdOV ?DjP:j1GƪsnYP? F˙tK5WL)~R{Z9=)51\/|LH(?CJY21ͥ5 2$ N3 BoY^^\;v\0ݞףҐwǢbֆ&8P'fsP KLe*sP6豿iJkwzLt>ת<.=%9}VGRjכ yA']/>nykq >PI%s䌜ai37/?B_@GѪa {Њ]Zumڱ?]7 B e{!IBHF{„'TOHN8Z $lyXoҢ1G`d'*-!PAoZ8Qbݞ ߫Dѿ% 6J7P"?A|`9艵h73/U}[:]ɔQOR}`KJ^6SɌ޿Qѓ9C@'_6 /A{K+ prrz[ xZeʠ݃YM/;VV]{Dҥ\9Hc2tɃC43Z[LY/nm? o>{/c -U%E -Q'd $$Jn~` se ^`k/m䃆:NKkZ),L5 =I#-ӗ{f1êzCVG WhyR;J0םj: $Β.)8 lLTAMaXQq7<Ɣ)l6z,2HM>oxa*|m,1B nؠp(Q<>ddHBu 11[4;Fr5אaV9¹ds}WR!A=-JݱiL3n3,"E/HKNǺ7dX9Q14d;T rx>cEiz'DuLui;*/d67cXL|4tuL:%<,Pa in^wzBb$>#1A)ׂn)]uvr?3 ʏ&H^$ǽ֟W;wxd#ҖLb3u`6ݼƶjś~{yd ~۠)r#4n0^a`wqKlc"W犒TĘLOQ@i’^XɯE9/0c?ۓs8sĜ՘BBt+$ERۋ:~D7ՆHU[PĨ9_%nl9PnlUZ=4 ЇHpeE[}D'-%hNF .5/Of帤n spSB3xqѝ#] zPD^ϸp3:ѝP-UE HA2iiMT !38 :HS_d8Em{U:T+3Fg!GQk⬮5m ^,SsR iFeB+KUQ?#eMX.f- %CE,q=3R _)zfS>h,9nȒ?H=w{ˠn]iL4&Ć#*aBQMϟ Xj=H!CX*r( W二a-f̧r_3MBH!טI4hI{j'DX | [aQւeC}0})_ZRΜр-/I9IU )Lo? Sr)*hWl:t8Ç;X,?+}Pî2# -]R,Z*f[d4}Gi7'O0eG:&o;uWWsɿ>!5i[7 Y{~67 ]Dy͜Z%5{ yYYvD}b 8R h QNzH;^c7"IP\o'kt39"; l|)5NI Ѝ4hֿ$VS#6I%0bP:IE$[Lӗ@"H?vuWPQNH6GKuHI\ʜ6u@,Ü*:5Yܷ|NА=(n} sk? XthOOP2 8_.ŀjd7 !3J7f ^f mz*—~-ktP}8I|d^ yb yiEV澍d{Yl8}'R--(r. u,JDߞ0Z)o#~X#K4>rH@#3oyAMū.q}>syUsך {f=}<Ǭwh,&>ozՄ}n}BAYznZ8ɪ#}t`*o 67s;|d.˅ c /.:Y\з5H؈2mX0܄>f"3- C典\ Vj& c|xiq`}mvVs/1.qa:v.9*7n S#Maw k\w|!: e ǝFU/1c B5Znƪ~0zCvtCyhܪK}liv't裭_BAC!38߂Vtt\ׅ>TtD ~=X}VSmuq ,ڡ[J"ZB>LM8'J"yEBFq&KXx Ƚ3$~]\c:U)^*wdB^y*~ؒ삘\I:d˸$7% @<*@ցĎȘ*"%-(r62f83UfS|;3]* (#x_ճ\~|р#Ldw駴:տ.quZӺC-Sah2@%3 [ڐ+/+9LwڻGmJpn02-9ؚid ѓ iS4̭=:턙@V2^X7gnjl2APJ4eF.Y$xvXe I$'E¥DQ6n;^XW4$)z'_8JCy| ?冘Zk#ޞaJCT7KP} c>Xs /gvϯNS_"d ڥZڵl@x5? )*t |bMt֞Nn' "CU;o4D;j ;ᐧ@aTRAb~}Z W`G-h ^('Qພ]{9J>n+LUZW??hXbe[49wfk/"tVy6(Avݪ jGhoDޑ?ȪzufB5@%Τދlmh l@?g oC1JT!wUAzOf|}o ){*f6F"Gd* Bᚵa(jH.o.^@b*qF.F&\#!k6h NR:Vf%p: :o}^wg!->PY|Y{ ӪoHQR6gڡ{e>YF'~"bOk_{|}4,Z sIǭ+x9舾p0ME3pgȩ\#tPLR{ ܎>5՟z΄8nhkŠw(R g[뱔gR $n7g2`ȏ6ơDU ,Qk͆8[gkh~rL^8$׈/ c{X :bRqgYPЌucە"?F>ȷZ/+Q>vl*=[$?M1-):oWK,&Ŏ˖3)a+ W)Zz}LU[-8`Kgz#kϷm^J=]_?Yګ(YFZhvfE('`}CSzgvvzAY()sN訛WPJ2Biɤ][բxF?.(L!I,mF5-J݀@*n@ɣ\^Os"RQB%EIKhGX( x5[8|eU[¨#U?A5%v) }JA4[e4,[0,3'Z)p)mU)Co#`dEW*^߭ v'TTB[`?aL]X%NT~argoT`a^i_ŴKс?4d^TW+n.{ByؓX PWcv(f?ɶ:V ոd>]{qv*RC-~:FWZb k5)ij݅$Atӣ0}Z yI8$60O ` 9qt5dmPxa|8[Q=J]`bϖ>N Fs&|n?]64tݚ!Z*JF3cщ.ykŧovjn +'E[,W#lqAi#-Jӷ)~ 18pJ1w :}|>[ l`L94:*Cd%c]2 Y"H ù>d6cxG1cҰcik:dSće5Av?XB o{5M@f8 W|aJrw-5M/W@P<PBZVhW\:#HUЄ Z~.xQUD8pnLTOӢ0^wl*fS'`hʨ-F'th>gDkMv(@}ꪃ rpa`"x71~.ʰm/}Γ2VP`' ^u5Q"kcDBl$˔m.d^%qrl*.;4ҿ&K۹Cd}f\ k&qIa?s !|eeģ%֬~4?EC5> ߾=y-D6) -UM1`ޫ)zĖ-64g`%V_b%W,džv5‰w+-k]ٌkuK#u^yp_}̫w ) 4 8V ɗSrWjEՊZBvZn;̽iS/h< _ԇ:֖9vȱӾy?NerXX$,̨2ٌj8Va=OEul=}Oze-.ET0OQjB;uUVaLl[a=߂߀s {%;0`*gp}5ˊyr v $ ߅_YIEH4w Zq$RJǡ-~9;=LHsGC{je>X;bv}yZ'+ՖB'>8 Tq Eke?T_bBj6` Ut}1༕ FŽG1bK 9`ٱ:߁@dhAZ|`%p"46ȗkd@W# =$`yGڠ1s[X7g HOk#rFv~g?hKmjMGp7wz'{!ɔ[֬D dA#8V)T(|diD/i'bHO|, _.GFK8c˨&6JAWKÄƦp[$΋Ttݳ̣"AEg ^xS{zc"l@58R WÎv#eUfw`);]㩊@Z;Aӫ1!>O׍/`*UcVuUTmΑÖnjkpxk@j}uMI:c|8uipy$=c an@Z25{c Pw "|}HCT jB*._B74x%+ L݊I 3G{14Q q}k~*$ǏOiLQjRula\3? 5l$oY|"]C,J_~M$2X`?>Sv? ۪>h}q0~lR);Cdѻ/I8+fĿW&~@,-~vRD+~!\2MU成Hl#v/5:ng DWaep-}M`Ƌ<ကky*1\xFj!عwdI(H1'#,T`֔ ķ C{קYpb͠z : j v[#S:F\7zWMTwiK#Ӳ" Z7b*Po=%K)>"1փQuh#sqgs#Lv PWJ$iz^4 Gp{I׊G`6UN K'o:VU_\t[1I;vs%U;w 1\uBmVj{ `1QϙRď@R kTnyΤ΄0BPJ^Om9D>5uůZ5r&׈rΓ/O_~$u{}g%<E=Yו*f jڼYj2~=i)vVomXr58Usؕ+s3 x >ȐLCb1Nб|]hn\N2~e综sI)"xcvBޓMZ`/G.j8ϭtMJX0Ţiit QY1/F*o vt5*tv+֢W_ J[{ hxiS𔢭:RPT>^WKX-:_?9*xcUGJ-Ӭ QN_l9mJS:q&]ơ@j.>FEDuIbz_HH4,:UbA‚[ Si<)SַX ;'/2$쐙_O':o 3#[\!t!7YQQ2˯w("P4.9Xۉƙ=ݡ4./HN檧%Eoy7cڨwaVYccy #9$q7w#;έ~{EXK*0iQb؁?#FX{gD8PI$(LetqIWoxէX4BEFcۛU-BOJ9»tΎm}7)>{l tz5cʆQsf."vE#.TZޤuO5R"Vrͥijp__$FՎ=|XKBrjqpaA >*p9#$Xkkwʸןz:X!.Up.@l+?nCkuP#@sKЫJ ^jMN(`z ^ n9]5e㺯M0"x ˎC't۶r u)q㋍2L|9FK}r C7/ PcZ녺ROR'eS?0Xk|9KRY<0iRl[>'!U*NBk)G: |o;w܅Hz)sw݀S?ښ&ϔ v%Q?GMF==8IcwMt8kUqE'HAM7*=@&uu{4Tqb5 lYKŠ<^ ^kKɧ|DÔ[A&.ݕ牨GKi~,ƨtijD{ ,+JQ'{gyB@vk.͡=5hhgg,j"ZV"ܷ< {Z3pP>_ ysr:Eٿڦʰ1-L<-^{q@)"܍m(ER>q_'0[a.|KN!fW4Ej˸jq QxK?.najoBqHJkk^ R Ȋ q#j6?e.}X̪nGdCW`R!c *엳D) Vlc چ]y|pEK_:Yr(`Xy㫔uitt"8\ +b>Pšd SIEcڱHr$M@T;.x`JAP?"0q*Tr!aJn*ɠ&F93k⁚3?֥uD7('h'ˁOt<ߗdjGk۾¬|ZB1 2_`b^M`NWh^zO4(Q˚$Zqkј//_J"VG="9NXL)kz j;Eoڴj*>ت‚ZI;Թ,ObM>.aN,vnhl<{oXqM ̽@ SγQN{e̪ \\ !me0p$!a]G`?D>KѢučk?F24_&~oш lj/8m13-{Û(uYZU/8=v 8ϔ-oLjP@ӧ{þ92d'ed)0 K #Fy\CgsTqח^RU/K ?/ori8k%#}sjZj 2.7ж; D0y˩)1WAoT2$P\VKxӨX$\U[$ޜv/[;xh)"?U= [o-? dWA9kA3\Ӈ~n֫L%[5wD*JxtiS !0w/p _$OXق$ i7wב/7U:3'ߑut> B+,NALI BY7Fr+oy'jsk ]j" mR{Pvubro&27Xgs6忖/.Ыr˺s}*,217~|*8NS1Ø!ܢK;%E\Ўeiԏ=*~\pZiQ~ds/J'F+A/'r: G\PM\ӢۑlP1>CL(e:]㿳 ȳ!4Cj1+`vܬ<G~^'!7%Tu BD(~]f2/ZhuMA"5ɴ׿иt1xwb+t9a" (cD͗h"\|5G:,RZEsJPeԔdhk8G%P_8Mm_WHU9l:EӭT %?fS i;wB[{U`D嗵zbStU݄~\;af7a:6xFڻ^+pW%PU+yR)ʯ nf އ d`P,{J!m² +|M ~: 〄HvX9I<%h.WrqrH)[)p2m喿v}4A&C Ҽp;TqKVmw $m wfjDZW `_QNKW[vkf&oO;~ VTtA;Z^yk<4Pv-ZO?VE0:Bh~2(>Yv0N1OlZ"T.'Zo^yh[tHF0@O+j(4\kez`#LG[/-D% 6};9`fX`NTY#iE}NЂaY?K$yXIKZby9d. 1ByE# ukб{P,15Iq$'b.;`(4{̃ɍ_Jf[imԒ9>?qk%{cb; oK+"gmL! }U=r~9@1x亣Wi"tļڶbB!k-.[X`ف(q+k'Ҫi"aPqC[^R0Ua0g̟Bezc˵ϋBM@Qi$_(]T T8f6_ NWi[cծi9& KpzOeq{1kQg_ڱj"1_?htv;voM`/^ 8 =[cmȩiˤSK[P5Y>NتX: }+OɌ⥫OClieEDv_i_gŝ \D >4y}5` |\WJI+ɉ'o${,7s B̗r~|F'kt 2 >R j;Yfib /ÝX Qge<'X2but^]֩~Y$CNK{ذ^\T|;OaEؗV=$|Du>i54lOSC/(<;ә g&;L lK#:"K&Ma,r'~u)}k? . p"W@W [(Pei]]0L*J%y&~z[KkKl3yBľ2Jvddz}WZ/;4B&ovst)+2| ֛j=oo5쯋ޚ@!W !]5E30a: fDGNWΎU&0rܥ=nb!G:^FWBK.le0Y,}wgʑέ42(3{$zAM WNgEu4J'.٘92Q|5_\Ua¦!& 0NNle.dF[|@OY KcڮCFʤ/T xknmMk#ZF8T< -q濧TtiL}RT<뉬J a6NzHq(xr++b?րI.Հxr]H J;HÝP($·@;+Y>3gJ& Y œ;dwʦ{쏗uY<4OK׆ȧ2E>gTpȝ9Pk|˦9t^9i?H֨_!$e/~Hq t ۝ pr h]v۲lbh%y!=CKČEh^~:n&]ev m9kHO?ѳ{IJ ]!W2 _Z^U2GugY _qÔ0.QF!$՝NԍX3-jJ=H4CxZoyΑ;{3)L>{#w8>-3ߏozI+\ F[ooCu3ޤ1 s! ;30jP7h{J@~xnVyͭm0BV Gfuה.K)J_vQF§cU JDBCjnQ6Ϥ%'+ PaMH=U}^.0g?TK1Mҙ@h/SI\1SS ltQ~|oB7߸C1`[>t f[P1|Åϙd7[yvS9Gu"V%[LhW#$- [d>y[+ 4#4t&dn{rޠ,o\0&("y5~?2@e|#ɥ4\PJ(S~Kn a rTZ8pH\kVNP~~"\3蔨~[ZOvbysYU ,8Už>]!joj1%3:H7dv7ySϘ"14UM8Mlj~qF6N SAoJek}c=R;Dv޶c8땆j*m7hN17fN+b֎2]뾆+uGl,^b#6[Yd p!Ux 3P /9DF$nJ;ilhoi} 1@ H1>oc9_Zm)̗?+ =3`YL Te2|$$TjHdw+U5?^> ̓1>TtClH#b@|C?Fy <xNN4we]Y|G#d[~"mt]ح<.`:-~H( &uLxlyqsdҎ4M}*CI0&vmvmT #έ f,QXDpKb/'Lmmg13Xx >1v<:D8Vsr0͋sDr7h GRajͣ7OXorY1 7~tƩ2X0ajI>$/ 3ͅU62W<~42sAlݎ sK2E9F:6!-%@Rp:d{y( h4o#ӈԟ\ $ɭewnġ3R6Լk/@; K^bkXN@j\Z*e4}:F(¥܀H[]8N+KM|8$:V_fV!;. {bYJ[ N";j!s0"a2+}[W{=4*iLe]XC@w|!"H3&x: f-]F/%`)rOZ^1cN4Ckx KE!R3OK#{J;czW+aP4 .o3F\|tHW/,*6"v$˭ ז,: kڣ;۾Gp|2:A+'ft& & wCe Bb ǿ+\^YDj, 4k|#c~ ÏMNa"0xb#9Ѕ}(IƠ&b zH3*J>cCKW?̔ﲘy831mvPB;xϫDmd->UKb"ez K56j82'n37xnw6\^+!\ef 7CzҼZr- #Sԝ)N HDW&(-6,1.#3$vީu!}!Jj͖fU?s+ۅ4.Iuu񢊁 u + P[)/{y|LgrzHz[ *WVd!M퐷7]8^6=(f0^˨8d~~V{wz tpbϱiy>bh} d eL|V w}pX [[(jrblK20BMpc͉U)]X~c֡\>ojI 8ffb~D>D "|XTux< {7zJu~{=Soz_*сvN9.?̕<]DB)[E 2fD1ZFC>a0~-@vta头(Jg6g!Lvڙ.lGUV cM)w';}wBt3 kA xD||aioCr}񡍦ep >`l頔ȌҨ=$6ΥA9a21rn7b)LTzM<{`:w?2P"$&cf35E[X|q4Dۇt $F9ᒢP !NpGc}ު#.[ZO;'oYDWs42?0Q/@ (8iD%ym\>t̏JKgȥDڱ$=;~Fe͚& jK@ ^*_=#?DNӽ lu?[0gAryT[w 0.=@=KC:~l ?xr6"Ȳc!&y4yEvf`^LQɢK!3WfK.S;-xX*)9+'(`L˸=cwl_d,{2^.bŸ˺jojDAup13{ u7],6ȯ@Q"\%-D1 v#mzѣ*%ï K-%l-J8o* )&x)&mMd(Wւn`WYxx,uZc|\n&~U@hמK}3 Zky<" JO3ysdt4ضK3~ʁn&2hNḌ) #PKc׫mg 5I>5Zwu 2dxʅV)sۿA[u9ӼYi&1ᲩτΦ,?q:XSWBUDSv7Aj!j0a; pqB Bx3Ax!)C$(j;bu%APzD*xrƻDЦ@nBL.ǩT@]S]醈,4!܋|¶,/%GLcm*KoRx<<(;Xly~?I*γ{BN=ZU-\ld^̩  4y*5c#e ׂ=M$GPY亍ae;ya 6V+@rJlx>\-GuqD%ol#Cm&=_3,{2Ǩ홗SSu7gR2MXwja]eM4%$`:y5*{<'`}}yZL_N/"_5pՓW) haz4yܽ!Jtpmܻ\C,BVJZ)+__WRh ',@̅pW _mX 5܈Z ,}! }gc ~)<0'AcD-tDrN-Ӿ8+X}2oDFxI$%çyUIbRe)N&@Gڈ*TqMCYOQS2PH#z^Myn<+-y w>i("XSU^6T:fD0ݣ|b 4&+8}Ѡk,eʂ x"1=zWqh /(kgf vx S"h٘1%4hHL%=akZ\O^YvDKa=@}ߑD'u`1S[^=tYdۘT[񋭯 4U{,PW{`Z3)F%OlY=@;g%-eϭqjdC/̶3 .Z܆ +Aa3&Pm߸!C4rUL -l8 ]EW!GI[T0f@ #FIS [}N +|hT,*RQ!W[;l>ei\qZu7#K_N+=VZ݅RRۘ;Ji3vy(u40D ԹVo~Yi9m8)\:'r- ln޹15)e˘9<5&Ѷ@͒O}ڥ^|3dNHJA;*_ʋbRSbw0@Jwk&7sPՒȉ-2AN‘b# 'U˕?o/e:tO;b  `тkl9V`)K.f'2'pݕ+[. .*q}LwHݬ)ekL~AgX⶗?t95)j『Hڥ'K]f#4H_F< ^wWckM\!fp(z^N9Ny A;:avu6=-iWnFyƇA'#U@c13䦂9>\,H#?hb6E$J XljB'/eU;+8ZrWrαިϭy8V'[qXs~0DF0ȕwbo"hVׁ&аLJqS%٬wjpo? ,4ɭZy]ntt5MaAlzVԠQv`aT,lW.߆KM?Z5 ?a$\Vc-Oh1酃i x(H45p6\k\A?::y 4zfx]ٵs yF]qjg%-G>LX)AwDіRB ͬLn^*k?3aV 증glc2A'.Vْ̹Ľ.mSK#6<=A,!d>?J ݟe14}:1 *kkٌFh5߉(sJlÔ6Ta Thi۴yMdW @)'<dʒ#x>,jBdiKIgiu"„鿐0q5Ɵf z4`M6'.7S95jWO`Ӝ)5#GY?Er YAė(noJT_[6sR58J:z2oefXkl5ryӛ7so:OJqRZ;\D#@t,>DG4l5G)QCj4 eP5:ِ2dAL}'|yr{%.&y]`Pc 5}ASцD?8NHBAK"!biENnhSl-OIM9 Pb惆ikZ1rPm&YT9(dST+m20d1yp.oo9#On_?0?|]V) T EC,t"Ѐ٢j6nItg>A "t-K!O Oc98s$q 5shcAY: T #gBt*+.KB /{S6UX+I;M/!ykk`H!= @,e l:>7ڠdcA\ xI̬fNwI6jQЗJ gft pH~0!d<<_r%EJ*ZC}v1Ѹ=y|f"ebvdd4}x{и?;Yֽ>&dB?^7l9 oqI1!Qh[^, uGrj#n`JpsPIҬsHVC5X XօիwUջ !b/@;"t"?'f96*Jz `ɞ<[ 2j=0&f\=l X.^۩Pz(r 9Ams&|N:CƧ8ެ0hxtz >zjmuo0A30٪K|s%|qE?I-KXzߑ4HJ,bWd[;ta!r{K">~ܤO 릖m YAҰzT>Zut!K~i>Mng?~d=NjU lbߛ;\{pFF2KK3XN#ȋ/?0#,4%m]u%&24 l-թjQ.+`u7@ 3G_`'1teݸUaN>؎N[T)Ќ4Z6Lt[| N2f0EE;KG8o^;1{4E`B\{G`\$qBY}Wir.O:ui|3 5HD.1KVj27B6Ss1TO51K-2֢҆L#' PC>w29NES*tba*us4 M4ٵNe6yT:JbF+W2 rM3CCMp6=(PsvԢm,M۸HkFF'9m/}I?!kv3FSŋ"qшZx6Iof}/Ps&J8zV{,9 ʪO,eHvضr^{5-Vmٝ%/95vHWEwzڍhdFGlrybcd5ɟB4nQQFa!J_{4ݲ`nhiϐ$ ŸA^ JB5f}d|Mr G{iBնLCOns\_7J0FN9ds@(2]@l7K1(AHrl]&!0L$Ot3N(&+x9V YG. eZ3>͑-޿#xA9m>@لYsD0o\`N;V|W=8&b`{9.W?bݰiWα#87ιk\fT7X }K:ש0E]j#w 0u_wjS\v$lq^?1TJ1{LK(cRnȇ'mո|}r;K^ٖ 3}-U3zdY4D$xĘ~;N oԲ;jXC_lxT%8"p@:h~Tr'Nu֮0aCƓ"YnBmHn0A7ޕ*suA|Ru~v =Bh*и-Gt>T lj3}+,;{17U!EWWc4f6o{cl{H|bffNfB)op*o rZȿ +3i)cWȐ Y0DifD&JI7" EM# !SF¬ljFYWkTPB?/>v[´6+rY7#1b%D8qC^ nq#. ld}A/7͍wml%DV%c󃭝" =lǃq'd_Zdor>uFqUk nYe!Q}WKu=BBMI6 /W/fK+:AUmRVϨ%t+ PJ?xK~F U b%vsu]d_.c`0q(qd]s T/ҜH` ('H1v2]IକaR4P+|#W^}=n.YqI<@ok{M]ֱuxSX=s]m[0y< PrN(N4 `՜/5!t~)z {.Elu'(eVjHlFgO_; ݉ڠu47] Pl`I[CGωRf6҃y+k 灨XҠFHݱȣkc$/<шth[`tgx&7膍4O2="0i)wBCTFHS > ,`D00SiZC#"QzfiZJ3p^$T53SηE ?m?4?fЀ1>Jt`K% Sd`J|@<\}sMG.rw^몥7 /#$r|wH8E? -.SG!^wOp>rio풴5Dq4cWdJ* [cv uKP, H+ѡs<8Yk᣽Q9yUD vKݡrYK◎fE_;|ω'{M6R/Ufd@3CL J>>=Sd#Sy؇/4Lc긝)C}#Q SWIh.^EQWGI 隳E Kd>mW]>S-m`dO]}eѫHJ㘖g xk&bWDw-Ltտ GPkEo3g/LB?PF,)(D>S7pnކoK>Ut~yܥMf9va;@k˲, D kJ,2EP s'*{/oR)k@n̽Ct<7! f^m&%<ڟjH/)>Xz邕pT|k\aOmT H~E + 䍽m{Ea*J~uYu]i[2W&*=nzj٘GM)Z۞`>V&Sh۳,Җ\$4pMb$;SVI@Yxق+,cuc:*`^Ͻ.|xuzB˘*EMKj(0mM8܌ \7"8ȿ ^$M6$Iȸz Us#~jh]VGr.5+xd\RoFLcR%؀d퍶@(oy]Y<ТG7g.;nŁ}(6.|U#h^`6fqZ<&f;gM{kz8V:D `SGA,f8pe|W@ջ2մpKMT)[G0 P<]jE \ȁ|ND}eAuw*X.WN|"#O5Wdu$͈N6X;#FOhJ0}j.}6f.* 3/N7+^hx.Q|\Xj`OQQxG]up~3 B l*.{?O?x|*L=?OǞ K1`%5( V lȅa K.\6<[S :A$kTSS"M7 IR!#a;uTUd~y(F/+o[t^)̄l( i }0?./N[nM΂.I\gqV33uI^<&rqjï}vQ^p#OVH$?UksУ72AW -=I8'ODȨyk.j lmvI)o2|;,PM HޙԭAE1u^n-zf3LVPi,̀_Bn6'l==y2OثLB %B(yi*Z{St_OBca,J]^^*)%P$cE9 V2ϨW8rqo d )2ްO1J'k)T3B~tdZYD_ s@Qqr厴4b-c)Hmا@&J!w\  KTu$琮l?+3cx{%c-O !5)`}ݞ2JJ[tch7mG0#ހltXtKY͛ikʦ\ :}MZ,>%+3?~}7;Xznxp˧ɣ!?ؘ$66,[ qIˋY,~OB`PvNsZ;N؃˄-2!0!EK ΣRE%o70QX3Qo9H) u|aN}*m@Č17=\rZ|7<ڽ(@g˯v JO18-Txef|^pKTu菸Z=zי':ſYXY҉6.X(, Yyj+\BPT(#a ֔u:mWLpDwq@'^xl?@ bV3ɣgX;m>'H,3}r/wKZA)S}Zv؁>#g">v%&žᙙSPxZIa;߀sedU{\c4Dtr(J/܇?_m~YKP3% x.9Ctz|j+kEDLɬ>=cMRG4>ξDXv4$X(ejf%]S)vP#l]rqwBaeM^ a¥Ka j@;.Iu6EɪӞp9*Y = f4˺lW]#DoLNJ8Ҏ|ROY!W ƀrHCnu3PcHS|GZw;"E$|:#azI|7UL+G9Ĝ!mteؚ$66M%4us" ua, qu#|_LiZ],ʏ#.7 - }!~mob %f*)P.^6e jw|y1E~mwx 1ŕ0L-qc a q.:@-rM&޵v0@0,ΘZ[raEDc)2E^@@]1>/e-Z~2VE ٲ%O@՚z46NAP`$}kB GKA+iv HJ#nR쑎#%Cóo~f(C"RCb/wλN9d7^B\NNjEfԬVw= rн䥗%] 4Lss@kEeBqg5}UoݷeX8r6SxCgl .VzáE~8~-s-˾UӖAT mV/Q}(ukbEVqdM1#u_"yI/>r:)zu,u9d٩_ 3B|ڎ,BU\sK S"pRI78ԏWΤ `iX7 OUG@MƓ6jq@!nz*:U":2g.J`@:`6 ޾ԦFo9bH" uAJ^uz4̋r:|[jHH$ D@EK3 'ٸ2q{O`׿Ug3yJntcG66çܴX 3BXDz'>+.nE8^2^㵍w3E ߰/F&B GРNq vSy,.¨m/Ւ?ή:)bS,u-D.r^튱mo+ @]1iȩŚ7G{# x2PJ2mi%OvpS^( !uH7NT@2 ' G킘m;S^(L\BXz?r܄+;8f-_*F<$z"x?I{z9[[:9Z@(80bbFU]͜9U _e/' 7Kdns_"㖬TvRR_hM0w̹#`aY|ՖjX#2؟!qh 킴 LJ6 Al]Ѻꮊ!Ն<>+UΙU`]&qpZ,DQF @'0{5*؀aRZV"m4+&FHGFNǢbpHڎ&,j|Ԇ5jPX:͟EIE_} ]Vh6wT˪f%1$;2]ؚ Ϡ򍵬/پQReH[ר)GY.Gх E[[Ϲg+e ,P5c&V/!DDpsۼ!`Ķ9Y3*׷BD$$Ԙeg!YޱʧV֐R;*#$W)E]HQLBvG\cp3I=ɷE 2 ԖZ^!"$6;#)fMU†Y#sQM^~ y%C%9KRԕquf&t 68%Ԍ~;۷bp[m5^I`JgQy}!6"6)]F;9 chzgSа#s(s9f5 7 b?9sr*j.äJ'"_|de]o PHjtKhmC]OB-H1ׄiHf uL΂TuixuqI>ݴ9ebBu2^%~Bg# ʦפ{\іG~ի׹r@D+}k05V1[=IY$#67fE* @մ42 TC.a<Sh"l.^*eVd`_&ŷ֣x9UȆ.afs4j#<ڨk-{NˆFED!=Pֈλ\dYqS<p,QwI뤎Y3[oN?ĵuv *y,ج(D/d_c5Ś\n9ʗlpi1_]$L.1J{ /և98nXf˾.sB~,Be 1W_[OǍ1zk.Xi)Lɒ#M +A>bdLzͰE28,ٵ.-c47RdfC_T]6)OĽAZ OU.&Ebbb'bPEJU; فִnK"Gá^rhptmZ=O,ū|WYmEX}$9J|/(hgQ۾i0 M8>:Esm!E_CK4,I {wkD#5_Q*5&nMOf7v-ka"m/_r[+I t(?gUeuOOưz 8˛ J޳O`ngEq,̭(< gq֠2.̐8.w8/sr;O[XMFhj)kYHِ4G fobDآs/!#OP9U QC:ZvZ`[YI./;FatsdXG^So"@hu>p?rǑn." ۃҚ0I` W4.S?~HJr[ؓ闠WjmH~dw˟!UA3aLWly켇}S7h4tM#Eը"XL4`z+2uyӓLTUgnM6čQl8jUXd ;I0:)Ra}aH39 CD}\C-1Kݪ8=k s=*!=A\ȐP2KXؽM&G52fe# ۸ Y{skAHWBx;gxX;+ItLl{ 妵E0Iwp q :.a%n8woꎜ өP+ $Uլכ@acY1RX"~MPdЋc[b_s1͸aXM%z/E$XԾar <;#Hw_U/Uȧ:M켚+HGBۉ+t__f/9X\=|]|K*_ ~Q=+/NΊT$Lj s )H(DE4GXI? If|Ԗozi*-]'nZ22y0^1 ]RۭՕp[r'qta|Lh ^G &pAr|/QbT~0԰bYH %Z:^tw3)I0yH;ZVA1-H/ಧ:lPH}[2hq;Z*bؘ='UQ/^#1\gzl8焐, sLupz9nOF(6WМr JX:c_vk# $* Lx"лIXN-{ERv&n]eEKy|ՠNЧH[&.\h9F5 LSpfs{ @f3AFwpIW.7U"gtXRFQۚ,L+˽n;ñ>6-KW FR0'4k=3w󵴴%|Mc$ {mm}TK`pM)l8/e)#@qʗ)wo ^CLﯷD.XG3]eZ2*ҫ3pǟX׋xTDmSu'ia`"JK*3f]D@>wcǴ :R&nPqaq/X D4RgՉ@[_L"7KBXTTPq|EhdTXI/ d?el*h&Ҏ"/D|" ДXZ&J86:opD.-$4`V_ߏFgO.Yٓ8-*s@w݊I/uflM;gu)M8CD#ASx4GWATQmB+!g$d2%0dDz̎Ȱ!1̯ܷF-=|}3Q+vduQ*z3_aÌ`1Ny'Ut EQJg}Iq!Joo.nO!;1 uX6-9+3#,+6 \\[\1K t90.Fu|٬5<*1vRt+Pzd=]QG7;R4pwlCy)b &cG.!k>^[TdHp* f5LBlkot?q@O-O̴ڎy̚O=yL R`]ܱnD+ ]@>G:C)urm 7,FG3n!z7uʬKVX4>N>thZ vfcɹm2k ߰k5#r"]QP*;l"8ob`qJKFhd7YZ$b,HBsʍ$Pb ?=kWԣLV]Q-gb5tO#qptp W\qHW0(+Q}̦ƣ$>bS9lm:0ż(%W/ƶb.!9l_@D3r}9 n9JL)SBC1c:m[ ~xe'ʨcZ{@.]|н$dω3OKQcKQ$Ϩ k`mItM2_20eSi>bU5bX\7][Q@ŻBZ# RhYC4gku*K">$xC< TYֳ|tBH\E)^6r6 68F['G&y$u/Rtz#y:FƟT;,%)Lq<ܯݳ~#M[rswíA[ H?_YzO B܄QO<ô(CGvƳ`h. CJ̶*c. iI׏si'F2 IbkV%_ n8R Y{9e _WQp  NiZβTDb$:0rIpcQS͔gnXDm0>*ŮT[5ҩź# .TW "-l ;M>y6\Qۄ)( lG1jfd%׈""{}ku18͜Kp;Mlʪ%G1ճ˷)~mX (yذֳ3l]lŬQC|\ݞ899,*JU +uFV%pJJRn0G{꭯TOm^LAqϨwwK±!@D8]Ś!eF[OMȃa䄧,G+sj!~Y>/9W VxA$偽-̭,ˬqxNR/~i65С-rٖKkɪ |0R&tܱPP6P'̮#ސ%+x1_L˂F3E/*P51i Ezz~0=\-Y~`ߍb2̥}IQ ͺ:j>#Nֵ" 0kKb4g_i(BW}pb,Rji@^~Y]̨mAewW;(Jou_Vyi|5TFѠ2O,2ҳAh88u<M<ӂKV&Zc =p3Bң,9Iz&Zʛ=`[Ea7ֽPb0wt&+` [m dE%ɾ8g졢K ]ut"p=7;B3&<%ی% d L5*߷L@OIGzqOK)-"TʵeRy+}$s?fQ $yK"Q[o>B#W{m;a'J&.F*0|hLHsA){̽~+Q1'$nҞ(fSC8Ҋ# 745}P{ ~feFFHEṷX׼iE`n7>cwz9 g SXvb;mQݝ,wMXp̄ ^x$鏳$m5 ʼn4WbAvXф7M!I,I g:z4Fl#xa"MXrb`ЋO+/i_%ߵ%)V=g>.Ăbdlg(0E6LVT#=q+'9˺yDOAmƛRf rXH'=ojVTLniL7&ri@(.9d-քY Wf[[g?}Caƒ 87f>- qncs[w[{3Ҷzfp}9#⏙ғMrIiXrґ5JU[ZQ3m(8ILYnARSj#G ѐt) &==&JTovLbctNQ젰gfun֊]*?Kq =l'mBg3ܞ|3\U:FvyW*} p%~Wq܌wVPn)|0wτܻpuދ4Ko}(bI_L*]->0wtsSgedQfYeе5ҵsCL&NVɼ$'JL1ˇY=a8s|Wy-5d s1Pg;s_yX2Y$ОG us셐<ߠSIqZ`bЭVE{΂~Y9J— xá; <+WJ9 vny.orw`ߕ(W94)\|ggGb6JɗM(ƭ3yBprE'>eT1ȶ$KBcI h7IOv+!1;_`dw:r{j:]/R_!8gBz 2C"ns.tlN iOaplGE?HNN\򖌜zzõc,[i~Q LuS1Ghѱ`XQ|` =!*6: @<#@1B,fLmsɍ&0:_`95t}ՙ_ =k /y-pWZBBaΧ held /nڵ/ľpڗg4*k_QćE(m[a}a` NO^=s[aNVZ Pf,F%ʠybp6PLhH}-zʹMo&\qb'8*2vٔҴ8O % ܗ?, R ;}'YϽZdD)>L1fmpK6V8ѩ HF͸>d@C}!;cNV*5 _H yKv]T1mpѓTFWw1oIJ?3 A[۩ H}YUo9x c2r x{Р.tCkA:LQ>|BxK'6 ~%ZÏkDž5`{l,R(BsHmp^ A3KʷR$y<MJ J4T295[Aam%DБa(t5fC->w)ƍ5O-zgh0/BodY/lOK׶j!I0y;RZtziŏLy}I[UА0\Sڰc>AIP)aH$yE6_d5Oq ap+i0-4]y߸ɯ^(&:%7] dAԉl1AÖp:-d!įڊ3i3<a c'FT(wqm-̦)Mj+B_|]MO%L&!`>PSCu:wtDA.K>=Oz|j^*į),.Jw#Vt@d1 mpzc#+:itS4(L Kb4CLk}MĆ$ _6=wud2)W"^O#@FdB8[ ó.ËG^e7|7KJ#~Ae{XAJQ"ktдrl=j(1ȥo^ß,brg;V/OY9y|]%PD}=$`kh yc%c"&^H+DGM(9;?q:.0Bdk Ltt]>*pxC&3$} J]D:}@u ִl|ykPMn6F54I"T(V5R0xn^Qǭ@38wcR"Y60a<6uxIw{\L]_8"-‹L(F V|%%iEZDlj5,'Fg͕U։GKh9zBi-%c\Y h@[V1oNlG=$s@.Sf?unh4Ә>-IQܯ)[7yi sgrߐ}{Wo Xbs%z\7̈́V脾> mѹ.3;Af˛G1jeҶ]00:KlKz4yښ d#; r]^hl" !E[4%xl[DD_ZaFLwP%k%'~.wŞ/; _pÐ< u&>DSjIcn"pLɃy|6oָ1%p,j՞ in1O>!FBD*7cȿ sYA>ϩfƜwKnxw1ϞܥKT:Oqeo5 =ݧMjupnR$moPrJ. }+Q܀JK}@mIyRq9tYQZ RݼÌ^ӷ`gw?vnb?%D7T_LƇ>_붇sj19꽎'#JnQ#WukOLz\C;U5Kv5œ}pcbh=<'GBD3ԏƊX{OO}84%>:"Qd]^@5{hȇDՖ`.vdR4 t =(ԛݏe,8sڝC$&hQc2*d*ƷSլhU9"L'}am5;~{誵*}:09bQzn/9ZZynN[slR1IHaئB,;6שZ5y x_R^K>UЩ=`>*:2?8ѽ% i/ٗ(w{g6T<0eHP_ycLKӝYUc}Yٕ]Qo'+6Wwt72{d"(1](T$pvr#ӿ2"8u ̄@QCo),7LH^O7S'~'C*z6N  Nn9AqgVXڵd8G?;Ix,VxUP8ʢԺp՝XDjحt^*0 `F[In}J7vZL!t!cîCR$)jkߝW(0@F]e 72 fuP4̭='#'B[&P5/]0xk@&6s qDaHnJZZz`^ 9c Jur% <㯩.q;rЗH?ue@AVo VcdYcY>1}Ltznn%Gp1d $"W:[yr,]-x=Oi ޶c6$+xR\"+mf1/YclbN&Ob;\/kIsEDØk5*Op IRbgGH:=WZbe{ S}+i+@_0O}bK5={RĬc禈OjProR[us#-Agr!vҚOr8~UJ?æM"Kp(n k10rc犔e'㕠Ძ emKDjNaj?32C^#8ͻ`n3+mH98@V+ݻA{&ˬSByOt1&Oyَk~^ ggpZtI͟v@^i=U9L<'s7ͤ.;>v#X4`2Ɋzę2Gg5YTqҊьT2 J5" WHh]wORzLNe7GNC}aFc8Xvbrx8!IMs *_oHFЙxQ};lS#w SE# 7#:v+^WeC<83(o¯߰}h5p pHVAۜ*):'uu#Tip? `3~bFAF6ffw?J3ZIb|ʯ83 &&> ϖILUO`_qsǁx/5r ^A H΃ͻQ{TmA'U,:I:U6k}Fj _{Ž88ʞAkזб85u< lsVK^ofào:kM&5n~.mP*{FK^$J"7PxK x;xj5"\{kmc) 7vڕ/byn62!Lj))8VTlqE>rlߟbl ;ֈM-%;[~9MĻ#'pjYb35iLS{yv?ڨ/.GĔN.Ɔ p\DnխeycawyJE6B>qQs?6#//1 <0Gԡk_o*턋^PK0 phooa\r}֓dj Hs}F}Ν9(eCH¥:*8m]绰t]AMy͜rLr~(>!/D_.=:\YA5d)L^!c>?IiWGv7Yx^@V(#sfkXz zXhQ\^-pҰĽt7 _Tϔ @4O=gbnF69|1mUU0@6I팯*KӈZw0MEvmIO Yh3:|{y-ORpgt!S"8NÔo aZTƯQq{ۇ=#RԔ IV\y:VfWN-p"K'nǓF|zw!Y6XR/`حl => b?}W9 \g$8S=CAgmJ>K*!z 'JSfYZgI#jZ[Z:9XK7BAeKC;T.Ʈ1jѳb\]өnX<_0Ԙ6DXT< ͱ;NA@.ki u kB1}: @gI5g=;%>8i*/0Hx P*_9yVo娬G=}4ɐW~a~?Œ=\2IR=AQθ3?œ ~f8MeT\+]ɟfuT*4>#8t `-C^sgd+u`,awc/C_|_ο v0PP1Z5vؠlJ] i>ҍ$=7~'RZO aWt;Y4D\J{c65I۟:k,+uW 7TMoT`f"iS殄P5QGDѽ95.M9O8Uz_0&[+iml5?sљ^1xUoth6Y5-ܓW#s_LTKW.=l,XİgB/ڮY@>l9dӀfq)i#c͢3>Ң0axtː?? Ñ l_DHyBB`mљcϖoQp8L_;YQH(!ੈ"PoD<>In(XΦUqyXѥls*6 /nib=‡6Lb8KGéb"픥 ;mqCEWI6F[ aex\ "G((ֿ?#Vn˞w~xgz:Ƌ͆@o*.hJ䭂 WVg`^ц "M if >UVd82}#i1rX)n7lӟꑏi{p**/r2Vk^+ۗ ^0Oڗi>B|Gdwfp6zǺV-W*FZ*x0- r).*HW^-o']w Z4q O $_k?'$'ݼ}x,vLLȾ^`7 5Կ̆G}3j[bjsg[=|8F R̅^Oz_QZr8DL'2!$>yY+)B\Pvn/F/q{ЭQVV8RN'q{y::|e[.9#kXQnߝWXǏI,;Uu?A5Hd}(W(*3t2f YeRՌ?dT(ͤA"}\/pc◇xYP%ǭ?d bx&zfqjL'qЈDwϑf+/0\mpC* !l0 gv8-tJ*ï h Gi%c>>ӫ[Mf!-홥enx'dϢ"Ml3F o{xKG-Q_n؅ O+ bxoan]c4+1~=o\ܪ2u=hڱ4C})@qx[uO#gĽ}K- YHH< }ϺAN4anXu\p>na4A w' `žfz9m/NR,= RwCɔ@açJ'=fy%/Xt<9Dێgu{.W}\vS(B1PqkEs< 뻎gn$l8ߧaXm)v,񾺔L\F9{'&<ދHH~l?"FE DPb(ճ6Ds lsAɄ DG )ݠթ4{R(_]O\?o XXB˥9b7YUи"FezjݾrJ̒<̓Yk>eՌpĢ])D]w?ЫRͺ|; ̇i)jQIٜkvRS\͹|w4͉0!W YYlty"DtsiyO@S889~GR!ZVwJAo"3/Y {pч.wPRL Sp _P*{6itSǙ'VqDD>dQ@< -yMl O8VVh+UF)MA)\8ֿ% +J]\E KӊɢG"% J$ c̤˹@Z-I5S&EԇVv赓9up5YDBPt&rZh`28A oyL^nkp.cքGrs BIPj ‘ք>:|:iHXom G"66zzcp(u;EG.7].4Y%96d$Kd΁i[Mʭɜں1 TjNp_pOx׮O ]s]*BϨ]w aX[5+7l,,JV*mFsa82v^UlXW43^(wգOAO[K2 :8˩bpH<쯬1^GJN.e. Y|L}⦅{1 .{ &ՋDp(z0C$ ŏcKzWx#αEޕKQ2# 1 "!XVTk疇(^%/E]8W(XCLkh{QHb ]6tꝚt#G9Ů$ru ~;^<€lVW s9,W-L>Nd,0#Vڸ|_,*׎*]]vKd>x#A_bC:vGShl$nJ8/)iϴI+xFۄBf?H=eQL:<٬y[)l";:W۹'X,#-.wDBN PrhL[rNu+wBD@Ll HD &) â<ѶmEc-ܞd%v!L V=+.DLAu#/h҈ʠl6*ț%Sz--؝]Tnq>,XH4@/dǩΦ/Cs/S2r$Q(oZsr&/L EkLm.`Y=xlv0I1Qr@B>a dMEڏQVMllQo&wWKUڞt$ֳfgPhzѰ1dc]\f+(HSZL5X#3;}6eF 4'gF ,@4ݎp/d+_J _[6Np L E bVJd#oycL2iBHY{ {E=pŁjt0À/8LOL>l}Hʒ۲߿HqMCCT"10'Jf0 ?X.R;̛W9^ޢfܒǑfe]˪ZAeG*w3I^?:Q!|W9箓h9~n褕z w~8WBݍ0JG־WL5o*XR#R9z$w`|EdA/@ֺ9@8Ķ%d:-I*&j3+ռu6^nJ):vJ`ճFgQ?^'%ZLGt?Fq9A4$j v>rJ[{*{kAڈi;6_J=)sSXY|=n55rUG,f˽?d:7vOv Oo}. &g@A;t9؍h%2& 4d6eMhh񐚯UkoG2he;;aCIʊ ylq|%4Vy@C7o3ˋ}yii{d pǧHk^0O_M0e]1(-G&Q%F7Y-Eը %@UN8X@5ZN*ݗ2 Ktkɑ5 nͶ9,2)i'L:aBJ#M pJwz:eF"Pn an:;sM !;\Yު>O(ZK%#U>=}T5:ж6$l#p jEأ. b00{X@_z[ϚUp[ \->Q*R8 ҕ[@ =VcD|3!2ܪN24S,6gcDAl|g24 ϋmMPE ,h ukBӗ a̛0E } YHwxU)yWJy&~]/]hŖ&ung(MSAA2ha~ed'rF{ÀO^6V_ > ]>iϫ_'ySM]@6? D0;ӝIU2dxtǨbtKSCurI gWY$[ Pc߿_[ɜp7ci*%fR=x~"Z,15:vP? } U]bV.N\z4bo^ΨXm@c8yNy1YT毪{5cbz}Omqr.$"ZEdP98wsf*Wwe5qI-oc[߰Wda;pQ[- u_`Q%ѕE&⠇ǹZ-Q{1%Wr[s/3?][|2;Я喡'a>KMx+\3IX,+L&;A)I8zoQQ3^ 2>Esr*RdNwSEPu}_mg|ԧ˛_wVjg LRۂY&/ǾK {WQj g/ӹ֮GZjr`a~ |8}O7e2~*CA>)f{?E7 `j[-A>l'F)W-*8E wq1ձaj;<<Ċ(f+rz"!Ixαf6 ~cli CH ˆB\R&.۱2@ʙylUV$O8`!Q5vfӎ:Tkf=\m~ϧO/ .ɘ?qȈqa)Bَ ^EI9+7 ub{[.-0oe4@WR +u]k_%0ѕQz =Up0f#ĥݍoT$B^ap+Fa[:e3t"*zK [+oa*"ِO0óF5at2DãN=~^wYqE4D2\  Эz@蝑| v;9#h>yaȯ4[YgNieF]H1V2 Bٍg^:~C*'QeT,^EE9dxCo q!UnU>/4Yic_ihO~\ s>ɕ7-⥰E^D2hiH]10w_vWaG+ry5QCxku+ a<,KFh*+%̇1[. stWrZeD#\e΁Cs(KX7.V#XYQc͞ s/CZM8Ie2juMfiydqԬ HODя1{e<-bfyr={֔ W[$J v0+=hEZ[.2/vȭn;_orⳂ߇@ê"%=yw!m/vܡIovʇrDCJ\4Tz&WJφx@"S\/ƳSQؗ8UWnԭxpY@)ze;p9 *E ۖPVGPpOpMͻNR[-Wyuht(qDMЊq1S~]a828 ڻaz]UjFV] 4&M# 3*\Ţ,'YhWgSΟN]qQa.`;:*#5uXȯC%PYQ)ƺ0[m2]=≯ {8p)#> hr `6wV弄$I&#.-b5 7^Ҋ,rtB#"|=otS"3CU&ngβTF.lCu%v9&ۤ%#wCXM ,0~mxh5;!_j!LUO#V>.T$QuڧM{0E0ڶW뉂D:nouJ f\$TR bqDpmH\a!NE#,1 h4F%Ò9G֬ZVufQydk58XKl;v&9孌=ޝ%5)$'sޣLlNP]Ƃ`I.3hw*7^>9d=fRezhvMLLbe]T;8J%E1+ЖjlhpJocLn|7&[\Y۠8 ;w"zap!Ρoa`u16ŠeS8\> ]hpWcx`1Eea5 {%}e>:j'EE&JٴQ+IWY)y*JUPOP:Y FM<]M95%S[V'ߌ Ǜ( ڏûvj)n-d=ʍC%igx+|\Yy(˼FXqq|^QQeTVOS{J߃Medfy$JŗJa ItCZ~Ppi΢.t!);n2k;MgT s=bQt(ϵ)"QlNinm¶Ɣuyˈ:h䤆|y^T=E`wbF }GX]lR^MƲ56l\M[DXq,lhTݎW32NcgJ/Bq*~r+4uQSM㮺 B\{(!7m$ RIKHi ]s ك{js06=/ҳh&ATA79&Fbڱiڵ9p(M, ̸InH][r7=%q }>*%Y9DO8Q)e}wr@o-̙>V[+.0HΟb91=,Ldž{N|-<ɬ-aʟP6< `SSx d@2;l͢Wa3a(xl-4Cv03;w3IJG2nE3Q Ƴ(?IIÚ(K KQ_rOaXoZ yKOOhOR 0Ɯ{ji ɵPKvʮf _;SZTDⶅ {,4t"h)q?xy{-$d4 "xF^]1'ҵy6j~;ih8ecc ,4#^m,; d/ey6 Ƨ=K I9X.WǓK!FurDYXsUV}b0'Hr0ڍJ{Kx۷ #;+,kmu~د? .I}4MW 7oc06Ue G6KAFNigQF,3` ۟m4uuEОx yval>`̟͆`8aὗש囬3nQK:k!^&s=Ŏ*sژ]x8fOV, 4EIspQz[g vn\:s\Z_CP)zbaS d]%J6 &S@&eX4MIf~~-?@5~\ixJW/5*yU ; 7P=8|W$cMN 6 NnF O7u/Ղ5]/9n ӂLT<5.nt1\^iSiG+2Jn(wc'U˧S_CԼM{h;2/tSKw1I-[:䩦,J)$VF$:J.Ҍ֒}/~ g=q{7Ud_eD/4m2Fq' h2/~5O(1 ;}b#Sbay8幣)1וhkrwWBr]xͨXsE*-GN5oL)0QR(4!.q߅;1ux c'ȿ>PŜB{& @"Im޳ z;o`oICժ.>u ;C?O'v!{:I¥w^$©g 0N&|dVS\~2|M-&N0k&@C,k`Os9<:AqSp aR|5YgSBB h: ~JnwC:W 0ి ĆbeEJ̵J_C٬͌ĥCQCC&Nq [W8jcX'(6%8ŧg6"MtQD&fN]X Jǡ7 ׊qQ!}&Ռ{#in\(C.޳Eccc@ڜv =UbyYW68HsmIhDt#ɼhz86?qT"c GWDqPzT(P)0ƚ;5OXE Ȝlb+n ?oX)|/ZzRP})2Tn ֘40q$شI&TxqmjBs~"T %/@3BAlFz;] b]97[>`tBG `.Vʇ*7xk_ CX)_>vDZvU00L Ԋ9p~b, nL{;\#R4}T{O07k0/\hTo`of1ə EM5xˁ~KI趖cOj{ށU; kw -`J ZhHrSNʧ6Gчt'je>r0&zUT ERatp]ǜ7il2.rJ汔7[;:I8}NxV*M%<*<_bu"GKz~УƧ74%8gH}Nb[ڥ ѵ)7|lpѢz:_ߎ"2{[N*H#YwrnA&+xw[" T0*A=Dj=r. Quk?Dv섏ڠ_KBk44tBqwq azPX+QQ!ۚ:)gQn'G5R7lgk{}r@Nճ:[tkaS,As򗵶j_hD4͔mh4$X4C79܄lQ jh*,蕁EOAqFgarpMbYZO}l4pGhQT&7W!S-&L=UTmȢmk mrҶ _E2d 2'ս8ȿ]= b 's5gm?/<|JTGpw7K0'T1)䷐dCwȢͯTƖ˼ٯ/V !((71djCw# j*r#X<*艿D`WrbzȎ$Wj|*?DS҂8Xsd^-7GFnq}B^o-3K9T٩h9+̹5.9-F5 }9,9v8eDVD|;VO J@VN}$cො+~l;1! -}[pu- e?SlL (EJك"8HX耯f.]h;ء:Ͽ!u$kN-(|Gq(?nu\ >VŸF$ jM^ +9n>V H{_l"v];c5 %0™vY}@*܉KRc.izh77ήg]Of[⋥U;M ?aZwZ3"o/cwJ?J w.cCwsHHK飷;~UhςM"Qh;E( `$:nc G?"7[1鐑 mtAABZ1>@S;G tR g\ivتIbhLa ~KqݝL[}.P]lY(6ŅL+z~X`ĘYTw8C}V:NiaZ*?xG ~N܉s( 7%p5A$~x^X4K>̢ vJ?94F(~-ѪF^B\d\ -,m崍6iQ!CDZw7T?ȥx+V (pԄ AjQf}5J FRY~ #Lq2h8J\*ַ߮o@iԷ4'!W]ok6G,?m#"ްGw7vɲ$BvRBwHĚoe`FY zɑ3ziפ%׉Pr$ꄌCB<P}J$:>7=so)#qQGs&͜X|]uäVGH:ufA\[~#w%HRiĽkjIZǤ^4ŌmGQ/T?B"&yBevj?^x˚>! ]{R,vk,E:jZ-o$Vz<.(|ƶɬ܀ 'dѻI3Ʈ(̂ȽH:n[[@+ʡ=::~^—]&i%u>s>E$Vd4|nmY"8h|2(ƭ6AYx$GW,<'qiK:\۟cdWO/5!]=F͂!>{1vyWSaF{#, C,piöF@7ҩb/j2kǯcU= 섕\ 3 1wTP"WKv-o9ǖ:q$N~3(ڬvŽr*Zy,}'!?JDhpm : f[iiOU57"pѦVѻƽz=e ?#V eWNuӰ8qS1&࢔[D\LS=1]<EflE!/pCn.a$PHH5L#{u F᰻z- cLߍCk⇰K+> >[bL x"Ñ(7T 9ೝHR-b&8)f Μυ򪰴O [Έ6sg_TT!%dϰZLX 7nL&aM8a; ҃ϩ:k{ F Zv_[AvECaT\%g'e)T/J!c4nubɉ=lN5ԆBt /q;I~Ҳ_K N`;Ab<{c;Un)yKe#)ށW(]RSE[CF_ہvKqwR1>|0>2DVoRV=&x 1hřHk܊d}в^!W-I:`CAQJRVXϣ25zvY\)ȶP#| k Z"oi;C@qdHKN;] t_  V.L;sՆȽ2S0Y ȦχBÑ9ۦ0 G4fc0@VxW I%7j"o_7J/w@I4ecw6`FFׯ5gS  Lm+q@DGC>Q+/qw!0z$Yfj.p% ~ܕtT=/m]RNf/]$W TvB+s@4z<HoK|:fX[ ѰDnR㉼twWƱ}|OٟVj{]3psjof4Q" ru?"0Q=Yטe Kr= %spF#tIݗ곡@rW#2pa W |!u԰쑖'UŻe=~x-@]kuMP,qh;FsP;qfM![R_BǮWfvMOu*킮B`ى'/^t_n˴Ooaٯ^fKo~@̤ oE|-TSsϼM:sDRgPj"6ha{O/Ǵ X&-Q/\Y&Z~Il*{R/Sn?y~Zji{cVYIZ}$TU>{BTyA%#Q Z`a.8(m ^3H[3)NҏS?2YȶN$Q-, mNR:8+1<; @+u)A8VBCObƴwh$R5Wq:KCJڗS,4hv)d&KfLt}aR0QLʧ@յR(>hy,fG+u%"~=/ åР2VUH4E@28Y!^ݖ0v6ND6Mh ZPDmC56&%Ui210!^$~tء[a\PA$JF"+G8OUhݾ Ʌ=s#y˔ڳɯ!`\2oǔ\k#Rfhz2ez2ْ!v#9yцKmg3`P尤ػ*9)^9b"QAd؞Ѕ *ҷV.dX:8pUbz;$۬`sdYf;݋|2*&(4J Ia4ɀ;1(ٽ߂ȃ\ KX @pW M%@~?9b3Ltb~8r@th`p FY*7hXDصnFӄ1seƒж;`i<xedT.R ƾ3uzKi# + ڕ~ɤUwߪW Oo{Z l=z1qR_HgJTmЈL![BwOд/7w~$aM2PT;X JKOJta+%߷.[:/5|!i 77hXPNގ2e$T 9zX l0.5&\?VPbC_|ZV`1x#v'/Ej 竔n:^g,Y WM-mp,.Fh,RHS-Y<[J.4k S0V4MnaPS\҄ ]M REB_{PlMɫÍ&<|õ[ݬs "3hHZ*[q^Q G5 BDg WĐ>|&*QpN3NxzDe#]HgJaMyy`!QisI?RTlRLDp_Y9ƣ-ꮺw 6EQǪi Y&c\q}y5;K,Gs1\m}bcTihFHV'MoKN]Ku_d)h3W88*o[ μx@'*GB'|ۣH.eLS>AT2uwan7Gݘ-ym4f=@qJt _6sGGXqO8!Z:th%79b*c^fVfdM ->z0U;Qvwc9C1V$ 6R*QL7[+ܔz@bܔm~> { VF7箢NeӁ."N(}σ2-ȅ*&ZDk_^$sϣr.Ε_z=~ f\g@8}%X@Lv p.+o(|KzN&d- Pqe7Dujs[yKwf.kl@ զTy2lf6,2[ 7R^ ~HI;Q(mM 6CY5V!,rM,=R7#%^^ ŶclmE|DWzC9&xK=o|w|}:oHS Ď<&:A&_8pֆ;NTQ A*|>hإ LДzY5Z`0*]t/.MOְRd b6a8i\ɳy&-Đ}'L*SJpv-|jP2w9*h2f; b߳`4@4l7xLY⇻ 4mdapD6l1~):dƊ9H /IGΈϺ⥶"[[N /OO Oxnkı΂a0Bl /+>bH' ]j P5!LUv$B{l?sΊbT]qm_~fͳ\B=/@˩7Dىe݊^d UZ[=c-O[Z0tuX*xY/ G>7m Tb-q$Oj-׍13˒bCgG$WGs*CET=ywߝ@m9hKO^M<\"k=">4{vb+*V2t}E+ D**' mtjqY]<5isN14~R*)gQК>`FzC 1ݿ"|Gy"ȕ-=.:e>P-F/>0 ͋UF?Hp!2aK}[ m_SըRL f<2 g\$s;z+cQqݓ/U5S}ԶಳD/~\Vf?#`t[k˗ Y^lstehGXBN%ߧ+$ kE A8B9H5h  -k Hu]=pa8UbG9t4xPYZ$}~U!bΡvlXg!;I md^˔%Q׀\Ф6/h :K|cAcc%&;+*5Fɺ-h֑:: \.Ǻ ^,i&j2r(g.~z۬bB(K{=l޷ٯv,zBI xxh-?i걎i 8;/fЎւ6(s͆c9^!*t7;%2k)#E b i$s.Obn3Rd[ tP /hɻ\FRhNaFkqy*- Y,{ n\3bj&-) \Ljʹ!C%P=j, Pobɯr-CxsE&MBCQ$'h_7MH9;D _g"ڗl39= ِ gx: ~=Bh֦]BM9*t&<-ά)Sc]pg7 |23ۚa"37tĪ@ֆeR%tSSyo%%?: BwZhq[q2Cq?v;QGV gTW{5.'p|zCq`G.H;tb*{v2nvr6F*ooD\26ˢ;z:v.#4] ThaF_K=$ܕ]xpZ_UV2*)cyG\VȫSQM0Z+c)?ތFΒG@V 9-X#vL,Bf8':*W ՅnT*BK^騧[qH|➤1`9wߝ7[s$Ey Dz3!Y8^g}2(;5oT|[C(-aYQ^U[FmxgZr[! )Zq3+~9Np 5>wPA`d\58QA'ب5:GqB`_p/.Sޮ\!)ndm83e:mB4b0O!VWb4Afytk _@AOS .`HNs'9'k|i0 'lxG ˙Z9*^~Z7N &|S2_7i*g5zFQظtSXX>f1ą )TՊ9$[ +) :cѡ n̲ t[c ~2}>IwI4 r,-oQioy-u:# /K65@Y߳>P\Ldf`}U^AlZudC(11 mS: \lpzɄE 3`ZB$n2JU16SVF:Ɯg7[pitʈhˀt=8jG l 0P6hHoylz(F Λv$T=37Pq#8;?-MRo&ilF4;GczRzJ=颕d.o/ 0WjcSq#rt%Bc_Ss|ڸXoK3ݰq 敞UF/N36\ٶ;DN<gq `VUROܣv # QTHg:xJ?wQ”g oh;[ؿwH;hl֎s=wA4g$ti)2j(FǀL6coJ2}GMc~pyxs$8%g&1B-5֣&e3ncum(G !7CTXPJwYzNn-Öi6ۅ]ESy& 6x|\k.O! l3$[EhYuw}쏞[O֏am^Ŝυ_2-}Gr^`q,-U2x\ײɖar83~R">Q$sQe-}30F#f:Ǵ(,\~\>Ip,뤏뛊d $[O?(&tO,AXHC4QhˎĦۑQ/{ةµ 2-jw..v.pkF®*,:m аf$_F6?Bl{8oF OZ!ܰ" D ׈Am-էk#Zʿz^eG#S [t^go?o$;֐qb֚?;jL:>Fǿ H6Z2Y&?n-DD ɨal,@6cNóʠO,UW ^KrՂ"v3l7bQzKrzm]߿zGyl2^KGS FW&|D*D9mqY8C?Q;1jggUp!Ni؞8 ja >;1-0@6ACj"YIpD7 LPvӄRZP ;BD6V|)6 py]꫟h zXJrмy&pLw-QqF#+^$ kG}m(a*#줒Vi@WܥNLbHI^Q_mUFTr ݓw&DSspv`ٕoLL &E45{=D£On'Ūՙp ;׶<塥?\u C̰8}%Dq'r2m):`cIC4 i%]6shN>qz`D]D 漗ɱyر]?o\1 (\DN )W9qR` ݲ6O* Ǧ;݈Y#z~֠!&d=\* - (jzm0t/1\xZ(":`bDBSIW,D.̬I3)0T,ԷNt8>7 2Wbפ@ c"ެ~),V3;_.S7˃UNΦ}* %wvM<38ȓOSU씘CkYhkfҾt|\ۃg/PuqS6X%eqS,?d/~rjT`K<_~%VoJDnPJ1//t{VUnrܙb=|ڐYl`Q߰/=`W^&{尌H`b=Dr6 eh!v\8Qt33Npp2 ֯z_o%>i֛Ãh \89NFgURЍo;ڊڢxQ_8f=mW 6!x(>pݮ=Wyqqz$\I'9a8'&/y\ۦ~&R>PԪQ]t9TAwajɣfX~9RP!mGʧus 4^eSʖ]+@@+k?S[Aw4/K]|Rq0Mȑ D@V"PМz^G=UճT: mcx$cC x\™k-\nХX}.FqʥEI"vimZAJ$W TnFɌ[)We%0yx3yВUEbp#5n5n7*udW 1j]B[[ mIsńJTE%ZaJ ~jڙz{3s6E[}$nTlB/9L/l8jpsth,d"F՝YxOsrn LV>XO{ }&iRZ槬uB DMv[ jrS{A!%0noN]GrIJQ=|܉ײ\Mr>?mn7 []^-RmΞS T7+*5va]W &jn"2H=/nK(I!Bbi7˅Svnx)!}y/"aط,;l?#.NhKׯ=1ﴐߚ.}k iDv[.gGYcPG[M}mr2EQ CWXWPs =ڢ..!sb| 卓B63vJm4v$X|9_&XdkS75xzbR>"Xhم4!GZ8{bR_0df@ tsW/ !mc%M )2vu0V zLJ\hx{P\@.^l#.%Qa>TF!s5ܳWHrA<,Ff kR'JrrDzPhjծB*b0c!JLA['j^JhVꌲ@SUܲzT8AN"7쫚,*s.Օ pNy%l؞0P ިaIfcN濴zaP\U8bEAөp 5ƫG(wB7{9hX~F04]kQB;`1`7N\ig!v̉8*E[[Mh5u?.υqSX>RQqCc+qWҍSuz0N j2Yak;!?`zҐ5HG`3Tx{8b<`w~$vH#MH؟hgagjR3ֶk647('r\%jy0/IVBPbۏ XT}ºn{hQX3qjQίPފw6̪]H/XJȧƣn Z_7;7e؞/JG%B=[@(f*2)kܻ{Eߡc3'w|g0G=DI5Bu]dr>X^+M=eɎ֑Ur [in?BLST5Mlx?[&{פ}7C@H{k߹2GH>EX$T< *X"m;Ca~ >>KT 1$)]wG]j]xLQo]*8a"81l= ۆ50 #6UZĘ'Wsɛu}dۻc8c)DͪsԿ5E k.Wx+c#FZɖQg@ ~HS"7'F Scx&"^&KmhۋSxmDup_`|9}4t=n]"?\l\o ZT mg{d{Io8%f3˥G>M9Id`"pBd .kc'緖{C/@*/ OmR@abk.!^=C8 r쇳B-]+nV EIxI5-lʼ8kzzTq.gsQF=,x6sO5Xm8O RlSŒw5cZ38[0} }#q žAAnhҶ"8/K#ie7CMcYT2%2!FV:7b$dimG? *VVIN"D+kPi|"y߰S/mq decxE&M׍bU9FԵf~%|P&W]J%Ubd1 =\ѶII p,*¸M;c-/rM5"asրށY4r|X !"B>kIC͐pnCUCd#Uا ;Kz$u; r׃>pr嗥?+ 89pPleԓbUGz&'y'N#<[m4Xڝp:Ez ˭] L+<>162 θnKE-`myGFԷOr% Ql% rz /0`nӕZdOj{/nʳu&~)$3=$1U^Zi4$q^h :Bnp%xxO)ٚ]s u964Uq3 Gd·AD0RԶ =?=k[cLw8>G n'2 Td3 F\H#rQEHMy8{hlMV nxxφI6X'3Еw.4Qx6"Ƽ^bz2ӟi7;&\dpf6u!2v s._o )l>j1HG]W $BBmLlKB"S ߙ9Whgע NڠvxSxc G~n]RАB@\ #Ԥy יA5t(BJRBkZMƹLëYRf=Pph 640ORvXΑXU$$T!W!,pAH[m0+&7&9Aw){aQqZP!,#H 8مn8fn.;| K@R,MDyйmf%5K͜9 W}F$?]P==eJ~?'$Z rg. SZƬ;)!3TS r&EkW\#[g d`+L VѰT3_ ȬcT djЙq?6+Pتdvr7*=kґH\2v \Cu|qwZEch@fljv S#24M=&-y|5@6aFX,]D %p0 oYi2Q\~7 /C:9MEtWAB^}~^L d^Udj?@"zXRĞfD:vXSs (КD`ABt6\3 Kx\%` G+'Bl1Z/I\kdJѧfNlL;.Sa@R,tJ^/Ք:n"_\W6ݧ MՉcXfsdJB_9FAn!LW,˦U% 6\T'~g]TBDǗcuKqnYhN+@XŇ7ie Q ]'ۣ :&I=__*2魐tٯ.?o^7QR MM3G8i7GA(ncT@ Ns:z %gJ+S*5#Xt50'\j~8pd\dnͤ!޼O@ v:xF+i!*GepΘ7(~VCDuBfI~-aJɐt]-7qL!ޝ=B5rԴgi! Զ`j7>.EagN>GQͅm4GF#9Ƭ\R8˭!Waw]:-JpTKB*YInxRLU3ZW'͙rޞf$!7&;$T)Ø}&NbL'iRhHr0 <8$)$_NNyY<͝K=ڶYRwQYI_N-Tg׾M=rG_*ucY F1rb4,?9} |5&]$ª7FɗYS5S4:A=s}!‚ 85+[弓,،ZfN2b=%!h~386o/tYb|~7JAAҿU͹fRBx!_>ѫ_Z 9bS+AFoS{{uIuޤj*-*rÒむ9ߴ|Z(VB)hQ=4]^3z{c :d$r!y:TL'I]؆UЃ$E9!XJ*cu$ZNIVD>8ˏHflj-,?pK d2q,PuijȨ5ʖ81wXԵw}6%̎/cM!Q"e g_~q딣 mCVd*41>HSlBՠ}4D!ՙ^NAßZ\..D[m5~lKC<=>>޹lMWWyL-^:2"t2IـtPV'3J~/Ӄ1xwVkXNش:n}p8 &d99։;35yMF_:XzFqG{}[DaR%Ymo҂AL ũY$kEܣ&9REɃАK>NAW7`;}9=O> G7[{XDIIaMg@#xQR();^?Ax?R=u-#&59#TD8yOg1b/Y^xOnRJZa,}r+iVbgaBpY3 RUL(;ۺ@S1J'M eWa7wHE헾[EP$ ?R&_;xΟY V-7G%/~ F!5 WXEO_˂ (e_$Ku/Ҝ&7&h)?SjJV ժPj\/˿w'9-"S(yk TH ^7Ekq >ymKbS|BnpʨDrKҸ}%p/Ҋ+Vy"'rpjGu :Pߴ]#Z~`|YUnU܀5@NZ$FSX#A1%ʳEm1WW o9E,!,xx/7=+P6$[CB7û\sڧVPn@́&v1C;pV\wv \x=2J92Y#|M3;oN=y)&? ݸH !%PO'G^E壿pB3-GP cC|V@qlt-ILƞ?όi[5&6nzϲS}a" LV?cJLjS>Ȟ}ң.jTX!8#By?ƮQP8-FC(nIm-Hq` K/eHKO2u簃Tg\D`fݼ-J]vP*ɴDVs#HW_f#i^ԸҺGsҙ*ԙ#MOl0<,FxV#<[5$>BY2J_z"$9m@TjхvlDh9pNe}M,% e\o#ZoShrPbM^4Idad4EH)g{F5~Qӵ"qk(A@zMYI$QΉZ*s]>fb{TfF;.%䥺8o}&UR~櫝^cesIAT΄P6 #a"G 9d9D1,)or)Нא|r-cI {>9 ͩ^$1UQULB K_" bbW?V$zJkQ/.OIww4o4m*>ipT9VBjH0Gk1$|ڗ`/ Ԭ:gj+R}~Miml;LpQ):Nݮݙ~SF}/mC"ʒyNilzwo0X9Mܤ!'Ģ!Z$f Jca*й }PA<̴n^X*BYT\~C'30Z0(Vh0Ԙg,:"JkޑL<]5_XIԑV-n]kaB4XlSa߶ Zpw@fynշW["kTyG#Uh#h.[puL2.B1lxE;MO.FBlg58&ZIhKDTfa?,G5ڗs."hR.zŋBʈקVu , z.1eWLLAXQ3%Q1X!@jTXc䈧-آɉ5B#e:LyNkf|MY8,ټ6)5su=ljf#~1o>ULOKS  .8j(:ỤHUvyqψ\H1Llf[EqBёl/]$"胱?huz=a!Efʴb'PY l<}`vH:bc  ĂKᯟ s,D kCY^%"?2b+ `LXe-yBA_2lnvWoȵP:`2R_]]`mb.?˲mvka.7p.Ajwv()ttM3g쁔Pqr@d3|Um6WE3俘69Gއ@hbꁢ⡉EjI>b$테S5z+8M3NAO=Og Lf,KU{T1 6>G| 0#!T {@ꐕSiƯ}+k ^ Wd9*@ȶQnnh -H)#l!]j #N7Ik@-vcSz({[Yok:?imv6XTV r( 0qJ1#!U[TթnWdླྀ,yN\n,(1bnoby\5)fd1ƝlHv_P|QHP 6fZ^u*[R"beQmeE;+c㿵 |jVX@k1BVdZ؉L`\ ZB:Pa̡Y-al-[ĹQI.rJG*ZQXeY dV/fB7r9+)}0e3P.ewzׅ ,/:˥bV~q#ŰK^hYJL?Õ2Nڥ?}_"]#[q>545'bi:I)u"^p )_%BP ^0BRj LёF(Yi]|h`,Ti09axG&HnRM},jKk;&.Zxg )% S$)P=vT{W&[Ü/-cO%tF;CgTIFʀj('>e%vߕ<${*M C\3SG!lT{< vB${FzDS]p7ȾHnrú"GpwCga*uX.ASE*Ҷ7X{-8UDڷ A*hS?+QZ+#`+Ԋ<.}8 ?G+Uf̭Ҧ]]] ?1Qb*8mVaw\Psmq\4B9|^0Gfs((f5o+<њcmU2O% i ,{q؆w&µ~;L*-z=L%w/ fhҾ{% x|Γ];x02"\&sF 1"xgȊP Y t+⏻K39J(ך\*w9!fmfFϬhR"Q"tƠτhh%b;3]>}Cfp'=3@"io,35ʰ_ZgRQ"`Es:V -1^{*f~uer#b*ژf"{"a5gݻ?-RgrZ!%MOr@M0ͅ|C-Q,myM>e7霤֍n$R ݺB]шxΘ XͦӡoOk9 {kf+gkPn$"uPM-Vm|=E(/R̚ߕu v'c(WniI7)\ Qj21jk dHg^Z?/@C(M}Ű9mV%%K(cRI gӗm K@U#L]b@nŖEt`9eg{Drb'2oB&JHNt!0rخNlvYD鈱h$Z%*ʡǮ0EAɟ|B鏶|ׄQvԧQvQ>z;7űǦS74speKvu 7zan򗮬=O$FM"8;5u9yYf. _yhk]uRUƏ/<>"|wB[s|1xʌj A٨Y)i\ ζPbwg{| Oltue8%)ՠ'OMW@V67> Ջ Pfrc85Nh6ԓD PU[(YdmgQqޓ{^HL#HK=)X԰K)>\d; o;\fCI` wTR7D 1 xa;,^CD/[`.LyA5MhcC=8 >eLcD?_f)׋%((Oc{Zx]Fz /ǡ;XV>Xz* 6n D=`t0)dѓWJ <ů^$Z%tLD_qgxjf!͓Eڟ6pC H+%O8,q|tpp 2j.\]>uR/@9:z姟Ԋ~r9ßK]7O2qgvwf:CfЂiqm +6pU]&>{lC<`7m@H |ez8L/C] rњ]@rJJ _̣\)BFazC qk r3[Bth3JlY#%ΚEp)_;vs)*Ob uɛ;mn7Ԥ5 V6߳"ǺAKY}ݬ5\ uڞXѝ:!lI0VTnBњߥ6RsdI;ǒo.G6?ί #h{:E@z<̐ŌB5_(qOVѡ?m|FwgV/WtgrTExȽ~\ddpV^0Lu^lm ]{e Q2QK `Q/s_bqwi*:vf\SZQ+MR*g-v3.PΕm'5]P34.'"Gxw5>Ck??:T$ A{,QˋOЃN aλtIF vkF1CuLqڎ.aBmI oK]>{' uJ3,&J-逳'?{mw'Z}Tw#lȀD~}9r RCC f#T^rR}pq{?[LP3KOIc窳[.UuzBczȻZqe|@ Pg*S|\`םH2L)bc3]4/$OoCWjWMk 9g_WI Gron2 LOP\]`][!3 Qi-OE-yOo`|7zWE8?g"1kׂlmT ­7ϑf*.yЎ>͔νbn@NPXUwia$B3tG)`_wk(Bs%'D#^sl[Z  uI޸ *wY:;**EvZ虲åaw߮ ~^NU־X]'>p_M7jtc Bf*"U|T==Y<zyN ULv⳨G=N^{H0*Tpv P.*F0d9~^҂)_3tqq+w  $:"^p ZiTR/I?V֡Y}N692uœv"z x@rx{hlؓk+WIV`L6qϡ8o 3=} ^hAʡn,>M0 ;' 5'UAA~IJ|XI-brdS1r&IR(eYSkԲ(n+tGX 溫5jχ|rg!5~`u$5kQ"GpRL}iekmK9Uhޗc[c 37T;DɷiK_[hAՒ$I[Tu3a NYhI(S6_`Z֔.B2ʇq >)ʓĵnijI9`zcz(rkK|z3s:&TtѤ0/=´FMq&PAO/#r2%e3 &a[–#F\:3NN(!E;̯Vɢz8Aw>*C"jD7Yf}(;yƆfU1] 83vGZD J iUvXy]y$(Fa@t(L؆|^;!R5ƂOF/[?~pPp[iJDZyn tی놴M0}ӖBamjt$숇犨u;mbN`zH!> XC9ߧj,[yĆ<˜:8iiJ18Q׺c`j^uy]VKz(&늅/掂ofrJ!- *ryeuS^'uew UQI8cFb֛VFC,ũ7Ao9\xYfM m&2 ^Ujr(aԂMS=j84bz!x pvM9$ zVRA~z2w۞(s?)1aDan@(cjȵNRIllI&~#<2VD}n^p|t_.MIKeOCN%yadqN5Ju`3'yߟ`&b(?*/w0.Տws);ǓH7Mbr/xD) I.}䝼C<ԹW"+{d抿ZÓl&'=pZ{~}؆ĊŐC24E 30رqHCh`@r2[CEgt߰{(mt X0S =spAZWB:G@\AV\e$Yh6JJlY"6ȟm0BpU! 4,VQA]Q05hhg jûo$*㲓9 ۾|7"hRzPg=ۃX .T:m^ȟv󝟹YXuN}`+ 3mt:GF+d*9DZ!hѓ2Z8+22utգweA>Ư4V`ߏh]gP@%!)w3P<{/>Ce^g ̷yf?[ Må8?Ť'LX8Xru'dfNԨp|>4{}p knH΃axH8|FH 0hQ l9+,BQkjƌP|n,1vPrFdrlX!,)޺G%,DD 8B(!@:n+U#F OW&1%T$4!v?O!+XMN038[#@o])Jr} f7d}$&O[`?9R![ZpyQZjK]sd۫ʹ:ȴrvp M~Bj*d/:C$X,Dsf@V".G5[w =xfSq.,&:|I_^ł[>}I7)U PߏHBj?;@" g(1_V{܄MZ""<};,.}Q GHM+\(-w…-`Kaw/6!<"Zs-;:~ֲq$qG~x0ߵ1n' w UB[d 0&Hd&lbl3@p~ v6uSzk[ۮx=s}ъPZ9qX' {Io$2Ë8y"q]<)ah.%5o;rxC([ CG?ܴM(ؾY,1>׽DA]ܿ:Gc]"2bϩ8NQ薯W5{+{'47((e4&D[O4&voz]no9Yl%=w:/TzeqNTrlEvy&1M6}Ke/B&\ʖboaEJnU6ms!EEfC/e1-c#RD cq.r=>hH{> E V +vJyK(I&I.KJ\y>r9*Ε Y'֏(e~_5 tAk,h}^ڥEvM&%+(" ]Db$$;ȜYn<ש 61{q;s]ՓgTbkhfEYʿ^XٮȻvyϪ4uE4%\yLh/U o}0T1@/`bE ZWF-9 E&P<6i0-7MxPˡL2Rhuh Գ0]rˀVԨHj܍p麩8b,=PY軜4*8Tb PBx]Lv 6ݸqb"Qok7r# \+kwF ` 7eցջ@?^&MIG"huQ(A=QݚW-S {@DUNO65;-fSB39C񀒀qm%zؐ[BZW˔Ox֡ˆK(K3-` tI*SC3AU~d7웵sraxt3wOa&Hox/ufL[sv33]:X,~5 F eӥ^U%ZƖdylĪJyC,n9Oq]ƚguDHr:.]Ƀ+dY!vM;*Uֲlj @L&+ t<&䝽_Հ'E| J7fHi'v]9Fk JH&!BlNz.fi-˷7W0@'UBjYWĮw>:X83eܧ{hrK;\V:ٯOII!VX>>kj{ፃZӅ>XǫMg +~xJ  unohc }NΠ"螊~f5 ns\Z@I_oh`dUJh7h R5oP55Y>n މEz)=YZWUF:y5ʑ$e2h<ߴi]*H)|'>jk'akco`%2DAߊu7ovd/[@"ģfOV@e_:{[4l1SD^ ,?QQ=6Ib;bxB>?^Nj}Mbˆ6۽hRo߱m?} $/fԺZ %1* AtEX븅Q Rty*r\b=ї Da^^D< qUBeqoۡL71U?.TWIvj;e?j<gkM0sA|yWKb`~@񇅉]Uri Z W>]xD @\%T=<kTaY *' g ;ٜsoч}_*%"gY8C_e5HQ :DH|$r:RlP=pĚ_BRRJ -AX=]lw4*x*N̻c9uFl:L %>.ݳ[#q8 ˔MXXrA@!@2Z2x*򐔉*4s>;!|"6 y{mD| ndM/Ґ]LeHDj #2z2D鰝&nL ݔ1+2)sN 8|+>C[^\ޙ UŸ#k4ap]V qctt$?rAަ˖>Mtl0 {KA׆s5!zAKڕ,H]ԗ>$d 7ro~Sl@x(i "mΑ+r} GxFYuuprEC޳f.j/2[UyVtۙ,8xLuGPzcB`.TUӁd>-Y5I+D:/^x{j llǓ&)kɒqt69r:*¥.͇L7BcYn#.3 uܗ>J#@X>ݨPi*"e98U u  .np. #7 7([]??݊uYI6_lz`%a 3OW@ILYz~] }f y$)YkX9GMñڎdKʔPopP 4!1#$lv;nOgM0L,rxhvP1jpvoM\>žN2@6DXϾtgGUz)ԇD.e[tl%CI۟BD TP^lS+ cPXK*)P&{qF3b.Ȏ@-zT~pSF:O $m6y7_450:;DZ!z+2)*h^Q CǫSXüL׶V.ԯuVN 'ɓTGZmhD׶2G!fG̟60`i,5أёJ +!wOY"l FN7G*U9<׏X_% ô}"_W␤Omkbww^, KOp0upiV0-"M7?%_WiDW% dc> фN+ާn~06yvwYo4JStn0S5-+>U4x G:?0WY);D9@Q35O}5tf_Oc< (nY8< @Kǭϖ|{V |eI/sϝj}G6$ a3aGUUʯk^.esP$6$]O/a+rL\30@{i LUI?Y4/Q9\20kPEdG`;r0َbgzMVo- xInȠ EY, %[+S  {6B6A4@۟@* 3kvz1d9W /eߺu ]qG8nZ @WӶ@=iYQ5Ǵô&n>wm.HR Q Q%3`&y)Zu,@74F6WR>nA@71)针n~Nnu܁|][l+iKCBMьM}TLo܈PZܩ KW3-_ì`y6!("و}ׂ.E^X!b-5sRE][9K$QSNp¨"9դ?Q8"b5p/lkPj5dX+9D'|29m0\w^pymG vg-}23n9->BF`.gWyEÓUef3ρ'Uh۔Gw#d5u߂iSFv^DA<ϙ9~/m־d'{\5 cseGzp{Q_> Pu&% `j`v} }-%j|s;حkL߆S!SN~;Щ_Bj RRja#EH`[ GrzNU2c N6LX; AqGSD (HNp!{)9z}ا:%CJ9[_cy&J"?73T SZEÑ{ㄑnu^\.+Eh(W֡ ^:0ٟ ֊2LӉ`W<!ӱͱ YG_ܧ)If{?Y∪*xQTB^v*Ń~iWxZ$2֏c%9IVo p nD3k1-ƛbkWu"SL--#mS9O6$oVK&No[x`=Ff'ęV ~,pko|=SQnmwXeC7dFhzD$ly"my? )Jz3lD  F;o@]t "DvsEȥG4 }s Cbw%V,^˶U}{W<^{ m#CR$PjЦ<*7G TtE*zgm0 hڹ5J=I}I,KS];QV9_0ĭ5}D'Fd-@YYANݩE~1ժ1o鋇YB kr$^ ,Ɗ8ۅ"J8+DkZi8O'(HxWvZz+}#q;q]Y|28Ä-Timvೠz:Չyv\_O e.kq_hWQd@0aJΐ5CT*XBn/ 4yƣZŻb2QƵbS{bW"u&78w R +M1ȑ3cK1'ɈS@BGÃ!8Gq* nYxշuhlB,)p7nWUՀA/*&+Ppy&([{`:*#J`'>PhWz~ÃsNי #' Bl& 4!aC'ZW+\Az\IB<.FD$00<5a"Ef%0 S-?ljHp~ȲZhs}Ӯٽqp6:mn{w-56\;;aPR wIT (ے~MSe.15@ָц6p%ʔT)g `OsU'_& "O|?A$1I=Zѥ8)TfzS ~%dIyG!@ⴧ4({Q@6.f5f?Z S"7QkWqoCrK9e|eW n*cuīg'P{= jNrRpm@ːud9Jq]KuUD"8;NWCjE573G{tAYegI e?};,u.f6Cj\R(TSJMSVh}:~G_ ~B <0L .jK`tSnM,A ΍N(D*7bH=#v(8&*,/6(g)$`)%GSl'ydvXIQLz !8q'WOǯO5;NCd7ldF;>S1<;d;GڽǀؚVՖ"J*rؽI &~ΤkԸp&nQɰ:-P\V߰ *Bg+;i,gFEl7@` ibaEf ȷFalzo;k/iZ$Kj-ыتoUH4s}D#3e4ƌT;^l{ߜo-H9ket!`xW^}7`^@aFWE4K:+4$$n`G`fiS,\τ7&˧Ԏ&TAH_z #ʣA{ߴ5jRd9Q#K %=V?݌wm)0 _ BIH+f7X5Jr1W7pd5qf-,GY`1D>D-o4>VN1ogUzX*)k$c7D uG>3xhz=p䑝?sCx~ibj4 D=Hc˪RXXdp&xz=`X[ npϡ6mb=<7W| K3 9m/-+竇96!bqק@)>;uydGT1ɣ$kkS |m;1I3cmVdud򯃶>b s2c)Aj_P8Z)-TTۈZ;jͭ Q{1Q8T[)3~";Y3pM=5ƫ [{RkʒYuu wiy*qm٨$?w]@A{s[bpOQe|=55eqL\JxSE BmG^~oޢ G}!y9߬Q6 X-GOOG}wwzjvIɭ9 J7Qh66t~0s6RJpF޺sKI=N]'jRzȽu{ \_'Lbv(BhFn<91L໳bq $q/wb*?|e^>ۜ%՜dBsfEԼ3LjbV_GՆO" "V>zf^XE9<'I[G bf:jnjU}*M}pT:X aRTUϦ=,OE0# nщ'|g'<6%X[M[3qQYBUϾ(Ey0bs%nek ^w<+,*QDV(IGqt췉OjR(sXV4ʘ܅KB|L~f>˚ f:q?KSoTA3=W>>?" s5wJ^zE!ߞrI;IĦQ)rɡ0m?M oյ e"$$`qnf P ;N0˂(녴JCn@C5dsHS A*ob@]tPRޱ 2:x1kͨWhw'? hXjpr>d@S]8 b1  S! ,&/Ή$CXiRH? ;#~&u̩]lnB5H#򞪏A+sk0a?~U!h5B/43E3d̩j#4ŐcR>4j$mpјJ.I5gʴ[weO[f.4^ĕ]IU= wn[3_Q( ~&\hh;u%\"fCŘICkX &e`MtĽ?x~*jӕШ A~jVjڰl 4F]tQخ-WN`WOZI;nL~9%-NШ],<6@t_$Px!g9+C46gT:eFn ?~8.jeF;ȕt643I3'Mn7)] "͟|!;`W}4KSWf}ڤ.y&}_L}~>*2ɟ3+Y?վl0D-ق"80#@8;8I KMO:NTn8GIp={RUmWu(xuF#=r[ގش3F^⪛@gјe2#bvvPn{MwP6 y>v6\PN!R(JQQQ(u aI3@F#r0i575:Q xFaMl|9K!VjuV&H_8 `$U-{ެ<%,`7UUEC]^kFyc-"Oc[>SYw2Th,R !erU@T 3F혚5rs( 6yȤT[޼]Vڝ}?n>`wu]>\h@,e!2 yˬX!o#'.z:`lK֤=]F O씼]эxn?~pdmq̶a^{Z99z,Nd1"Wá }CLy>wtxJMkG 7jT ޽FڡJ Wc킻i:7/ yJ@<} <̩5/`C+IuS!WK{Q-;t|-r6cXj<~E hi^G-ptɟ;B%v D9p w[2N>ˮP\m= LS7 W]x5pP ˌDB䡅#5 ~&.mIC%X0ZŘҕ]@/mb Dگgon֔m\ưdKgpUm-8x h~]?2v[H4#Б~"Ep2E▲UEɊ/fc00"YLEz5l0)Нq+ÙE| ""`E*d?:3,:e6,eQ q.,&[X,͎B| a@㋔K0|12<~!Ή͛ayPiʼntn8G"k(k=w= vj+*)wlMNeqHS/0G-Q:I1 )0.J3:%^H5@R`oO̲ځ5VY ^.~op5sTE~uN\'7j+d^kgy|Gx2 w0HNX=4L8 hO[FGq|W )cLC hf8\' _b g8s0r@yn{V~BD.PWFHﳦ{֙#f$m(*כZ)v NH(]-ZD_o/;C3t9iLWt濩KySr\"8].#]`5-u.YtւiLNS:Rz3vw1dc=C$^ROeuƬqs-OnhÉaqJtù{W4ehnlAo7R^3BzRRIqKibLQH dm6`DRv6h!nd)EiX+`L~fD܃Fy]n㗆7z>WUq;YHeɏ= GsSǗU 3x ~%AHn~󀣼:amPp:Y]@|~ѺZ%lO몲G&-)eWͿV) ۻ=G. \iB] [egEv\j [uFDUy`c4RʸZ␴"`,Tm>hƈ8.}ovv X ?M|7H֮V1e ¡n@@".# J6+vq&jip͈}Fʝs2SaPPА K j m0ԯn۠gJm:$W9XhOrZCMj3 5M?/GY_3|f Q`8F9bŎ¦r8myg-h0&)]@ :]̐fڣیgΟ[eRU)U{;:I/u=p Lhh |8aq,ڰd?T=&E7Fstq]sqil*[qJJB$ǁK[狵;P2&F;ܤc37L ֽexЀ wG oA-jbXg7mA$p!R 6\Mu^[ȖDVSa#LKz$Li(ԵIw1:yA쥳PR% 'zW N-k#V80xNS  Qc$Y)҆o)oR >c3sǏ5[B^~ 6}22= Is~LY-O|p¯Jϥ/n冀f.xWcM}:,g'9: kLgВI vHh5+bd߸od+6 %֓TSGr>,Kt+(ſ1LE!m;lLQc"A#.N)7EC*hkᬙ[0sX?^oNZO(ɡ"Jz.,~eH٢cȰ8WEp ,M qeD#b9cQԜ] Thns i>l@dcX&гh9]6Ch/dZ.2#fQ7 /q)lڪ!3fg%;Da/n=eX.{ "n'Qe:MUН !fg&KMB#ՁsY!>gY@B^8~n/qF9kdG[j/8Nwb?tf=p;cF<+M_'J;Q]5\L "MT+XXiIe˖ν¢ 4/Z F^}%tiht2ԙq]Ss&B! O=90hNb7 w:_6U1}(IdNN3#9Vܠt nL;w`I+2a&taI_:rH51o};ނA,,:+$K)^KvK6| v4*ؚ Fk^V8OH^@q@%IS?\4`/I |ms[?[KOu.iNW@8'1-y#y`B~g, j !V;?vx;fgExdC }* x=LS+ؕij# :hYzfC[W ~V49QwCwؘyt[b%:w~h]7)#cK ~| jxy{ƩCaC~|"C9f(kj:;h$(|/%'A?Mx |Ө{]jB0z2ǜ͂OzLAƧ?c 9re1co:u[K'=pWrk^ BqgA7ZTWcFC>FiYu\p-,Z o/9sr] *޼Y $$:.',K$ žxG|* *X6 П/ J.G}_2 TлCuQ^;sMvb8)&&_A=?ƈd="嚛VGl3y s%,PpIRVxlZah!:ǂ֌}1HWn{[&qR&7tτnJ /BNakOA{F=+dϧ6&RDWYlV8tP2d"0>or 5U)[/`˪إ!~:$ "#".p᣶u>8;>REe$xscôь=Tb>w.BFzv^:2m&OWᔿ:0pOc,&[C!s_@\/%O8S`{z^n*vUB]$cq35Y3F8c"MvmwUOMN 8jodpFzwzfvcaM h&4<ؤpu&pDہ_x¢lC]J=FᱷvqTd+GK ݡR6:o:{ cWT㯣ୌրRV$0[_ lnTq|e0 0+$N#gn \Ù jw©s[`~'UKRKk?A(NBhOSPlj~>^GC@ vM\+b&4)W0vV"P6F xavf' w5WBDS+-5 =ZùP@EUhSx\Œ! UI"J.OX^؁$~b֧ _>|zʏD~Ѕ$XrɎ~FNsxMR]9=>2MI]*ݱWDVCsEoڝ.D[IrXiM逝ulD ~\MQs=yh?OI^-FG #Wdj+NLIPD]:K.I"[]FB҈Yl?HM/lz0 J٘{\AB_x?r +"lG]V_jo).%P<"M8P|DyI ޶ OI[g@Kl lC'¥[@L_g&;^!ZY&Sݐdfc9$G!8ˌj)q=_*S]W\'00E"l] W!/Oy|Zͭ!w/{ˉ/%yYay:rmI<:'? ЃUc6Ѡ VeyN河{5e$B#LNbP?TC.Qe]BQ 7ٔVPx9rM3Cyy gNcgEmRt=.qkDNy~&/Lo@E.V$KhU~5~ssoO'}xEBu7}c^^Pv/hlͥ$WDWU$ 8M/?/H8,iR >p}Q%W5 ף{ hEb[ђHBKD@uD 0N0ժ5}9[M.j):?x9_DhOV!9ۉʁ!Ɯ {!$sgӪ0 ҁاƒU* ˢƍOrDMMkN@ɝ"vT8 ;\剾(d]NТAM@C)CJ ޞ}1Ie]?БskFX(h6Re8\Ӆ>䎱s{Rk 4'?58PW&߾ ѝDAtӋ[mi'HRszyhbv%\wF‮oc2J5m[tyuW Ȣ[7mӜW/B,MXU JYov%(UE({e e gXǬ,uCF檩IEmM\Kv8H9׎t$h/i gZ$~$N肹o?לelpL)HY%(k0CvKq$6|rwb|=ŝkXۑG=%]o]g6 pİN!>O>NepһncX|! @ͼ0`򔡎4[*iϧemq[+{4j(VO!=n|tۜ'%~}~vf}a\cqAg-I;5g!GA3Mi Dv RMt̹?E}ۊ3J Ãzr_IxGq[&=ߗa7WT6v^ـOPaSs0w1FKEw\V<X0jp@EEɛm Ͳ3UI"/ IQٴa Gvj&8Wp+;*1s@`}(UmI@9S^PKڶ |o5qO0()UCFݜ Ti  al_ADw t>89yldd?C _dʑ?P ) ce4n~-xOsMC &Ti4&bBEmoAt3Td`K*ʰdY 4M ˁ CJ{W/2*=IUA)@ާ/ `;$|xEEci)˛^vEY1&錊)[\[*v R-Tӂl7P_C pΫkMi2EgC/0g;R 7@wrFZ\oR RHw8yY8< &Lfʸ%Y#3A s}yt$cZfWP" h+n^;7]]8hA)'/aԆ`yv;xZn 7+r#6;̊Ɛ[S6v&jN^e x-71]e.ԗC5/ܽQ \ccnn]4:*Џ;<=|(A1l\1<:׺1жNz+ .<NPiGla[πܢ8z>fR/N"ɖ}r{{zЦ/F=][:ӜV?@ Q{9 /do >JŖ*}_­[WczSHQsJ?y&{^}Yr㼧+z\y 9ҏO PøwjkK#I!KyMN5Щ.}G0@*DwX_YOK}AuKHZ%ፉw Aapyg9HCWk`Mq%\ %l_ [ͤEK) j\8tX9]eV{}+ AdW}% xU.vjph\|[ϥH(nqAX20͍Nh{vu3 Kӹ8՛ϰkS홪yې1NH(R7kL`W) ,W2l MGI =`7~4.L[ 't /VfTD,FZQDBqđNy)N3h3NjQ g]As=|ɪ9RZDڔއiq!1c鬿_;[UK={{7EiËTe~Z7ǪHMW۵CʞJW#Pq \.D)x_n=? { >/f6BРׄe8EYʜռAlL0l;Za#kPr1#ԧFV, 9i:V3f:Uy&avᙰhHa9˻^;j'"]%_>+ D@n7kQ=W! ~%4L(gOH5 b|XM{DvB~K#,`gxVbdg#nnH~]/A &@X55|q-Y5Zz;7x=>uP$.8 jDE\} U)aB6KK)]x>wYsHQO,%!7_ФM i,՗#6U4Ӿ)-0Sä<,oXIʉ)B~~N3zC*sįX m=ao6JBŢG0~yu>w˾)\^EҾ˦.Ľu(^*ư4~;p ӣ^/L`էsFUjG:hվH/5@nKp9]t͖piM"Ur|@LPi1=|]dzY `?5M0|> /[)`?&f,r۱"SVUvUM').pij1B~bs6[6|m$MҢh#z_ g@x0Pۚ BA쾑8'ԦIs\>b!a?sq\t|!RU$og:=][8Ӂ!z3[Ku.Qnv6xU)٧/OLS+ێt5˦K}vEKNdeT2PdpHPox,w`.g|}n».y}$,. Bk$Gnm V^skA,' aj<7̡!p;erEZ3 'C{ک,P~K߭nxuF8"@?"~4ŧ`*`. L9i!p04_־!fL=P8ݧ㣑`Z.r$UF)c^: >h d]jAԢ"~HEGO#/Ţ,vPQ} Q p/zC;y2jG. f2tQs`{eKt =q'Xrhk!tAƽlGZ)*07jM}0u Tlan SRLX.nO$cJ6 AQ[Sn=ij ݂5TƄ?m0HjXJI1wsdӃ*z^.3{ -dlFw?chD0Bs{-fiLC@Z% z{M߬[ ~ⵕxb˞; ȜS[V)s5e X dC%SXl9%kW}؝7s&FB~ZC ]yM;~Pk^k*xxC< A BuL&=?67ٛlh=d-)Zh`>5e餖lؽ,B5bzQ5{~ KU7ؾMf/#-P򒆡w^c  OP >.Hn-#va ,_d2?YTnΆh>.+8,̉|wpqi7A)>-@pKˤƢQ9$W%6ǜC)*\p2.#6Yqvԣ X0(.U&PcalxZSS&`"U_}k2>2?-oIn}RuD"0*9%β_ځ.8иލ68ϮP'F3uk Bt 7$."ݎ>MEC_RPu)@B@n395lCu^ڨ {VIr5b ?IuiIdWL5z\T8.*|17vO]1&e&)50/ӵ͑Fynn}tի۹r}jFČg kĜ(ѥF.T%/rL|6bn­fy)Auvusu3Ŕz*jh1M%/Ф&YM:s`i"t4vJCGE<]tlr3.X&:V]X/A; EG!z8GUbq ӂ!XdΧ(1>gB Ûɡ͠?0KzH4qD>FRjw۪| fA'}񆎵KS?U1"jr SPEĵ:9>x[kQVo(_!X|m8{ra1H6l)vKI=刾+PȂAe%Y>JG=v5=љ̀ |G7vbV)[X:{MʆtoW=>hD(d+v*WH4E_gVܬc/~JE?4vV4Y^\4$H{{4Go>}Ǧ 'ROD}hw3i6֧b8jHKT[Lr‚wqh-P>3|UfLxDD*o(~*ij>b~:~<\gVX|]@V@F.=9%_B^!ev&$&˅W:9́k~ꢞ+_l NBD!v XN~q +ztx!k._ Ֆ'w;l6 ihdsm}Eۆ^𱟼F??x]ˬy`؏Q72s!IfP,Ć.L 7 x,`EL{` -1J!{,l*=`i7r옺=JSA*[-QN6GO++.NMO~]2Vkt)jPlOFc Q,+$7aB/muZE|.Th sծ |-o ZmBt!\lSV;eݖ CYmڃ=s}>Ǽ9f3(cu1&ZbW WD:l 2Q ovaUbuR9e,`CzĎVͅ+ gYBrKZjɞN.H['qZs8,iUw <O@>na3@FC%"4A [*>sDd*FYvy>(!iEz̡?2(3QǺ~ .}qM> @]|#&}6WJEp_krX:(NRZpL(rϩ CYߴ&Waol|&&JevTmgNtnܾ5 y HΛ&];_,1'./,c=5EA3c_:Lql֑&Z?=Tn*YNifu *5Z!ہFQ@HBj;r\"~|Y $ۻ#oi&!8{)3Su7A/bC_"UJW/-]1xGE mlc;gEs:Jvl/gx qo*W*6̋웏Q{r6ԧ'Q,i˱ 5Z72&ΔWMj@;Ųv{6xru$zIjT&{}We :RS_ Vxe؄hb*ldjGwx-\-@a?&v )?ɉDToy+Gdr:0!8%=>/$GG4V^CTOEryۡ&Q g{Z1DY5mM*V"õ<"v{*L:` d`j"u{][s5ZS^@abƿ\*hFSL|tը% XgڞJAUdz ;q# !pL[!K;*wFC ǟc9]\!4`>#T>)yѠ|,VuHJ@tr4]dQE m_ I>89|3M٣ZͧoFe5ss(֭\r:+p5}g<4F9&UMn & iFh2'U^a:Q9h!NmcPiK[˒8EfZ1vo]lE6+KPU4 oa6XN>c0"S=h=$M-K3X{UoUk)× C>Gj+ӈۙKr#Ot9įl ݗ~1 WHlNI?KMnpZ)չjVLii/Tpd xKwu?b:7 -'|/`{Z9pE!W;qO<D\ )+4^lDH#QOƺh5wvfGh,k.9A*_/͢nDx?Z7ZEZ6Xv0wIIaIH!܊ |.ޫg?jh=pҒr_O۾:gV댅z sGjbЋ^DM6Y惒vu=H'tkFA|x~ B9)ۖyb*JzǪPLڱ ^ 0r2)5o/?Q ׶\xSHx^j}Yi! VO#鑅|9bI%2eŰ%}ioCmXkwt˼amV'jxn3Dc'= vZ1)F5~}miZ$oGc!š}6őG =/>f06;:Tu!饚{$T9kWntČzcʦS7PCIDFBCS 1h9f>*J/*QI?J=k\QP(cn6PWYAB9jBFx6}_Fy.p/6Ev,*rJ7Jx`$H;[c52  {X[Lۈy/wȖL9#/Y2N_VL]y4Ӥ/U/yYULV$>1lw_b4)b3QKH9=ZT^2ns]TǙHB3VnpD87 XBi%Ƨ xC568D :Qi6VY孢Gv_<; 2IWę?VCC9nrTiퟷ/RtP;)2\N >ݫt՚VJH"Dz۲M 65t4M;UR7` p0rQIʟUm;TY9 V_)CH:_#1޶u>V%UC}y>)>;g!A:N6O y)KC]!H /kHFPs#=dI(9 +_@ěV8"xL[}&`\l("+pKb k2^ErF{jju=|@b$<sDÀocw$[2C5R4D'҃9P{9%qӮ #@*ooT(As@^;$W"4#Pc,K7o_IԺ6y6=eo4=9GF+7%-ADWH v# ^<•^fzC$GlgAoP*m")bT~'3>`%dV6l`eJnH=?ш6.OԘ4w̜\)?^H r@tCj閠2K#$;Oɜhmoc˜E*] MOBޠӠĸHNңwy$yJRMP8tm[~Og`0940t:@x\2+Z)bǃ*HAsAV. ɟW \Ds͵LY׬QDG 4x 0*Ȁ-]@*7 92e?ׄA@JkϏ7Ek*+ "e@yPzt#y'_R0ɤL\ e~wSZP~,-vJu_i3U%$\w5derH0k>^vr9591٤VDmҒ7S6F9WO[{U㾶W/jz5FsJ|u*{RF,-=TPw}\@GN $({g&]`\GM뜇z([p<:Eds~8%o5*#s\8C5Ә'ױxB^"udƪե@[pib8v?Yx =`ݧS\S;T^P Z*4-Ldz,{Qt\**?$aǞrOXzP @mW -ir$â2&4$f6)]ń(ψr_k)=/1 ^L5辜DTfK[F3G<5RJ|UL7TƜM9s0ihz)XÌ h?AAr2֙= cyb)PWZ(pݗ,Uf qҟbӻ%JvGEDn9q75D/O,TEBC1^kvHII:nsØjKEid.Afn!BO2y hy&6i)-o mpOZu/jRZ+Ŗ1*fkh5IMv)UY@\k)=JH.8/ 1Z0W^Y# >Ey7_:5m7az.&A2TU P&}mR3yAtk q u6@-[ i 92+{ܶƒ=UvLMqGI~D P6rVn&[W>i\F'+-)Gʎg tm9á(;$iAiaIcExAxksMo@UGQ6˛v[w5FORY]$؊=[#낁3SWx${޿vïYF|PЌ.yaV1qq_2[$XH;$E Mt-GjaL説[ӑWnv7 (n>rVNG-Ytv) ܜT/%h#,QCl] y=W3ǝd[bZRK\+ M%8-Rd}FLZ(Զ vcm.CvS=jz8 Խp<m > CPV^I-S 6b^Z@b4/jbPekzVH=R' ]O 1" "'Z%HvH\٭A .Kʗm.`A[ӗ]sUTI9Iޗ|?,b(a}#=HVxa|_$ftyugfzhE:sPE{VωULءޞO4K𯁎nೇ4,[,RVw*)JYŲ T4'BXHQiD\0!򟹷jLj@M  Sf 5d/n:*4'^Uxv(e֕%T/ hmb|{7;B#!%75լl%>6YgfÉOc VM~-_:xOb_Z@B'>-#5%`lj+_W+YCwn9I(CD7ǯq3]$Pf*.^2Uuxi+Epw"g!8s)Զ}iẂKzpg3oUZ<8+A1HN]mhM8Gኁa LĐ.ۆ* V4WuU`˛o44̼6^-e=<Ȅ#ڻ,P_ $7KB'7 qLjLNS/OHʓ옋kyf`aFPC'E+!EBoN!Xʺk ͆JVA-00cȓ.Q޾3TWZ>?c)vajOc%/LbOΤ2cHMr94GfqAOP5ؿyD n-& JaZGa8@z(Lv<̼ ֘z!8?udHWSF".~'dV^/X)v:p*ÿPP{)Gg ,(s>W"1S&ס֍jN(S䖲ƭ۰,`Eaa`:\d6AWGSjG>nӦyo[,X]xڵgcyV=R!*'y[Ja^\"Or\d JD iiU>h:}۬KWLDona79V8z ,3c^XfEWa?v&ôhp4̐I`qg.vd__׻N&v=07 Ҽ&J\P3#,LL}1w Ű5LhՋ$Q`@xq2 XS:C{G?c*`޳׻*Bow;Lv ۤ eLe&v _79LfQܡ u*-SVGw6-'\'HȪJ(". }n; R])O҃ȹAo.v0_jtQ?P9Q/7e69Q n9A U 龥:*S<֩Z\N0"IײʧoXC[@>Lf"+V:ܾI鞄Kė-QM ?2 H9LE3[9l6F{uW';X}z)u(KOsHp 0>8,w)Qf,1 V@9-NR5s2HrsIlhfKOCpUa'bBv̓O=c3iNO 7,Gl_qtp;a)R8xiV:8'l.fE/n-3Sج B\*l/!rm?r.m40ıvbk+P5f ܾYAu8ޢvdZj]UjmӴ@smŰ^BvQO5DW6몦5"_qquhbwW_ "F7=?Dɚ芆%\9UqԻoD/' hIlwOehIq<şYC\J.)BNQOL,o6p2?pw'0cT_e,-;kKLhɥG{Cܩ@ra_;`U};챧kG '訦?b݇tl8o.1N# ̇`2.z ̶պkT\ښE٘1)u9:2x ]x)5?^e=w.5ջV;g!# `AUq'  ŗBjt((FT-!)S:g)TӺE62de"1:#'vU/XWFNJo9rl ~/PBfO ίΧj3c$`iwH`&N#,"WҕI,eiܼasK98ߦIx?/w/mg Ҙ{X2؇ _Jf=8%=8KVxyt]IU|pIc要>ZFY)1oud^L^} ]k/TgU=*]ayR}ة.Z ZASWXptʌlh(w!Ze 2J&T -~i/~pCE_[:hr o{YY ƹD sJfD4FUǿPS?T|Ԉ=_1Q)vW<*L[I6e_5ܰѥ&:,GrVM$ {鶣o` 4琎5p*T^96LOSŮRp g*#̰@!YrHiy+J^ Un4k.I|%f&mڪH:4?nMvb 1Ԫtu|ǐuЏub4tSql,D/w+P[OMxh (/07E5o6dHR ȫ`n@OTY2y&C7NojdR?pe&Heϟh/8MFMޚQm!u;ˋ{?2;s"Nh4½ȯ&b Ԭ9Jp[t6ՄX2z*<ɥ}sHI`IڃsBo .~ wCmmxKBM̨vHG &,Br"`mĚŎB@Ӝ\Vwk:?LFml`5=[n9^1{.Fq%* |4P)=DY~)uǸ7*sǠ}Xbent%ӉAgWLC9imXLw!^!Hifr&EwCRa!ۖ.V+[=4( 5NQ" @D0fƸ;p9=9AcB2;s_0"= D;DK Qtu]=m$m{;Qid#{2IMBpgkkál0,aJzQm^ˊ`grxUU Hh!^ۦ,X|c89YB(4;558iT`d>QhjѪe߲Ɋq(QGژmh+6d/,410bݣ"'$ǒ !8?,0ic'"w#!>Z\*)Vq~S~@$rM~PFK`)`PVzU 9=c(Nv PD T`s܆]ׁl<~ LɴˉKC/Qkun1?6?IPљK ?TjѭnʼշXѢb {B)ׁ+msD#wh|540>|BvfzP:|5$dbr)Mzcr`RMK8Lv_wYEJjah-xaQߺ-V)} g?LKƢ(e. 8/k|n~6c 3c蝦;jYk_k]9_2W}Atr:w0M#DGɢ<Y\%, *#>c6 /H4'jO?d f:Ly8,Mvntqd3dobُN L3Ig +#{X^3>̅=^} IY$ڊOwܯBڭBp Nf>v \)*ߟ,CIPR'QmK.L2è&z-I 1/ҧ–*gic3TPVJhN ^ifv2Rr75I:SzuQ0N؂/u+GsUnɲwO.IFE*o -r 9QulgNדXN<4߂[yUe@) T֝+oW k-kES.EIiO2@%[ E sbUS=ee~'*Uݸ/nVgR q1'{t$_<jĀ 7Qm [B1"d4lu$˔z^/Zl۔PWʈRƔ}ܕooUv=M#=8azƅuY(JٮqH(16#\ :q ܭU4̫Q$D\jQ)aC7`BW(i$|cbӇ] مyHHeuטjZ>.})`(Yl,(+M $<9@:y9Aup &:M:e!z2['>6)+%Oia p3fG.Eqflpއ?@5rȅaq̈ʂ0y!ymRJeK;ǾƈqkZ7w&)}*v7{u,u.[1Xsqpǯe*f=EZ9 ;yT_xwj,=%A9Rrɦs4bjˆh@D7@α^2Ծgc$z>&tFa@xj~E RqS /IU/HB>nd!q}7=R_͐-ʫ՞ @R6+ȘU>oua RgsEvu#)8%lf6 1lcS)Q}` Dw+R;cQ&&\ã;D{`ojgkͿ[tuQȋU1! $ 7?LRRLQs:ېi8AgdVfsnIiqKGi2u.KO+ي9(oAi۞F|& ?NB~Ul囚/c h8ܫx;!-:iIEױ;5C=*VO/d;> 8ʺxߩ)jA*U~xLlü#t~3R hTPq>(p@8ѫn g ֳVSUcFw0Ǘp"kuWv'H\1I_o.R#ಱ;rʌJ]D*1BT; ᎌ| ϖ񜟧ݾrL yPcs SQŘtĮ|SNxaq"PP(n&>)x{V\HoLe7NjW* e>5cc:_x>k xX$h{a B3LP/+Yì/51VZ/Uƫ ]0UIty/g++Jr*I- ' yה˜\ҹ8>JʬsWt1A"}p$|VκQGo}o͖@` z#Wg,\#'prO 9p+-"'ńY+jʦ> Iwn9uBP0~slw)AKD|}u#Jzs?+8|4N}?> v;!',I)'ccY[@A2?X7lhqAT|7Rp̕~&cyoS ; Buqo:&/ oraXjnK4FYn urc ujN>)gG*cci?]k5L9u/ EWty/猆G҆Z8xpە`z0}wR' F}Q}8Ygv Ոacg&BpH˞ϞgWAG0{< /0(d|OjDO! \K7%TRߩq̓^/P]u2VpUH1]4V|HsTxJ>=yuԠc$rV-(j:чk,y5^d)!O%uXe&;%i.E =ޔ}/s"^v)@)*nc=Ep۝b9Y+̌dLu@؍&w!:gpgxN(ʼn|]8 Eet8͢BuUL$ـ`lά xň*ѳPSהbU 1yvQ j7iŬc\e+V@{xV1N)@DZak8uj~,MF 뗲Pf=X֢;wh @WbK/Us^%-ݨ]vGXr|5) @o;DxlI8Y.*B!e `<Ggjņ2 Um&|)FKg %CG;_XXc ,T-[xȿήW:Mv[f"ܰ-@r19 <ztQz~'{޺J`O9{-W w2e!]|P?Ah_ PQ)jK۔xݺ8 Br3lRoQ)7xvz)ªkagvu. i"O41珦p/ &׏&2 &Ǘ:{HvV J퀲w~!"L oZی]=9QInIj;A-`P^#hIJm[YOTw~|T8dAA0QZDP>TtJA'7EdXOY1AbWN9K'H tCٌ o!sEV#'M^5P @ <s9o*n}DnIQ;y<9,H;k ]jU!riW5?F6o!(qIL~2FƴMkX ֫^&3 #lp@%ϫWP<SVϜtTW-C}1WiK__dJz w.B hW6,%N/g{lJQ72W2^d!:;%J~=a(P(p3?Q+gEu(Wm+ώBTq5ԄO8dkQgcdZYq;6Ҹ؊TFN[nm2*h=o^a.2ɶ *5 >קv/Mco\|BҘC#L[3:u@v}:f  pxכs i琞„ڸ,.)eɏ|~<H^qDhLQ*šxda+D ܦx=^t=Zcy%!Փ _bA$I=sCw;%%!lgD';zt,X2mDz'j@2FQGv(m>[2j@q3=+E %بKhN@-2e(8v.PLxG_CQݯC+>Ҥx{ 0p"(rM[̧ (c 'զ׋yp18Pa3g-Lb٭5֊aP~;mUTTNO[?+xagJd] ag"Nu0V>k<78$M1%Ёs#(iBkg#gpG7BlvsG! Wqw#k a䊯wQyM[a\9߾1"vOci&'p*G0r{ F֥ƊïBUuȄPpq)9Ueu<_6"&ǩ =zLV;B:QX{Kq u(Xs\X^klU˂lU.68+nMܱ9K0HulgJ5X8gf2Fx5dj&p0* wCttJp/"dٕDqs8׊hCMA 7ǿ¼Pp<Q<=@/ݰ7]OagݭHL) 'a4dNRH97}'1e,9J/liJKXO&T׏˩s=e} >+35@àiNmT8[zI D1.9vڒ+MLr 1HƒE_!:'LbԠf<^jr56ǗDNc+ad#@!sO6Ad_+*p?&!GXu>mcJ9Z@8 H9wN%)/ J (u(]r_!?ɟ̩٘!vc!B^xtT[En3, _~YP`[ #TDŽ5J}I C/ nWakK}<ȠFdHA 0tv&B06' {l@Nh8ZUE]3ny-_:leIb Ibdh^x-Y yNԖ]BjI韋b-]׎<>E-#o67RRQ=w<v"*/|5̨"'B\V/wB+71!*s*5sEi}& s\قFFm%V즷gp.嵢l.U`?D") Aݤ\N-szS.@U$wmؑI3 qmu*S;=62SƼ,`x되0Oˬ?D${\'n1% DN" ʆI rPᜮ/Gdh@o#=CRE>Bu|+K8ӱYvmsc#r[ivx2yDvxP: sN|u ?PG݊5ýxvHz8vdM0qq] [\aƊ!=61:*dW^j{L􇱿b̭$c9ׂ!ES@[agr 6 ,iL$^!M;͹(A'os,^ l#}^af4IcK./#F].o+7ciJF& Y?\02z c,>+F #̒' E*e: 4Sv !s^"'%J`\L!fQz?{k L }CA睼A|BϹ?xu{.Z`+15}BWNTыoM}m Y?/5b&7+k iٛy SX'8l)`j⮱ 7A2sV l}bFrKIa}j~fb.T7ն|f+~-6H\K,nj C ;>WD"K9W9GJ V]V?>bZa,wyb^cLߵà&s[up ,AttFleA> K#ǥtЎnܲw=@LVnCeA}j5Q0IK>@zF XfzHa|%U6񜝅z vAÁ:Dh/ D8 Om(9T.tcrAXgwk ȩ4HD2Ϟg`U$gN7sNZMs& KBH[UϋlhlYc15wwGzw1Xil:D@9FňoS` }.d{YíBqd{ -\8k"r+ӁM,4 擘Cr1NJa<oƴᄸ>z_pmjѾ6m 02=븎lUk _5;vwN1f$\ @ +EIJTD:[eʥ9(A8-+3,[^ }Ŧk5-~'3}:*т[O"we(/ m@ߴ[V͝{%l;N8 V%Bm!(i7el^.{ygӉR˸O<"iC/V m|*Rm͇2D)_4by32knjh=11aJNZ350"& [H[ QK`~g/ ~kc+V w{Re۶@G. IRPnj(9١č*a͛%m5{ h#j3Yx*>'<)'Z aUcˡNn:'?݇e}6m31mNtSM=23q1hۆC0۲U`@OC3:?0Vq~?9TȥA&xd4g6Z$V_&9/NZDbS׶4Ȋ]}|Τ*/EںJ܎W` ϱq?)NF@yZEDBfiQ4i5 "Zc$9pp{+4F\?]/L"+ӗ `r)\xd R`@4aj&=1 y+ȆZeKnM`.}nRS<2Bi؈QH=ChGBI[(V,^_=h~T8*OCȔ7T%,a3@7xX~\ez`mݫԡ #nԓ8%٤)XB7AFL[ GWd.K} 5H$!Kk&Wr$2N`KaQJ[72+pSs]ȶ] J ۣfaה0Y.̦:/9ZO&E#a_:O_p z4Q9jf p ,S+Vy# [ L%$5tpʟ586J۰`2uLw=hWQ%j\3AaQg{=`" r1D+XxQ f5 N([B#c6ca̕?Ub8{[-@A9T^ppıO9N؞Q--]ypL6~$&GQ%\$?k]a-uӬHIiB&ȿԬQdG=ޜ ?YtHRO-Cr/k Yٺ{E`:ݸnަ*M3_͍߆w>h7XjWAX(f#uZǏ.v>q^*,/lT=ԟZ9KVj9Y 0tAbû]h*Q7nSBѥk9+-Waڻ?+F0j^kCsm8)3D~tW7Jn<9XG mfrs?Օ!Ǥ8B52nt~*fKo؅ LJaRm~} j߇! vC*V=Ed(5A ">ͥ=ZtU Yzp=C孴J6@NmgsВ^a K8=p*;"@ACuRoas %Rg\itN4+z9w{K9VF~d.ISAxrGLd Hj}d^(G)lZ~I/ ;hv-uKY|wAKJr.g,Nʙ5r4ͅ,Acz@9+oH ~Át #J`(b|M`z}&Jar1.c?MR*7mDeN-]jzݠ- oa[b}ዔ5,ron9utC>z@qJ(!m8H$ ͮ3grj`!fg.7ufbk֙8hԖ\5`zJau*%l$#D{ۿw/kcђ"(8mHDjDD=߁i~&ѵXFŮӓwTH@̫d9IX61&QqlkeNW5⭺5A]t4]%oHR8f|2ڗ w!D!J7tMo\CzU" \(v͕}oY!&s ~]P(u9i,m;8^|MF ]YX܄%ܠW- D"RR&L5p7eƘ0.jJ&o6hu²\zY"s%BK.=f0CљMEIDϱ m9>@:p.?fb'ӵZf(,NIZu݇m{w4~(|КžC/(,aYV !Dc N eڝ=VTW=T2_>z UvPKz8shu3YJ`ev7!g~ ^iTvS}Cq˷?t?35N f|T'$=^wSRЯwk~ A)Ʌ4NJx씦r#$eyu3Pd>E!bLPSXZ.ف]x! Mvmeboԉn  T4RU1KȊjXB;٦CIZ! ܾDP\Ä1"IIB&aMw"fúI}`K:}j:zU Wz+GBE'ez׍oBEVm'N>%؆vXC0pia:=ߚY٭͍ 騦KHL~ipM_ ]S60Ć: }/uH!/KLMCѮݖZJ91FJ~S240%Kʚw)l njnBcPk%M Pu『/$:_/5Cn]$ vfG27iBlzŋ偓Li=i(1[&"ҕS:d{IegTd4.O5*l68DC{pBKpB=F'Ŵ0`u]iHGSDYQx/f2ȽQ+*`=3m_O l:Wp`ٴ=Ǚ0|FTσ`XA8}6+6~oi0 v$Zn5mI{?v׌vP4Tut@I_ 6<# sjЍO8~Rn >RZ4~ G]-sВ%~fgc*vCs1 %m%EY1>Ԩ,r_,Tr,l8ջ4YeDW~kT!@W? *ס  mx2^TFJ ,ѐEc; @w؀f0Qpc;#{.X,s|ȥ u/'`f_`n Iɬ#_骢I[}.%I|4&]BUI 4ޟO_=)RC3NW ȕVuCiҵO@ _=+xGfhQ;!b5xڶG@ i]H\v:aF=?)Ij]^z w,cɥ5)3~4hQr5k{o|HE*:{JTU̸XKOoE{.5c!YOl)k.;*`QJ=Ynm Nvi@_ Ud>1JkABAU-4<*e ƞ$\$OE&aw 2nKABON.څ <D!YJI*- Sakr-j f^%͸ZE9Y9e$q*%|w'F/I!@;#^1 [4S?X8eA{ S`( jT<1W= J%i9dJcR7kB@@V !n9i0l#i9倐ϛhdIWF\ 1+}(BXk5FT'%.C:Izg | & =^<׆/cr{W H/UՖ-mn3tw`jgy.}wBNg<˶ eƓp@$yXQ!ީ{I wRBvn#CUI%b[W@0@Ø M:k c'ѲDe^N%V ؙۙ ]pv|̱xK+@j}@1*l}Jf˃gLa6պƸfu?NNvpAQKV&>YWx~:~'\mh)0ը^9&OʱneyGޭ%/l.GW&I.:E24㕒0 `ĵ* \41@. x߀-^g|s 0ەsL.j _~ YOq13T6x=H`ۋ(U{)=Qh=jk|{sPl6 j } Wǀ\HtwV󍦔8"sOHEn:ݕX!vHhGa伳GiFSWV=wr4)\=)dbaڛ-fےfZdn+?SoدK/@L 7W5Alv+̰z8+&t/‡*X+g"Hk)Z*ؿp30պ&3 U]Sܞfڎ8xi%*]uiYbCei"ŒkԽEi{!//4!^4a?LgG #I mY]Iq4,8 xE7ķFgTti'H1{-ggDCq1+!NHZߜτiPm1n Mii繣xQ7GԎDCdF ~bIqfX UHniʀ\wY$,W TݶʭNTRqeE  >@H= P 1*Z~\pf3>$ g3,')s}\dvry=IpZ]8`/>|bT 95_TQS6-u6UfKƺ}\LYEweQnoBf$@*aGv3ls|1qS+`5sl( ZtlZ5`W*2) 5I :F< p4R!OipA‚Wg-@p2hyy Vᕑ8`އ];6ŸjeH(jӗ7ghדA{blvB/]}5"(Ŷ 9΍!n8wauPG^[i'h!gß[:Ѥ?'zqp ZϚי6QRЮ`QisKf},<{ Ma|oT؛so\'Y}ڌPSnp@j S<۾g,~x? \evi4}yIM )!DjUaȮTL 9SBɼUO46ˊ9 \AhDf}J^!J">Jt'ӡ7!z.RltK@c۴ywlUD Ot2\ u:(Ak^J?=",po㉈3 yJ0+g@;j[~3P;ҰRa :o aʂPm!_2ǯ4T+ej_"I#ə*D 1`tQWtREgU¦RGb] ]q[Nn=5U z Z5[uOA T䗡Kh'`ۺoU|jAV,}>PAmuڎg ](%5Z9J` 07+Po9rٗP(?0xRp`|Z&._9Z}I3dt=}/0 =.ArsYM Z9Ͳ 'jVvMԛ d-VbYb }eD4, + o0[EDT-g:cU6Nܻ %1b )8E;sKD-QZ*\zi "|M*)uD:s[7)iH ٲz>L^uR9Ngb# tY bGS[FGNꮫX6$Dڡ\p> HIU&{OYN,}uZ_J%>"U%k҄3YaI$]q9Y[S~-9Rq~/ь9v!w9iKG9>Fʈ(>{َk V_mgK܂ǻ{ȟT,s;V@ͽiDcbXAϦX B[Y8$Oa&GJKzNf%6Z=Bo1T©?bu_}PGλDP.ֱk<[y]Seb"8PkFLZ{?jہϮG>.N@6/^D1:61gd+.->qHm?"YYGr$Q RaVBf6)_0b&@Z~>. fg(t |58l\973瀊z<5Px6#-?t5Dwk04F$U iM^F7  %*V%F`?~(B @XXb'r'_3*  9%79Ԕ>ΪaSWrG,ZD\B?F,Ŧ! [@UMOjz ~eqaJ WLO,v(GB:Ѹ3 %yX班9D]+ѠZCvcvf״_$vzxgjW#KՑQCc*QluӜY}l|nkzyNJȉ. ӂf v~x̥ =~u~@6zo9:,@92SB_`%|%:*jnbv)zAL(7er<MWu KU{ HoB%XEI 3f2:~UHwnA &yҐ%)06ar"euN\&Bi*٢s!8!O{w[[z:f-9 xU{as# 9]?YT Jf8+u-PB:<`_=JwоrMÌmҤq⹌KGzq heV丧;\ 볨c/.˜ݝit~fg$CTx]:ܽrFl{&Ƴx޽iiZ1~Bo:y+(kofbc%lT~X ~EycaRv"Q`GQ+A;:M/ ` ź'.>XԿIw^gzqrS spZ[ /ڦ4 Vy=#Gxkr^?gjDoGz<^lD#]iDx`/؃& }L\HϩIQU DdC(θ}"GՒ=Ϫu|kl;nPS۰LU(SR&k+&Fgx&^6=J o#1¬ 5L$Yyy#kW9[ {ͭRYMLJwoQ6/]w6ь>[վ^u X|Ov.`-rMs}2'c3LFX\-+'[mGNw Y:544N1Teh2hJ~ϥTcAW,7U-A;0?Ao7 :zHX} } >\Y%~*0EO,l& AErj.z%ٌNM<\FBB9ҥ?5`Lf*7/z,Ԗ5.1: e)T4sьܽ#@%L>ҭ1O-$ E 'ạ̇̄fQ[Q_+#*O9Z.N=2:7"4$6btRW|W`q2LbHg'ֵ9c&fUS/cdխ+p m['OxPﯰfhbW(`Y ~X:5Ҏ^Vmt C93ٌƐBidta;~f;JnEuЇ]k J?acn閃)}oshҳۺ`GE0pAV.+?uiٟ9DrI%{.o\2: Y6=*4?T۱U9`uK7b`N$ 8hk ,]?譝[qD pm]-?qwL9A(/1Äf=DلhxBMF*Ժ xof ,%lJW,iPl7]fT:/%9 M\0{>6`ኌFP R}wU^Eה}]kI4ь:R>Pp"1g N-zj(G0}08t9J#]E.pO'e+;*Q gr9؄lD Yϵ)&JUty IA Xu4sXJ9ЃB ܆ھ|+O[̃[Pb5_&/pG~`tˀ:Ǹ4~`3G~nMQI2: p/!6ԤַMR&@'St=>tu@ũWΏ"a㘩':'q:Zzf|%QK}>ԺXăat69Ǚ0&?gyՉICb6(2l|D Z2ќJ}E]Ɏ$U:39 ;7.fG3˚k]v^ k!Ȟ*.vÛmxcnEhm&U mPYPE&U]쩎&wn N'Ć&=u@W8G*O+ZPS%+ e$*+}sLcZ#x=q۪Xx ྆@Ej6'55ɬttYma9~L6+vր^os]n\+6,G0=( 7V4GBGM`αrH(TFӻ/2^2=#+|&AXw_ )h0Pf8,hc]&\ [M&(KA.)k,TQ6뜙*@s;|Y$i`#V?m72?k:ρ"@?T-(G<˞*gY*4 -h;㯲RϪAF)!vΌFTehj%nVS.pY>HFM4˚:q:IQ7BvQ;5g|k0>DAL6y{/AM7ͪ3/̘;5OvꯟDbV|]Z[+w/hAUgx#jK-QiP[c}_ED1+bsֲ-,Tb&k c##}Z T<LJ󏽲"-9"Sr̿«e2Δ7!$jMEͨ$D-7IY_h/L"E|$I$67Յd au}8 a[UFD A" Us\;"7,C8j61Wb.Fr\ZİaB-y^ddhSsܣH|ʣӡYVNG}LAڠJo~9Ne[y_ 4zzϐ6/2=3BJMӴp"F)Iפ3RTy?/d%$_~q4R " TOu&㊜n]2mli"p A$y<ěJ!`pgȣ1sɣG,#n' D>>4 9NWѠd{ۣ?V5(D,?2 DH\XƏ@JUG||>;x#8 seXƏQ-(LiOe .>dd/M@-İ:оV^|cR{eK~RqY3^٠ڮPI7?dZaz<#D瀺&Aa7ی6XIZ|8+0N`gj]$Vq-HJ;VW?fc <y .QeB6p$#1'DU37q JmMG;$^XdhEc Ҷ!&QIT[c f0,Ѫbٛn܇Z.;Cvv6[sA4~Sc14MAkS"Zqt `iyȋZt GYbW3C\H$Vc5cݎrV ĉڃ,]dUHaXex4I~#9&Ac7#\4l_D_31%t4Qj8 \iSWj5+^Gz>1s[fEwzo}6\*tQ7w!ИVkZH?h-)Ϊc.^-c+!|o,‚l]۲+MYvٍaLqDZSFJTŁn9ct''9l$5T/t78ر mK (Ty^爨n;ʹCeKw゘7tN(O+PS1ǰ##䨝Ւ{^Tq< 8c=曍Vwd0RjW7ۗP,}67&lZч @3-A0i 'ĐtaۉL6, )sg|CEpGc(~ξE\wjHXewD8LKxbmbA$P8q`ԟg}<66|.m[Ro.b)[N6P-(;jcE.-,99RՂX4bv !-{jF c^6 $I?QpPoEP׷UA"[׭8ۿ.|x`{T%m2fP7Mm.Ѡ̄}(TE^Jm = Je#You',!dcqϭzR=% aJ }i`J־tEĤU"n2dgHLɍpfՈ8y1cg&̈}{xp^L7䥍!V|{=2?Z85ɢe~kA' tdt }쉈2"q8EaQ]uƍ7a=Y]KK?P2츈lz rc^)/XI riYvnex0+.Z^[J{w@ep]c)o|^ /QuJ'LqB&<-p)έ}zy`Jc%:gߕ,W~z00;#jf&dWdCTn]MgGYUcNXߛFXHp&h7˘ӉhJ;fLEfCP^N,J@ .Uu&k\wkYygw̗"s@0cNYӸ%~a2|M;V>xG\'&IO8=$>(Yi0t!%L^pZ,{@NmZ,.Z%XMm9{obm QWmKR6JYiWAB~rJ急[NZ(A#"wZcGTeN~(NkaOw2K&^L67Ke6mAmqCMZ7Ǽe*v^fLB Y7mV,&Wa-M% w|x*CB!#$OO c<>@~I@0h-jC{ >P}G01;Ѵ*:. -_yr(uwUL; ,2s2(/kt:tJ5wy*|j=d9-u5e({:;#]F)Ar?K kP *.🝪,ѣ!#vqBȨ<3848biw<2xyZma1a&"\SCR5`>9$SM(g@TF_mv"8<{yo\$H ηwZJY=E,}GRz͑R1UOll;H$9H 6|Q*PjTT'FK5GM† TpKE,z_% YSpO5n8 h.)^8 G Knw1N`l#(3n+3u%U4H}7j\X|ayU}@FjVsUole:UNw~TSyJP5vM:SY,5XG˩ss4+I^X&] V~9ašu>_(?KBHI`vL{o~$Hcr` ?Jh›~:}ռeJc&Qpn+3%)3irRkf1``8}EjA gw4a /A mLݒYc4s#A}chCHKbFГW=goRlI a)hݚ-#Q(],wDƽXIZ-hy=>,q ԋ 1_:b!Yf-ϜԱ9fl؉pD}ec gpC^uP[ߞc u )EI{dwafpHǥ&[*׉[W)1|!ieƥBuاWxզ%r-}b0 |W~'_&vq%gDZ%V fGGt07y6?$G7>9nO/?=]u!1Lc+B. (PH7"V Ytě/MgYLȭD`z}FFԆk_:Jg "éW#6zދdgc!7xK E,V>i,|A^RSyH%6# w8bG;Lh8Kl1q T{d~]Q^~Zv27nH͜Bc'C wQJ8;D+y2܇xx Z0Bؗm0NyP*)NFw^$5OU^k?YY{z,(.򆼐@EXOof`\Dexi 5_ܬAUƲV{nK!O:{=qcA]\ȃMvdC+P` )6hiq|rhyt>qa} xrV\9%"D@P/)9D/E AUB!R+p.F9S;T%8f}^`|\ΝLn_bV;ayjȴ`4V'nWex@wnLb|2tdiJ\TKJoϝ" 6WM0bT:=ڠ*Ql Q>Y*w"Nc?ܢyڏֻ-zpijLw?_{Wo.}mTvXN-L09~N"#pH4hTԓh1`6]0m"n:B5|3p\8/XDC[纑^:Q$ N̿e|岀{$e﷑agO6Ơ_G|".ߗI@7m#z~ry^DyH[Dp!4"'hD\|he ɞMCQ˶bҕTG&= Cqhn7`03 32koD*'y <>2r ~x=+-LL{R\QiU* zXaxMdamQy%Tj:D UfBˀKRDG Up$q|."j@EDn0Jd݂֬+ nUI2^9JY/<5ƨkr}wܴg\c1q'KKD,lT,>hV@N)v޺3%M%FCg,hvS]j]?碎 3T^,h{15! OPn7YĦaΛ`\ uw4(>=(pA[P^\w$nfMv0{/lnP؍lj*IM/,X6154;[o::Lok0N8d\y֬*uۺ_B|+6"g)SK}'rUgg7W>yA[,'Ԑ3bk~"]$LQ v#DP>-҃_HSxoŗߐ=$ $t~]Rf]B݈`&Ib jR*-IBH+х{g))UkJ5L!4HqympK(FʋOLM_ؓG M{ڀUL९e4"ε$R! :@`Vޡ Z!AYasJGZ2 g|Pʉ0 uu.q?'"3|*)7`~iPP_Sk49fd3VtܸबqaT|#ʴ=[tm(Q̪KG=_ZV 95 &/,6ׇZ?t.Q5=#N\[qɪj&'BX%N)S=SQnjgE֎7\sL&WY?c] ݨ fO] ' ,DyYY&: 6 "xbӚ0{;Ic:+h:E2Xi5qPcRm^/;~X1J eT O(?Ay }\~C~㚧x?UN&n#/,#ߏCk}H jʡ/l`6"*aPe w=x+Qk,oOd[veenfz @f$p:Om+z8ojo BoIEF^r0^@~Zʎ$X{@kkYM3c p$+dƟF֪☛ÿ{p@ WOŘ국EioF~a6T,$B.ZK,핻ĀYOry!b{J=h1 :M-=l(XBCqqjJ;-(BT$A+~,v6o վMk(kU0 s-TC "a{O}A50ɍo&Kc胬 0?D!rTkov&-*DJD;g43G=zd+2J w@!4 p<%9+ΩBd}jRqa@VRxUtߥ ,7OlKnf}-(?,YW;v-LTk; &HD@9NP }uK_sij̀{`1g}+u齆ZB)$0Ԁ4 2w7e|'(RC9L y Mr1 \E%dW0AҴh gVkk9-jkCwֺMK\ ra~>һfz`5H}VyFCxPQMȑZxFܻAxv/EAԲH(.%'$)O^hOEc;o42ה N<3:WdihD)ރ b|F/h4j&<(J,3'|y8N4x0y^!1C^ڋW%3 w1Z1 JgiV͠J}{{N7L.I0&Tʬz(hM@R_<^pИnC*8 ?.y_}7ZO%}!].L2&n 5zvf“o{+l}~%^1GOhIK#oϐJ/.Sݿ0<Ւt'XI#,qaMժ%r.m'.stilPTZYF-1>sB,jߏ=1m\y2?,M@BAO˾]F^M.N -nnON21WaySѸ{q V| m^X!ʘ=kqsnú 0̀^y̕4iɿ.Q9 )2ԍ\go_&D|TaխqF NMzwv!Aŷun?Lll7IVx՝^_Ξ]Z@ {XħPC#+Q!mڌ4APY|?W!#Y QuVhX:*|Vi7gͦ02fqHظ9?ɏI>V,,eR]i'VCա?g3XUb`)mAʔñkZ knآr0ڑ Ӭ#kL|? uf}Y"{iL7Vu65񺀸9Sd.ʳZp$d/)n(>}T"S 5A(P_o\jrx2Q{&yXO\l}9 qI,&-Ԕ6 ^!7˓`+ OWe >ͳb-Tl 4pWXvև:[:/92%2kb^nP,QhU|7>W_@hNH{kq4~F`E!-] "AŃHtN!.@{d>v #W gLO@z7nϝ~9/(gSR[!V |Z1goĮڊ<-]*`8kz;#%Xd2Qfc-dzcNs(ęPqg04E(NnlK8/.y\Eş*0K-£5XU)5rL[%|Ri9vL2Za⤫]܏WnK-;g3R>a :.ˆ}?|*46/xE1SjD~9 +3Ð+b&aD(UBxLT6y-pʯ$ypnK>9nMHy%Zoh1:'StE=b UJ4ﳐm:@CX5gn@K&!o^N{8}d8uS벧#K&D4 ”\+M2;iiU0GNڋ6DoۯqԴ& gn0As?f OMCPna1b>05dޓ*oqn!5-.j͚žSCīEo'j10@"-Kb+QKӻ|FF{JЧ3J') s Fj[} ܢq+Tkn ɶ4u01u x5Kh=2C3F׃[ˊ)3P[y{Hb4t_>Xz*Yζ@%M>KZ =(=Z*]nE[Je \?- y-۫N^8%D+e :D8zKtL{ ҹj1X$_ƇR5hA``Jq#TiI>Bӝ_B@ʕ3Q#823g+գ f?tUl3 xۄ* ` sJ2>ŧp4 h !90ߟߓ=M41|>Ypl,`Uӫ7?"zY>a[j𪂮uPndztd-]ٸI$ڇ-+'ۀ ';C=z JզM%z5H'}į^:MyvSL ^>Z7ky,vzT]$ 91RӽK=թxrZ(\U7/Zqx8˪8⒝Hi(<:7 **?(nXS>,XR$RiT濷 r[Z%_fvϯ8a%cu[GA?AtTd vפs;u^ff-{cj XOy\won@,tưָ \m90NՎ. `tre 54. B!BK0UzVǺ1Č:ǦEso#-s(l׳E5(3`čr8jJQ/iO\.r4S<0,~`(762NzL,eM\I}2?Rq83f}sd CXӸZ <*w'6E5!u5o%1S׼T5M&-n\]Ena]N &_"a +]lr{+)F- ̧ .I qpOiT~43L8xR"rX.ޔ4<Ͻ %#3*;` 9*"jV,vCDY$-j0SrPg]T0an~fJfX켘֎9]{\.b15SUn:a id޻ccqG{|BCso=3IM(xAGܙugnOiu "zdz5uzY-yÝ1`"D!o;=g,w4҇&)?#um.bs|r+u#1w!GefaMp{([Q2݅zO!cbWc*'댾{܂k֩D&#2Bn%iDz64 "D%Rdj #n/$pەLYg_#(Q &@\RsQWָr}zsSgVvcs:?kFJ댁]#ad`<[4t -k :Y#I.;ǥC=;񖒱V\\da5v2e*<*!mAf ݘx m1Bk*yE/ayO_pڰ ̧|`l!C/=ZU=Rp0(&LہU^5Oy 5α9}0ODklSd;΃߄oӨ}g3fӹu@'lHW5ٱԳ崸1Zzn^UHmŧ)Zcѳ0j<f>4A`רu~-_) mI~Lĭy@Fݝ+"O1VwDpMV~sS?sO5iİ#S߂k$X2zeCAY^u2I>Oiǫ2pm"t%/!e#Y4*&^]-;ܦua-}rqdjA· !eGfjZuM韃ϱh?//kRؚ3[Tx11+KЈ,TZWF>4 7X]~Pخ<# nFy(3q8qq w^v{~HBಀS|zZ{M„JGϊCs,O7w(D#ӽ,þ<"bF[Asm<%wIR;o'dtz'x%IIt0AQYs5q̜FɩQ%Pu Pb 3W=W A걑D9,6M\ {^zJEfʼrw nScOޛb.bA6ϝ[QlY/m֚0j2i=A}2gq%5 QBlM7؇\K6~oDM$[6ۼ(/WYJX~ \Z_ӡy[ompyV D*)lʈ  g=z=.nSק%0ި}KE*s_ŋPUPT-ȍjjz Chnv8 /'4c(θKq,إ𲮯!|cRU(а!.K\x5É0(pJህ6ok>2 2 >4(20éΎz#x F=)f @Krzypj<^qq^9=nE{.#Gsr=a/ag å~M{`v,c ?W%:T6GY!A U$zRAdtr.:a@fJ՛8,Ex6xV@5U/ũH#M`S[[NSfQOŸ-uʓ/P/Hgn'[ &IfvTr7N"TwH|vJX}MNoT4<( ߫w6gYtv17yqLs-<Ifê6X,h%OɦYi ˪yT{MFunHp:c//;nxA=lD"8;(yAEfu󾲨&|l[,&׭ySTVM*?>?eŞrJ:[,: %T܁N*c ZcS8y!8㦉+rX)Oߵ`H[mz"XM֬[MD vP@q2>.-Џ0ZNc*ѶԜrŒ9ɯ0υ=sغSNu)v~̿N@V2=DBˣD"o:%*ߝס) ڨO]V:)Jk~:I$i %;|o.U=fc~^( Oi6UÇ3Gڑɡ:?mU"2(zYU".ɰ}qЙm<=,/9 SXjY (V*ӜGzJn_itIv`):p?V罇f.,fi)` ͂ZIqmid!/AF60M#_VЧgC}'\&P8yѽk߂|x_GXMmؖ@- ju n7t ϵ@' b'9OFzRJ[c{28Mz ͯM0uhB>{6GܣZqIc >d8JN}SCv);VSN+.C t<ୋx61a ^̀935E*S!sMs%%C]!4ɮy9Ph'UFyF?9yMeJVinad26[x{?1PS,gh^0}̘^需~ļaX7bE.Ѳe+^ z m[٘pCeڳ_XH聪zH{{Q MX j}[eښHXsN4I_A#љ?؊~vTPAE?$3h'e+ On7iʫ\]`B*Νg24#-ifя` MI=_]\J0ٛL:P3J~}?:)) l[V㗸Vvx> hE;NI-ć2uvѾ [6ʫ_7D<~ʍʧ :1YGkLb/M8(h— \\qs2M XpatˊK:Į_lˆ)U> ˹b5}Dc@Iw>[.S_IqIdAa=":شk8]U R$Ųo*AF8zYIZ~jؙUMy7OTă=|7vO$#l. jSˤ FːkMrOW4 (dr(bV|ȡ9B @&x< j#ҾX6q &K= BF sXQ}:> ܈>xEƹ=L- Y"񌜳uV% M] ||]cw H@8SS"־!*8-^?sܡ?uT{&ysf-weYgV_^L YQ\*T¼ʃ!vMjvN;:U: @9v`D:Ngcn~z=sit5ߐBt}N:LiBSZ C TE n-{ Y}S| ~l{\g|a.piNѩVP1dKo_ gpI7sl 7c]WKc(?ߵU vv"_pcRVIڦ0I1>\2mпÄ[ 9b Mkf; Ay 弟:Q%#pRE~l)rRF]18o7w%$}?gP|U"N4N"W-v(Q\\u *h1 UT@G,@ܫ%j4b}ڜgh*u,~Ft1 i )-$L7ZY<kD0Xq>9)f2GvHm ӸRې,K3'=k2G8pn1޾q#MG"yyf'q]nd3{vAQm.ONį0 ?:IcCPJu7@{9('@ۑ ! :q0+nEPQ(2+{qE-Yny݂ 0 7(>T?pٷ~0>9O8{G@O/Ik Wc|E5Wxċ pMb-sU鈢;,r-4g3.aF*S<0 % g>NͿkLK6TRMS>B"+|#wJhO3Vi;Dv'jco3LU-s_Y8TP~kpbqRqLYG.gF ?]]id Wr߶ҿٝVއsKSSi#4t{'KԜZ 'e8kV(:vaFH+>oS7g8ƗԙxcM +/hG` 3~=aU#ź=%L٪v7 O|n<<3aaAũsSE2Uzf/͵z;FF!TJS5S@/,I0l[qzK v=G/bJ1` 3ъh16I1R1wrh*Q-V" |=@nbj@x ñqh#g2,U ^g,R=d*WJܵVtPe0Vdwy-3ӈM;!6SGWvjotPpezϿb~ 35n߮h˃Y~f/VճRܓ^cd6 0PR_>f6o?Rٚ'd\ FMa|\#)*f۳7"((KXbV{Az:qV ,H*Z)P@VW­gMQDsĎ 2&R-laP #=đ(l{Ewэ{f6Mݲo0ëʜ̓0ʕ:3)j|$?P7T뀍WDUJsӒA z4=7kˑHVXXMdPC2 0Μ L3J^S#VU0 E;`y#!I& 7X3|6+wXl-z%P5_븢#FO|}bGⴧP4wh[ jh݀m6DH8jd-ldmڌzdet!0Bѭ?*}eX 9FJR )v'rURyU=^EVؘ"N9-6q=FBtRs=/ 3pp1}x.>D2& #/%Kw?Vڡx^BX!=_"P.X}VDNp7W Ymu\}VF I3ݻ 4q^@v@rYʘXᤑ >U5zu^”rM J)Lᤑ QMY3eD,Gs|MPpI8p鰫Т"TC>a1?^.L2oܮLZFoMGQT elLgM"guO? ϠGl'C,I [|_.WC!<ekxw Gitpj{bmF|oF%źDJGd_HQh }嚔&[ڬ}3(CaEs7+v44L6<,KD ̲~dd(ϟ||]o3X@IYfA` q͚/&cI `dg/(dq&p>#5ex~SUS%ؒ~ok!FeOXzcx r^{ͼADh]@tx^YT2b@ʢfbWʉU({ԋd!Ln,9Bl-\ȥ4A&Ff;ח`TmknI lPC6zWݹ.inXC;)ql `m.aZvaG >puUP-4HǏŘjBE/PiѫX ̦SHIVAGADW. "ͬd$hU[sxBXQk) .̰Wx I6Q@0tϡzB>6K1T#Az;@~' ~ۅ7Вf (*N\ ѯgυ˯TN |g"@@cI0_B8 0jED(~n6zyI MjGSb`1Hd<;NBT.kgdLyiD~>iK>`h=h,8D˽\ "1nm!\jN<ۼ^>'%BschCԇs `p';7s>j ։!"vks7Ep6ܟlG;M㺃?(ct)9~JLWje'VO<&lw^Y aHD_L65<= e wdj# <xBz +(Եn FE |i5XSr9b=OׅCC\;;x^R(͠J~, R(.Zd<{ M%- rsĉaVLhlj&撌 ZNtOcl54E1U6.ҿLQad</&Zdw:aU8)1#yHYnYGld7'2UV'Kll"[eQ"t|Z6)5Tm~]ͧI_c;n 9m>c#xZC`Q0pUv:rgY?#iu6a?6js!# \(W ko.Hla;VqD]˨edT'UE ru4 dWMfqMj`9d-e]?⮶2~VzŌNuE6Rfh 0(e%Ș4;=H"cKj0m[=UD^pi:>= g{C8.":& ƃ %XtSkrD>WۅP4 X 1!eC>BATNDu.P%4"yV9?,eAS`:YJ-5̚\$<#htjS[ƃ@ /1~xJR\:"V2:A5Y©c{s qjrz 0r#,&]vtL~37 *δUA}ƗnZpa xLjg- z1p]ƀ|7{UEP7T 1viB(em>\Y6 - ?++dw*}9@qͮ{>u_28W^4ۂ 1yM4Ğ,+FPwfݭN!w|!ȷݾ X}efYgqIKV+|Z#4_gzhO46ZPMٱW2S59.GOFVF>AӇ IWPr耩XscI| wY25z`S,@6$e[%Y83ҴE5:f:#!s pydB)#ʯh1xSb/73sY i+3NlBnC~ѨDJ"ՎslGC,xv8ؘ_?}Wd!MEƺB|DejhU.vEsy d_ˣe FN*MVQԠøng׍uAR8/9\B3Nex-wp]jDPWD2U5(v^Ӷ4+yvƼv!ji31WRcB|su+ *7E5}+*o_5=H(/fLN%T%o]pAjY2vJDIkwu>Sja6h4`2hu0?H: X@*얛 N[(Eoϙg"ղ0׺()sRr:}`u<*I<8>PV`#\xAKE288\hMkQ\&0 )UՃ=)j ̀-4[aǤ(@=3A-tcpTH5Pe)N!,|D)K>wVܢoIyX IpP>z@t/vЬqnh=FTδ1Hk$.'4^l Dg1ig kAP{uC)$$2 .\w,ywP:$(bP{gN[{ZbJHځDzɘI_ t>d2-Fht8-{@ "xXCh#W,ly+:>?/owƱ,1=LaiIF{!6D]%6Q"D~m55 @[Q6X=SOž:3bdNg+.K !xM}+VҵurP{,,$~xBl4X ȭw1tT}h@*:%-Ь=?ZO|}=EҊ`}ގJD}#]\}[5BMI\:+ࢥɏ :B'ƒI6OĪ/c8Iۚt6I.B1T0DpSB9r$RaџPNa mnM3o|SàAⱾN k/[C=8f.Y8@Kwܔ̊M!!R8Rcdq۲,Ta!-\34SȚ64.ֿξ-Jwoh-){*4o 0zp.v@!cbhʚ9i6pZybzzo!U(3ZG'9SB>1v1X[gB(ujr#L)gx*iE$buPej g A4۷罒΂:YN.!eTRY6 P5 tecMOFu dj\g?s?2id6k#[>g_%~OkeuHÉ8fr%zUdV&WB*eәZ&hQyYyB^VB:%؈iPhu(24 3׏/[?'<(;WHnJ{[hJ'LN>YS@Tނ~Lh঱ux.3IKOnߔNfЫ-@DD *qc(}yu.l $ُQĉ{ 󍥾G}.YOLtXg,&!Cß^9QSr9 DƆm]W#+x[N=p:=mKK7gTi. 23z\?;{Aa^Pr]Dx% 3)=Ff;Id|jQC>``T"";sDZ,lsԺiW#Z2Uyy|`)~G Մ)GuIgxdn!@)j݃ _ҥ.`_ 爯gS r`T\NE)P#縒IU5]9 3RgH_.`N {sTn̑Eq7tA<E+Ӑѐvm*pXhbx" 2Pe  /%XɫR_HhW'AjK(rP!Dm $(%<_07?BW2S "uRխJԅQ:4(-M5x`3BŹ#eEfLKgÅfO (q'.UPvP씉k0~d"%PP B{*01g|rJ_ɚ`xO@\?u3 y4&,뚘sKe<8"TtJl]1k8Og'?C@%\YO͜}vnh<0A8EawrPѤ g@ǹ%:BYfe`daqDaJQ5F4G>)|mҸerc?ҭM_9]\Ab@>ɋW}<,B|&7.:*(̕0C{QNŭPl^:]0RBg&Ww}ofmT $:I~<9 [}N`ăU~<ؿ_ Ws_R ɕ+">.*ԺN)-aTU1ڬbOYb/&=&P&P;&[>VN!:hݡLR/2>㷥O+c}ٺ6~2鸋d8QJTm@RIf1.%,#,UPAcJ(Ӽ1Ph*=yZz߂2 #L#rb@'Yx:69=!"w%ڥdaZ!sy*L[ܲ5 X?S7.)G-;,::xTJɰvlXڬsw0r΀n,?2P}$Ҳ*rpN/ 7_JI,( '`vlY_nJ=4 F}bURQrx׆{}E_ǃ62 B;I4P<}!͍ѭTt㿎"nZZ^./ Gwzg%\}h/vf_(ޏ;_ecQq>e#ypJ&|+VP @QTP!L5C,&3/Ww1"(͍@B& -𻎸l$Ÿ40UWѠu]MfH[7!G)sf)Wl1-d h #[Dɏ/D~PsvL剷fxJ's?n"t ,+ &^6oz~MИ̥i0`F l|&D4IU'lK)2@"a[{D= * @NH pgآZz7{6gfW 3nX#`mƫPbKMRX>ev"EP5b8RB w~N| -xQ58A7mJ,K "VyIiaxCj_&^w=eEl'E)3_:i#O+׍b2HR"˲yqeXuDhokAYD\E?Le~Zl 61ŸN8!^ + Ձn@Zrj[$UhİdwG˻]~%5nQ/08Q?_ˉP8\g ,_K_hѓY$(/RSaZzłfO6I"jAi5=Co¡1 4J>WQ܈{[)U9bHn*N!Tr a1[6Om@,E0!Ef!N Ͻ^Nb0 !IO#X2*ʻ HtGLe5.q-WܭBH=n΃]ߙ,vv.M+^lNۧ}gՀpu[D&m/[/4EY&Knnc m[mQ!7'eɨx i0V擀QR m?%a$ʕ|ݞ=BJߑc;Ig_7sW|幂^{9]Kyc~ڬ> 7±ѠD ^&",(,`8\ ;Sؖ1=ZeAz| L@-},w. JT!RHVoڍv*Eϭʚ+,ί!Kri p/ >=ԇg5Ls1#mZ5.Űz,(gy 9m|~ dFei5M` y[Q+l\Kb~O̝QR+^zpL OħgJ)^quH6\Nޑ,r.;߶er7^F(﷊vse9>;{o?YÖs}  f 2:_#SCv~дu{qI^߱kGL#DP(*GZRAU|u&R#R, j߸ >d1敞=G9oLqe): 6@@>c89=p%/Tg~zϷU+=h .h&#\˶z?_Ib{Xb!a<(4M^69cuy^ !o`UK>EocY?]Ƚ!Y|!k0GɼѼs> ;;^C >9cuCv!p5]u~+L,KMjR:ioBpO٢hLu(No\Gۋ 99gQRK,HmpVOG(l&8.=e ܀"rC߸G9] bb侞V]s~o'@eK]D%T-= D-2؊7TjI7U1>7ʩ-+RP#>.KDAJ!O77-AnX\(z[H  Mf1B7NLמe|Z~g;yJ_:2SDsbҹ(83љ \,;DnvpՋ%HcMrwu 6L Â[B%sZ 3 oL:NҩGbL|-_*~Tv\8SB~OכdGNPq&n8cU])?;d O&M>P蘻O5Xs=ٵbGG%=WYwwZ;A1 ?;:36E+= FMmѰ2] V%&vdC`'ѐ6?AeHƮL"?\0 ʵρ,sz! Pέ7ˈ#q&ELaW m?Yw:"*̷Sf~toj'3A{Z[=j\x.&{lk{>~<@˵q B(=LQŽ=$%s@o½;z`Ԗc=SF.b,4#Rq1 ~O^}vᓻ2gKPśgTe-)d $P]Ow63:emtҎك?ѷ[WUN!4"o3G᳅^ oCp6(?Mbv.cTVV˞oe=Jf>34[݆9lx>+EȫUT-uPq#yq'ؿH3}C fwDj~i51{;L-)v%^ X1:tO&k Ы~x*|ܗ}6;Bx'*@MsM&`蔞=FQwAQhp5"HѭG|l~Uh?܆x">R6wN;Hˆ 5AʨS'" TW]7BKiPkZƀh'1 bnOd*_llnjr(T~|)REj8FP;r2zT3(@ldbKi.Fk;Q!عpŵ;PAEз7!gVIwdy,ak"l Ś8Qc3~ug;ih m;XD}!e[]LsJ&dD rNɃM`aYɍ6$dD]ckIu j[c2tc1y;qpQ^ʴ<|I7,?=⬅l0s{RA9R~@ArRMNKydg,fk'pkJda3 j>щz΅7{bpHt}*.6&Q׃DLEN8KPLL68SgL4 |$=B<[{"to'Dd2Stw[l 9z=-B~v2^NJM| 4({7* uN++|Rz\7xH-p`ٚ VM _lk1пs]5&S3/SeO4ifIpm?7ʢ}Qu/ߝh(Q3P#f6N;4 v#7jt gHn9} ~/d\RzTn2,n:Z#0vH } 'Q!=ʁE*򛖐aqErd)63هj7O7J}FD5/F.zk }YT1~~ʥZ/r&G#Nֳτ("&FԆ8GPh,h#Ft{j(T(1/kَGϢ Cw3t߷86'"z~4 (~k&󰎬=Wx\##"3BS.5p݀am5,t O j,W6)ghQj #f}B2m_HRŇH,cTz ccN P0蚡5ǁ-lJh7P5Y!/^ck4m>%Cv_[X8Au(> Ҽ̌͐> Ycl6끬QH]?d86a@.:U^e2{?uھj(K>Ĕ9Ijtjvb_AB&7;|x>f5@>WqJUCoyYJ-1*zVMAGYT옃Fv+mrpF""y_bT=aM +-ΊKnL=,J0lN욃L j¸B $#%ܜ@5a:&Be;bNWd BL; ~J]g[7޻ "9mwI-9u] 1BTCE?4"6/_zn8%'Q/ґp$GRM ?S5P:l8P}#32U1X*&-+=z+6p̫)/O0d{ϥhЗl&2 ;X×V:d4j(E_>ў<&b ++P~%} GxTf|oˊIe^?8XO4 Aӂ`ʿ Gt63ݷoM k*Ȳj[bln:geǕ&XcO"f܂U3S|Г_TZ d3iq ]1­ wi#Z(Zu٩ᵱ }E j 0ȫJ d$JBhGm«n9yFZ9V @C1>& >/ eNnV3ߜÄn%0JM*K?9ehɣ-CaÐf+4SߌEEܲRjg 8Ƞ;tᓨ4,pE4#Q7X`_OF]`!uU+p v + &]rjr,F?s|51D"t-W"Y6@]O'gr)NtJ& 8 Wp(m֩:uZUvZk8rAbKIN#oĘ4.W!ap;*7C&a=Vw6>Dx՝bݗS^?aqí 7$R:lvi5{pk%wZ&C``-ĉt ^OfSٗ"QcˣgzKvAgCY;lk%+k=zc_oM ybdžCn2xU@ߨDuL`,B UjmTMXI)-UskhU ]IkbE>VbprH7OE2$B {o :j N@iȪ! >E9$c8 4rtCDX*[;ia`"hbP t;|g=\BSxtC͘ʁdr@;M(pr5.z$`]@st_Yw _īб IB2CSȱO|cw`kp"b'IDAߖn,ߨ=yR8(XcU]DjVs~5GNj* }g*Z|MJ [5b١WD Y'"Ay7wH.a$1.t X#ljCN2x*nYI4s.<G:^"#_{lO ܂B7u Aqqh6Zewlwe@f/!7̼rEko#  4DzbvY90޿p³ϻARB`RRX#>e<0J<*2=NT|T;D9El[/77-3&96^{3>|n;))usL΀aWz {8,w_t֙iB9fwWs0Od 3̗ǘr('.FQb  ~ Rrll g}dۏ~b*!ꎜeۭcxگVFT/,d͘8;9y証dPm~tci=Sˇ}\ش Q?…'4ߘ-8Xpd`;#+FwEɼnU!!ntJמE#@?&qCf`t_J|-KHGӎu\>R eRtAjU $qF~ Zx #;&FHF[ WpEխonatJY/^U#o2~h62ۙʥ"p$27[69-Г'" txu3v:3k}k_tj#sS 'x(BZ]`8K[ݣV)\f2ai\7o-IEB@%FFk#~MA=]= `4Sohf9oWGɤ`UZ90٩{^Tӄd0_xJ0%t6=&XG#KfT*zG͜r\, A*ә1.F 4/3s(+KiV8ѷk\md 7t gq#Xf) SNؖ̐?U1j\k:0L|RKfLt#V~'{oe{KoQbtY!ih>U䳀]-"߫y75ъ.Z?u˓(J/}^~s2m~5mnVF>QFf>.zFھqtAmd Lx8e~%Ia'@6S|ֻ坽$3:dXMXr팂 P fLCJAhǎ1hUΐ2_`YyJ?y+*'b'G?>[#)2/Zꥡ:<Rac!ɔ0rE%ˈJ("lC|n>ߪ}kFϫ!G;Ӄ75S`"Ā-)bn7;\gisNZvu8 ^}a2J&(u7uFUi#գh~A]o> O~l:vmH8FnuDQXToM_uٍ 2lŸ_ֳv0'oGzewg7\7%mUwַaL|eՄl+&   ^g:Vg![$BI$=zL%VO$|> &$mҨ5XƥGƄ TiqZ@ډp0g8kKrj]X39Q*sDtb6*gεj-Q #JZ!VMf2(lYEFB';N,lQH*iU0KK[߶$<̰O ɛGRUAVi5r;`NxObN7j {J. U (bFΆZ\)tgQ7ѭ,JU0D3:F\<9j`,5o"-9쌬=J%Mˠ6j{: ؼ0_Ș .\xط(>:KT So%wSw )GkڮqJe2u zlѬүnmU>o*|6ZaS{g@Mr؞qBFCmI JcL?yzJpGaA9;uoSЙ+~'`@DW@yuآ{Grz{KL:KH;@?p,2مֳ;HږoJfǗ&P܌W~H- E~蛗AjvCx爯;D_ Dv,ǮMvA\k (ɕrw.~"{DF.Y(09XF,)AL+"R|]]u? "J,V)A(l[] wYk[8#qI1 f0cw|G#'_Sy8l0!hN/&a:/n/'p1?*sy [u5?>PWw/(;۪YKNZ'FًYZh  T|w0 ˋm~`*Q[EwUPs13rwQ i#ZT(sk`3=B>]Itɶ,K٦.і1ej|Pޝ->D ǒV>˗Ev,Ey_ee.c簦kĠK*%&֒B!0WE^ǝS~(B+(SYSL@Z/o3$x-''d[s"jQM2ю+Ә Axi>m}5]Ĵ⽤-F] lijٜ0\d/SyA BZo j>݈ƪ?rE"[Ww3?]4YkK#JlY6{Vm GpG2Y='7@)O"(tM0̇ZUC`vBA[55\_/4$!p(mS,R:a ltބï!q>~2$1~OqE? v\16&ÿ£@񒣃oqмl>܅3?GMZ:"l]<*$o*jSDZ5,˻?V֞fǏ"i.dZ> nb ,񍓭\{RK[C?TNRU4F\: ?|ܢfb=Ui 9 R4t13U]~d;Rk65BF@-̒׏#SIXqg ZZ05X5)0W(p ׬밊8$B(EޱrDža+;( {{2Wzg7X\Rw7y+](-?ۑd_`pҬH!n"{B;&{29Q㭃м%drlFP ^Ǡ8嗇qG? ;4F$Pbl$ue'zF K'z$K*t +in]Uqe`y4Zݩb"6d+JZ}lV|\_F*BVZ#vzʄ.{xWv;8΃5p$;=8y0u{X P@m{}T`&~i㊣֒,[GGX?*YJo('>6x#hآMAMXjub L8'loS1iPP`U"_u0)J;hvvP־_(7ƚkwOBsYu""4U,MYil;DqX&nD&/6r$ܹ&;t]OCl^#f94gȑ r62+ЦTp|9D$?\qI$Ye;M&g4D}=>7xY[%S| )Ԏf VPVJj$wujHxMtzs{="de7f~Tx}h? L0nhZɅY,ۗgxw#G'F֬¼՗ \?hnQ!tݡ08x64"p$G{%Ĕ,v8YyHh-F; i7~AK*s x7w3 XH39vo|&j0%ĿEuR'סx();lt:XΩ,rߵ?R6XL/sEpv ")VThv Sc?rOO񀂕s1%2]i@"\ᄦ N{0;I&hܭjy-ńOpGI-?*iӧ~q{^li˳ @~OEǁ>wj b!y0{nc_Te`d1BAY-ӊ7@b7Sy-U,r4ri , MS m!j8O|kq{{"cNHl_-'m0ᴅ65ݡрzRzᅧ2YdaAUdM.JeT" Ƃ]}Mi#Q~+^.-ݵ2ꪇ 8wvF5>n /agib|KhMMo\fO|Ho =)մ^-G ckŞ1rCMV1\;3G0 M&Ԯ~ 妹Ԓ9l+$1.A. 9D2q7G zB@G0A^] 7V{w}ZBq?[GI7:sS,5 lƹD;jp0O&nmgђkX?dz=YLA J$=L!.V3ɦ`I2?MtVt^ODe,3n UQk[z_`2 C*/6K5+2H!yoW߳r]`-~n>%2D|V[fhV R<*`WmF+MrSKo+B"/(jK|=%E$-!i:&a݂,:AY b)sE!\E,2 \w)RY (2t"E9 FB xʡV 09rnI=vG1+{B'ڑn=(9ݨXI>-G/ޗq$-@2s9-^aCKڕg~I9!ߚܺil`R?l+o2(~~OAJ6j(4diE _P5 #d`gIqI:նݍU*~9a <’.= '!=iMbD-*bCIˬU=3}IcBD\ cy/b=zڋk͏^{46Ǩ#02qFu)WpD^L"c69k})0pUʼ3C#PqLjFIE5.tuI-fqH`s9tĮ<\rg)eid^a[]Rxf+: =|3).:Uvdt`x3S  e>LgN#ZwxatV J$=Zܼ}_}Ζg)H:@t̺Vyaи߸a7b˽ڪzf/:\=MVzz ZB.b `Pސ2)e=TR$\*q~T?s}.ALkk&As?&a R8d'**%SSGZ9, ԸؚwyN7^K&,D: Bڴxqk)=O4.K H$6-9P efoe鐈V Zbtݺ8ʈEz]#ˍIrͮ|VVpv#&/wUK'g 8R>n{u죹YxҠs[=*);cѣ7Z݆Zg rE>%>s4Ή\qsicDY4 !hhwe 2Gd $`s1,f<櫽8*pc$/Z"V s)q#7LubQK=m~yBGʾpAaނJj}̒*6Jt0ie'kB [7TV( 4;>j: {᠈㺞w=ZKL%5>E$I(xu<~2 .k }@!F5Y`^{2D^ࣘ #cLG{[uid= eIq؅[)r:$kI"# )^^ X:N2KN\JU|?ϣ:T>)հ!wGua1QUk9[}'p  =< /2z>ZAMA{%UބI5,pbd_h)Nc:`=PS51kAIU ,qTֺY%bM"+kVr izOs}b3%Ftt0\H8/  E%%WFr)'o|lV.l3x/efn- ""TAxH1O]?ESċ16𲘦괫J 3iHa-詚OD1;+.%l&dm l L95EBAs=vyYeӝ*,3#Ȇ\ N`Uiu>ak<58R`jgE|H) Y)&wt#1W?ߌPN̙3{zC*0 CrjMY؇,)'_Xɏ|I'o.ZRJaQzOo9f5v@MxتI?f6ؗH5B=OvmEun~ [bˤ; 'q!3\[Po 65a%y TQַ\\%6DxI5Lkl*yb#;ߠX_rn4,q*M>`BqZ/vNSpAAHCԵQ@,hfЀ"]x_[мKagYdUq Hmʣfime? =/>U~x.Q7ͱu2l6H53w,$d:^;9jBYz>Va 520c>|al>d{6*F2U/A]BA:q(*U9](-TM„SpR#62Nq$ c{%Vp oJJRr#Oq5C/lAXYo!DYx[Kj,m,Ftu mnDsh賂M߶``5'-xEyĎCSXAGnZ?| 68-O JINMJ h4]+s1)Tjzv2^)EctNK]uyՐx 9.t\xɿ^~mH] P=] ׊r\Et95B$j6"p~p5m9bA#$ I ZzP64-h)~K[RHq+SHv!S$|]W)4bYf|Ty[nHj8م|&Lp^^>}钡 ^A< Hݿ0d[`s풱DMAda+ёC4dV~[ bއm9QGXz*:u?y=b@U][9:wM:]$,SKyWgsW$bꟺ(ͳ/GŨ7l5]WƩ4[\9~#gy>88OaE]cνrZ#,;K*_1&&wܤK̴N?_$OI;lyH:7;IԮ*}Z119,iu:11D[ֹz+HB<$q cQt:؏ EiY=m'^EbӜEKsE/H1F)"I$lx憄&NsțzbBko|pU냇? evަxWGEdd5be~(NLh[ZDXk9 bnmi0hnȫ>K7(>tQI,e{H3j U6͡8w /)4ƉAF i)jX?eF?dyby~d:Ta*5wnđz&/yz(nNq,6/Aq5L-mOP"Lh K Eۄmsneτy* +lRܣ#M=9jq1|sL7sNMO"Hn4rLE"N8U;~w,Q {)nFD׮&^\f0˒Ii%3#'ROc#-9w澑g'3rwa:i{'crg(e„)ifHklZԶo53T "KrN ~z"fDZӡzQ ,/YiK?6 GHHW6H|%*!D$Ie+W ش{L6joVACHe$qq\|ǔC5* \V Ak#_8D4C')4cGx1" dL$ ۫2B{ӌ˘fZ}0^U#=:.N4=!+TA'⇶`@y}#Jjxʋ爰yjTbE1,&|Ms ͓~V_xlQv\ݲ J)ݮRsTMjCO1 l8r3Ä=28jt9 V%Sd W%ba艋SJ' F5 $MSҀ */Mae_u7Cm3 o|k`d~t0t:Y%wlrs٪xicCc!iyEYC9ip኉+g3 @ C,g;69ܑ^#\x6eõM)ɽQ!}x_Q{7Vu:mw0 PEś+=LY^Tt0j-9%N vDI ֹHJbwz-.%{Yҟ2^ܓ}}!Pv)!ec`!|68-dr<4؛[7P5FA]r "$loN}٠QY]` 2gJIamZK޼܌wGp#T3BH -ؑ52ih_Ӕ-Zeg0ƎQNKwи5GXM>IJs^0354{_*MDb@P’^N=)̱j.d1x S#OޡfW1I(3,H\dEϾQDҗPa]Pz~e\6IIFlŎ1 2𿮁cm$}&S{+P;9[`98CqRqe-^<+̖ v]ln'DteR%2seoȫPӨLIf]-Caj.T&לL w'|CXzѮjE.GyN |G.vi[ZrpwCREڱ3p{upGv6Pv1 >Qj=y"hlz$>⨬usxpq*,ymG u'#<o#<}p>yCec4/~_J%!Zm"e>:cW۞vL *uRՖd^e.+>5H<8lezo^Bhaq}51?2b;<4F$ĮdL02qIǦRXNj )|g=( qk6N+@>Y ZpL,K2ҤdKЪ}5"Ejh9+4&!j)˄ARaR(2ִ8jv;S.*~wU|`wڏW UJU=X&ѡCQP } "›2[lksD{Xv@QC4dJb\cfiQ㝣pAkx' ר m}Qɔ<,p7VTbjk#=#.ڬdW&oMjg'W/-:(7?hKhܐM6)sx!#<G$Hbfw%.xY m {?vC`Rd.KUvz^s,6v|A|~*,'pF 0Tuz6~ y J1GRshȌl}_gx Mem 8)'|F$/[Z`G'kfK y$|c&Ͱ>֌4Db~ҝ()dWV#s!iB4S$C=vP 4&VU"xQm&q1k !lhv;@SުP9MTUUaA 舵n=Co߆퍜ӼdQgj 'eW?[tn"e!Aǘt߈gğ Ńbtk2]Jv@5L!K኷>LuqRÜ7WM($̩ $Vx fQU <~W+B[Ie Vv`)]_=^= gu3R=z!?N$n$hR{ßC&3vXaLO=_Z{SIɻO/Uܽݤ0ƥuk.f`!eR. ȕdf%!`}\B+|aqwp>^`oQDJ!,pgٳW@e3hΆz[cu[5/< cӭ =}qS{5t3.mq>pR?^k؁o{uU~]PyP2cVB=zs7!ΐ>)WR@ھ @to+u߂=Yrd\FsX_9ȟFpHTiȅNSFW_ͦr%Yo0~G(f-}ެkS3mp׺(/aߨ|0("x=l^ j9HC/^VCLy}>Lu]7hץ&R0K ʸv=7A[(S\AR7*,8UKTSGu26R 3ބ[LNL4GiܕHA4k50=Q~;&%kIO9%5+7[Ox[)|MB0Jjә-J[1_M$' F.5%uPʱ`ebyf|]ʬH^ӿ!e4WӦ#7 9HAn|dNF/! c_qm#Gvv -)(ס_%PҏuaQ*C!}N%ֱbHc# T8 4C HIѾ'`hB#n)JǴ[`. 9)lwh<4tGN틗 n͹v% %˖ jZ!&xϠ8c(4j_~˕`Wcڷ@& .+,]Ϟ;+ݗ̰]٦'Ea7o8nz=C>$6}eN?WBڙͰ` ף4»7#.n09kWazkn/UaGPB$yG-.;+ڈ~hYJ~oVQ{[US;]w'LvXo|6MF A߫~-==Ӄ[٦h<=plZXhXNRnu"Pqe㐎`TbUA(OdP4Ghnrjd{FB0g-WmFO`H.%9_G#EgH1GRrzpf4Pay1PUk@h:O }0p|m^ݸqD,b"NYrl9)LUi-[^)@$@y=YR1zWAlK#Z"g.i0"9"CD&mWB--6mCIK8vi=H(Ssc8h[ ]Pߞ2b,iL!ۤӣuY;*W[!Sˤj23' pZyD&*[l6:os)qErI7;,4%sSHK03]]A&XlR(_\Th+! FՂz8-8ܰz221ޔZ_;FO C?WT7YRT, [2^#lnJ E9(n6*y6ޝsk6>:[ >*-(jH£Mgۘ_ >4،ozHbױ]?569ʲ_bHD-a树L'9;:,V:Z}C2mݫX;HVHf)x,f\h}<"~ #<ΞAF?r|T@*Epck7!RD;8,Y6X仝l7S5=奖9M6Ȑ3>s/#l?SS]񃂥dw&H1p? TkTLgU7U.lqQxifsq{IvZ~~1/6Qg`sdp_oy1Th얕B%DVg*1N4to KA&)}f mm\΄aL8NT* @sDҽvY.V#@:_{OOS$rwHE HeRS("q[bڼ"؝7jbDyIQ*vf29ՇhUO&һ)C f@oDD@Ҿ/ܶxkڎuL hP1a-7b## KJ)(CRE Φ \ca?ɒ=)BH\m-&CY p 'Խ*sCczdU~z7t2;$fiI-ˬf:ӗ狀O]ӻFbMhx>#~S<KKmG\eB.aVϮ#WbUz]+r=Hq|,Yƶː%^,Mf[x!]PUQ|z!Xt[ë-UP~kO%y\AGt1=谸`u+a}s.ABv +`lE)B!+r4(֏\xx.Esmp5gCn㗿^,zdNrb%=O ŁV_N̼4ShA2['G=Q An`>p8/4n^ -b`A : _+7ĮLR@v &)m10/9Ra-icsA-IG4.$д"-k@Ɨk8H&u{yڨf[TS> >@"Ԡƭ+9vɞP2oreO~=6+Pn m\MV2jW(2<< C 'tWEɊI#ɞRRy>45 J/44Jd7I8|hDQLw9 *yZ+i%99yiA!ך2ͩ? FG/ xʘAʉ\ʒ78=XSk3cWc4ȩivE·M3ٖ[8٭dGʼnabo~ꆼ2!5t0+c?tҖhaHynP6 ]gU&мDž`UйBdnJn7 ՘d\KUāY@5jVj++mtxAJ.xya7n3hs>9fٽ XK`& txvAHf*x@/) l]|[Vpwp ":ukD$g|r݋uфơiBT|o] ;Z, Ը^2oî> 3(,nY|H9}1c ,&r.r]̩@&`}R {WjRTذoaB_ށv1^_!(RZ?r*$˯~~o &7((#ehSLLbap_ 7P89hѝ'!L@FӼpf,3 8FSVhq :;9uQ`Ӻnʱ6Ϥ1BpDlLV^raի2P_e˞}=-[vXK*cL3mMJ*!|":PǥC(34:'5n8||op%WF=8h 읗F=xʤPTIZ8+RCC Vjsf;~ueݷX7]r"x& WO[mba̍p6$`痗e{zӘyW:<' Z`]P=K- 7:nǧș*\WPRK! U|ٴRHA9o!DzGK8,m, U/{Kڞt.4 }맼bBojD4,KO^f~[ +a}dޥTP7x[`#Ĝ*߲#F 瑤-ӿ|xuwu^22*CR嬩y;,WJ#cvsݫgWĕfClVu]k!@J>k5覷 E[5-_JƮ _c_X9(9R;Fi➡XGQ#bR8\/7ňLqyDgLB9,m0`iC#Cov}ˢa< 8x0}D6)8BYh2vxvFځfq!i]{Kt8!G. SoWt1c'"Z:1:8񆶃/i7V9ʲՙ:`GطXư&73iGg*oqC}sD6Nx#uEWS!m|j0Ntf6p}X2 =58$qڇL<%ŜYr'hPiRN!ʛ8s8L.X.tJ{yS̤-T_TqȐQd46& ЧEp{TR8s)D0XކR?4U|03oGvas_0_;9Qo%9FoǸ'Дk)Pw>veZy) |O* 韗x Ix=ؔ\hԟ.?;Kxeo9hU 9 XdH""܃6JyGP9Zl %G;4b ᒵV$I)n(%] bǎHL9mWٕ  ŁTgJ.QyB4S{(dC'!N@b h8oD9M}JKgzm62y9:"0 dda7MGtBy;|%l*luJlg]jCofzRj*(j+Q6:W}J2-D"Nv84zT?cɵK v̔^+&2dk-GE9X㼕m^jʣ"5 9gCsd}qMLvd4Wac,%kx=2l~z xNwYtBK0V6_ H ]5[!`)GUsEO<7JE- 4Ԛ*j#sg?y֐&󣒎 X%&APEiݝc(k<:GK U GVDyj6G6]v w,*n*|o P[~UYS>__A|iK%D>Iǝ6ٔs`E vy4]ߏȑO Z˾"&$1 (FuIm_R\:69<=yX#>Mպd?%YreFVN]>VdS_("yNk> %0h}7α5&%C:,wP@rqy8)iͅ#m&ߗ}l&X&ꗑM\J2hP&ڒ2F@Ze [ɇo˝.]ҤTѱ6+=Ď qB|QF{`$ kϺ4 gL~p޹61\[7(H"pdұ6l҇ 7@umƚ` #(禖vs jsۜ^-?cAi܇7ƯaC^VO5`+5n!l %o d+] @4+hDŽ1ӚJ1-\#/~D>w&ehkR D" HZeRIv0AϏuq9T%j^cOҩU8MbYG#ԕOV1C|J $|J Jviac+>8u aR~w'[\'ФV1X*.l'H#7rьlS#eaB:Fa T0] !NrT ̕dsK Ú Bfp8 j--F8>` ; 2 ;J`P!Hh|.!"CwM :wM2fFF\-Ru;o d"vcҙMA+snW"!vIYy۰X'k@qM7BM͐^O 4_8)L8Ea&=N2 B0}qM{#uW=&SFpl@\1OX̐*ELZ#&f.4/Q^@37vuLWhֱ$|Dᔃ +16 QMNT±O~g7H`EvI먗Y.בb> 5&wDvZ1Quv7d -x B4z$LEF@-{fR_I?EA 5}"l`*1|e`rm(M;+JB}|Ľ{{hp =#5;@g@ioqPPx.\T"a%. ȓh=<B KDn3؉ujj =nKĄdo!鎃G:A܍+JrM2Q6gHвPa]@K#xm=qY,Vk7ȥ<5n +çTWŐ/E=p!ބ5RT M=(Y 6x ְR* Q1zEO(?(N_0_b\P/19Mc nY.6iϪ2;jTF)꼲[6r4" ˣtr ܾdI6usgӡSa&Gʉ.`ada2h$'***0f~[t"<eWO59-VGYRaް0J// .\Sm:6FlAy~N1S]2ٿ6I85SrHyGcV&/Uo>.|iUhT$;rpf|4T8(ݡZ^N>F]㸡#-~ $>s\HK_">"RB`zϪ`QC90sl0^Rech<4_t덴tg0_ߐ+C<N#:Oq֨)$Z3E{m=li ,쪗 q@h?'`HKyLNtY!raDʠd^޽_ Ec1N\SO |p-Bd:i7jfvc?4\W{JɷLȪORw Jt 3Zn$} YzVes˳3Gn,߀.[ @RЛZْ_bq'*nFռ7G#$OP{$^CPy=:|9E_<]6ii> QѩDW&x!UAm'^w3|UC^{vRB#> - iuQX-y Pzi ZxO$(R813c٭ Zy&?c v)}W ~"T!.(+ M oɠR 1o ьUz.ɶqWfO$4F8zK5w{whiy fg}{a?g8$~=&vԽ<1/tuu #{dc6} "-L1 3X5@8d$HA'{1j#v;I~mV~#rFEpGR '|[}rImJIz5cIoɡq쨪iD&5Y'G%(w$eʫ]ә4>Z٠H PR&oӽh.aBzqWt\oN=XrBJbеř . =HT EJZT_q3S_7_ lvKëJ}FZإaa6D\P3N}w_Zr.U 2lJp_t\b+;" f\6b:<]v V9βFVzT@>i͢?gfn J{gByy.L7Q!'MPTb+euI'MSz V\J/Qc5O.{\2ײc4M nxFBh];ADK 9Y&kŚ1wv(w)/MadgQfUblQL .󹯱i_Z|Xa&QHSң09X#N'<@1 GH0S xOIԯHq!'\/*rͱK; Vxq=&\oیi]>=k) 1ޯjO(] RE"3PP5P\X]ܙ$&%6kMz VcumgQJT-9a,CG6=3F]N1''"dݾ:{jG\$\NUYߞPvR[ESSc! !Q7n_w"6'٪5O=Ψ.&Nv5D"e/"2ZŽQ54;NSwstUf/Ʈ(]a]D"'8(t+ZJՌ&j]Kۅ  X:Z9y%'5c~8=.ք.]N[5I2Ov}ER\5OWͦQO{Sv K'Y]q`xAճ ,c hEUsdP{i&M=I^봇q]jvDrE_ʮ։Jf 4KH]'Cjqh0GXaX:AphرaG6ҜV?Zaneګe;\r1 `2cpY5r-O#-BR:-F_j#:C'j'xS*GRja.a~Av*7Bޗ߸ R~??Cu>M&dv hi`2çEi]f%"p,$Rr+qp}W)V}`yU|7I*%Yx5%bIYg+ѱ1g4b,Nhp@:% ՜BM1F4}]^g!x\-p&B%e=п(49^k^ mf YG*txONpI;`iL35 එW/.<낐R>Rxۻ-l^f>#|Lj$p >Z d~fcK `I^rslDb Ƒ@O8MQwrB9+gwB6r̞y%0.Dbϴ%'+ԓi4<" 1&ٝeU_\퐈7y@( /ڥB}q격#*>m6g;N (osQ<`/XV5uyK^Cn溳rc]41. z#u&V3ߵpОj}EPO@Qǜ@,Ȗ/ك>?DlbQH TffS#`ydÂzzK -j[?ȞS5֕@pu6f 7\e`c㰹.<.|ʹwC}qY~: 9unGh-HI{-rj{**ysZ0O;w U&+̒W9RqwN3ؤп]e ЂmZ%QmجsfN TH4+N1w7za^NHk_̲UKgM˦6 -j'8J+mE5RǓK=u"X'ұ|R%_&ʵvirJRUv'Pl{q&eS).-%Wiu$ QЍ~w4s\Q0̓vנ.r7#eX56AlhF^wЁpà n G}S^=JR Ѝ(>-W}!LYO׬YF$IU ;Lka[ݾ`jF5y)?#-r |  ?cBJdzm>S &lYf0ݹPpChӮaY>pzg~RM:͒BM_:KCA0R[hĴ +B3ʈA!0M$"Mrg-ɀzÒ㾎PbҠ ͑7ut 9g סߨo0,#\>6[hi} ;S |7нYJ#vbEqx8*D:zw k &X_;\eg  ޱ|nb\X j[93*<+fÎ΂q?ܿ9}&LM}Tp :e|/M3@0 G'9=Կy} B 0Jbc8U헂4TJܬZwW?do"AjT{JPw9Asrl@bOkmT Z^PJ.2+vTҗArk޳ǑAխ"#n@,0$8!"xVRV#bF5kb:c.zbQ99M3j*"{b6d֪ECz5y\XQDw cpȚ3\5'- '8J oUbڃţ[װ

<2m-s37^')3>cZvRb."|sa8vP[Yf@}]ۥ-*ȚMX~;Ho@ؒ렗ՆӶ-aڰ% w:+%yy] f湐Ţmv{:-h z'$@}+ƂgB\5pw^Cv50n\j(E&tQzcU!"g[1wׁcG?\k 3tJln苭 JMlcp7=wGsGόa|o5mRp)9&B Ў4 MO Lɚ6XUa|MGu|†Srqkm`U x>`ĥ QW ;k v,~em (dh5 TCIG#v*bS ՒBT̖H̢h9co lWϮ LTבy-1E il+`%L%!4׷BA`3e;I泑L rݡ_M!m& wAx ~\\}˲۩ј 78җQNj$.Uvg"+F7C:KxˈU}AP);%0"(vqS5u֙ ~*p~CU!_R{K&{M켱kI27 >()D0L2|:6zvct,[1{X,mHr+.Df'8 a㻸0G&͍7<ùJ'pl~_?EQ~k|y |UjGIU5?PN⾄|n,Ŕ7@ -r!Pq2aLVX qEId+XW]\Pc9KL!o0hk vqה6!.]$Ti-Btft|lOF ϧ7԰kWBaWWI5YҭDz?beKƓue[vqvm9fvVw'`UUጷ1K`{ɞX#𒙈^cK~ɲЛ{5f^>psm{SDXb3ziܴ=+{ Ebz.ـ__ \ If&5vln}&'n߭)83=mme}Íf0ya(\O4}j2._b+%Y?(  `Kߚe ZKq/?NM ҖI{7gp`aJ8[A/|HfxR^Tk7ť$G`lGooH* E#{EGY՜ тe(ՎZy\*Ez:0%JVju"`x zɎ#8jl6_0edΞ>p̛E\7wA7Bz8,bs@[?-2!\_ Yl])&HEa/=,ՓP#8:, {NåyoY0B>،I<oq"9S7âD3dfR ɴP+‘%'ˠ^(V?ˌns'û >SWrMۭc< XNݗ%.(\3o2w9Ez+OAjQ?]Y%ݎҰ;@7 !1p,Q2P>\W=UFoöL`2 E3& bkW;Bbv&b"X 8quLWIjG[jKxɫ 5i.pC~+ .v-Dp%&+"VCH6{LYV[J9dFe>1Aim]LK(9z$7cI+7(Ch䞈(z*`SfQ‡S(ſ6i , NU%7nP $ ;inڞho{Ih_~צMVoQ !7k zhzb]Mx{.7tHX}Ow=[z\Bv_}>qJc灃?n M ~7H<ڐC[! q뼷lKtmm';6+kgZ[ .GdzC*˛s-/1J4Å%+0}>=_Y<[s=+,UL^JSnDCT B#'6 fhZq8j!B^PV#4a&V۾pV3Tc b Rrnio 2]lG uHH^D;:LAȀٹ9`oԲgJz(fOĭ2J #tbȎGbNy^&R0ѝgy/ imx%ԧF"bdopd,N'Ɏ"Z៏j6ўFW~Z&.۫^`Kso(r:m S$5 uS@i 4 1G0Hb̦Ŧ<)~ȱW+T1BrCJԋ-,¡#}Kk 8FQQY˄"~trq^|ަL:OG;XzTK.Ÿ$Cw͙Iqb^:3DrtBFt  >{GZd.0?Ne0'OHz*C3teos N˱pbӘ4W>n>b|6pS&bsY߳_`a%S98I ,{h1^د.l2{U>%-bFE d㙈nYJd-%t{NTڮRbqބd:T;A.b$V xvĦk  :0h(D}I%0mZ~ mG2ΈzKނ*~7tculzh"\OrNي2P$ʹW +sfd82K"OQX~A$}~HE\U %\/(l-+?I,Z #=|N@\oǛ"QrIt%c&Tq:3XNvmQ{6ěuK8TVΜ".)0AP.5ֺ˴ɻ`4IcS+x(;/6TJMDن'e\n 'sF6B\F"F#rQukERG2-!Ǽfwƨ 5r+v~axZߴ Eՠ!*6~HFMG{"R^_K#G^y uF^y~OVD.9N[&d[4k+Iy2]\TFO/,+$nwq+mfu{AL o+w^t^ΛDxv )+yf0n ':!Gnr6,+n'8x3%H^-|ܖ!׎ðlMdGYW[IY]nR?g2J΅@GzcD[nY*7*D\~%U*-h8?9nL+ Ƨ$`X/ct~h-l/IX@,vrIA|gVhê`"?ǹ|[YLJ;RO2s0kv MDa -guGۯy^Hq:Ŝ5BġwMN_߲1ɜ˔ΙƳe[TrAP^r$˳o5o@mIЈqʡ¯S};u4z""MC'p9T'h}+(K|]g["fp&iXI]}b8%yH7@lLsRj-Mz 1r ̿ ƍ+8#&* p]L72t`?iǗP~ bkn6-5Lwif{kN9G{Hv֬ }|Y}w+qR3vwqc=Ob3df;W֧@g?PľVٸjHm?fU %pHAm-7*,OiE$ɫdS' Y{ܧuGT @⽁e?}y3\1{(2YlΒ)͡p uۅ_RVfD?}_"ܽvsRQo Ã9tL-{ }Fg|#$ɶai1mGTb'S$Wz7Zwk8+ Ix4f+`ʱ8恻 1-γ[@`iQ *T;{WZ > LnAZREey;CV'="++{>  Ij:?YUmhw4 l1]aXW"_Je)gNa Qo|[aʆ3N󊋮lnΘE2~Z <6?ag`o~y&ɣ!Zro\`} ۢӭ[ e-ʣytdsixHJ4i_i̐@l sNLe;\똫b*P"|&(*ۤ+[%ڸ%р'Z]C/X5ԇpǡU\0T0EUf^peUh@\lЂaN@?E^Bb!v | vaĢ|\$>qH?1hc5 9p6Tq1ђu_Τ{M ଔ8h/<$#d 7lWȳoRHLU餪S֧:sh~X?tB Ƿd)T^Ӭ덵KoqJ(m[zBv̪ ܯ&bh4DySk7F͐kԜ.4[Vස?1 [*c52Kӌ}C~ VB]Aӑ\MdQlY$܌=kHkJ2F*C49[V l.j!5qL 两)A(,A4){|$[7`Gsxz6P$iDICJ(B`MrVَ[L9qme=[W1{K[ۗx4'3Ien pлL}:b#H$㦃QIW<'f}]ҼK)eDhcвzN`*H999JXYt]~sj޸mk>*Ɣkn+e3*p1b#N;Y˕eh~?>*$$xt2р'=qIdߛj3c$Ќ+Mlaj5j#y-{U!̊j/(c6-Q j3ߡY/ː4/DE2燕VZo|oY-PȮ> .tQ1P0R(& y؂i"en/e{7+*5} LlUGU%3fe ح3uY:.6s 1gw35ߥhGD2 V N艱&qJk6$!)LZzeUN={ˡ}FQF}KO,.$?x,?ʀZe[Pf ,6uLdgL]J mf\wQ8ԉHIEN4-Pv)9ʈ]It]nqt*Ε`i[oA.DՕT%7nj7W$?p>dnFVŌ!p[K;yDa+ī5ӓ°+9ɗ B3+eΠm!S \ HYBU}RBXXCן#PSQ-F SΞvESDiiW6S2m>/OEs =Dc1 |?pa KV5qߥIz'k&bĭ㑚Y5&DT 5Ё]|]`r8%wO^76f#7)J 0ݯǙ̴`>ʡ>e?J,H0խF{]/2ϻ!itEcHL%Y2\}l d%&?l J@iB !*AMYN섚ޞ2g̀_:J] fCgDŽ-Ld=Ysʶ:1ȾIL9I-{qo,[dH&ݩ %G"Py4ؑSU3gqXmvƃ5Qm75NJqad^сV%c+z 1aW /^$+ͅ/}qV -B@XJiѸ uknp/hÏ!cr.U JQ4=ʪ@EG(v89: "dlYg~ߌ|JŹ bʥ/hA ْEăj3l IY[±i1w&foӼqWEfOMľ&;"%4 ̬5 ځ^(> ȭ?=gGl,u3(|~p0w ͑DHyLĩ~7Z Il'zdvM\m0; IunOFRUYG{^="De[mņ$%{])|~YP+?i_jD9Wnp kLi|45},p3b>^tYIYCqcYOw@B6<ϼfsh'i0g4Fv7 V %.jQ(!T6gOABMzM:PQ1t4XtLǡoDQ\c)2A k^hEȏo6)7i[hCv*JR>qEQ.N$Z"`keTgHGk9O@Ċ'ېlZ7;P눆`<+z'Gנh:϶?C}~UG+ S) }֛;$^p:&R?DT0{o^jn\mE|9t9Yiy0sE&@-r?/6K>.teJYmbwɆ'z66pag\Ox'{H0CީiM)#3FȚ)h^`:/jOxhRzV t(l}^P(opzO{^4*"k{t kRQ,WB^5)9*/1ʋ|x3ozF$I$xgVfmH"O,>Jߑ/PǬAepROO&հŰf4Օ'E%r冻p,<yYaYHnxmЈVߕO/6wtRuux9#RۉAd*qkdaxuZn).ɲg*g~] Kl㸭.g"h^_wvC '].F>S]og"OvZr^kK.%{5.͐L;atBtQM#ZnKzJܸr~V/ p%G(p`H v}Qd&=]!ӓZÒi'_=R_χ%FBO2$CSӏBK~}]|K:'?͋$0b0#` RQ!,?P͖&/Q&{"m 'iS)L̸}R`A Ea0Ǭo) FIL+7uɦKK䢎Z 5ݤnoh;#jzUPS-HY#Ԁ'ܾ>ZEZy%#h)+uδ;ͨlL!֪r1BĪЌ`C 'L\ٚcnɓš$I=ɰX)BKd̓1p2Z8A|ҌUso3 G&GqL| Ak(' bҿ`c}%=s^{?aY6tl4d -b^^bDdeë t\M2~XCTaeI1dR47S΂dDS/PzP[^sVSB?(1W.sq467{<۶Z3$:۪8K/B6~1I&_OL4P2Ȯv%\8eJXXK&A\DW|#b^dN~Q0  Vk b$|0RDnwN=֫ v`f*+(e,_9A<Ƣݺ9`Sט?t-2/pGdss#YzAO*} gLjNyjTwA5U?PTrdऒ¶2[1‹zFA3A;۸y=쓖\#7B٥^&5_J]& !|o0*/8u!1ϕ+5A0!oLd #Xۙ%IeِI 3HE!#{UG+w_ob!+Xۜ1R9܂\<;۫i98f(ek>,]ޫ&ʣ݄e&}\1t \* MF5UP0RWb\MS\kwdJV.Qj'<y=/r tnQlFpCgz3SHFO20Ląr8T% ٝ\NTSm3Y!x!B`0{lgE(J1*+{T)2Y*7RQW4Ȳ̥<n$|Vڋ$08ΠlƲ^ [p+XW15ݗg[詜Xi4!zѐM4X,a20-D|Epb0{;EK8۬w0(mPw2^ ST_Mcȿ BH'P/D@&3+rmo/=L>-#A:^rG F_XR7E/m82* Ťrj--a2Awֶ~w"^l 6zcJ/ #-H_3\,z.Β#X03mBz1K1D G4>n^'+-襂q53xF_jF}ˉIh3yl)Q|SD$C/P;Bb*l=])@.fh[Dt`RNDo <P$'Q}t8ua"ήTsr| H{h^qZ&bFwd [j i2J*¸ߓRN1fn۫>G4N|IlGF+DC](6dfP2Z0:*\GƏ3نF4')dE{a4hQ`C6!8UYeC8A '=N`~ӿhfp%Z╤>cQ \sxKO.a0~j=,Urͳk"ğCGnwS]O}~@U [gO[zBbgIH2< 7jd9ƜܰF`0vSv)֘"X4[5^j=۟zs`^hL9ns^{ iTnUA t^Ԯ7tP01'pltZZS( f/'|m6Da*Yd,b1;{{$kJ2Hf_ڰn)ႾhGm֗Ya_8Ng%҂HE9U-~׹7uȐWˊxĞAB<ԚE_e.Gx)}a#bʃ`ԧ+j<}x#XUh*y1pgk|9`^ˢLEm6Ipm!%aIzhDR_=r8֚p݇˻Gɱ;ICbbPM(l`e:=/A:#mƦtRM`z:Qh|*a5ޘC21c@r-mʬ@&#9'Z;Ծ*vP0{eH7cheI(E$ eGK( Q˰_<`X84C+OS_*#ܠ~P wݙ/K 5'OxwOydMG^#߷rCLgbZ&Hv֔lY ~kqf݂viYf55IpWohQX4<  z;̉]x[5;|{@g} j?;aR8 qqy\8A)ޠ#Al =g!\˒ge e/M_]ߣkAXpOmGuKs\!]lN]뗨ZE H#?5!z.^j) !F7H(ƕd3?EAgxtD^8S AK4Q˃7)vJfyrbUAxa06Փf.~qQEm|*I?t@BOMs] mF.5PyiwV 1wQ P99JW&%Qe9owI@5as4M v|QeU7yRǡT>]jjA1ji!n3fQw+тZRG2!Z? ,7EX# ual|VLwj,тbe]K`%Z, Lი;n[|]ju)870Rf(F jUYHOyܦACKw9<6J&=n}YNɦ}$|}t,R%:,NoY]lϏJ'9<69ࣵb#t, REXƕhj6nc9b/~, HaUi'LGҕ!vM R1 <.DvvwCۮW.0t鵢L['P2h|ˊ/5Z;<#ȚKN/>PZ{[ӗ,c*ʁS63oq gQx ;0aժ?+N\? :E9Ѓz9^)$dJ_C|C6Q|Wإ~IChFjP8)l?GlO$wWmb0mx_ M',l6ط XO aҿ5N߁w2R^Rݯl M̝cl-Mf j4;it6e;DX/iEBOF9TRS,W Jqv\(Ly|F IOjA`Gf~܇Z|k{ׁ *\RQU%pgY/F.DyaXHg!^VG5br4D=;%뭉p,-Q|V~nv9W5Go]G#LY*d!2S>ŦtrwwPZtbx\?dCXt9\pfs i>ewv(Y2l|x8+a;Ns I2b JtrxŃ]D}B%6>|ȳo=xR]֜E<b 35a([G9F cx uhVF;,$ ɉI嚔ɂW[]  zX/'C]!yq '2^X<@Iې0ci9<} aou9*8vӠ ^%q5TRh10x{UTF2o@_r@ *ִ y%sv;v nMpxYg"j6i_ ʡC?h Ƥ+ BSgz #%g#8?I|W;уĭZc6QcJwaE""՜ZFD pa9 ZJW8½t9ba)y;V{'2|'!}EGYm|2]9Qyhu\ /z|1NÌAXAryR1V PtggbjCYZ'@(İn$OВyX`Mt`78aW^v./++Zӈ2"X -c "|7[wk(CAc XcsZ{q.{Lc1jk54#iSei 6zH@/眏na+VìhSԒD\lm:o'c?2N36cϸ4\ P.Ȅ\|(HY L-)^8`ҿ뚜3 Ơ=/DFVZ_ =K;=vMe%%qQ&ȝl\hfx~Aɪ/.@P -χ9D F>yU޼+_]2n1t1#S̈G{xwr^eꟐm(ZCK~gP_kWZo2pDfA y fҞm{hC' -S=BV65E$!O2lԃGƝ |K FSS^(4}vgK#]-fRny!h8&oe#h zL1b9Ohu1B9"~ +z_bwB0#ʫee r$䘌Fq(rϜbxR1vW_vR8@ e2+,nH>oӻdz'TDg}`ZkUp%=:-9;~>C $3hj 5QyyM5YGwQZr&Kr"e5e-uH N LwdQK;JW(hpApxt?:Ak|l Ncw]G %Goѧw*>B L -2eInRT3Jk[}=| tREͷVkaG+iB I˪esRWqiŻ#!AUM㵥| )ؚ|R=XPD:VVHr UNX䯔0ʧDɩfP(c9LW[4@H)XZYΛC7{?# -TbWpo&'2 (?"* 1j>\=)/up!.?*5Hw@ł$I:ݳ'(͍6<-a‹YloNnq @,o%a_CNu~uiʯxuRłg*3Kmwu,oxSi8(LgPzAkY/'e$15:©|N:٢[h{Bg,ewY?a$!̊[3k95{Jqؤhf>J\?<Hf]W $m cO%T$h18./6sTgT|󅈐İw)`􈑂$?ңdJ ^?1 J<0%|` ۿt E-.#YAsu7*cR1^0/z_Q35$8HxJY85ìS`Jv2˶@&M?rM(xC^ʧl,=ϩa\*~%r@H~߁&?[B*&,f><O+^Wd֗,gBfPTv:XAn$6㱃6Y D5[lC4ں^1GpIQIѲ& oejbmY|NMզe2dBE|#rRI^BW*-nAw?H 奄ָ>E믰H|Z{=/@-};UE9^+,J줺l뷃zt] o^._dnvt9Jpŷ|%64@a%c ZqHDF-0^sTcw>zʁƅH䳩6z*GX=z 1,^9NjN&RP 3ƼjDd7U`OM%wd 794к7" xP.KŽzSjàarofAk_02'S5"J죲""T 54ǡgNX Uk |ny K2]{ȉ$MX\jG(p|7.+"Y%Wq(`(*B%ٯѳn;5' g??B 8Jq xng C>< ;9%E>Q IljAeD!:YFE4<(k1֪$ r>Xjavk,C5xAr"LZ{;3ڦ7wʱMFk|iê5qv Gn.oXSPoTC? 902uݹ1,xB F14&R,( ^u %J foMaĬ'E•T)f-t{av%-sl檏8y-!B,&?]ͺOCxW?+~SR:I3멄 8y՜2 .s1c}I֗~IC­ Z̙W "~{|H[ /40೮(LT%Dm$bOok'ItvS^OI phdJ[Y^^6AǫG ^{E+W;;l:92ogyD[9$DcgO:Ku9^;"x"^每PHO#0 Ժ(ŀL)MCG]nRQ!>},R߻~d'ILlvO쎗 ك:2:|9eN )N8 3GG\8-5(Qܗ%%F k?jdd/kfhg]W@mH.+Aфe`Gio9>y(1*]Уxb_E T&'A37h!i0 : >r z̃r4bAW7%+b(x̏ kyXC꼙LpHyHwTvj+tC0OGޑ-0n?J҆! \oSij~_; v5 {+P% )Vjp)}դVZY 0Ʊqd].֌HŘ(YD$mG^:;?rXXixɶn -"E;k~]=B:w.{p^,"='Wh^d5 EHyWژʾhtSCܞgpQo![0-ϕxkP:ͥ\ůuT5Q0 -J0foDyWRtqۿYÇ$6 =87MjOsdtZ2&!S[n*ހ mJ" 9uU}Җ`19U٨cރʵ$ؒFl[:w) 8jɘ- Tِѩ#.=LP5(kgY# mJx\: _Sxkg%IF"ۿp⬏l͛brk9(U<soHDH9SSO˾?Hr%DuvI=ko(_Ix 3&̊¼`9:2Y&+A-R@ ۪N }O{n?V$_S kYTϹL鋓U]M͉Nm|fZlL& pC:x{GY4J X }*1L 'FW|7!0[ҩ8ٳ&Ϭ$~8 YeYB8$mfOzǯRt/*ࠧ8'B!C ] ON ./<bA1};Z/lǑ{߂m&ZN'!@Y)Cmay'Ԝ%]Y> |xk;z"_腜Q`q{ec>8ˎA-G@F ,&TV:&:|?=m![ڎލm,oZjzP pY{YfQf%Q?cqb)2\`، )-mS@" r/{Ia}T`~}g驋h @k_HĀ\ll#&I6hS@ Ҽ4u1OkB~&^M&9*8=]pz %gI\0PVE'؛J0oOdywU(CG+`if> UNf_C7@R)6CYG`_in^)hh-U䛟4~+QA"h:/=F?[b拷@29HK;Qe2&+IlJP m<6 ʑr}̲Y͞v8V yqLWU _#خ1*=ZV{YSzfSU`0<K$:j +pCS/|⚇'ϴ#_**RmxK >Jj:gޛ=lLH-o)k&AJKn:ZES{EuU:(nħ .leTFz!KNhaxXN'+#%['+|6O%᝿NG~-Q)בi `>x!ts@Ԫ :dgS!ډc;(uU7jB1q=W[n[Ȃ˽sLB)4ƋL@Oas{EJwbu_l7AYf"J[( Wd%`ŋĕ(M? }7#٪8~ޞ _BpMt1k-/{59b6!Reoބl+*էq,{pex'Zag. N*^,V_(8颭{K#0p}]Ȅhv]JFBPߴ-/w/~IYJLHb~LSoI;N$է`}4k*_1FL@K:GaUs>hX|+*ˣ;9CB[6h9U}#`tIRpd&R(#ː8~>bdψ8i@~? #eeA-0#{8*fi۬NO|bZO[{GiS4u%R!wRj+}>3*BE<=r~CUˆ+ gEDq@ʻxnpa8Q+CtAX?, #-WQ݅8Ѓ:7{Ss`:r\ KzOF0V i%q] K?/~.zFuhaL|vtCSMѪ_|Vp&2kpVd9Nk pmpڕRAI j]>hйF&2N]ˉ6 (մi(#2[1aXRͰr5NV+w\[}c`]}vQҵnrJ N  ;}IA^x[)^B;Ǜ+ŭXx?V 9\۷ѹҹtq3k?C jk`w,e) j&Y)+v!ظV«9vWOT"WQIQzKf=H:~8fvl`ħ"L2W`tRwZ'Z&]7Iiqlm yH>UciPY7⬢iJL2}tb[Ӄ<[KCkwT 3[Ѡw1h8jRrWS{YuԢ9+?V)K-j׈8^2I$ɈKRnG .g,TSHrքfTAu'2v\ʭ^Uqr s NOښ҅MNBptz7 KO*,E->qQMf+L4rtB^Z&f>$Sj>Z& {: G3 _ii_pqĥǼ 6%@/K۪wg1keYxY RF9/v-B9ʟh' )T.z4kjJ*/ڍESJ09<ıetAy_= خq&H, \@D=A[ub|+PД };"_0 ﵋ H2@!`ա؀݈ޚ pUV|P@;_Y <& -Xu[ R+n &GS^v3$#'dFrŽ^A5?!m QVrNKg6iy#1e^N#K^t)&{à8?~&FT93-ɃPԛ۩Aj' +~%l.:?.'G22=w5~Z?&N>EbzlAh.ɌFrNDoQ\rGpi񗒑8qr,\62`PBb7^(qɋC.6[ёilHR)?_Sp9LT O V'R/py9O>D)K#`F;U Qu&dXF>^au[/|y9 !MɎT5wj.=,`xaSVi#e4)MOa-M%&yBM3Wh?k`p'r *\M= oI736b8%pgڠs/zALkVܑHtmI^nlsPvc2n9;#KGĉ@̹:A7 ^;tqN6Dꦏl5kJ@+ڈyv~ DvBfn-VZU+%<"㪞Zo!QK,8DH҆vABr4.emCxS̬R֔lcE ? ]Q@rװ0:lIjT^`H‘d9#ƈ$jlEk!DlAC_|x ^|uGLAIgIQO'>}o/NF'K SKhnTͬc( r 7CDq͵A-t}‹k҃\J%3%u?|{i\䴐E.-M> w ~Ҥ+vQ"_kKc˜>1D} 4G_0+"4"CȮ /^jh 6G @pk0Cp$-Ǐ5g늈@h1@[]` (;= %sM\]Oy/޶}cn $'YLllp;bMy?(u7yԿAfXKX=`03[2h- -YT,M#  C*ͩb UorܦvIJ~{ᷲKFѠާզU}Nx!`_ӏ`_ ڐ.sa_9.]~N 'ߘPw5Y ߈0eDW XFy~/ ?-Hk%kțceO5e,x`c&4e;lȜkgY./Y8Mk 1zx+gX'ߞ莊7} ` q݉pgGsqV4` |HnC !>Uq)@ίk}Yk|J/T 5[6KF@33 z zju͍FU)^̧4(aA ^bp:Bȏ[p<>3g,u,HU{ISE -[q^GuSDX 6Pfh@~qe`L>PTa9 $=ER+ݣ2J6iܒ~ mD(S](]0G]hsaDU7+wܸ.4/K}x]dRPPz FSvHd8CVR?yX;x,izAuǔ^({Ʌέn#VLV!sg{]t/k/WZ.dv1;=lXm.T}\OջOC/tFɀHզ"T SΓUӋY5] ;[$?Bp&Ĵ7!NMa;AH}J2L"-y 4(@ ٔ wcY*#}Z8P69\+Seqx c3ETx~!gjwV/bD.>@p w6H#m OQ}%V5wHyM@E6~%>_j.r4mGrN/W঺th7++tPWvЮ#Y} A|fHPxxՒ7p|VSBli7~*dT7~G3p|d x013%gS8p4T}a$tצ(t W0{%m8̥aR" !^]UPԯKApVZ{&PŘz(m~/% B'N:"^J/([i SV*4A:JiOn8!/B| e{ʼ;Y5^44~Rr UtP8v,] {z̓æU^;_Hp)wy*IZ9b]jDق -$M#i`$"D!~_(%iq(vݐ5 6~f@_eA`M^\>FZY.d )co'KaBMi;E$pl6gx0_IjY1-  3osMT,8RQzo]{<| (GޚVИiSt=ǶslФ| nLu̧ןŭl=cLjQU}E~=_i!o~b{ӞzA ixAPtbPXv٤&/:y\ߩ&2MQZlYߝ& -]U,_zE.#nn峳|b~~SX2w˱07|qVBKj렶vNf?? },ΤD.Ptܝ_U8psAh^3|=tlu)=jkaFN窆* jcL8AI!a&0XOq%@7h/Yګ: 7Zr±bLĆP +9G(ivM@C݇6:k)'ȿ gvkn63ȝN)fH(lT/A}(9`oYs*s]Je_5Qa5~ `/OM<3J'geٌ~m-a&t4nT ֫)Bd$|5s+Cƴ40V6ZazU4G=zWgq0,ȱq4&Ļ0>JYzrBXy;9)[nYXh IV睥ɫ{&Dl1'%f݆͏%["KE8ޖ L8^σkME^k]av_88ydG=uMc \d $6x̂p'ؽeQ|"R6ႲK~A:bnUޘNP'_FIĖ`-I [RXYTU~a]7[˓x9HQ NX H}1Lܢ-jög֨/o~FIF%N>Rh2 T_ݕM{C+;|&VG]iE\>k Lf>Pʗ/(v˯=Sx0﹆uoͯw0-)rրl#Ge"=tUWBQ3`!(i Hݞ@}~5G ~.j'*Fl'2^\P!2ab>>y.n\yOm-qVl,Ѩ?Dw2%bG` U!IPq^s`z0X;a}crhbuJcȷ/DZ`衆M4?;B)9d\R1. dE1;,pSRւ'x>y0hϊѣfi`t%^X6S }D5/yXG|ѩijþp U^'#_C _I \^B_Vʗ?C8K"Wcme1n| - ͛(q΍x$)rdDrwKD+~fV=Ǥd!Sk;@׀E'ġ觥Hh6}s[ dZRvrXVHgEԥYs8^{5\aT0H zTfyۄ5R>@Z-gm&ʠ)WYj*l"-U O,i \Gz.qܽe7%1W/KbHi 'HNKd Um8$ ǦXd 䢖ClggN=t=zo ::Bw:tDQ߾7TYTaFMR矿nA\Ot]  +#n_}ëU)`:hi6<gnacqW+krk! TZ ll1bnҫ%hnd5=uSf\U2iȔq=4 džrnn7zJ*,2cPܴ>\%c BNm>uz^}-2  aiu5AEJpV!{VZ((9ӽ-+9C ^dQ,3#Ī}zєgtKzrZ'Y2y\߶-\< њk?N1%uSã :302ӓG\|'wt]wQijh1F'=~jVZy;DC7+z/HeϜIDcN;0,LY_T"UC @ "޺,R$nK*Va:%^}Pt;l()C8G%E,P̌?8R'MFLAK.eQbW©LB/-,{vC&??)y*2qrEI_n$Gb\5FI;m{]%tNC +FXhwѩWIO%XwJ1\aNFY/&Ʉ!׻NPnCW$s!م}~p h4$2z^Z˃k'dRÉu=w53 oaGIa6m&Êv:yԙæ8/"j<ǵBJ?q*Kmg-;L7^ϰNIr8`%U?aSAWyL(>蘽 W:*ہIVl}9дSL[>GTֻm %7<`rз'd10^?ߜ׳no|$sW5PCoKp_\'DO4 AC#/06v#V1uޝ w~c,#&-W:",gKK^lav{'7.B`[=U j쓯$`O @UZɾU*yj\RbF %yڿᕊRFMѤ]z(a5)%.@G C =hhAć7Mһ|~ٯsó.15d8"1>s#54Ŏ$gq c q KDGlnX:so:W-]rxzz$sr iPz_B7,#[L,&K ?m>eG7c=aÉD/xllc>:/8 *>V~ ˁkP񬔗}lu}D񴔶Xw k\9*6K"rC+p,W~K|e$|$ކ ͌,׭܊:)&Z׭7 &n:c|OJM=:$tgY8 9,QwCAz;rՀ x~8A+7퟈EcgM"y{rd:':zeh륶4 25L*+0F ̌/_5r`vzlg$j4Pu9ץM[1wqR$s">}̤dojvC@Tqx6~Xۚm'Zjw}o@V2/S=od/{f͉$ [4>A&ۉ 涞QowAY˿;HM%˽ ӯ0%, .=>BblfĴޫjPcj@HM]G%vCu6a{K܃Tzqw\lHb7?Vt|1&QP;41Rp1G8_nN$s0>">8;UY|Δζ^̈́Xd^#5])G:wH3A˦KQ|f,gz,ex"ؖ޽E8a'|r#9-0+Mgt6jm1!2Ǹ.'[)6#HRBXz'DP׈. i[J 'rhby M$p-)jzs:4>Ϙ%?5: *5V<Ŕr|[~tjj%%;B2XƌId?&DMC2^ ND [p!8+w: H>R6(0 M)Xڝ1?=@ !E+B-,lSlY%hB9"*%Kw"ؿ̐VƯvgz,֞qϸS~DSAJ ZU.ߑn0 uAĖ^])d ,V)خʹ5~n8 aX~oP#WfP)Q ^B|ď\8Z{9'rQl@1[J<ƪY۬]u,ŹK/*oH9;4Ÿ%VX+NKd衄asDR'%s9(u[s)l $qme;*#L)B,7%ў܉ɯvž!h8Q0j/6@udD9a`g ~-32H]A ]XkVS/C4JBTu0I~Wmί#V~'Lc%aM&fItJCCpߝ*RH nJ]*,xZi iIM)c*N*EǃSei}S*goiJ*J9]&דw%h8X<ՋQ @s<,k%N˞F$+4k7;z@I R6ۑ~)c}hmljاT*0 Ёkɒ[ZOo"rpCkIәm: Év1Rxafe`XN4E/,7J?By;݁'~v~ۋ,::mkF>OBP&M)J0c%Y ^E8x6]P v򋌻^hS=+{:іQΗ ȋH~#vq}O)9쇵]+< 3iRRHk2Eclڵz9ncP5Ix<#3a"E;daz.hEi~1G:]#y5Jđ1$mԽ:(HY1c Y_ʑv&6װ5<3 _JܠMW*N I/4`-*I3zj2RYbipyo`+ ~4X9 ڽ Ji9Dd`⧏uFd-6!rn96sY~_q|7Is&6>d/v739cQoly \IX*>uU4 ~:ۇ}&%.DVÊ߫O&:2X f4<^a"1N<"^?&%9Hc8 Pf! >"9֗U˽RIesҥ3J,XDg%q6S%t,x:pOY9"0Y+7B9`31I`p;Y}tuf#H;@ɋ|?Ű _]Y3ڐ~_1{ܳ.N/]YnRz M``ŋN,b7(bIqmd|}F;Exi pNM8u,qIYCXC| /S*B\S2BI)%̞dEP6%JVv9YUj=Jm@~澠[D§gr d\9q$#vDOA5'V`DBD4`WbT.xPrwZgA!m^T),v)|!?wuH:ҧr ]KB0Qޛxy> fULYk `^4Z ̊5`mLfT3@m'!ðm]Wq1NSq2*jM;X* wԪItSH OD`cQc^Eb |/-wxr ґ!|@=/RFʺN80fQ3:n 'jORK^/X "&VdAP;]S :>d16R~gVJ\"h1-ĝ(یmȤ#?]X4s2SK`CKk#W7DKmt!Mc"kĮDl'bk+J?4XÜC}1 l~{*{'y)HةzC;v߇I)`PkΤh-rr#6`tL0h+.[\i1|Gs*_ewfQZ3?Tzrؐ/CiJ͡ uc6t[']p.JZ`ՒjT Ȟ1 v"6`A7>ȮW;>|φr%ÑͤUfB7yʪ!-TER%Gc߁Rڸ[Q)Yh-_*+ih7p}lw3)'i[.^z)ɉ$~ia=f ^)1)}#2&:a]F0T2lYGt.B6?-O"aejbjM6z }@ ?mr3]U`3+uIyKS/f0ٺGhKvnN_ >RIz[ ?\~ 5#L#THX2u!U$(BЗ ZSjq&m*(Lq:uSX4 c媦c9A<Q) ]mf=Zc Tt3::unT6g{OۼԔ*k_bAX"@jU `5 1pٳj㷐U[j4j28}·V. vT"0Hw5jt?3`gR1s7_9HEs(c:Hٚ ݊:F9Kk@V?˭r~rv!8 l‚Zw ^5X\zl=6C OTvy"aÈu uC*2"҈mf^"Yvڸ+Go N@*W]y2 5l%FՏݎbfJE#!ĩq&_z]@eQXcbXS4`:E6 -O@o>Iپڏ˃uTnӵB$ds]@Η}rG6[֛$kl# ͦs:*joEVSPhh6 (8*Eezݤ />AnðRSiӸ ?%}εۈfE3VdL WzGWQؤ&IB&W ;F r80C J[6͐i..@Aîc(vq}ǣs GaqZֵ99Y9i ~b$T^>*usNUNј)VBC>'K[ʹ+h8O MA,4>ͻDHPR^z; '6(WI,ˤ%5SǰfD3`73H4=KRB b[1ōu\)צ$.kO۞6,Wr▌e,f_+ J9Fx{+4/e@f\q,v3 h q(^}~dͳɾxGJ"Ru%@e0=&iBO9XZ}վ?V$fE.5QHe\η^Ɍ*&{!sO2*se R?M`q]tʠgl1_eVFf*3G0\Yx.A72{I.Bʡbl%`SEbD![XhU$bW嶬>WW>kpAV>{̥9Sj)}Ɩ$lO.Ǖ¶5O^ygȇ4q"x<=?Fv3铹oɰ|+'уrW ZFȕIUY?k2zWqTz~L! D҉B"tOW嘊\b"7/ՉX[2GfPGVo 5~iNjwVf\%TEjE.S:+Ft`5YEF,ظ% ^ꂏ_}U)nBbR@+: iӕN"sܑ^ bY#cǻzJq73Dx s+b6?gQkd]/P|19~i%WWSֱ30x7qNAY{VKLbi#I~?^Ztsl*T]+)u@mȫ*A۔wgy,Y10JN9BQ P YVu(-'@=2Rls3PٗOݍp̠^ ڥV h ?R1n~ -:TD:G&NsE$OVY2Z)zqBڌo7˃D ʲ ?R WvO5pz/Eck?qXI&6JpEEk ڸu 7Q`QFu^o^gr2#tU77P yP.6i&~cWy߽N}RByOkpYKmU!CP=;eЄY "1gdC6ojAf)KՉ 9s6[u =(T@L)JV6Mf wX5[$豐Ye {+ [*o:w#Q\%, BJ~÷6!"WGR, )UͳN I ӧP, 7S$3"FHIGr%|27{%/p 5$PȬK:XL!NDjȎijBڬ*"ru48Jiǁ$vǒT1LJ() rrڍ*"v%|R1yk?zkBmF'8Un0{ji9q.F-JВ_𤦆D?=0 )ˠ110@km<(5c(oD8WpE1j_ĶA.*餹Ƚ:;HSRdW\ġ*ƥ)X5Ǐ" <[ tc*l+]{>"YUB☖M1 AY@P^}iZC..S h.4|2YTla) l/-@ɹULiűL:KR.2KvN3,tM( A')Dw4%\( *h~3.ol\-C nkzfi/f E"[mGft(NIGW z!&$tA"%ss\p%u Z]0?\N\MyZ,j*3 KZd̵ M _ꄐ\z5 m:^ NJW-?5m0%5wu}˳W# [?y}UPD5;-g#sz[#rŭhKZ)e_}LMnulیP4iF'FuiXkG=gZlN>R.J_Yv6TGWv2Rv0MbH8oq|-fߕi\B }Ca^ߨJRLU"Jߚj61˙os u{d@s{o9ؤ0` trƐIqs,]B ;Oa]SZƭQRoVc|AHV7o}YDnld̠zФo4kҲHnFc'd+ fp1hm(t9l po޹3g EJNg`0j5=(Ǘ5<6am' \X>.?*>fNp+2`OVC>HO ,-f]c]XmEZ0E(j/ G L~b05o+ G!t0i1HfT{:%xݿi+;~y'A)07{=MO| Ig9_9s]];oiAfb)_u/XF_á6BVKlDSy.)g'(,]zQ0b+:$Q4R^ U˳[NM5Je\ :p~`sI { j5!fcrIڪރ]hq+}ℳjcǴo{ۑ+WFHkAc6kd8L,d*PO^ П?%ynCZ؜nڇ)&I/ fU?VKuVo T Ϣ7KUi;i]_+wxPpYpq(?^,+Ȏh<:-4~u?C#/AR 0J}QvjpAbSu+=`Q^Rђuy>Ai&Zl1 )_].]6m_.ё@ʏ͗uRqvQ ?Ѓ.emfâRĦ yX'>)鳄`b]?% I!&k٨gÈ#' Gty-j*eR]C%EWv%=mвӖivkL 躖 {oAq$n@|rBӅ f 2Z奓Ue>=Id&oc?yn8ٓ B;diTpy;b4ds®0X01d6`_xT.U ˪nsRVmS;hj#N0Rph SDwfQ NFK  p*k9x1\ 6Kz0ka_ IܤՖb#kb) }jesҭ-=R݅ Ka&LyԄlVIW6[]ݑPn_UstRc 9:[Ӟh k]jmK34I~ kb˲KeLVej @8)]Nݒc2wˬc)>fd!8%ͽOUQ;ESeso!Rֻswx=ϫ*ї$o#5VѴ{oEӠ*k ieQd7e&#b1Ǝdz`N5H d609Rx'Jb%oRfa+El߹zL4 ؞J-kd*xh:s^a?Z}&/Д|]s&m ,@Ʊ}zY 6`/%}55lj[s)7֭^4jϿR_ 9OE HȸW@Dj/n3xI ``{ \| @ó :Qy&Ye(DS!# ( [ɔh% 8o(@%[2ϨOViI5 a"הNzE82%&Et"EVߐj5r^+~}<% 1$JAɅ,:!Y'9ޟ߭]uU/#tP+793 ~ \G>΂7zk$|;EA6#;޶-_S&In>u771y,b"XHԳJf4Scu8\B3N' xoPp\4<9y t-1v ?סֵq5>m3@y3FVF$F>`p ̲2@N Q#h26Zh[26xP|>`3t2 5CM"'ھi7;{)چwp^iĵGep2uPs׃ HszU LY]Ō h/ƫr;bzWAI@aެC1Li{e`KE%h1Pb&DǶixZIQWm$Aн _(}wɆ9,xOmh5>pHM 3m[9TW+5e>-)ͮ<KHZBHn> :l*txlMޑ0p.3V)=a]eP͎f#/NC.B(%[VIzԓAU{,/p9߁->Tt5W=R%)kva&6Ѽl{0=d]S 86瑰;"bI3,!hq"}PQsA#{Y̐j#F2E3M^H& ܇5ϔ-]?؉hƲ珮 G"JŌtnj'ƫ@G;Lٸ#ac]k!2y ҉m8t-Evi F+X5 m _ϕf$ӱXGwmonbYG ob቉x?S3l[Rp}q0AGE!KCw[5wDtښlc 3U/M:Z {fV8smYbL7˽)F7U%=הXt"9o֞HT4(lvn8fpIN#Jc0@ϼs%!.Qo`Xxm"[sk* ɴ CYHJu786IUM!/Pm3g3'K/undQɑ|1;<`q3豝 1-K@ڰ" m:!Pj~U2>vS0YN%\x-&8͞/$SvD9b[MB+͗4~FQ{2 NjG7g<IyOd;J&ݷT]QFμ_{`6n g&łTMpQ>a U.B:&q7GZ֊r:olԥ>Fw&'{ȔoΨ;Ga" F|@yvbLο#^̥%60Y 2R$KzC݈YK0I@"RϠé% ñPE?>MM+tT<rHU'zÌS~3A0e6"qRBdߗ`mstTܩk]=})5$@<4N {Wky^m_$Ѝ1= ח MLVzz*[EK U^3:u?̜a#J ߰nf-}L,!4?|Fio\B/ZE oGK(,(/hi߿?M*;}2lLeG/{ON1GZP71{^jT%Fv.ȁD~}uuVf=Cd:q+S!\p "sޟC^Ԃz!,_7 ԾzTY3q;$_0 u2y,l(K&+OGMJN AFWeNr|Sx J,rz  "Qey%0kH'ɍ OqY>H"Y Gf_e0a'>.:<ςY1Xi_ U,^Mr.ڇN?{8,$/>{gEUN/`jUxà\N?/I^)iM-vawOprt`ӼB;-ܲeۘLhb5`e{iiQіRt=Կt44 X"f̮-@ߖ/gH$4>8C\;wW}i;亰؉c9N,5o3MĈ#`Ya L*B/k?e xß/'>g_Y-Iga X*h{D7'^A{d\7\(.gOt#jjg:ۖS#tW?AsV)wb̅Dmh-3%B\ -;4~w`v[}集&݌RCB Cy׬Qo˳e@?:$3-K"%zǾwp;vhcEgmM$@/KNzZBQBقqfc#٣ά i:SWD눘gwwY Bnv)b'MC!bI7Q'ij ;d?ڙaw?|S촗\̅5Y MpsJIt3]A#V''wQ8Ct*(=AAT}\Ah<,t\"j\_ApPAH}̙bO4Å MHRct)̜v)!ldrQ/ YyEkk:r6 "@7Bl"c315$4P*<G:X'+pfGi}6vB?cqy\'YM5KNeu@VHbĬ L}''/p Z1nN"jU{TyoԾ ,p&$o1}&nEގ؃*ʖ^i\f 2~hEwА+p/YNcwߒt7!So?ĤtD _rq4YӚw"8 IvP/ՎF:2 uoo$rQnј@=@@L\~%)c g;vy#d)yhf>}>2]}'Hٝ{scDRZk޸A@G2Տl h(ׄ}ʼryRfO\n&rYo9!P"#Q\Q->b7 &alfEnlErnFzܐ3|F -ZL19m=yI'O |˭֌w"}YQVɏN@r\\.)^M! $eTч vbQ (΍-I#VEjDBo6. ۙyQI.RkQ%:-_;Xhq Q "zDeX]4Αv 3w>+G.IWr{ IdrK2sQdKTL jԊ v>HuUq2ʌIz)b:[ Og S D @$GnGJzgpf 3CL~Wy5B HUZD{8aY?RYu SX ϰl,xac}zZ$??1(A^]݅U7ا]V3*I1*HFD *)#if}ymֿp&qO83tSx,L !JSJ8ϙߴ3oQUD:ՀAC]R@9pQQBfK0:B.}-8Q8nv\##6rt|{T371/>Qg@2 c}|X]X~ݨ$CJlc$URI%H<`ѲM,3MY5s7<;*#@ L䶣vVSCdrjP fǏ@YV{\_ʶAmЌeNu#i sjXÌ5"zt"fLG<btJNƽ5EC-vɧfp693QB󍾁Kڴ;1<~@%ۙ߰=ƿ(Qv;j0;Iz ov B5|.N08}Hf缁'!}0<%s=̙)Q}U˵a_}1_$4K |QCWXY5V 63^1L(K~LF.YNFqn!71;y}UF̲e ,3Ӏ)4a]:/k66VZkR%#8B{Ɂ;)랆,O>{ m9XrM* o'8NՅ$Ϫd}uOyդVDdTRiPQL%sG91HO>84$3 %04/[mZtϖw]!k!D0r/&E]m=ϑWzD2ѓBYܻn= hf˚6h mZ5) 7 (= 3)Un#J QPNy.wJLt|"Lg]qS1IEe-)wB>C:v8h*>QCLUv$v:naJU+.zqD2$ FUmU[d ,<'(t \Vc\kPl Ģ\{16By T@M{\9%sɟ0^uNli8jcMRWOȠQH<ܭfۍ̂I38ƻFoYw|8jT'H#NY iHu,E!4\/}}]]Wi 0$Z!j9YM"*v0#2 `3d4MBՏ^muN T*ԉݴ'A!dxfa5 _ϺBﻇ6 ѮvcnV *H- sLMKB 'hvv~@l@Vv S"_ 7k<'I="L (T QKʈΛ#W&@vG&e]e ̞,񷉨Ze{inl~@,TDˬ02@[ߗvV>JȝoT)Gwt;O\$?뇯G[RTGLB l7%*Ps|8$'&^F[W0^Za貨^MběDL8gd띓~yA#L0)`$vN[e2)x[+LN%)ț4tQu#|[$YFn$*I ^׃W?hy2f pܭ-·ƈpql4=EMt]NG ՓW4 a0?f # 魍eB_Cφ3\dChJ[w<㘪7ъ~<')cL:mn%*Tq ij}Npk\8y"_â%uáqo%yh??xZ;Fc4A*B,oYir\=ȅ/NP˪ƟfI=tk\?̇^B/#**Z Gi 4U%S rM6TUO,4wh1zfA+ޖT)u >L`4Aϔ(U] &eMS=-0gбD#?Go9vD1Pv-cw5' ԾM/QOv9ƥTib*]~&3aI('s5)k7Q|qu6?}NDab.j zzfUNNc2OP  N,j AL&V<b?f}U_ff6 U tI]Aq5>G=zx_9v}G m5`] 5Z^sEED8̺%0ICR-6=j+w` 7 7"pvoݫ/Q3({!%q#A#nv?Hv@xWkǂv?rz?;S@y_គZF r01 {Q*P7+.5_6_-z_ J%֠7зPm3AI @9s ת )$*6sr xw8hHQy h>>變H%XT=ggz#k;Q [)b8M)3u>#*D+4Rb+ZT̶icJu@2 O䶠}Uw,̺+/!K{"eGK>N8M~[uN6iw /4F'JyML՜dORIpR杀*)@L XIB[: J4\, #[& ]@3ްrwA#`Ò]\(6~>Q0|Ԣᯭj\faM܂KjoAqAK5on z5!:93a2etnE)EUFgyAwyUBtN&10 S)Ox/lI3]OI2 L4K?^e!~(z Z#"5W%E@/,mU,r(K5lSZ1 xB t[ʦI= v3h߂" (GM։oPhTGBW8_11-(‡J0XBͭaلƟHퟮ*Z9ȷA.#s!cmQE#\٪>Z/QD7{wrbfVC; mmm䙵 sZUAAN6(V֛e-|AMsM-bgHtU0mE$+v gZ<&9BW{VSؔv^"S]TREXPUXTk%RMPUev(:k0vU) VRyy^1!.ppmk%(-hBzuE1y07C(dqE*(h"isD(,q)qG4;&1M͈g{c>&cPYdZ.*i" H6QWѾ(oAg"3 ͋ R<ޥM{66` M˄U[3HjtZDie8 JeFԃ^*Qfq d-EK/^ƏaO݆-X S$FcM:@ X=9m8'p,_i踻+ =5MMJluu1 .)ZFc; jJK99#pj3/(joZӷZ&=\xj~ tA[~(4Vjmq'24f< gccMU[¼Mui춾H@չ:0-sF \Qq䛤R9͏AMUwz˂.591ahC9'XIc5Xo~_)';XM$ČVp4aY,,Orz-v9)+# W^frQUof;ߑ;l32JOiwÍq#f룱O.@ԮX%f&=Y-.s X୴Uj?ƥvHgzfեat~.04}ZFoױ4oJ&^Q%DD8js [E2S$8+bSlq@WDrs#_ӛ68VR5Kѿ+8vG#"6:W]wOX\;˪#+b|aO~u6Ãn'`7-Ɨ>J斂!;Ss|V)WwH eKzܧf!u#\BAh]uWʖߚr,0Obj F~$i+0Iljzc3H֕y k;w'}8KH F&5e/44]M>0![I5xF(uNXTVH9B N|%D{Ʋ`gMg!2@6@o]|9JJM"7bl>g3-"!:#uHM-Oߧ 9za >6j]ul};|ț /7Ȥo8-q-:ln)3>azE3b!AyXȅzF 1E3Қ)=6!RD[Z]Bu^%vBo2ʖJ#j+*-p\,LAY:e'3 x0S4`lU܌~Dv9^:'dܳo$si"ۛg dH=@d2m8뒡3CSAUb\XDQu_7& ۿF U8Vn6I2u p ,a˺ N R9"wS@4 F*2d/%<& 61wf\0nqLE!'9:CBW#l?c*éK(IiY=)sbFf*kIΡ@p&EEO \zc(Ny}czIncFlDY=K)[)aϵM;s?zzpIa``ޑL`֗Ic,l 5%AH(x&2b%OuK#<~x\F2AId~+KȦI&+2Qă`PBqId};_%X^p D-97PW"N 268rHvm ՃMq%!± T^l6P&* gʯLÉV`~HKpBFnU {"͙ NEt9;1 bO*GkE؁x"#}b63|T%TwteBAaKPYyǾ7`AX; E㴋ɈmeCqn[yomDSb!I ubՂrx}*eNYgM uM,9nJԉ^ˡ-mFUqhKkFnUtOT(D,/}-%jWq$~,HF? 1t?b@5-M iRI=6oK?ľq$7~ϕ": *\F\#\QT ku&A2)Y$UWF iT->]iE1U#^NtcގБUϬpIS,H{t0:8%)u4;߇|~3>l+ r} !=Ȃe4:ўYcFZV`U%tiϋۨ7/Ri펼lmfew׸(5޼ۿm V^oA汣G|[ifY Fvlآ\HBcB\AUٌEԿ>I@aH]otɹ{힜&[޶ By$nwal[:lp{st-mZPHRy# aM 0Ȩpu22 |Ѥy8X"P׷.kRmq^ YBv`sAWPXGK Gihʐ Hfr+`Z͈<.Tw+-ٕ]傲9eDcVbNm#D̬T0ϸTmnK(>^7 4pTUKqvp;GǙ lR+Q[R<)9{:ý[5P6b>/ɀCγ#i=Z{*xa1X /" ҾT9W!u/?$"0І*Y-{Ȧo4Ãԙmb~]vmํ\s҉O~2o7kN,Tz5a38aS ̛)t_c|PW=EdCiM[xػ} %)?L`_-8s8bEdxdW^(\hJNE7 CSRG8N?95|jst$6)I*,hmQ4u}59I֧$-; Ku$'$&p\nzk93~C-3l@)< {{K0w;} Cn=p u? %+[콼p+!RtKj"ي@*c $AS&Մ 3rVڟ$jʄu޵BH.AiEjY Sf # =ebW "K,:$f޶ѷ]ќĕp@'DZAVCh9i5O ō;^t!ӥ 9Eך B>Ջ: |5Me:+ش!2sj9.;f'h^7w'os@|0ʅ-7k2)D9<9kG譄51>$h6]#Xy;%+4XaXtdwvU0!,|!lpĠN"s d]/iMd4AWz ,ƪQ}74!F}:h+}D /Qcï?)a®P $ٵ{&<+bc\s?`f)Q> ӚL'j]JM½z ~}F co:lA9ܢbVG盤TԺHTp?;FQ8jBp}ns+w&0z= F|Q; NقGCUBV䫚z_FTag}C 鈕վ ߸nsV{ǣq0m{ ] Q0؞2`JځDE招OZ)mݡ5~[JK6Ozk|"Zܞ˟[̛*sHBs%G,0PĶm/#P74Ck Zn!KN ʚHكQUnH@ D%N9.95uom)燐>w/ӫ:QiꁂdڲJCi|,%;{" (HũYw@E]y=$/";-y/=)w'*vZ$N/[׭>nȕ J:te1NN^U&KC +4G~PH  nNCUP)a F!wXɌ-erMdvHcT(L)LtD RM9>:TVZt_1KN +fp#(;T1꼒b|0S! 5x86D\JY#_ʙgD& ,K%S8\j30WlCD#$+ zo UnQ-TKoMRd'֮(vtd5X!ʿc  NL27(B@$B(kyNlS:rLyp$Hn:[=^tN̑lE).ه ̖jUdsu$DִGbm&{xM~M2zAS6cBcP@}aS E?ap=CAΎfX<>y fh #Yd.tj44#b5GpX!}(B3 E{}!Iߝ#Iu*كo-ȖhRpր=a]@{y468 - }"AF[_,`i?8/f^ 5ظ&@#1:X\e+ifl3U'w=Aʹ"!Lokh dbU?#4z'>s= &nD'\ XZ F㧨|^^r;  8d܆=OjK ?Oemtr}; P,9EHK)'L% )*Y~m}kFu@ ke MK"J(TWwAlj h2nr/eyӎSS!8ߌ^:ggfKҜTMH,r`m_/T&&0`Ubh _T&7kV3 }!\,;IBN?]+{Z܀ m!-| oB.A8޻,S\ꚰ%t9N`*g'yTAx ~K(Ky'3شX~=4figFuQsHy VZTKnFg( hM>O1U=L)lGx1s ,@+&ݭm8-g?Jeɳ{!?-8e\PelǷ)U! 1D ؞I p!)WA`8?_gwHYwQ {]k7]NZ;ҸHx{{ ar)7[HNp?EM-@z !rV'̻6t.J8PZY*&FK'**%M-jz'6Fu\qhFZ8+gp#f9HVvfUWa%k8QI%0Gt'eMLXjYQ!gY@rzAm3JN;i }B'^A Ӹ0ןS4`쓢^Mhw+9_̂{vVX񯐢{nI<A<=,*4 :a< gL'rܸ 4܅6˾TWa$ts:%Z%"NL(E }kanZ,`xR$F䪒=$aq±/55}t۸32)5o2Z }]l';г%d $1#HXT^O(k_%l䤀7(گ B{"rCqrt' (m ;)X(m+eur:)A 3%X(b0N^^3(l1gd}<5J=N#ZeaB }m=\llhY)eT]ĚQ\zH6VW>ȷ_PHZo_RTe߅,2#Jt[>x{ӥęӜ6hq%H6:%$B"P03 -k;\e\ʐwq />Ji57.ы9jq,ݨ j QVZhYv S=]H6qec $4_ۀy>&h;جG*ø<KCŹ3R?#?bjA~8 ʶ\-] llqrh8=_'_T'M?|=U{n]M0&WR6^e2Q&>$D-ӽ&!a'_,#S&?1{'ZdHt%IAK1ƹ8v"Cu$:+u M>MYIV}'BbTƨN`6qU]Q{3sIh,ryj`txɆ@fs][ g9(\+">%oˊ2^lp?c=Yse^T|2w§ľMdUZ`3 $peC EEԿhfY]aIAnD{\;ZRefn䡉bqA x@\oi+<׳~40cN2OW*i*$^"0n@.r@ ={WvDf%Iu* ~i@;"U33 بofDLύb5u]>+DRHX㱜@@:-dc#P*a{3DP^HZڰ-5BLM#2k3Mg_l:OhuA$M" iE%e_rK qQIHîjEs:5@˒1%E}S-Gk4<KBF:v:9*o7;s3wǗIܜ16~h,q%17eYpK_-]p?rP8<(/,%Ď!cϝ&*$dS'=6$, #ĿҬFCKcF kKtǗyxon<m\p O:sh/Y4q`GX! {o `y8C,$Œ=wO`@xc4sK*i'Tc i8* q(G2OA#<%#a6; R o\OUUpҁrYŅ}lœ.5ZօHF= {Uk_ê{5iUJwf_wZ7tŸp(aW8Kѣ'pYA٬qhB*2aIb%7e7((P1V L™YV)}L /gº~5A󞤏Q<>K'0*wNq=i2ɸmG EbSJjss c( F.x6ݹ"p õAb{%vJCtqڪv+Ln^Aa4]$޽.9(\>GnK8ndIeʭOG{.|c3wO*Jh:b?̿38u;CL*D9u$SJ3Ob z)҇1ޚh}oo ~}cV,w:>qR-,%SS$ ; gQK&&'"׊t">Tܵ2?)Z>-co7.N+p_1*%Ύ ?^)R*婅L8G N{pSh3:]&,+[%fu>!p]p̆`p^uIc4l9r&UJ|ǁwJ}5K:Maxe L}75•hdz[j [V璑6H4ʕVyIջȠ k6+7Z ?s%MQR>՚]jdvm89K.к(@mˤmo'5z#lLQ=RRqֵ f&+G3-A' OXMm&(m-^I^5 NJIl!W^Ҿ]rk"qY|rJ[6)z\]4|*I[v͍j$A=: tK8=)7IS_=e/`Z,!/NC.;dk8@A7 :m` {W P~ AW3~TN z*K&%e zVDž~NMHvYR^he*/lJC|9BRL}-M3~C:V2^O^!x {-h2ݠIRUo02bQ1;]J'˛Qvu@V]|n 9ӹ~l ZOqf^\t}0&LmN,NZSŬ}W@^x-'%MpS QGBtdk -eg /߀uQ 5w)=.6HMúE/!S]ou}k+l²oVț$m_d?v%P7ng4;ѹP*c<2 T59f-Uk/!VAC/?{ۮvOlv$6RE_OAR"i?|ីES/ѻx}b=V[yxKyd2u^vag:Qf4dXYNvIDm||PwŤPs(޲`]QQ-%M-8>6qCxh-JPNVv92I4͇ƗY,d]B9`*R7/Nt>mTI{fӾ~!=ەB#UCPUzۡWjdc?u{DD9nB \q ۃ d(XU\j(JT [N-+?6Nؓl:bBk:5(I Mm6,1-/\2ӱmE\9?<Nj}ǥl]?3ԟSGuoJ^Ԣd|)s%SkA agj۝g9_~Gt,uسf:/)lJKѐv‚^Ճl,S\=0MLι/]=րjihiNZ 1OZX ? Ypl%bѦj.- ŚGe0 ,</Ovo8K'-;y7g,DgZ6NJ0bwXn3fe"Z&"2N᭹ ,jPR 'NH ĹM^A^k`{DR:M!' 'oCNvΞ^)i1]x$u٘Š~y}9](~^} klA7vЈMAf|&c5YtKlڱTtr^cwv#A[bHϾqoIBO}r+!.w]s:łitNF]h&tBleEFeV{lj,A!)t\d{_oo1t($Ѽs@&'(Jn}GɁoH32\F w 78Da&\` tl^w?pK!9@T͡eƨ2{^X,6'+SH 8= pJF"N H2?ϡNJ'+hzf%6gLzJMp!O^z4LCʞ@aq #L=v'u=>H(B7&aAyK.UdnRIw!_'#e D?xǺfe枛2Q2V\/iI4XH PՑܸǤ9͂`43`u`D媀xC$]rd_1 #$mt =*Y!g,0+˅>.-rBlS<MfT8a_e-K 4T#-EuJ;i8Õ^a)/qH^E?؆ f~Gp?Y)Y[ow/^Iv=2(SCw4n|Z+Ʃ}I/+)L~b{yhg5Mf!mۮ67^(Pل"|tjr8x#ps(@rkJyʬuM.L"$`!СU>^t(`sWI o ѾCɐHƽ\ꨴkcU:`g<;o#Q9)S'$jK(*=*>;%xCzgLIſˁr,h' JՈ[YSה Tm秇g* >%c,!`aaeI\§tz׼ zʖFRV \Vmngm۲8>)Gzjt-k]B [":&G(0['tBG0X_[`lGd;LL O ;_ W]# 4@'$dYt>ZEd"CHH;fY򠝊 ҼJ]]|?{\ӟs ~쮙ŖpHlm=zOMu.|_N`苋FK)."޼>je*$|mMoq5"40o?jqB`0YH!83EEU!AKRT qaqFJsi_x#Փ6^N겂,(o,+Az=;+#b\*1uf@y),,q`!^Jvd$n%BYkQmwRk̂G6iUW|y DL{ЈuL{􏖭9[LR0BЇI-YBYi61|6dÅ33-BʯdN"Pdg0qLWx<똰(]G`ʘƶ+MH7:]@ij҈2tDU5U;]X< ӀkP&- MP@!G)mY)jFlkQE![s* \/H-2sLI4?8Ḻ~ cF{Nϭ`&/Rb L)G1|Q]y1E(BD<ܣj!xS{H,2/CW| x+D3P?*9GmfNKbJ8r9^ O7=gdGO&Q}zYye:B[sm;W}]Rh6cyd#P.jaˤ ᛢ}&ȜGH|  PlٯMVryzoL9`#  KvA S;!cܓg0Ke{\\\q45"eCH>(O$fu$ '$XsFȾAƒC DB󏹠tݛjd{pKA&seC}CTT%q$shY !km2[]sx k7ʹ̱ZS1B96+/CW/R4VxlCdFwF*V8Od@+1"y@ڱdg>γ!)LihWe >qBj^XBE1? -5u+{xPQ /1(~ j[՜,! ,/hoa(`Ea~\ݢ8\Ǥ)<B.EA7O>02FU}x?̉Iܱ`EYm5*sV7FEL\;OzPuJI6m`WwBW=RVjV";M뿞~A΋D>1?(&g}Hʘ+0u^ ϙlcfiɦ$jw9Fy%8>\^B\X#sKS`O+ ȭlޚ06e&sŧ."@1x0:_9ȝH{\ b%dlѫ{QunñK Be]5V]pANc[fD' 45r :PW?\R'oItTɅ4nF/CDg?pt׻榽 hX\pJȔ]RD| ZT}bb_j"E} ThE&1v[q`~B=#l1 ̴hE9ϕJdhgaV_|3R4 3uRDqqpēye2W"qq@?Ga9EC^8&C#7|Jt=/2|@xà3?  {N-bec!xs GD?P8?$C_b)ilmxk ΍.jzW NB"{lSREr#J]j#=u 9S rGB5p}Z|JIg#:CJ6,鞿jc1ڨ?gÄՇ[ f(=ؒQf/\}[c"ηmWt7 ѱuAq-U{> r{[}(Σ<HbHG .y~ Y•)V ";?*I|جK9T?J>GCVm'׽ϴu8yc}90ڭߠIR #Q+lw4,ʪ鬒 _U։i^:0!#mj!4',]+qG ď%U$8p|xe=j.M앂k<QǙ+k/f'uɤaw=u<7*+hl7V("~?ޅ{3Wy !j.X9[> ?9Gez%11o% =%q`œ ^Xc~v| x˫K|{ջID0W0_ 0-gPH,ms*,5>Y`e@;Őw,>uqcO&,t^aoIKlcE]dcY{ƓT\"cKi{BB6űqvQZl6.\'BXU*G8{Q70YFZ]gݗ:%}u¡]JvY_^"^,q1VV" .fՊ *r^rx9~,ۉ ( XVkuifQM2T ?"eA+-l3{ρκs辽{'ތ$T/Y!A-!ܛ;Џsy0; 2.RnNЂm1''.㲤tޱU?Œ|ܫB0^$2(?= n %fuxP3r|D9#ʿ䆅w#)c0qxvL̆c(kO`a|Tt +8 qEpj]+ IɁݞRZ4 DFǹx#6.˜p*LvS8ضX׶qW.ZhFA?;t|V1jIt05Y9ŗzXy@$`HK5ghg uuWxMA&*3A0GxԴkc ] //$ C͆I;5[Ip{ N^ pOC:%G[cx "0ʶ%b P [,>-OZ2ݨp֊M :ՏCÒ44%uw6o0d9L` @a^I藣wÆ%7/=!UI(݌T!_qߦ ئHv_̼CMɂPHSuo6:V3Dy_l|+6^#+  K,PN_]bӁUz;$@^-NfϠ~t?YBXQ:*3[1-UMzޭݧDZAoUk~1^Oi3gUz0/{>{&=6b=Q\IW<=;>#8̍HP~HbF kv|,ς)lY>\>o`,2֦L:cF Ѯ1#I5VcV-'WTn@]>ji`d<0͈d= tqS\BB4+7;G<ۃY(#D/ɞt?,\;=t#BkW5 ]n5YO+q$710$S~)6V'Y9BT) xjt䷹>vmJ_ALhz78ݪo& & 3@9b.2 VT`7#ʠ/}.B5M*٩Hwv&&80/ A&ϝ G KO_y_=<59Mzǹuux˥ ؊ς؂R.~CB73qoxXJUFF8#ݝ& p~r_gDrRSCMɄzW~~1h]-E f"1̿oG}񳷠= |+ʱ EcQA(W}[zaj5GFM'c5-f@AJjA<|ڎDc0I].8m1U󶐋:?us9,eCU)%yɞ*ׯBdhf 3cbkEԺ9qVP2Ȳy\'Of<1QG*Nr> wl: 8!s]k!斟c*q?{k4Sj附ZVN)az zC.6Ts:ZQx>$HUWBy-јAOhwMӁ^D锪P2Z'Az vlM.34ʇD;}Ğ5ю` F=!xUBPF{[Jԑ`zR/V7"^@LzFTS!#\b7y{8:)Nh!:6F[ĞꎸbP^H֦fLoW!TWg.Sp F5mP4{)Tāt[.5f!"kj˗?坙EG̼+4WUAL.}|jc9`yNt}.;2 x jFgv6u_Y3vPi \^?2g9A@񚠅aEalM4j=@*CkZlNjW?GK& c pyB=*|μr.섛"Sfe&yN% C8)jHloGޡd%B)ow@;Qe-?[SPD@h͈1ۂL3yl6mB8}!h3bRgKloɞf'$NlV0 '$ntl) 3 ,+^N< DW^H7uSAr̕su}c/N~@A,\nd"hй#0,|KJwyra_X^l.=4F/;wa۠u$>H޼{;oWiy6󹴫NVM5eFUO, 4փ:>|J,{~!RP8̌/;phXEGЇon!-hf!h+p򫿈vs_Co}d Z Q7ú=:?K]k!AYy~ cĴ}OL/ u< B*$1jr[ü ayl%>-p/ ƄbR#Am]~XV,dVIcZ$p@Q7nH[/L-lw]h;/@︜rKS ;<\L[ q[9 MVY)VX/) {o둞E!v ,h3 Pk;+lNb^t!ߔQs!~Ͼ$9CF [ S |P:СhChʺk>M"}uJ Z㧗 5ubfiX yYdTu豈{[d{{/c¶T"uu ]l-r/5a%*Jl(X,XuylRRJ)S]BO1&Io62PcԐ,^o{Wsg?ѦeNוw\ӱon:J`pNءLtӺ&5M$jnh$o6*0<_V{ǚo*dzU|oy6o.ɜB^hR&fˬbI<_=!_TmږScfO.Ȧ&/~HS̖}QEAn\ͱƹyJo{mrL2n֎Bo<"B[)VHG͵bm~yӽeĚ(wFjJۥP4xOe%ƶyCJ! VL%Ln(%aC2\Q]W*GFvwL#Ԁ`dϹ?y|9AvjQ4)G"Denz0"{Z (أ8#8Pߌ4*VA39.x~s1q8C| o΀JvcoZ^ PW4}GIq5Zgo -6lK!ġ89lw/[R@nq6Bm QI7Y8fr;=֗W>(<˞ZNh=Mzr]2,n:.Z=NJsIjSmnPwn[ *P,/[ߞ2QuIN'hsm(SNZd];nI{$h' C0ԒGs7Uo۟eBgC7.t_(>:~[DYQ?|c@ϟXh6Ğ0 bhjH(+o-rG0 Ѣe%bt>.P%7f9YZV&ClFgSPY9A0myt2{=2eN?ɭޯIhފ:KηwJ7_i$OVB)@DžѸRK,"rYPLg8zW(dR[)DJh +V VvZi6^TS.50+׿qQ7ոG/#XP`; tx{w*IJn0Ǔ|%v_ge#jI=BS 5s 1JL^ƒ_S%g~6'XEUf8 1`HL}-hf-ţ B' 27b M}sF߁xX܂I]/)ܓk\X~ oר+6hS)ԕit 73 k_"k!0 ~ٔ_a'=&UŶ#Lød yNmrJKc+GfQitkGH.>Q4ͬ5 _S1FiNc09-b"a@7eIqq~r߫Fgl;y{ql^qWMsc|]1$S" AK Tґ)io5w=.Amu#:Ga\mb2n A[NI$n()˨SŠ(Y 9vM./ F{[0#;IFaB,^Uԧcn6mwftv^~ZR# lxC8\5i;~B8ٛ Sf†wjgEqWy̔Р]wHhor|FQ@VFHMV\[45fdy~ߓM*rqTS[Gg; :J.R ]`}E .)vD"A}[ ytQ]Ri.8ت1{tlP #Gm JAMe :4թA7a:P$e4 AP0t{R Z}ۤI[R|cf3W  3%61$soZ#wAX2Y;m } ͑awM72$b.8w^-ØGQ?oi8J._:RF07yҬΑ>!R4[]izGw)PsAV~PRNYKl9vHZ`YޥTWgD,?w&[Jh_ M[ݶ].ꢖFޅ{!Vl3)m2~ PdŬ=.`PN9t'9qc.գٮ9;-ڿd:|1 h1Dƴrg7꬘f[,deo:5#.#>wN(oNr.b9žӉ78i&;TV88Z?Ga>?+%?@jDk`fp66k_W^:^Cns:d)Ny ($0880yd`o'Fso$X79G(X}ҧ?`VF'6y^$yPGk&ddnkFWVS P="mrf#Vy@5Фj2m{FP "o2؀kܶ43u)gΆSk<$0ۉMw]b v"v?-71F,IV=7Crt9lqMR)u@nlW/[Q!(l1@#BwA+Kԋb[X&;? & CbȮ0M |FݜbCΫ6 bD<w!X6Z) ff1謋o*{/LsfoJv>p/ &6}wdM UK_ 0X*#B( 9ilH_x9cߚhuNN,Uk@i䔅YƺOXnU%"Q2Y&þ[1z_Vǥ IF3vUt&sG쐰F{(ks=kb-J[ )I$H<@DTzH+-8^l*; RqٴԏPI|T֮ݧ ,.&1TJosTA?ګ&4 CrǮ+Js.m€XwrzTH1` #K)|wױ8F8UR -}C+n$aO}՞1;/Ռ8-էϟ['nzw}#䢕ϥJ߫AkfR )S+MUJ3]4 rwj$x߶ڮ\k{(OME%ed>Š1ҝ?WZ&Gaڱ}ى/nHfΟ/k͢hUÛ.AABA1f Y"A>1ٷߕ8㢇;Zg}-@M?#on#{JNY=TI(Q0*>=K#zv3@9PtB5BV<+^xdŮ!Ca2T.gQ&g)ܰJjoNѼbxh+i/h eE`FfщT>ZI[ ]%nb8~1~_ivY7ye)0K.ApͺnhBֆZήb8X%+hx&\#Q dnv9ZPEBf A=;eR,#;9/7NV0(-Y޲[W M 攂2+L\DO*Iųx[JϞ˪A\&$SpMXV_P)+ ԋt9 F\<.:;~4+㰚 @#yvH 8uDʑ C}β"u$qrlӪ (a:RQaIrJ4(&'!b(9!ԲWW/v;Ov- %'~XLSC g゘ڔjvgU<0bŊGvhbX4&.B'#A782bUÚsVRl@KiS}%H49 zk"q֝/TO58 _ ߨ|aٷIɲK*:1,+ Kz Wb O " 7 qmuXEquﺣް.D&bA 2]xU+!ů3!MwѠ]K)W=+%wi_\RкY$Fj8 A+\ԟfǾLd׬iqO|[נ˪2jRV%s ca,JC?&,_1 ;6J%K^k#5O"`NH_sǽ:j.qz{a6(^{41M ?9mKysٽ?X]1Vrh:8kLh;O%Z0"[eŭ}ڂ`qiZ0Wƛm1ÅWe)/ni)ai䛇CCKYmdؘDp+/Vr*raQӣɴe [O(F˻1Iۜl&u@ƆDY zM<ņ|'CGҺ03骎k U+DN930] q~9rX- s68oجA">´!0((PZș+{"3z?!!tL ߹揤\uOD]#VJt'2ԿOxߚz| E'|\kC7UEM.Uz.f+m<%0d*G'3+Ih>WL?H,'>6ǧ7{~ag.]}BKgSt4g#nae=F w-s h=h 74nߌYurIL/sH<2 ),0L5K֦}?m@s!]v W*_r"3ɶ<WPS}|ǔ7蜝DOȮknK;T'F4O=C͵Ǝ?++1\h2X0*4bF$ks8rL O)tS9 (+V~Y-׳_uhЏ㐶dѾIPĒh˰ KFmEcr;.*G O QDrpT#&Y̧?簀sˎ[̏i1ULέ۝hӞ{P%+aP'B)Oꂌ7j}evµczF-u9,K_K4q3Cˡ Eɔ8h^$ s*qx ȹd^11GR3| d1KZ0,8:zj.Sl U>}va :@nDLSOdiu>0'܂|93 kLxaiǧD!fcx6 *9V]<'cQFx*5zIْyye|ĊSƺB"q|34 s؎QI E~p;c\W8bҮUJ73U/M pY45^VYEj@S|<;c GÚ󏪣gbYuq=⶗&f9 WTXK1X] 8X9ʨR+1Ec{8_ºB/B5y 4bY 8+Zӱ`|qK?i]r% Ol drN?X9BgYao {b Jb<д֑칞( 9{LukM,U&l, !VGRP:;P7]-{h!Ku)ؙn/z[ 3Du.`{c],~ۥPg]@@{:WVIgkb:%DJ{{Wb I_Ӟ@= mh Y!~Q#E咎G!\P˗F7$6'*Gk8TQMt0 Xxx0l>0}JâwVyRW5+`Ilu3IFk/:1_et6|Nm QIz>6}.޽?䣀'? *ۚ'CWt<$_URJPN"В<|T ԗTeep1:mfoi5]鼥O fH =R =k_:?K--!mJ1 RE"#lB %y% xRdJAVߴiBwERFJۯ:Wg xa7t lt"]%j6X ,g&J諣UMLrXlLUD۞OQj8 yݛTʼk dt %//0: wf>//'\0Ct;Z+#w/8֔h./&1 v98a 5CœᄔЉ/a &%Bfh͉JPu(ySH79})癌 f gw͏({j:.;MITB#E/si02Rt_j2r>;_j+ mJ=^;zA$C~U]{4u<;44d H|9Egj#'#h%Zf<> Igξ2}Pn7Q-U:e˜^]pc$Uq&, y /ŸZZR<.b'Kd9sim:/Va-`(p DzAm\qǂ+%LTl~6#K/xS" tz:{UrƱLJ*цIN&PM;n L׉ h=ٍ՞lݟV=94EKAC^[MdӾzKr})> `y G/vAB3(~)NPnpdJ#k ۔&N>qKL xeP &y"~ʙ4b] `JwfM[? $P T;Ը}>Lq@+3eVAǸeEAcTиf NŬ*}5A쌅zn776vTB>U$=Kj>nB1)Kgp* ~aרP٢ùR3y~Lxy'mpIc / mD)aR[cyUrcd^+O+ c?|+aCރ"& pZEAO8Li? Z`+v*h.`?*i NX#OaϠF炏5JfW|RRej<7FW6RI*)YN-rC! ͕&)q!JJ&CoD= <=| ~$R$z l쌣 dmP^[}T6&C׸ŬO:+z>,HFp}ف&3>]wtsM) &.` ǒ`N}_srcqBC"զI(iQ/1e-G#aL6sOI|@.\eݳ0;>{-tW#8ߌFuĤCIQzD|UPP>*G+.$έ**a+-)Ti(8røXL(Yz$IY$r 9LDX4PU2c J$n`P Ox?RL=?*D)53./5g%&)`9(xNc}˩tJMk vy8@'Y$t;Y~~8CRs~Xt}2e]B8/ '㘗f,b( t-O0~hb}[jDn,#Q#[Ѯ- ,MJNIIKr&2yz^5r#8N9~I,hhPv-k.>N%>,i})MämP>K|BT K 6h1QVSXεbҳ)]/V(rOyzSRr2ubNsKg^uQS1Z0+ n0dH;So6c T|Lf?y? A!x|pMVq~LJ;1٘qRik Jw -Lr-O.0)ALЪal'!FBbEUt 嗒s.Bv݋^սG]VKP L#8|^j&+})ߛ_ %sO*g2b4oU9/4e$8`fztnpXOÀ!,ZD/`}:\^P#"uޗlc;U$gj k | FEX4|]KH5\ :#dio f_xUm9 wܔG4vꟃArƙ@|bfRiMSvA__ N 0P:픻yc|j(Ut$;n${y+ +}rdl{d].3ә>JI8|>$cNjL`6`׻аKқىbt0t@kk mtru zmWJ9\,l^ׅ_ e^l-'5*H)\\@b+6,$>X$٦N +ؕGK2vW|J9#Ғ׿qD0 .G5#DMdht=HH~7]}8'=ρhxtN?}M++AVX NBmp EmJSrP$i⚎s)#Gŏczel )0 :=}oʈT6x2VKp,ЎDȳ:, =p(.0~<3Gic%qknܖ7e! HT[¨v\tjjkǞoԗ@~j7tĞ+π<ƸilG&1 99֚lO迩vp^hGCa4ߟrQ`Ԫ 36\R Sggz`~:;,35G ##f;6l! e7֘oC~!J`Jf1Z4 o_fFվ;pCݶ&5'RZ Udxↄٿ#eM+r_YUQzXVPke; 1  T ,V]ELd pM( r6"c~. ;yYTr+ǒT_\S%Sx'4>]D54mؤ1y^YRH37BebFzX;.[gL4޿ jѥqH~ ]t{ wG-U,h͓2SIfac؃w UC']U^w)6zMZg^ȴ9PI&(4͠.͗2ih,o pFB6稒Й8lh9T=]#56.*;J]-YTTG!cBAhwsn3S^#0qR Ȭ=jiK e % ,YS w#|M F -kI$Lw3RjOf$rZ=;Q̀":̵BDtw /ف~m9{P . 9 {-X NUai¤#JN=v?QȰ'Q4DQ6] hI8y+oF4g-z_,H[SBY"΅O?= g6E˔ꌢ.k4ٗ&꧖C ڤiBUr9 U>.7zDƳ<e5X*h]؛4z7 cXU,  'z L~)) I𴴱T"`GОqןB#\D*Ҕ>~U>Wڲ"yXklzAHZN*{Q2gNso_7|$s߀[ިTV  YL)8yd4א(ΘNq'VY }cXs wQ<54ݑZ_]@HNewo}:Y`9h[k h[y+y^E SqoUA׭U>КX8[CRRTG?”onkWKF“2O"aŝ쏴ؼ2x#DU`~|k*e%I+?KsMzlS+%A>l,cˡ A ْ@cgZt)nǗA(-C, lÝ0Yj&[+dtyU*_@&6&+yzu_haWKFƲ?q\/f 1G`s~._}-{f|rgzs㢾4|7cގeeLĵn Si)qEn9•iG漩sxtqf,]xxlЛcl~wR+:3FK,1؄{>CtS]o]TU=6ʟzcow\9^(&^6ʻљTo[Q'$+*$mz1*/6#ל^_G7έdeW|o$x\@.PV- @u~"0I9J}'@vfUvt/Ń7v2do"O_Nuu 0ֻpt'XU8ZA$B~G#;w&_kiB~ĝe`"YADxIE8MiM`YЅIN@JHZ Mi]XպP[.YMZH285Wj+L*4NɽI nh\4Ùu=x ucIštMG3v疗 AܛElz{ )MB|U, A! M&!TQhz{gjh6嘔1mr.*wvdHYH<9cA'𪝸TT}$m\q7_$.}+b|:^JôC&Ҷ Dkrr17سfA~M#OkJgOQmsi Acfy'݀!$9a$ _|3Ǎ+5{Y]0-<8`ݙ :ynS1<߳`~Ni qdc(<6I{M/~2`BDSä0փ}#f=JrCdWV EGp@N U"5+H"c.P a${?=,Z,o M Yyy* T*$ haA$W8B9-1K{#j@lӊUOު$E+ ~h}zQ^K8"NI/3P9ekQz- 4Y2桡@Z7UVsl>OÄYW7z06S)c.BMr$VϔGCX2$iU^{EtFm舅ٺ3k06^2'$v=tWx>L$:G1bAYHJ1FJyu|q D7WqR i~Qha~8154!PRWDܽg '7 {~26$ӧB}6idW.kK$%Se I>WVX^wp#Tşr6.vfd,-EKB]~^l+l:YUUßgSk7hQLJY H_@B<%cFixω떶jWtOLiE[D(jNr+@EV^т7bc狔gS:gl}=!Ϡ۽vr$F=vԭY"~g6A.Sya<6> .ԏ+^5}kx6jkW""D~X-'swfhW^Q,D~ةo{{vUjf||)ʼ*~.ejJ_%I%g5 kDŽJ5 xH2!8m)9nt6 g.8VNk?{#z9ڂ.4XN8@ЀPaoЧ}3H UEylm"T,ßPS-؅ @@"{zP AFw[IVT&s˧&^NwF;阹._5D18xQp6Vޣ[ݍGDG<z̴;ͫ~ 솀:bU| 3r ާ !E.ᝃ=3J\Q&ٓ; Ar6iwK َ%(6f4 A(OqgB?ӃC̱,ɑgGh" TBҝaT37_VNDFŐ<;#%-jCYnN+QGC)^c CbhM4fb]#VbEz! 2mv&"h}(sPCT2I" 4Cxrȳň(v ˌY:;힡5&s"Ll%'eF O٤ǼLx+~Gq}$~3q]oXZyڃwڙCZU7Xc7>qWn!0ƺ-`T{4QN4[]Q/99uNmH ,^5-=/e4Teq"hS\c>1/2!}#vlEg? elo), LR/P3QxEPnj6o=MM~(%*֏>r%BmׂkeǸ2@`c%J[cv(& "I|beDhlx#<-W2܏Kv)s(L4#Lc{[G6F9oYT^sr+lӛ<: ݏ`OVk隁 4k$ y4f4ln5](/ u/1=϶~[?홇Y0G'$ΞA۸):XtnQPC?U+BGc5VS\,E?Lma]E+$(FҮA6BeZj͘pe*\y`KRΨg!]QnHU~(gf?RU!N@ T_ "n>ً*!.O7㝥>rϪ ](~HGW g>7,Of\?ԞKg&Ne,gaAUö@^ >޸%)X5M `egj~pYa/-bQ= zZ0䲖1X pߖP!+eAO BׂT[6uVS[vfL/O9|rش?aguKݨ͚p=˃")xe^iR ne$C^)Vẕ1.ܪWKdtD@ #Zx&=r+Q\<,2ɇ:9YJY:_-gd&.:EkZB"xS M# L=uDϚD%0A8Ec$~EhK` G_=[=@yPdz`~ .K %'.#ZE:Uu DA>ðt(`/Z{PA[g.G}oďj6S$]]7w}O!M?.w0y>݆#1=́\G<]۹V f.nO-9D Gt{ ՜;%#pmRXSKW {aA?+9u2+ӻ=Ua0d%ؘ,JRyHED25-uكYctj-O{:?@֛Q ɨ<"یBi%rX|e`/^_s&3VT_е]QvN$$zN}jò)[8 9.•L@DKN>_S>5ZÃY!Lx5rzwY?s95utQrD'a;UxUu7q|9B B<ז7񇭝)~?^/MP0/{qzDb)40Mw- 9: Cه<T4Ax;r&AX|NF2>V=/R0 hY~b~(z_yٔyY3i}-|4㤣w?\}4u?T8I iUU2S4IuHI#6Ѷ}g>n[\H60̥?|ғPv jpb}bkm3"*bLhr`/4G^tf3sj+ @Q7 VϮQd%[e8;u)(C1x5+>,x"}gnTo }*&!YG+*"mo5iYF8k/pX5Hix\tQʒm nHLs Pp_a_m%yBM:E#TP_۫|LPidP% s<\8D1.QQx.7#follH͛Spj< *"M{z톸>GEFLʳ*a:۲%D_fx֟12O;[qW\['R@=v ]}AYOX< zX:y8\>G kh_0Fz…f!{BR/^0i|`2Eg ֘>`Bw nx@"`#B<&f t/zѢORڥ0&SuCёDZ$$bM~Lqb& =)jpHr>\=^āF.>PQw&zt&x )/aG+ Znnv?CғNЅԨ-7*'loHDžFgyl yΌvkzPDxx'Y,Vz՜xx㧠~u؁H঳ 0WY,v\W_u 7)!pf-y׈3xl >T*;`RU8iv5$"oDs{Gvj":C[m#'2-$,.1@:Gt \-\J>Oin*|L֯K' ``$a+SK(8SքNi 4 ӍjԖ{jU-]sdPƆJ'' (*{vfamw)r4e `rc΂Dcbg~Qo' ඇ#1QTß}OPʘWkdJvGSidBAϤ5{Yk0?g0fsŽޙ5CfUBOĮj]|*Ƈ#a '*EO&mi|=IKŲ Fs҆ nNtO>>8Ris ܦ!Q#o,Bp*L'uLT-FkDۣu;F3'I=£kd  #AF\ ϞW[ ZUPK{eP!3']'?\T>Mbkw^4U8Krݣ24Bp 5jIZ^DU&RQ vchW:CSAu,Z~a&!<׵tK¡3*or}C1?y1ֺ^/9T Ѐ >dY8 .}  ?e&_'FksWvJHc&FEM l^qh7g8ɥR:3<"WޢvVC.cb8W"+ܤC?WcCzv,ֳk)*oRm܀9mgh+ zB!\L5"y%*P;^pHo|JGWS||uWA:(YmЯH3D2IP7gO} MP=lS/Vi.vRKBݔbon#X{glz|AY] uA h`:gCa "Mvæ7ԁ0`G=+>Z: .13&\30D hq-A~o4sE\9y@i_[ 9-OQ1c{2uo  _g,_1ߕ_%hB`ODpב BƬ6ӏ!<wj;_y~glf3YBT@\Q?J!cZWpXOCs JU3Ht:b'~`\-MԑӿʼnXpFFϪ2'L$H hByI g 7+lLW$%n%K$MP8[?u~qB^ܞ]mYgVcvTں4Zi${@X_ҍeܟb%D˒t+Ȼw!@bK&(ZV/5骂xn0BpA#D^np7۞O-U"P~챯ν_')G! ,;%-SdҠ.w~1Hk̇㙋4Gib w񿟓_a, ᩌbh'thx]? Py>?sIyGrfwK=Y/cuUV [\Aܸ܁X-$.lI!3ކQtw* ma /r+lКjP*3!ښ8RM(1MT%^Z2LjE%?\BN=Ɯ5]2DSp$B('$$b65 ҧ2b!!W!w:h fS|%ukXLmr&03!@,#x§:ôHG  -e0(7:w|—W>:.2("wAԩegUA-iG%%4p1DY63aM547 2np!y3[}= Ï4{hh90-tQo";U& Jo8aK -w~$L-h6 ȣNDx,V<28 JUtz,"F"k vt``PnϢJyʁۦkbPt~LL1dX e:]^n- 5+0q)昉SbzyyYP6k-#Wbvr`z9Y&nuuFAXaJ]k;׌-w,~"gWˆ&V/L!hj`?@ O{5YfҬ*tU?=ś*X,w7HRāV!ZkaS)q *mnYVus{(F:_%;}v_yU"QEv+^dX,VӡG:;@N"|0j;d s]{KkH%=({="7MgI%펙-MVǫ۳һ}DO>ۤov~fsb.(!JgO{\dAtb>")>ͲE6s $!,o 蒐ObZn\4Gۖ]N=-Z& @qgᅕjRfyYgO P!+~F257E-2OxG{so3]{$vȽо R@{J>q :,}PR=١R?#Lv"/_W_U{Ϛzl%ӷ·3)wA^_XJ*G<`{* Т У  aqts~ߜOd8;KYltIEhFɼR 9fÈ}DNJdQ:oCQs~['ϝAԪ&45P_ qV#(ԭfhqL~QgG8vֵpF͟&4VR_SY;ep+ru_ 6ޛlkE/ g_;l\0^\ZX`cUOٶ ܈fb#wB_ؿۛIQB؈ UiiΉnUQDsa3u)znL"8R6 Y_v,'01S8#'_Zʷ/Xkm4K?sq&1Eo#7"xq(u]- y&7UMd[P igavp"ͪBI9=W%dêi\{%HlT(sUme X,cm|d;|J.(` 3 ifR^x0X{ m=_ׂ]%Fxa窢91P=o֩Ivk"ʡ}ݎtq`7rqQ:9ڽ[_D־ \2:IF KqT R2cݴ8HSڲ~ m}`Giq$dXz wz$*W"> 'FhasdP!O,q7%P` X뫀DҎ`.!jvL p F99[GV= r$+1\O?PК՛,="5L9IJ+c nis_ O7"Gٍ'|EqǎTKvxA];GRtYºZ װGa )v,H)?{3OxVp>B//vr@(ш*Ib Zu9ic%:G;(HGd~jzL|i^dH}~QE*˻=Zxv\NEa5-i gw@3[89VlӾ}' c8c˛< nqMՆagK* VqU/qX0H#X/[LSW3x,U׊s`pf,"햃w;z>d|%RTv&ץ>TcvnrKi B֘m7 7%23bYUk{l'5" yp7gbz\F:X9$r#`HX7`|`8_#^z_hmkYXg{P 2.:5B0W}#WmBC2 ۙdОT^osWNҠ pYho\}¦@bx`Z# -aٰr|6._SVˇY4E\.UE٘\$PiOJ/s,ɉDbr3aI5_;蟶2k̷ AÕP`y/:gY84~}n^ SbPCͷ78,-Eȯ{+֤0 ZND p>.*j\r}2ykw5\VPǮpR 4:b HM+0&2 0YXuaVTTAd ֪YEw꜏Yb:97QKۄZɾۆ>!êWj:xm=QTi\Lf>3芊"5v},(mx&||%o,T#AWSJ„0O˿|<i(3.W72ɝK;Z=ؙQb^+wd𱰃t:ev]6,u1jqc}KFPww2 o "#̑09aXsG9}]Y$6~yo7*$: SAݜȿ.gј"D:=, 4t} :PO#+]]Nh0ߎ+-[y{4Nɰ\PG LP7]8nb@ƀ#e(lg@EDcVvj[O-Hf6 L9_"l @'m8_xo\ҷ0LqT/mZ %i7ӻ7#YsÂ8W IMծOq}}ݣũ|_fVw:K*w;:a'E꛷:z&<% f+S,(}n&-:6=|u׿V2,PɅK2X< VSlsMUoro~5'EMu ptگ4(_IDƜ{SkY"$YE['=J(( !]w7,sҜ2GmZI⮃{)K2BULnaʶnR3"cULM!JKWiSf2HvV!uw-~*CB4:&ߗN1/؉8Z>ȩ-gKN{ID +>:*<ZβtlcrXNָ48w`ЭC.x{`#E8r+w$ b:,i/V7oi숉IHx\0 ƭmR*<毷^+*^W`S^k6. ?׾rC> fJAvع8&]p셒VnP%\$m2?Hmg瘖s]B}Q` MqcS:ڰRl6)m OG)g=}j\cJM?o*-飖 yaxr2f pO_ O>+)8]?snzxA𪺥WGZ^UYo( u7shxv+1TS@U)ث@h 8dX-Y|#Ω?xLJ R/!]HIKĽYl@M X`R&؝TTtTMtc,Xжg:b}1æÑ2jSrJ0ՄriH3SGGOD0DWꂯrRQ!vXGV5Nl+n@Ů~_AGUin0f;sr,[eyKsE5MɫS?C"T]'kvpgs&@*>x) x/ #uNk H~BzJu^Bmo!bgd01gOI[rG"]p?_oGpmա?_l`Sl5Cr#/O̔eGQ~>"F5l?buM}*ީϚfF܋ c| mљ=-gcѨ4`^Ʌ2dᡇ%]He}wчл']:к@ǃ Wx0 2x⠜XG?QE"\=I)*Ӧns.1}* jق ʸlr`lM)aF\[Ch4+Df$ &Ns,5Jj],X(A :"|f7U'X `/@v6fʂ[U2V˔n]4ժSspbY P8"AM44wwnj<4a|9v8 xe95Ρkb> _")>1w_VngQ=3erɺ;I/DxhT&Pj[ũ|%.̬$oMQVz+7v<95Q&Cn8vY[~ lii xfrסnR\+On]km^4/)/יּ)!z3g`=;#v4Sm ^ⷋ_vRM-{ @ TS7K&`10 ޲Q "EZ>q_@ShNjUm_Ar4wfx_!%o^Ǐ֒ޗr.z{FݤJLg~hPRάQ}nf_pIҳP5sPۍWDN7RFS1T11U8}x ѓ9 dGGW2j\JjV{U'шDakJ~y*"Uԧ"K'JwkA}=vͰ3v>_%-`lpG \R Ad"Sfj&9*6_U0?|hi™AzrOÌwk wN.[!Brivu4=*:b!$2:nFjGy}|]*Zk6t[V9ƅ4Dެ/f;D]VzR3W]K۵c۝X=s IbVGG"wģZDKOUpvW٢7rX󟐱Q{nDʢ#/a<̨$U*hٲ J^@ɇԸPŎuoc4xC78! g:fTjYg7 :;f\_3Û5J|QKL.ORip-/*oW<AM_}XuہHTţȐ%Z|`2v(>LCCZ"vIjBƗGZa(}"s}0=;eoq,_R U=t;y@.6aW%֑z6?׳Ugj+](,uQà yA gڻT>ؘQ^i۰{iSߏ Ug ^{3 KK̞/B HщCvEǩ/ǖ2l= c ]Vqzfg^4vf=/Qк5Teoù0(& *s1yQY8\1* n(8oc'^eY'ҝ2g)|YsNXO B~}aJ/R ,nĩ aF`gn 㩇,F!n+ YNQ*ǜ +v=cOD P̳w -BU9f1,\rtNé.T6pOJmY,bkBVz=oҡ2/+8}t5BU}3CmQ_x^& ϚWIg:Zt"đf$ƖiyLJ,Tx%6:6p<ۑu.ϕ+#˯t_ {WrF4$7遦ȱC#ԝDz(qDblQ1x'ZMZ;CSV < J 2* #Qf >b8tEQ _ 8cW'{H5,nl瓽:"mњMC=fb-ηF'TSb_YdRT'Y* 3f\).q#Ǡ<4 7x-RyW' c˦N8Җ'i1bDhVܕ|2h'uܼCFH: JOxW wr Xcoхh[!gVR)b-`a7.E>lM^Tz2ܱcI3soyܶpj LN ~Yv뽢񝗮`mvZn-ݟ\5)[\vf?>+l ícO]*Nq& L>:j=`]6a)ZC4ueV=/k&":"V>-tyj |FRA}k⒲w{ί"^-1g¤Ƽ7͇$^\G!iOK>60CC@frҺR1jL^@WVlүXX!^S3 hcZy4Q`4^/}lWkBNjn2[+1餫r)nEj1/ GdCY_OSTlnN3;f/IIE u*=HVR0`,_iII!L|+c 7C̫Dg%oaX .9}ŞI C Q6A:ZxM֟ }ѫFtR'/3*>aN7эDޙB5\T{:/:φ[PbLۇQ<υ)۠CUB|iK1;;1-^Bp$r`fV4 ^]QMYeI3!ɻWx> O"$VEVִXԨH܃{`.ARڈciVlmgT'YJ10r~[6/@m˸Tl\]]2wTP۔I31[t{|/I8n&{͕^L<' ,:zkrGQEaBF'46&B6DD5,Uٕ )$a xN$ ecЗmi NZ$We?7\ֻE\}BDPo hD>$IsׯW`tr†Hf­M|KH_Y>ŷ "zgĩI˥b*)Kx?O%裡.6V{̥?&LcAo TP` 037_ ;Mz'k^e9kuYn@Lo3Z\4)-#g\ܿ*N芼[X6k \x&mz=*H; &L<-"P_IvMƭ.iz,d@ufdܧbki(8+W).렇b⦅jHMsӤteG$ۯ51lnLM.L%;@ؽc= a}+k!ux#oWB)@Gc4oīlYYYhW02N èR-Da1 y飥4t_b' v>XK*uJ&/m"h#sa2{eW Ңea@A#(IĽ;"y#1W"3.|܀úLȍf45I¶h{vy5ꆴ~`^.~7OhlR%{!ubT%ʪ3WsĴaLe 7 2D] 9!II jw7q, `%5'L |7#h md7N?? J+gø-˪kV󂡦kbjX.)w;/oQ4YϩS}`!`-< `~1r[(JʑXn\ uGM_;9 d63-/UşXX|_  SjoUuz-޲+6 *+7C`Ȏ- ?E+3}>qٓ寪AHe|nҏaբr /ºxyo"ItjXvϵ$Fc|z]=;7lfcͤFd葟C0SkmMUgh۸q6T+^w=8{?B7`ZpxKR;pn=&+ >ogYNI۠SN´$!JRd<#:˶f + d)ܓCUOr<P G0fĴ?j2:|S\ 0UȢT|<-|oH⤊^f.Jn#ΛZݪ95m i(hg;네{vRf'41e 1F[q| L^C^z3i9*ZCݕ V!YHȱZ  S *2%.NU;!mh>'֓]u;23ϩ @L!Ln/zmSnq/x"$zMiTCV(a`Z)͡kVP>{9\,}:jkNWiu0) Ҩ8ZYہ%9}·/Ht? L V]:`r7F ; >q{XHrb/)Ld[7;6j 4qVk62'bs*V45@y=`T,\0- '*wJ̧Ǵ9J7:%cuLOjk#h@ן,ǏRǍn_n3(twwhk 3n wTFt}6dqGF{S>i2l7IxXp[Y] ~m .$ ↖P p\kMU w}yTZ> )79J9Hc 29‹ 6a٘`9Pot+ R˾%bv֋4G1$V;K]Q,Mvc&;46a;%X@f($ W)KHzS2 _d4AWAib4tw˭_0c2zΰ&ԃz^rM__gxg91X@ʨ T2#mͪb{jgq8Y6ESW>ΕgyzMeZ{fa%Sjq*Qo$܄!b $aE@5bCN~X"JAȥ@hownXI\3σa  bR{HePb}bմbRA13)TpCx%U'N1? q݇ZJ0U*~se *@DfKsƈD5ϚlҮ Y@j*c@\wɿK=!Hnl.Hj7Y\^ 1tW;Bw-K'U!fJB-Wg+|(ӳ!o&#)CI#GɬkDW9~HMV hSc2e~%8V-K}FUȒf_E{xf'gTP}Op| Gܪ~u#Xw4l3{V2 ^V=kPs.Ж}*R܈% lTA*yQoS]]|>AQtԈB~3AٲG~5|BvǦ~]*e.>`(i !.!à 2ֳ\'sbyam1鉘iO[_/=^.'PD!7וrʥ|٤HD}@쫥xR/̽`s1L!"ʗC':V0^[X !Žhy <;ˀg~ PntA}"Niv{ڠf=, TFd3?lL=歹=ij{|EsPꗆ.&o{v*5^;!ե?pԍA6g~LZ}W|fm8"3/uEw C]P2iԖ -> uD?dٌfonopQ&-v>۶Ԩ @gB`pjTTօdVveX17wFOo_1 h$y `QO9ݶ3vk4HlVY x?YT<4Mc!^]ݏt!d>@׉'-ǩYwXyLߟIuWl&lڣ>CK|#Ei;h\h0"jmNjïf~~[ڐ+`u>^Md,o5Y=)R8xB,492k>y^Ge~C&R@qy I-4 9lьZ*/YU|!hu<ɡ"yncmAд< ł2"Sդ tdnt?⋾ N*cc ?b*'$HgG?~mS 4_v.S@i=[Új7)WYQWs.{t_KyCkN2At*o>PΤ;ܩg'HNtDIsh|9o ְ D5AzZ7y.)hi'£e U ox̯.9b*Vi_oW*`5w~5&8Bd"=K jɁa`nr~po vh婦0L(^tWp3zض:0H2Rlmu,XǤ?roʄR.tGj4:]׈d?o씟/\F3%y;x(EgflNQ }t ބ޺Vx) ?<>o 0b ?- oL?e1b*}8#lG`T4KϿN aSF^źuQƥ d3'4& rj1Ѐ rK>?ۮ>ejB04:TRn,¨Zո1#&ժ^!er*[pZ)ińf#k7˺ [%NI'ݸyqJRHqnmD; AIQMk`f'lr5f,O LAqeJ&9ŠnϮ Ҩ%ɬKJJ5ClL$"{Pyg1 ͣo"@>( Hu>OMZy* JyU ǰJX(^Ո(*(%$B潜Ez\Y;4tImɦt3k- {˟v̛!|vj\5)/ $!p!ĭh \˹$0&FCDש "Id"iS=Yp nbJܯws|D:ypW42hM&Bi Μ}CCqqE*U -S{բ9Y@+ڍAYI.4ǓD̽?2 mŽSGV&#"M#LGkb ͈fQٯq L(3ft\8R$'VsQ+{BKkB |OK=rww?DTl?SD\O(qN^4qm& ,? ?N%fu7cFfWXR_]BR.P;O+6s3cMAcL0w^F!$Q;aGOE D _YebD>Vb xԦJLT)w^VFs}Z[ۺ:]2~r {#+7[[D>ɋ*$#l0k\~GV.բdD~4u52IP) E\?Re 06fY7kH 9~ǙL?@hutے- H+ئ/r#oFe?/LlZcOmKuW͝hNCF]jnP]0n$2O"[=x?EX:u!LI3bYc%)"x܉24kׯLa < l6UU_J h sLSVcFiTEIK pb ¼k/*F.ʶjNA2X V4!07flCɝZ=?&[R|tIXD0%zxNpjfĦc/M[(yN~k\-^ ,x{yKj_nALZkFN5:@T*"(UB3%!T%T[|2NZ,[J{\*t7L {tM5gH A, :cTIGAn2v7{.9(p 7~ǎ/~5C0mzlWO[~%N%X-xK`G]}'ܚ\iOZ>pr*s 4\[NTޔ vmhlMBnha= [|.*ׄMĀߤɣht O#ljr_g4{W?]0VUƧ3,F6!U rVw{ 4JP >\ekZvNU:v_!*{U{H7]2߿h a@c{19.:)iFYS1cFW^[˔y 5'$Jn`a1ӨbʡD q-5W'޹/*v Td: givqzZ*yOcj1t*TL\ߊnHec`5Xup:辝7H=e8{ ͑rngƴ.ia^ѓCl_Z"AeR$k>CkrXqODaMR}>4Vص̡z7>D ^P8vGth0.llǰfI$|2 |E*>6HQ? ;.`|]. A>@A&5$!,MH1"|$Sy?j~aS#_Rӿq^愓]Y*,XL =Xא>C!Qd]j Zc҄> Hy"]i(R<9$ ;S;>p~ "v! [LJtQ/*4ytJV̀!ymX6z{pPT N;[Eަjdb@!Cr7E" ӷ1W{<^DWx.F`Rx9gl[*cVdA)gfɗGLaRMVE4%\Q G5 9FFs)#NdbB4|J3l&Z1;+Tj e`F ۧ Xw#kǫ$(z8-Rd=2B׍nk.ގ7j^l0a!_~ē%5Y;Mtj6ğ6T58vPd~WܹPNMtb{C-l<K+zɻpYycʁݥIͪ Mx@x|QK5 ]ƾRncwEXwM4aJw|lX3P5I%^=#WAđqOѓM@.@67ґ~gݖhqtEb< IJ4`wO'H֞@:jYBZ#_2Zl&tЄzxr(ooeK6<ٞJDb-J,؝^]5÷ Jg$:w3GQI`2xhTmI)A:m7v)jʖW跀:m̼% ,TiMLsQۓsf<0GZ1Wt]`Q:/Q3 BܼP/>4qQЀ{ǤP<ޞy=ղ/+@n#B狢,֯梠5-A"hz<49bGE259TPkf{o6\A Cig/:{GQ vbd~}©B-Bv0C/AWkHOE &^ i‘-Ճ|Q~U"q>M<b-RR1Bߜs'tNon][XicܣֱaGiUƀ^j7|9uu v*bZzb%(;z?$r- 'R0k&އkW4P`:/SS,VˣllR?}/J!aT-/EH~6Ƃ+JZF=h)bfpvdnӥ=rCPLHf)S95EmlUojhHtsb "tg0MxldgB)ɉ܅$ ov+傅jozE1yH,;ZD%E2SSLHF\~|D@]JZ!'3PT[payR F ;J!hx3qKU,:tv0ʡiFh.鳠B5M+c]Q&ɺͱ<}6|b77/ ir*+aF ʞR5u%;1s`M9Uc36y%K!NHX4*B-,3t"XO*n͌.>c\V3~C d~V*(d^L3սVW/}6O%LL gWWԊMjٳ'<[*zC= DM9j'>*h1-w$=`¢U]_^YvUyE'ݨzܨO@8O; |"nafh;1I,C-3-+I@kۈW(äb; }pv[xM3t XAk$vDXBzz3t<}d:L1g޲QkL2/o.{ZE)=b~+Y"?FxbM/TcR[yn|Y3OιKF>Wa3kfG Ik 6y Lw=O EzHܼ5,;ƕlmռ3푁ݎXsx~@3@O  Y{KLhupJA 8}@ݳn>!cgyf ,(̄I%ƴH~Fড ?:C-\6nFRt 7CC+Wp6ڀB?7`$~cd7./=6u)Myf^J] *u`dG_J6j #H*H6CS8)" |}(|ZO4z)0y zujusq<6r e ֏:oB2N>UDa $T2-m:o,)V,wӧ2[9D z|FI|>x 5/swr16՞ '`$vIVN701MLgJ`!їss!<^WE}%#rz7Lr`c9p_Бo>rSQ?d51|?%}Bn/ޞ&b2NS%=\ '6F7ğ].cFѹ 7IJk߉Oi' q;JR=Yɡ,@:^F]|ʛ<}*5PX³uX\O5x=O!eN9! *H?.AogfgMDN8m4Zϑ]I73tepjbr?0[;7x!ğ|1lv%#LaTM=CϢ]a73@9*ީ%:WݟWn],1 a7nO\v|ꎛ%emc5ͽ *afIJ^Ԫ_kqG ^J@vjщӍܡ)K؆|-.dcپ>V~а׆jC<%CYx?H8pYX'#ERB# |6ZۆK7c,u2N:P)#%pcZ9xyDeVs2mp"I<OH#Ki6!aeSe0I:¾1qi4Ww`yP˚|ϔ NH$7=9{nl-4@{%"hwUU s 3̐QQTcl/YniaOJ3'߫/9V͵%OAf8z@x ;Re/vn+>w$iɚ:&o-MN[! |.uwGmd2{Dbv8ԋaE_2ZuhZ9c\ݫahtlJBv fعk "KS:??4^R`մ7| 6[aխ, S5FvgVK}lӀ#{;m njLLQB |і&uʞs™_Zhh)*kGІkc\-7/&%^|sqpX~hj,{0ZBu@OM0 stQ_'j)/u`3w|쩓-ZNLrRypuq1CRIZZATBbFo>k= /j{¿j9fH|L@pHD ]D@{u!>Q $NO48 ZXG`g,cިpȳ"Wp1!W)"q:u Bv/Ԉ )к+X^7=ڭ@[ӯg7,jfs bŞeL+TqLG9 m 40_!8 (P'_=Imx\y3t_QKp=3%L_uwU+.@W.pHHϖ 2w/pûA^>|-};ޥ a@m-WmN(>OT'ru6;+ʳjwIfSCgܨ'Txf+j"3VMҿl il8K [2jm!_-ZFV 3=6;k*xIp5|)xQ/W$Kͬ 2%ֶ hFv}qgXV};n\-U%Q@&Eɉ_8AS=m\S]yq6ޓ#BHHM;\/p&t6 Q!i,C @'t}`Ɓ&"ϒ|pQ͇,J_EX| 2W4; ƇD]}#0 1ub`p{2:P+ү4S3S?[&SZh0CRx\;PJ%D]Jf%,X/M |upb?%{J&XQFP5(|DPUµ2i^Fou6X5ޝ%%g1&#^f{(O"ґBث5ss8I#7 IJPĸ9'0/}~^;( &x;H^ZeT>c$[C7Ym-U䨢7JMuqH -m|7Rcc,`F\۬@l!|5n4ڿVK!(vG?\0kve"Q85g1.1:\XPD_V|2[Lpn1VV#:3t|e3|lC~v%$X5ccԊ$=鈰 \%BBS g+ԉ́sASk\)gdG(1h+'uua–v RXm`RΉ"{Ჴ[F c5N;rDZ}ʳY#˹ӊ[y.ur`ۺ?;+(I;vIg2tט'h n'P>ElST~(cҸxB0rhרĖJ?ZyB!͛L2_1;Z ]> 9ݠ:4`#IӸD,1-("  |w!mcOFnDL'kT:zSEQ=kl.۔=0zӮ] hnD8C9{"˃U|8] i|DH B&/|Ƅ+e+$2"7œ&db#bl>>* WܚñL 1 u]Ɠ,k &F$"uTugTcn_Riz4?_EfQwGxC3u=b>~I&Vzu(ψ*_U9}a{-Xi"UIij-ZgeHyuF }iaܪ 3rSO !s.)(+##5Ft~'H3NXZ2TCA0aYhB5J{d7I`&Yx3MGrJڤ":Əe hjn۵*x  B`NQnVk vOSCͫu g>])O*S@7CǤM֕[5p#6 8۸d=O:CLpNY;MGp4#f -Zb%}ϝȋoI9\L<>8 lxrmuPa`'H)D#/T"^D= têOaKpqjzH YBZ nSUCbZTAt5^єjm[X3n;)id)Z< &u3\RXIS1-RpH@+@-JU/3nn%x6ֳ #+vI/!nW:\3|r,^ohRisBpX^m3Uύݪ$uygYI_e!x<^Z3z.mi^m&a?Q$$2EA˒uf".|6Aʜs֎H;~iRW|kn 8QHqne8&0?ȑ|]ىeAKƠ!eK!fj\®*b`2u Sd2o>h‘V HJ?pܒj԰ 9 l7X$!mg#B 62H1Fcr ^}%rf_i(hwu3c's(hbn^gOou?bobozC2oiPۯm}?]p4S>`Lss3 #%~"}M S~hi[ PQDr6tʖ z5fR, ,(9SRWui4_|PܡRI qQ-ѮZbZ@K4j]y>oK[$DJ㢪>yυ%״5ra7P-zN| -2/hvuEc{mp?} ?l Sx."?H 6Ȉ W5 dߨb.ԅ HS9E%2p&O;:Cd~s"Va._ 75Ou*Df)}Bjr3Z8 qmؓfB";QIEo-5+ oS@']LAwӸ~L`3W*4Qث>gʬd_8 ?% ץ"fS`YyM1p'W|tQ3}Gܠx%,aɲ[\cЁZѸD)2xR5/ϭ~͎MJ>)gnYZKYvp.l)9χ;pڞMzv] DrM'f.M) {QZb%6 K FfIgu2FN4]r¸%;ByP"7~Oe,FM6z^pn?~;H 1 Xnpdp1?O婱deo< n3^K*ya>fVv{3-({O^\~i/ )!?}l& (r ,eHVaOu30*̓[+^pv`FiW(hW }z„QOzlI ͒t 00Vml |Y3!q/ ݭIT4M.x$iҮq#l{KkA,iEg}rzld͉gZ!#AE$0//mQ9Z1y;ǚ:v-AAqČix(/%`*cp̂^H[::Ģ)GuEwFW }Q!% ̭ĭz@tރLII\Ді\;sPﱬ񑙉$iұi mf œ d'֡c+}!QN!/<~S z"r܈+  =`P,=^Ôīӏ/d_28GxK ^(r+a<{5Y 2[wb $avzkˀɗ-Ci.Aۣ< X҉}Q-Mۏ*=Rs&g ö:@ eC ZL潊r8eV5 S?8>zTӶE|]+"KKה&CbNv4¨(p2ث3% =W1.g=x N݃,MqV[PaihD<.Qsp.n=}Z5g3T9J8~]3 u bzD>,aD|R - !̲iX9_1b%4W\q<-՝9&kܧyM֍4Yq~ YB5I?vF|ñJjozjikH8zQI 7? Leb@Jaa9iolw26B+nJB8(eRax@QϺ=@܀dEԇbEŮ 1e=dds/G(V yN8cSxMaʓK2ysQhl1_cS"Զ.˳ZڱSpZ'Pzy`ȏMyeԜc-KpCD>N\,pH{-ؽjN`Ń8LQ_,/{Gc1Kg,ak>}SaBCȰoNXل7(~̼#uMWrʫͶN?(*Q|rhU=v_"Ҟje?}UT,s|E3grUqvJkCޒ T 8ŵ/.]O*]H1/+;?9C;]<`s}1rSS7ãh8bGmAOAjWsW+Sۙf6eXxy, w3+J8CMk;WMm>g(n+kLl\9U~_˅DnZo׉0Y.Uء9pF{6z8 Ʃױ:tGm0~hPރ;e'iJ 91G/壟Y6Hɷ9E2x@d(sE S1(4|5zbd/; Ҷ+—KE˺;M@H|C.fQhȚl-= {[F/R WevGr.@@x*HK[ p[Ao=yJ>LQ,PmuRȮoJ#ƝEG<-FzF:;5Zڋ>TK)*0:D6ɍF+@ŵsH'OvԊ-tf^FGXUu)PmkUm'$c6SnhG]ez/Hy% ÔFP19S蒑.)I*'Ɇ1W=`R@WRtu#Qy]teO *:"4 ` NgҟiïW(^CEcDDٶ(0\}7֨S41@qzBB+7 <5̙Tvts%^/[3$.by1gb]+ƹyKBh7얗2-q B-/Dwl yrwE8#MO+N断L]a87)͏}I^[}Bŵ͸4\蘒W5C7g IBhT-ʨ5܅_H8%ęvW 虪W:#ʬ@8a_܊H G)"m?j6Xi!͡FpSeW%O5mZ"._`XɅd\7$? ?RhN:bY2up]C#Ѭ/\ZG6R+ Ń{ ~ZRQ{I;UgPpNϔaW4tUIX9?`f&5pAh )v]"0xŇOPCpjOrxَ8zibgiHT`_B ?I1Z{ܥO Ɏ>nM nǿL|7b Ԕ6Y+<[0y*:j`nɮv5"wEr-krpMDlkQ*OM̈́c4p*6xλKYg3oՌ$6L;7[굓NdD$[]u4'-_T&+[zgrH4#y%c8ƒg4 cũ0鸹ezR%H"F ה'Vn1m45ġ6{ Ej1nF?+jTZ/pؑt=<3h\G ` ##:ŕú1A&i|"u@d3b"FLaC+ݤdvg"UKo h<75O̐<xR'ʎ9"x;sVۜ%[}/qM\;Gay|=\yQ0| Cb{|z99/HcЮbgzQ϶!ՐA~̍<pّܝ]HS+#H?Qѵv =ZP"կ&T %N*Ͳ(U+U\Kh kJ:t+Nl^Vwps ez)&r'K'o&]a;U 3`q%|Ql̈́$pt"#Z A*HJQoݻHa)c#Q}퐺 삵GeGl{ş훜]?q7>Clt܂B=+kz:#N3+؅jB(lkڤZlNS5*w17DB$Nմ=Y WvBzXgՄ{=}rW~ :TOLM+;ђAzLH6VV lUUx}Qc[""e(JuziMǙ'I濟ԈSz#DO:1E^Hl 7rKdlce'ֽp&3YnL6Vs拥6+vŚ8аķ7vJ ).BEtG8* [(:FyǢZtӇFA (Z4K`u|M&?+t9l)Hĉ:89\Q%cĸ-rWwO ͕;75df`tiKb!PI$ǍCy*ċgLF!&{}UEڞ{1tݔZ+V7j9<Ƥ {ei/x=Gtfd47@KMx8ӻRNHlj ->M㠙@7l\!FLl> "OW6]L>cCuu)7!莕^-97:{Ē9oz{fyLx2JK(dW}N30bh1btTD( hM!Ӏ&Wt&W1|AQ ؐo3kg u] \ C28 l(񉻛`yHfCwiuSp!=B:d աQt]ل7Lլ Ex6Ulj&k"I6 Ky:鸑/=˘i]pGd̀TY-5F-Լ3Zt]\W[&R!r(Ɗ ,ճ|!f#WœI[c!%V*J;JSd&~z8ND{Aע3ĠBv]w~IXBU*.IL#ud=Kݞ[[Xr[x)i,١ j+;*</-F,rkř˶; {aB9`oHﰻ+4L}؋f: dqZ}0^*!<yi&>#}CW0[Q|Z]wqrRtr>.ci>'|ңnàE6+>c#3NՄl¦Α* (LB禔7gz7EGsc昿䎞bKT-akixY">Jk+]EByޡcUHDEi쩇 H:8^Ϲ_RX{7|C-:E`I ޳6VǚA&ȷXuq+Q*)a$˚k"WIpw+Q-kݯ4ph r_: Ck:z<ω D8mAse;)C\}[\65w*B:TdHHi 0t_$Ug؂Wv[>GVT`?5^_;ә4.vu928\(k1&"1y/@ O?bGƋEe8Rg#WOm+^>r 'dgs'7fV$k6Д$ߑCyBIئ.O^V2XCz-CC!¬*q C2-Kz0Ty05谳4x=7x^B-7\5N{DfZ33W0p7(`{M*.BNej$E}SzF8m}_ٝm7--F;}/Y=fE3mČٞ%L4j;epEۗ]9UݷEw>\a/46׻dD>[1dј-b{y |rj#؁HƢ$45:Ĺ.sH=MYțo=C5rH~;%Y I>%ty!DMis}}mK|\0lt83jA}X@Cf>Oy뉌R('i8ʓE"[~yy8~ zi׆_ko:Rr0E',z =%O8VGCc>6&@A_͗#qxZfJxgDOBUtOlY'kˋ wae#EDUg8 5R!ŻD$>C΃oFpJxH tϔkAtJ }~/͝8!{X{ <u[C6YYT&?O_쁘mﮰivMpgʌŐ^S#{la CRqmą ZsۓlF tmS?O0[νf EHchm|ZuPR_t[>ꃧ_])]'`e;Pz٧Ks»0 sRwN୺I6GKD@':3S~9I'oWݙQoGV 3ozC;V3gv`+cUFF^תgg.6c+zRr^od)Cd6ٶ-^Up >g̏s R`ܢ;qkODt}㕛t:G!=,wR*O-sϗf_E)#9iM;!IK|`&*iWdTWt: 2kx7(Ɖ9-{= oWjLd`YX2p^Q3о}ܨ܏uKNl$ЇOBQ6nj @\n@Q2 \ߧ`Յ,-F; >)%=AK>Ð*˫kn&Q s.3jk]|̂wd`[91 NQ.8wf;>x;D7*];Z l6Kras=(zɾ?$$xwt*9IZ`)SN3& _S ]?k[9r371V;!`펚 J{"l@AEM)*[ [th9VwbFw o(m)d5jMEc y nuYuP&6bJLTfo}߷d`mCRTUY36&|;x'zN@rntVW1 - >M_8 HiinK 5ESm Ѓ E39|ݾ@8B(pHK% IRB5Zԅ3$<-Ii㞗W29ĭW[( c$- i -GG{u̩9k."1뷗A$V MDZ!6F'%!Cm*/$ٰ-ZRl]k|F SRz]D Q0!Z=oډЦ{P!KXq|WoNE3{&H]1U 3%Peپ{fZvlTkqP`mU2)k+$*L RyE=oZC9Hzr0$;\z"58X4LObrC"aQ;2cjeٱjRpV\NmykȠ|XMSkܫIpK۠rAO/d˽%tl=&PHzlu#XErcTVH?Zp-}ߋkL{5a bXNJi *8~BJuI)8|h:` &S ØoVD-L5I:vP_x J;Vl%!1T1%!C| Y#!`&){b <<6|,M V5IK8sL!mϔW C|?Ӧ[j8'oY7Ww*l`~ 􄈈/$oXQd 9KϾ]Cj澇 XD< $R/ǞBnP/NAo.6/|Kul5cЖ~5cMۀFC#`WeM%ŲVcGku2D侽xbX#B8A+NLKMs' pU~u8?xmdeԕ"-,osIƃWY-W ώN:%"UE=0|$Pc"WE$HOS9N wj{KihMMM a`KNr&aoG+48|F3t"SR4#EJg[puiZ; 1P^1 PVIgA @a_NP{:%ݫG1b;S# %2XsVyy03&QBTDa؂Z~< HЅ+nӨ4v.ΐ݃#^~6JfQ7H-??qJe] `,\ɟ;3}S6 ;t<]oH~V2$ҲS{+gP]g:#u>`5ŷ\w82:LG5̽xi[Y"%!vCL`#e IA8^M yg/Ar]@|9eϵpJĹ7f8B  ;"{qoL|T?,P8AfXۣ-G@ hWxr >^nv{xcc`#"Ņ,ybۛ3e0· 1uOL)rJqvE >NL-Kr.TU3r-.XQ.l{a݈hB#%Sl vZ+J^>X̷NMT̪@ ΗA^: ߇ciMS .@a)}!Jso;)Ca(?5VYP4XƸ 6`4{)&!U2~K]dQڶh@e {07UfUH2g{ [ܰo[b a S~U7b/ =J='dz, ۢmOImg8,n'ԈTnKW֦Z :CSϨWRP "=_ ݶC<, ҧꜘ2˷w1 ʠ&rIgXE ]0Wwq~%[<|BXu8ƨƮZl6~.#O-Q)F^n|q|mxqJLuǞOd_R"9=|l9)J(Al%"o+`^zDA(0aXV Ik(njp[JkYBw>{NVH'$p o0XjY/*J2y?n@$j-Ypy*( VEԒ A90&Bkvu7bb'&73P)+'K0{z$ehu2B m3>J<4Ȑ| 2&Jo*_!1ЬFSKdԅ% HBvX>F8/P[Cuʝ {knƹ!rӣwAo\ JkEelpgw?ϺlUl-x\Įv'm U9kG43-H#IZ`ռNKH `纰iCJ<v:LB3`SWC" `8|52S&ƼZ*z:y_~ЙJ\VdRmskf_SEz x~˘!;hgO꓃=Vd:{!|bN=>̎m)'3yώjm>ka̾Iٕp>"kBt8I+l3aĂ,B@(6m;w.(iuvD ^db r+(~JtH1`jo7Q5P4Vn/{ǘޘxeQ>/2IXhቓq7$!=j ф;j77*fk>KqC&Yet/0X.!JPp䭻t,WIB`%\L@9aI [wd ,v:#yCJLfh"HO6ӝMn~_ xi Z@ )k Z P&OGX)SVR*oϚb.)Y }e4#*}Q:\S`>˞Es1F),kȉK h<8I>T[ԃHhPgc{\IU>XCI@65wg܌a=9wǚB׾5D`JM;HOls8L9w!2OeCe3GOgD䘴'}o h4 ?^r݅޾n?5ʮkfhip!uP2UU8xOG!> CВL~Rᗹ(q@7ӿqֈ=BLD:AVmZC:snadSH%KPKɤ eD1xp]w︎ܴؒѨsHXRȒ&hW[s(.fS;H2G1mmi^2QI {ױ {̎Ys+բ&@M^hZORLNO׉1w`1 R+nՍk'&e fzjO`!2۷=!r=L`&ZBﳇMuU_K^C|i>r :}K.Wʞxĥ[W<0& Tͺ"I)@BTw/x;*S9K} B5>Dc0lխsA"AiDVYe,.3֋:%X#;S}I~v[@¯^:zkQ2aD61Wm@dslY;%o&#o0 t3))VؐURN΋c{RV1N7؊Z+}mAoBQB(^xz X >f϶*4]Lz2Ւ +INԖ0yT&? h.12kЈ~:bkfУs?ȅ ?f }nП~NRj_'RZm?{'ޱexHqLY Io_jn̈́ӯ՝:H^X3ߡYJ:Ê--(UXE8b RP>=ŵ*^zJ[{:vm ubP fjץow=ƿ/RAD!ٰ_~) 3:rv 139- 0^&c"KTYE4}0/]e/5GD8 H<]PgHlKd(Udԅ֜O\ tbL lk`h0Ԑ<: Xfyx&) f_[gw3~G ZֿJiJzބAGl."%A4̜BfLY7~S|l,í!;9%M+T_;_a1/ gBz*VY[:p3_sTw y?&k9GhX BC0&~XyKzznn'I+:+> */4O@7k &s# C`c y&iMzePDH-u]+kZر%g_|#'2{$x9t*_Q %d=A5aeS3rb6&RA R_47N[8S> gXDȨO,`PjT]mV؀@đ_[\є-a #gd8R.hJ̤^b:ir]nO7xo-ͽڏEuj6 - EHM@bDe_(yEBhb@`Mr">Xz ٸe_Rr9~^ ~-h[sml3IPۮĨ H{-Eѡ{UIFĜkb{r6" 1ed`SxZ(߰J?*å-JUÍٕ5`a覙tsqXYFkWGh1lj!07L֊7(,_u{ܺcJq#a%Qo."Q-ۊpgج% WGtΓJ(N=E|W"rIT$yY?2VzX>S<,ע@YCM~V$D\{BW$>GUBkι̿9ʮ$q98ia0֧Rf3Ǝf!\G"BQ r:+oo!<D ]m)h޹Rrlgzq=PJ•xgUم/6E# 76n `]>W9'}:2^Դ#%z/=j+nzҪOu^,)iݜf^u9.߂J[yb@&`h/ѯ7F\RdGOoٵɩ>ֳmyLyڙ&Ͱ tm5<oE w䞎M|4ݺz+͜~_*K v8}nZ%͘(# MgFj t32gy÷y~p ^Z1|0XӚQAa5p,\|aje6 rd߇2YQbu&PQ {x KP]Q^RSm7m˴Dv4yVMaaE.\TRXwʞn?V-W_ 7#NtE\FQ5VAc =c&Zc=ЄG M^ y_XclS#::5vaLm--ߔK¾y{pC q"T%Ccx("~nz{Wd|ίVd}zġF<+k";Z&.D۞p%0A NnD0/:/kB86)^č)EU聁b@єEDjVbB0h$ՀX wslUOW *$^*n{C| aQa~wYԦjFPT$߬.u_hy9C$?R |ÇβPٵBe4%$s6pHyIc\{?wrsL-=asZ )Ʀ<3Y u@:'ڡ AJ,pF(I6xjK=h:p݁*Ť%K]2Q'K cL=w)]\2X{3)UWVΦo)NQsCi/xys K+ Vf%yy p\J`]oT"Kqtc p؊Bœtx46q\t`PGC5)cU:Cͬ+Ơx^y9n-\>SM+ѽuk.WJv*G&o+3G;:$3i C ~ʎq):7bfNUU{")y^Nيe#^T)|ȃ (|ۙuDBXk"`!P|㳤 q͹!.Q;4g|2ueM1})\I\W/oky ʈRΔ4at9`XV ОQYIp+(dw1, =8~ݼ7::M&,C$k_ٝxzrXk eQN ) +a5cc, GKzInƟM%N@5q'P2ȪMj @#cCuq < dTcV\.|riLK9b4А9EQ0 '2|ƠEqӴOKV7\~GEmW-4(sl񑚿XSlƔ|Ah6B*5n@PM(F^&q= kG[L:|Z'rcw0_F}պ𫼶]>TPEl/ǀK Br oqր(6Ѭ(&{i^ U8p ^ 7gKM/g){+ DRϷCjxzZEUYv@X;6ĝ"aҜz!c{=ʽ쏺~)fyF2yH-f3µN;B/KV3bU =.*͡ҜXY&}N?`YkB2j"VLyJ?`L뵕+^>% qamF;B 4C 1-;WKv1fds=oK0y㳸͂ F#%Z<4eG JUHKm2**ș>Ly6' |[a$KQŽ7t(kjN%}_ɉznHDTeċSXR[L|!96uL$u7X7/˜Tu?ɹ 8~sDAU7K5;+|ܹG9%a pZwD 8حAye94W!V/U ̷!Gg7#զl <`A a~Fvk'@'MEZ@x< %I0Jh,Ȕ͒g[׋网K˓hpY8 t3莑nnwV;O,j@Q yRʆI5moq y6o]Wo>9l6Vu+Wf}~J<钤 %P_?5{?þG%r9 {@7֢@x]IrnyJ 3P#6">l8`^ee^E+"`L)`lr[*{P>;fд`lCحXEʉϏd ˢo'pqCŲk? CKn1ߏF>)G!<>hch7 7t8W~Ut&LUvzL ;RVmGH使2}uXGB~ɤi!dƼn H rr]CW//o\{ & ;X8~H-΀Yģ:k"]5r27ܽ>/;I~9Ilunp@CRb;Y?|Cdέ7!èk˷iĚ]) M1|8ZXjh␆sBVbLᒑYM֛^څ= E$If.1=r;S>b/KiDd/w͛Pxq$!HS/Dd#cu@OxS(~5u[Ucy;y)mq,)mүy`#aNbSnh)/'PO^2?@cQmL4tC]b:#6 tP2>A5Q $ݨBMzQF%p4U]UB? ٪Z;`vk~i&c1B^]yspcjڽL1e|(5[ qLg<M:A:LI1dWO{A ;q? ++kM4o;e84EA@Ói' jQJR}VWV0Uݻk01fR>ӓVDOfolɞ?O1[k3wSA nZ^!GGʿ@/zL* ՜fwM]ņv.wh,|LHy :}gX7NZ+558Ynaj}O\rS!WC&SU,Q9a@U6  jĭ!A'_aⲺad6}#>/ YBUK+ c+o\%%5?\[>Kۆ{0Y|4zu5 aNиDPf6G\}1x;J[AMy52Kh@m&iy@Y*3w]\T9y:w2i{!⣘Fg uM3.|TZxN+-Nyuڙg Ai#ʺJL:20dɅ د\b[P&W-TFDϒ$|>K&CvB]9_ЧY-Ω-j]ۑU^ZbFP7BA~B>Rܶ 6D@3O0lw|+2 h {gZ@!1p0nӸlL5 Zwv*ّL` fUؑLܜ>& [J:=UܹaJHM#yP;f7 U\ϟ؁R|YxZyȴMJr:Q$z&1O嫟2O?̟Nv|o7MÐ>=HR[5i9rڐ-`(DbJvr|ay)|"$+k3 JR1 D]&-R2(t0GJý=#7ثG5GgHR _g|o$A RF).(pS[OY=2j bP6_ܮ絸8a>=/A‡仚;gO!4 Vʤp_Kg|w"qv|Q bfyz'ut=Qk#ejݕN)kfr6cX&OC'իZ5s%y!mQ}}V=)e@w)_ w>I+Mgߞ=mb:}Dg~5^"'*G/;%rb$ Y8YA3%eTvT)P' \ѨrrJ5GÍ5OcVT4i!+Q+5t=dcV \+4gro,pzXB5Ak`<=Ǒň=P@ Z,{p|J!ٍHc!h⠅2$ʐ=ë5JenQ}k.y{!r4?ΛVscM|mqiBLʄCsTAJM}Oꩄv%:J|u6{uO4Ngfk6,91S"Fh'͏xik;[}.奤@""͘V CǦB eNK8M椙%m{E>Y>wx+4MS|eE*8x?bRo`Y/BaU [VlsحXCSUۙk@dJgie5v *e"輖rx@tHP%Xg*8/!H`Pd.F[EX\_  ĜI}ؔKy]~85˛ɔVaRXD#%*Krp'@|b2הY򴧆Z~f! ++!2Is\Vandh,#JOi;C}Eͦ]2]Op~[ѕ^MxU*Øk8lv~9_Ztt;#CGv.S~U< P/RrS Q@Cdۡh$ +$Oz9WbG")wqW$2D 6 f]R!]W vva)X;w5hQy t苨lj%\.f[߰Í+# oIF Xʹe5Ջdi 8 m#H[V`%O}@gOR ,8TP x)UZNt.lrtC"qs*_!lPa +-Pma|Kmހ}8*&ב1~@XRTB=`K,B ?T\fe?UyMPc5seVDl _ 9/Twht&#nuj;S,@ZW|&>S<;"8 UHF|OQgB_m fҝlqp_m{=KB_x/"iE ?hCyަj;g CW_s@n٦g$BRތoS:TP!YESr23Z!ښ!. s#gH? 8 H~yQwo:(A^$NMV .ZM ]_'0B- E=Lra @ĵzZtr)/OrKE35&=bRHPs%!sVnl`YKm: Bnx2orJRbhq#9TRPaL!0#P&zPU.22l׳ V ڦF y 1(lt.8+SbCO(˽eZgMW1>,qGq;<[c :.H.2)a׶IIw,`8bl)fH<6ճo;0hAnF߇"K?|1?@K&1;oF5$yi05%:g9r{CnSN&C.B `0)HL x(xJ6_-Wլ3cFe``n g23Ҋd`N SBL;j S.Kuz.&~Jwv#ΥAL}E(ǃ&@6k ,Usvg[̲Rg$b-xћ4lxsCH@h\}Dy(ٳ.76f"ͩMC\õnM1y{b4]G=U-2IwϜ윶&!,Vjt#0%b~҇Й_M,-ո 'ؿRiEj/>α>I|:7[I@%07b@}̲&H?2ޡkuʠ l̤Έ,ђ~Fg) d^N{ԖCJMVn(M)HLφ^8c#šl갶EԆ6BcdIרJmpgxx;vb>?š3âgt]3%t?CA8\0.n!AK:j=#DȒAr*h%gP.ӳyyh+BW[ l9xFWZclۤCQu8Ic}ҙ If uE)5icHlC7v3ɌEֿNXFHc c^rK26}'#Z9-N2SdQySm!PKSg?5-b+oo{C^~cr6U ̒}0Iu[ bt?T|Np/P"qzD2֮bx~,Mğ DV0U[މhMW~"r.Ue,1?--2=DOnV#>Y`0 Iw" OQ33pjsלVr( #;>G ͉eY /Z4{ > pVގfVMǂ("KCTR-qR*2h樽y g3_M0L߂rRH(7̀^b*SsSi乴o"qeHFJ{ )p=a҈Ç |D( '>7<$*9i[6Ռ#B\BێI~t{|Ay\Ea.DžS_+Z-^ >;;mܙh+Ճ!NEB}F9.3$ͥrbn¥*RBna(A' Hi31sAKuiAGMW/HJOԝi dE&L \i #VpX뷖s c;5|fV TՈ[5Q )xRɌdQr"F oϓötQ?Qt=MNlV|`J8mUEmghAFDIuF7hA⻾bkF١flSBbj`C XHE F$K VJ2 %e3e k49 "7'ix8˩x ҹ8h3p; GDʵg񢪳c_ :L>kX'r]ZD@JU׏}k_7ܮ ]mV8aq'O Qm%A- 2I Rl!4\1C`4ђ!PuPRZz tO2qw+@_ ߟ2{`* _ `>DL6$ƧNѿ:KN|TԔPPǜB)˝\q}7&R=qb"CDJ@kF&1 ڎT؝pŋ%Ľ2UlӍ7`9KsU:&>jhzrumh qܳ.:3Kh=|q^aKj`u|N> j/Py9? Q]jeX޹bL˗.Y[~${t흱 >:K{mй6B8hmu@3SjWTkgFF˜ 5SLB:2|A~Y) XYᠸ9!ZËCSlapn$QY]xM @f5h-_R3)/Ȯ 9Hz^a nϊœB=p[m!U(/2sZLA,p [So{= rhI Ey ƥzrbյ#ܸ:!On; Œ o.R  4@x_ v9+P)K#`%^cPMEJ 8]~ >gh`3b8? JT-9[r0Gێ7EQpI^nCr&]S/O$Hk&'2 I\oz;?jB.[5 ,fI$O• Et̠to4sn2ݺ3hQd*u1%U|آK1QbV(Q@B5~(,17KiJ$xhmEWi=UNm^^[vh'@Ԑk|0x`D\ "%jgbc_&O^j̨I hF9nMZ*Hܚ9兀&R9Z^ 0-l) Z\xi8Ad|֡%mkCh#VւW@ؤ24aH&T|UQ0H[ mvygk7ӯ!UFZXD>Qn_aP [Ue ,-pY_myKy#r =׬JZӸ s~ye Ah=\Pg_"k[ęc<<'4Xq9{50ؽbO yI*Df"t4!EL5jJ5/dIf.8|s揞=3`cрZ9-$.;5| NWKLCR K{Xܱ[UoN .ow h)_TVSk.n>qǠI HQΥZ/^U~͢3ݖ&.9 1GCfQ tً|kvL2kÿ!;f ]пG?R3!هlb{b^dwCю{2$ꇏ$Ay)B+zҌdI#9L0]"n.fl{PKgu  j'̎ycA2%ǤII+<^-h&C{ D#~>ʵ?P0_-6[bi1)j Q@4n;w䄅 ѭg.-z)/!<Pȴ b>2H<5L |FhӢAlDa-VE} 0DSVls"4n ,R+9뼮3\%f-v\D &}ٿ4yX 2ߐwЇ4LȆL@7*$}Ě2V}n BߩKV@UWE#,y6{ P[-d(|W̾;jj˯%3Q6I4Ԙ ]IBWp'y#ɟ'B+6CvREBxV6Lie"^8@{gcd~@ȶ(j>5|] Rb uZeۭuY7(?'0TZA 4i>'XOK-rRw{ mk$85މf aw,cYTU{ ` NG |{B֢.G_$opc&!+0 Mr$,$p]W!Ol汊o6s%.2(1;J^Ɇ/RèԠl@VlT`+-rܰf0+쨄($.lyuS` 3nv6͹\Ʊq;5X:S, G;?d j3Δ,fթ0KlHFڒ vbcU H[u:DT#וzD5e<@7< wޫpS(SfazW-fvg.qId\! H$o `jv/ַfTkm }¤E ?33[; h)H74xfpÛ$\Jg .%=4EbHn}cf) ￸$5*tx$A O niLbDpxmNe |aX-DHYHΖ->[q5;u:GUPƋj!aO=Y0ֱ<UJiɥh =- p3 4XwO :E/0{T(,iލAgN%35< T<;)mѱ[l S$DGk$B[ƌ"9b%<kn"$?GEnʃ7; C <@3J>F P0:I{f]l\)W"˶W 2az Y/od$^qGvPxq.P*|KY5r>/p9 jQmru]"۾.\aw~=Ę4G4(nW6u%`!.><ݬRMő$mQm  zg,k\,8w{̱ʖk㌦UpȕzlQ#~5^yeRiv~1G 2ؒ\|6+pu\Oo"#Nup URC`x%N\e̳y[HzfMP 9k줎o/vl@4״F(c4ZX*_Ij(x;} )?5pqICC9EޢѢ#\,q؇ݚ w"f~{ʺcdX@2syKC c\&[Fq^l!82p(+FlhϜSl2KY]XhŢ:fJޛ6*MڑyyGS@>Y/o!=2mL5+" vq &VE'ύDAhAJ^bAU{ujGDR Y׍犴T!>8tp ֑%4UיU~55]|s + "Qdhqu4pOlbh*sK,K3cUR3xéƯ_3pWs)DzVtpʶd ݞ2ߍe=1\De×\kzfigV pS} 3&Ms<+~2r9>-{Xm찆A([-ahYk!%"tGtId #pMӲNS3֜d~:*kY$ fX|.bB u= `NRv?cear!vt:A8vWZ/ТB|d'{XO*_KS23* B}Pe%?VPB0iIu;I>4s/VnOlק;#?].ub=}qXjD`S -@A#R$*5<8w;½_өҜ73fVwRLN*O@*Q`1.^Jkim'"0DP6)8b+_7;V8/`2P3Srcz'+sE$=zq A,G)Ke0⮖Fhov@,k4wܿdVbsemq0~]5㭟@J#yhP9nIʖq(kEXZq읝8VQŋK-…&ˀf=)_g}p7U~TQ١ʱOJWV'Q[!KsSm:+MQwH0vX% ͒!{\L(d#, >ި; (BLYt 챑}+$O ޑ c'03R9*@WID/D(!|<1h&L: ƮAr%psX wzL#IwFÄ"8.:XzoY@ X1$;EPÈvH`U3gtUʭV?QMBp~,n+|/( z~_]PkR_!0 '. #ǀkB,a?Ŭ?B|sFHI|C`RR]x‚ y{=>oZ?Epv23Ҹ -$#Vb@OL|⃥tҹ~5jij@f:yLkP0yd{={\y|H'q79![Xjl@j> #8 hQQ|q ϧX9Ghb ~㈭P$=+M;Os ,$(dqSp,?KXUD`>Qz8SYX: 6A'vN`fG==uT@;v>Og$sJ 'R\ӊ=DdwQ|Z F X'[O1[̕[6^/~\+IK{(/-do"2֧ 4`y), ` ;K9p-t8*6W;fU {? >7$\{# _l&MQHglws*׸9U_SqhVwMx8*]7\wVwwXP=ˣc'yfҮ/oAb\$v,I߭ÛÇM g^՞;/go.?($~ի"dK>Ȯ>Dz7 g$pILrTKU R0V0pE. gDLU=mߒOEIvUE֫ӕP`tK {yFY-BMϛtK.{9"1ن *#u:\-yfէ=iCIÄoqۊHn3L 2*+- ΥM{#7T4Hy79ݾHgm(Y2+C+,=pҮtR/%x#?]SXpo`>VmTқq p%ah۬IYy%i Cj `<ދwKش 9 zّƐcz|UM5/'m^`_.7%BpAkCt~(rFL-͝hlQlD&a1ΓNocW $$)X]e8=t8Ϧݐee\HIׯÞg0ba;ba2Y(%@.,tRΠ=`,iJjٮZf޼I`*ݧ6pDq3W{ K), V9=ե*v:2v<=fFMv2a<֝Z?E]4i2NW{5(Ja"]I٦k1k2p1KI9:E`p;1،@匜*H,D3W/fȡX?RTZA h݆1F93e N2*pqVZqS_s2=ͨ21β'bu,AxF42&jt;C&g52-ᩊi RsgDRi=6ƾ៽u_Y"SWl!c/W{=HK4 N+$z S-R3TʬG@y{Vsp9;NMJ㺐wDYߎ/t֕):Zhg2BË!ʜbx?n}! ۚL_x{xb_eg&(bn`i,i͇jLRs|cnq˄*YRtZSt0NܒqeII{eXM_sY0TTy^6;᫧8;zN]&&nx*%PT<40?I'z$63Y. hmXH lSdIP?D^M$C\„{u]%jAA"D՚mpi'}[Xu&U< ͘hPVMsw; ܷ#c%hCi5J,!*Ng%PRVi1&-QF @2~ؿ>!jbaMylPK( ƙ6HB6^kD7(4g[Bz ϦZ=d"FQ:QY o:܁~qD>] mt$%?! VFKr`Tn3*Nh)({Hy'-6R{gu]o1r|%Se9b9 -zyV7E|-RC)҂d=!)c9 NiE(,ijƉ݇eJsp,p}p1EiV|To~G(´rOBN"yXK,ęui]$HpgQK.ņyl%c`,z}\ Q?*QcMe^FfưMpET<'[vf_NF-,Ͼ<0@"-C<h{a@=#+As\u T,vE\,3+ L=%bl Q.C9n}*ӻXFգbX%~ ~=AŒěݑAS#HJwbvKнOvޯ,g'Tv/TTr<^_IYh}ӫ3/fTH-%=~"hF1te&$Ѝ7&CQSc3k Ob}f!!v2?83\0h)H;}JQs?xs|+po~x$geGsPxvMKderw5Nb,UoEQ>kKgw]> u|J=BRe2:S!c{͜ 8A*ZGH__ݢT$v*Bֽ ))sH`/+$ G(|@ToO7ƻw<lX5z?vôꌌYɕvk]'흢jNOdqR96LmyEUm~?/S C v^~l/ @0%+<-JIw63t5Yx%F@aҁPDTWL=m:r*1'+ _Ts9 _@}TEfwQ߈.@7΀l CCE):|5U-6 ,ood0v&X}禋xϲL!pLl'Y%*A>KMKjD].]obn ix\1㶛wQshX#%u(U;ѩ^lhw2 \:Y`&wshL# :W>~JRpI8쯥##ѧC*3^jfOf:YPtrs f&q?WB onN*"X'ZfHp꛱Gtx'kŠК5qwDCm%J=eZ /Vm*ȣxN)IfqOjlͯ 86pkBSw܈tGVp2v` /KۄRU\aD79cdYN]]C ?3oL8cԿ өL dS5tCpRWhJ8"݌4mLg aW،xs)׶zG{`8Oזv}ϻ:|0$OStEbLKç^yDoCSS)T-PF c5howd8!XtvS軏1DB֎"ܜJ HĹAHnu8:Y }zV C~rS m6KqE4ÑQ{*坁WuɲX98"Nr:R(r22m *^Y[LVy +EM2Ӌ~S1 H6 znoL պƭ~<ʽ>|IU/=^}M/t(8pZ%ַLу%CIO#d.ȷ-ŭ杊yTpgz @u%!1ZzXO_Nx0j< 5^ֽ¹\5A[b؁x` _'hbբQyl|g`2Z[oРu6 wEq"OYaz %):L%TZbJ{ w_d*{699 ZMavC&nHssin,*?Le&*?q6Gdv9ARhNhkhi D{VT}I>qjƌŮnPydQknF%X& k{?ُU^ж=QGty &S fO]uKk'9t ͩ]l~CPѼT'm]}rf=C 'wHWIf`bEE(wH <ޤ:]x`sTjK(W Av{MR1|8<x'.ssOaze:q:)WjDskC9N MQo^]#xzo497ON.s2rK:Wf2E SOeĩ Úu?7hL E9·eh?jBvGŬU$uJ-k ;k w@$5M{Ռqn mI?ܨ 1 e瑿 rCfI{K%ap^ANXlb̆`7zxO(HRI oim2ʺcB:!۩[Xz1ԶS^U9e߁Ƌ=yim5KP,7w·e-:9{̍&(#@࿝D&7v.z .ۭFoOY?]SA9׮-7/ 2?![Texݼoʎ=rnqӅ' :Cf$V <%U@SuJf2BPU{3>;bbJ2hBuwzj@}2U?F`7)7ie#_h*RPc.%8R@fQwkqS_>oZ3ȸ'%"n }-:"v&wi)2o -ŒCDLh򮰤^e^;ScjF>̡<)E.[yc=w$4f[>IvdS6#2)Ogr7ygvO'b{s(_%Bkw] "58TG7n]sX!/M.u"ad O-}v(͝pZ*l%I@TϷxBҏ"MLI߀}0M5 #3o+Ɇ"y!K>If(1M?~ݧ lc$,9C-Ws\x:. ɗlz)tQf5ǫ^-%9olci&ԓ2~:Q jKU4*Ar+KtU?<3x/aB%3h\^4;@k#ME8q =e֡7 FJ].=Ic"s3rÜt;3~&EӸ0#PHNO̮L.VvHtҕHlf)-7o%׺9QORMn| rJ<9:#03l3WsEJ پ+D6VUٞ}yn݄8 ^Mr4ynjXDa!q-EkR p  0UD5th|SWQ[1s ߂H=SG;0{HEz3eUQWk;q=ן?`G= $@0L lh+NڂE}p0kdC `$-53ҁZ> Q⊘}0C,oXFE葄4ņ&2NNh .#{qwh,kJ"fxx59G^K750ފz:z􃇚 $=:ו5d:F Nw35'nxiqTV)q|}D̚)aK\B玗lV7j1_hqJbǩ$$2lYBإ>ըH9}},7)tFlo|mm=^C#ɻQuB1rq<мf0H!.R`IT4}mW8/P4ߠƱK=Xq<ĬxaB=wXO.1z\;:ZCׅ7wxnqKtcSAz^?Y=L_h׃J8^Z/ȼCw"YJ ps?s3V `/]QEXaK=H9-6TAecex<@ub; ҝMF/wV ~[z+G!>bW[0g[ӿX}JHmm<4=~iX*ѵ1=DmQVnm|{A(IafcQ?6' #9;d#t~~\huVPy0)rǖPێCmy:gnuU+nn!616+x0D0zbzz9)A+ih3 #.3nbBk.~ r(Czmm[8:L/YMb&)MHҁ3L}ӨzJc`bopb=@Ԕ#Tlo')dU*KPp-fqĨ}KW7m*N A3$۝_?qfU:qsX2K ̊1԰;Q0%vĆmi_saSM?u(t%ZS@>H*8N:y7:u9>3Lmgf=:{HoDMr+!~N]9k>&>UWM%p5kT gRTnՇ_{sQT3d+Mb9'ݣ=HGΣ$r nЄfS,CEh,+$ǎ|OUjvCmo<wG|G?SL+=Z0 E}j8@"F)(+ LrmT֭#`xLHR6x"S; c@<!+Nq@E66*i=zHNǞ:ϫcU:zRG{PYMWMe#]V~H_ )5̪0 YH}ZSD66 O 5bT$O)`h5s8Y'vV^ܿ j([f7$7hWm*x`=`덛 7V|łRyaHavt9)[ O)C0f<l+0i>"]_ZrFSZI2h+2SSh`e ZW_2zo,oL?fK{ApM9JiD2y۔HE{:\E-S;Ib5,e>nJ`JGrBK~5+9dDWp\̰]X]u!hZV^I ytP1ue|׺L 5C:qzt% +4Ň`aF^fW~r]*:,B1a+N9y"&Ϯ8RxpdT꬀<_Cj/Ħ.$!/<@󌐼Ph%=n'8680.N+N8(M F[G2H7SM],c3|m:wRހq@OPu~~'jSE=?`UG_ϸL'?~FS~F잕mLj|bH7ƻ_3bKˢ7[%ģt98νQ0nw*C +u0'd7(8IjЅcX'~sp6٥ߧX^Yhƽkgk,4EՁV#Av!|+Sb\) gvCʺ~P%.'fW#hJ{<ƒ:p+u'-PC& \"dD?b%fw.2[g/2/J־ v"-xvܞX^ΐuw0mEDT}x _ %vu/rash|a&!әbb06BM00 Z~NEi .y*5AǮ80=(~ N 8B(?y ):ޅOJZ {5/^ TWR(qm-og ap4VyRG c>s:oW O7x;*}#R{ ><σ)sK+FH60qSd,u`0Uh<>*9?v]|KF`$qbOjCY ˒O׈:Q]'BX0 #B>_MPB}q.|KN6XD5` +SFg]-رyKʣN'V$3n7 < oeg%@}cMM|”Q$ߩj==p'+\OISKc) X_14حLUL"S ]N,cMECh/C{FHFߕx+G ԕ ?'W潛ttTF[t;W!DZm~X׆턔"GrT Uҵ u8]C [ij~:Y&YQ 5`7Xt3 6AbڱuG_I FrM(W(r1zc#CK'X2l6uQyz6F#xp۠ ,sD%b {9ćnC{F9i=A n톊޷Dbo2xwv9)M6"f0`P=sW@"b2ё,X 6;,\3iT50Ѧ: 4B=ȺLe7sKf! h~^J<E=!(p 2mZ,J> EI-`G#Dqashcq_O<&:tXZ:H7'ưNXȅkk1﮽[]EуI:7l <= l碍h={%$_3&E*An[ %@5SYQo3iMNlVIV1TLE#QK6X֙I`h>>Ք7C" '*;[T#^Q?kDP-'XWcCQ^nġFUX۪C?nu| mMgű(&(FVAﻪW*rM!IB"05lmM\]Vb!6ѤɎ w a!I9BOBi#ŰRMh1^ߔ<͒ qy$]2e,,+SZ4~Ǥ5$amxlh00n/麕E4@1RGc\iTE)VɎTVͬ Nu0'4?HcdlՑ T".f-Vٶ]C i n<|,+#t7Φq?8Em,{9I_W*F0$o-{Z?zTZStMrX-BP4':#X~F|쭻DaTطa\!E٧" **@?흽mNRCrX|`XBN[3|JpaS)&z|AmHkUDЖˠV+5!6L&?hplD 1ؐ H&k`*/+@auCGe2DL7H鷻4{|Ql|3ҶIx*Ƴۃ] l<=8VAQ[hNl%꣢.?elʆv``O[;}:r(M]ū--m#yd돆RjSD4f:GA%'Tj#&gJFАLPQҺ [*jV|e :l8wЭbki9"~XKׯ`3p/PKn FQC G~bv[+Y.mls]3y1P{Jute $ b37 ,k|!\y0Zߎ15Ö<1cVƃ2Ό ѥ")njm8z)b]L6Od71H臨<79n %))P{"֊p"y#uW,?*6k_DN g ۾ נovÓ#ԆTDxIѬj% G-}&$qOerfpB Ϋz!Rhh?]u 8~<-R»5@MOh= yǗ{}*yɆƳM3lvhF^p(,5KvuLC4+u6iMnof]Muu~-V)g.xVѱΎ1\fY8'ko jυs;ɜc! ٞCi 0:q^ɔsBJS#ƌQF3 ~҃mOO9~ Ds rXiPrGj6tW߼&vX''Z:_| W+Y[81GweT ?KE8ox\ƣwEC]p0;|Dž0m/J 5 dYXW+w~ƕtn'q;U1esq3ϗ#nzuݰ }\kblt7jU@y2msdHLF]JE.QlwCԨ@˭D:la:=AP]@JlUKcI)Q0ވgj̋uA_!v :2q/*e-B.ǯ.*I6#Z}y_\esh*[I Y>˫Y) 2TPX3^1Fo/z^a"}ޠFb q[ !4u>QGU;iqaX_v7JDwTЦ*1dnΙK`*6ڃ_:`ӵq.,<O_m&Kof xX5\Dx7t{a;nJj>G隰!k0 N~gXDLW2ք,ԭM%.g>]W"QTR)]7F?.*qO׶:ҚRM?OKe\g,v,aO]::./*3y;qCӫc"D6/9"B޴k^!yb~y%w1*|bC|JGrd؛ΝċǛO哬;΋5F.{ Uw~@snR|C2l` ьPO'hI+ۯ3ޒsMXzLm]S.{ (*8"LxxٮΔTd g# }u eR {@4:Rwef(iqEw1A (\= 璫^$ơƂr"CwؕBcNlE4 |0 Y<ΔVQ -y^귂 # ]rBÙ}؏UT pۓl\\.#)-p)L&qJ~h\c ;0]+䱓 Z$-u~oHDP9a־ >sn'O*eŐ2@(w3ͺ7q9"uYWppTLY3>h^5וx=46`x0#d=9IYԃF ,9錃MTU7FQ)h9M3{e Lm/%~vZ`cU(~ҷ9]f:9I7Ynu6?=5\O1( ]XA9B,"V>Y3w*fH*DiI5?{$E7:rڋ,&DbKE1 /ЌQY:$@KO$Yleqv=>c闹ך\f{J]C(^ͳ|\2B6pSJR+3oE~`ӉGZN}mPٞVDU -7S{" c.ّg@~\ꯗφYwiv%`Y J@Z:wŐ{89c ]NmkM&-~鋸(Q2q Y,xoDZ6(03lt㤂OdؕYKohn}ٸJ9NvLH=Ca.rbksm =$$~"&$ȧk>ԠqG}/7EBRҴqub>Omq*.i?Azq/w:dZ Jy f[kgQӲS'BK1Y@}(+"=aUVV8ߕͦ<:i ) 0j+B\,~,r. ] k UcHA2%яtѤ'Ʌx6j;(Ur9dtBbѦO krM|,t[@阪}\oBK8)eeqJG/A$T!&9ñO  .Q8-KJ~ugFWl5!BuKeH=v),:φ9gS}ޔ}`Ye42L -Aq)im^|nW .\ @_X/6*"85ТXBe<(Ft7Xt栒]IBiu|N}oq lkF P VM7N%}RsS Scz@mY7PTSI=6ɸhu<EhU{ۈmbMqc",ιs"87[x@3_Ęs}-3xYUAمNP8TWMSLk168ԋi}M84 f{U_Kב6ʨ#ĮT,Vzcvң"k#A[/QR @]͡IjC.~q c!O"^xfPC%XAfCDR3y% wUj`&y@2HaJ!ޭz,-G⚝z}ZZ !n1.60FDLmvB*RJӀ1]Ւ5y1݉ƯG : B `,z 멄&HsSYIziH;-ɱ$(tib^!4(] 4ayV?csG΀*"lq|k䰵o{}ʛSx%Ѱnf?!Mώ=j{,SBzaFR뛺ys*$S=f^*^-a'tҽl";m'T"EV^6fx4SC%B0I81?&2;Q3'| gE_ ފF{E}~JK| mWǀ]oMw(`kq1uK2E+pӥ~Nx  .O؀/['!J|T CSƀXqv{ʟ2YE8%u@?SKUcf% VC͒Ճlsnj@MnT M%: 0ۼʲAڑ(61*<4p[=$ Ӹ$t76 EIא-8W҆\`-D pBr  ,X<أh܄w5랠ұ8`;r#\u#:8 (^އuCofʀb *xN \Upb_ (ۅ.&CЕje{X e씑F3 1u-Bc]T6WȀ!jE{Si!)˄&!VEG4-7<ޟԲIgLhX5+ufq!Y\0B]xh6QgrVLM.٪ͤ]L7W.6JSn`Fh]MH'Qj:郬 ,ل&gJ!AF VpBaoa]`;yN+|]A1*yAN`cuD-B|Ys<̘iyڀ`d> ;BGs۬Ðt;9cH-3;AX=jB%MFuٔ64o=Vy2 6%4tg~& {ZFq2pd4Mwmh?cc/Y E] a,#Xm-[NYDD񁙊j6Cj? JOïe)N|ǗG`nZZp딨T$5JEнв KܶBEFۂo~h&ՅwH+*Ȯ~tZ}@S8!Y+k7(ѯʎ|SbWT>]柭E|XE=|`7%oc# |Rr; [G]is3ä`Z@ُXsx&s%&j`±~Ǹ1PZnPM%FKZcy $#JZuq4MN5AO,IPc ~a~R#^22*[\y $:7#?|L{O;y$hb|/e15v U篈P{7؀B^4b!^FֺgĭfUߡ5"xO>="z-0FLC|3E @p:zv!LǂKF3f\8oϔP@85Y+jIŷu?rpUF5ʗ0}(Ⱥ <\}KXd0TR Z|{}4$˔ ZiO0$(!l%0+WZ+n]LT8S' Cފ"(RkѸeU;.w=<ܧ5e@Q@`2![i4v10"4R[n--, qWjNk%&:#ֈ5rg_4+5p:ǭ5ѝ-L!Bqd"DMiL3<ܜ@j@fvA#'Q` }%; qޙ{N@Ovw3 R 5rW^R~< vچI7PTz s#z1Vy譺6/*ZUB$UӠtE@"DW2#E^W()&"Cl<;{}GH,K\4+.>A #t? 32{ _( =-ЙBy6񊤗j4[p[rj DDX-$z?h 2BbȜR9޸˻dD HaݷkEI7h/ֺ#o!?%rV[͆֎LŠ&߅x7$=i ̫YBo A9?K7'[bWVܑoRL@%%Ù" X$ KπfV(wgw0L9B$PnMxut1ϤJ.C{`ڨIn!7:/ʊjGlq:V8L,ءj_7bWQc_'bθX3aYKm^S1a$?a6 MBil??A_#x\Zť>❃|8[S?j!X,/QD?Xqk2 ^0%-['3T3I :-b5s䑹:f@BzzpR=X/`%ClFmV#2-Ԧr4H; 7;E]?mlYcFƇuC5cwC"I!u9HG*Hٞud[7I0 ,}4GWr8o>1bCh^zٌ[ZWtML `wiP1 UT+!TϱWgma\R~ ,G3uN95.Y *ZɊLA9%,ɻY-Nf-`J:EZ *SǙ HQFmc.)$ÛIx} U9bbvQ64 1J {ԗH|yGYѽ6H?"Q#l:7_lU/au\$NZWݴa$\}v~ -6kU3fE7?^aUӿErIP<4=*3C6T,Dz>8l0j>ql7(9@n3#Ȭ߃^fTl:IqT'uHDIĽ p Y橨4)}TJ*sހ5Fa+}?䐕i(`tR2,HsupLeAV/D?L]5:p!6ϠԴ[ HG|Bn4h1j<9Q(z573Xryw'N8_FE* jgŠ_aL4ma F|-IWYZ r+nc>=Xv B3*&(~M 7)䢛ݳ$^̨H ;GRAu ;̃M_I݀Fj'GS1Κc!Z!g(rV7/͐=wM:҂+!iej\&\HB"RX`2.-zP7ͺQ: c1+Z@WyV/ Rw]x"jW&T~ &JW YЫT *4s=0\;ː}C%n3Vf N' onZ,0!ۋV>rƧ fl.ڼI{*%T/IP`ŁoL9ײSbu8J%#$l{OE`P9s)!ɟrVҊ߳^ү gUJkN /e-cI"?JZ0飄Xd:`4az-?JvVUq1QP YU$eAJ?ѝ .m f\f7xV8S^*dG |&Y3M}$gy(L6ۓX' Aӟ +ߤtyq*ヲ3l93gfFtK44)Myr#͕F_?)M};`My??NMhov@G\":_oTB?9$%K0p;E;tޯSTp =t@;Iz|מH_?4iS4I[^ҟlovix&6cBj)nUIy6by@C\6וi<,iG& r@DRVknj_PXSke4)LE;,,rVfuu.\/Efʭt0&l5c:I +YAq Tng)^v'FԶο ]J.!aj.c:>^J2TXn~~mcB?ؐ^'}{ut+ F= +4ގqnzg&H|JE#*#LZAo?V]~tNtg֚A~]f{ѨLM&lVSZE^aŖ%2!BPt '- 4D5,< +o 4.2'cY\B4K_U_iQM1l=9"n!'.V^ 'ճmnGDPmm^ifB6P #BS=,8h8.woHIa9[mW{桑H,kʘ%^4`ZV`W 6$%)Aq!; PJ)I=~ktOFNc)k+\ 2M$~+P$pRIBY8Y-~#iF%MBy+ j.`"6 +NkЇ!lf[62mt1N4W 6c'NAVL^2!nmKp++ #iUrdѸA9U0l%'L5FҮ  3+mN1 ̬&no琝xqr#jq"G_x!5IN<&Ta9޽ia_m_Q ж6R 0dRE~ׄ1Y,jyժ@xGg:)̓6 ߢ:8SŽ=(L?]\re"p TH"O&T]$Q^cZ[= |៯Vt𞼔XKJmw[E nN>-=?йnN*km ^ *lgEMNbf{xžټ"{mW ٱT'Vݒǭ jzVY;-AoyOT,Xi[}älxP#OTV-ck{+FG_>:2ap#]%8T ;#`a093TؗufIG4-98tRՑ\W/m Jvc`Q,&@KO.bh iaKAirMb&V@pqI rm$"vҪܲx- oyide]&0U_NN['3:md(jN`VSݳc92[\'2 굆8]=,WB`C10]5MP ୿P#m[qɚ Me064_<89t>uTϙtUi025Vht9!k[]^xx.* AjS5APaf̐0qQTN0^ I) I("<19lY(͂єn>}rSrJ`3n o!>FAHk0PIkKUc eMutZ%l6oK[VžϦ^}^w:XD"q 5NP !U70e Lٺ'(`%A#0Du(]{R+m9Z^ÔC\ Af,*eə11Пn_>M ~Koz(qnAjt8*9RtmKJbuDۦ*U$ ջeD"i#^,*ST ȁJ^ȵ% *5LXPoOH5Zr* mD@Oyɾw^cpц*txR?TSrV-uM%1r }0vm!4 8d?"c3VJ YHOP=zg(ɫ>wf ۠t^H0ѕTfyUm{DS=%Pl/GqF~OSYo^Ը(78nsx)2mo>TDbY]k5!Ǜh*ʃ¸u]$jÓlvö."i3ygRt."3AE\'֒$qj)ltP< J,`ӓUAუ"2yJ9P]ekau<̄tD%nٷ}?evkct#GuTG_O;{ P\=$}وJ92wJC0\Us>0ffdϖqYlMgy5o2g*<BU HG'BjY26&ȢP 2\ܳ>Gе-xIN vF5ӔwZ y!HvW8(%=N9P/92TO-f~'۷}j|W~ZJ=ꡀ/O&!`ح= W82L qr$IJȃ%XmB0jOצO+$(bw˚UB]D DMY{fJzٓvCOI͇h\R](l[%Rr9#`}m)hYSI{Wxת̕Ő^}4ĭʅ>\ 2|hp!-'=|{bl aNJMw]Ǻ$F̾0x'{nwG!#s8S>@[$E1->2 0j\cPxhQQ`qf[:kexNbn:DrQQf_zXhJ J<)I-tx"Tm"bt 3YFHϐn,;p'^7zdLxR?CĖu_ZwL??z׮ZPϟKm* w?x`ZlYj )rCwg(4>ēMef۪@vL`=$W'9l%kwN-o8 py:>"k^UHDR0%h1&%:7Wn as+]T:؀Mΰ]!Rq>ϷJ\.Il+O'D.v u}`7 8}}J!kܻpWꬋ?.k@O``yi*z[$ N&yt} 5E$<#@E]|J}iТ׹!& 4$gWA wRJעlϓ6ez;h{)goL8@=LD 8`nGۄݴ\IQ'#]xqm7Z%ct^y{J[Hn! 003lI!? |땩 S0wVSݳX[w:Y? "pq-8 qFrB#{"~:/ ªco~r?7+lp vLʥh$*Ӊ`-&_j\6yk o ]ʺoLdxݘ2D訳E=TÔ55e`:CEUk X)I?\<#x佊`cT9,G[^s}&ZKC|b R|6*\q|Tȏ3U冊'9(cf!5bP zŽp!Ҽ?K a:BMphzh:#|na:)R;?25y&Xeb\e6JQE.6CWX&GPrUHJ642 OsaIS0 Kb[Qr^󮧇_ih=?ߍvd49H2>OtC|(@2>q.\V9m(2o;۪=᎑g,os,k(CrY$(cF doA>/a͞pCeG{jsj>E'#CߡKI͂˥Xռ'mx$ӣb+vu2![L[GOƎC;7[X)$%T_sk`{J 7ץ]c¤IZ|HBJ1)E|¬4N0ש.p!y>r,۫ ̽:]mХ6ei: ;;x 67M4_=L%ݏ~kJPA:}|Lw(̼XfҚzK*]2B&YoZ滋fiF_V|513̷dhi[|~Ā[ܦntݼY~By25UT`"PӢWZ4:8RZ`5vɗ~; sn7SxƉ[ue޹IQRm*:k`L55Wm)ׇw+g&!R>"rzMu 'LD!_jaaҒ6@JBkvz$r{,u>҂@adk3& •&ohyة(-b`"Z$1_c_ji;'THiƌMqɘ#.c Gb/~>[OUpg7u,g؁cVQ@v+hA8)闻c&-95 ˆMվ53 Z w-v6ղLfLFՕdž;2 /j%3Ϛc3ҏUumׅ DajA%͙ 6(RS22yx+.K-,LFefo3?dE~4d_6S_\AYjCx,yF`x%vAfIEAY}5w%Ux5~Z/fNp>r(\2E(d +VRL'1T4 pTDXP 1s/l>Q1qwz!%ݏ\cNVޑΙmzPʇTʏtr{RfW]G` Tבb(-_O 2{Bud>ۜ f9=>9vhUӗV듉2rVjbb/kDMֿ M8Nqoeɫ$gT5%&O*`6j-f*(;qvҪ+!$кkBH 03<&z Ǐ6Y6b1;ꐑ;} 9rg߿ jT@>EZ3PHzË HwF̴^>bofKMk19%}ٕ 9*3m K~;8tAJO{K<9&~< FžV0! rwpp #.44%3z\Nu'vëUSi>@Ip-hhx08gJtp$s:|aF)8S`#5~"kK|^I{RI2~{4e~n=C4c]?PYSV(SG$Wj%o vvd2Ė #& *BGl>b]d?)jsFޜ9=+W:M!/~&kdqه{^CN\:.1' +2m]%k>/֐Cx Ue6Qyqݬ/%x3dINUlqMΓ;1A}dpÏE\y:Bnnp%є{y o r&IIa_ȗΉt^EnqzkXxh=^>D1Pj r;| )= wpd,Ub-GSdi(9~]Ӆk⾴GQ9Dv~_0w[U $IpYoh`p+(ta|ܑZ =S01wLI3..!(GӰ-/D€ߤ.-y OwxZSe2Z>I ]_%~* lsN5w4l< loیH,k  li]ZgoC!8&?iRKdƸNΘ`S aQNDxlZvԗE׮- stSN hgXi}U-]]QK-91sWߥ 8ч:YމG2`v5yfxw#ϿYdMpcI3| _P`qzyv5J@yEB;q98=7ӂ%5 kdsARŹ*ӁZ%VfB 87Bi"OnO*ČS(?>lx/-B"nJ]kXw TH3\Qvz~HH4 .f䀵8Is Dev:03OR\uN :5#86OO45 oRӓ8ŖURBSBdis"qE@{؋àxԿ?+ۋlP0.Ҫ`kPDA=X-΀h|!GaXBZK5_1l% !e A L#kRNY$*]ҀR>YD#u+|8HGNP*N)&HHրǐxV#4z.6VtGA4~, %͈0 BqG@[Eҍ 6®DZD ,;ZMoi>09RSGM$C:H.AiqA 'kMzžZwiB> el=-0SyK~A* ȟЕWTt軌 K"D/}³R  |Ns㫷^Ii<0ɭ,cv';5|m*P%ӁwR9t7Z>l1Wpd|X+LɊ\p{C\-lIJv6줦T< ʊr~8)r#gBlʁjHI4 3)D!E00A>vI[tEvh_y'4 kbNV{X@iB*ؤXS [{}$JHx5KX7$B01B>z SBIې;1S]pGpZpD6eOWC7˺eh>1{\7>zc-Nwp|rqqZmωYT(Fcl f$}Che ^>UeƬu-t+C!۵f,>(_*8Bs]')QQ-3ɡYE6KVCs>RRikGG\~rr8RY+C$JN*;_Hb@n/ђY1fL$iX}rSVPT95'9mx4;gzwvSW5}^xJ%:O*s=)SToM)%)>^MIZMtQSM]2> MKGQRWa}LIW8zR5+Sl梅IMyR<%ωk7y FÊ8%|]Rrd%)Q7z;ZcI6`äa~tUPFX-/$eF|&wt'rtV<ܴZP:1uϸMv4UJ]:Ю>, i@~GX"ED XïSm Ҵb XWgAO-ř +ֺPjbshgD}/ti@ܸ~Eo0&(f?.T C~&O 3 6ig2$LC% g/zWL3h+_ ` @+z1\Ӕ&vS*RZ_tL~ Z"j*ͻӀٮXy3@PIXWϵ TQY82U  ڤ&5Wz>kb .X6"+I7≼>aRv;-k&0*j2QʹmBpAWݓmIJ&.IP3w RWS̳ѓ|WpI/ρU*{ >1?ȃwdcPQ%bQ-"?څ3f(Y\.#MpaU q s@-=JPijO+Bh~t:5v{FGu\?%!޳͏>Ы0Ak@: bGc}[#5B8JF<bꍋ0L"[\Wh:Y. IW NژX-Z-|vi܉俻%9ʹ=\GJ5n)B.o]'L3OW$ u?^fA~n<)ߦGpȝLcoSzZ `TZ+ET+ڶlAj@2It]ja_nuH!*?cȒk)0!a~< @_Őདྷ@ap׵2w!?& ln#y? Oo[?o! JPR mj )E~cZ\f Bߑ~\q>7s EQݹ&ˇ؀FG?[R+{§^gJp9]ZD.(i͢ƹphqE31/,+럠-݌1*e-6AUg?Hb|}L\vܧFރw"Ë~Îi~!U]ZIaH}UOYE\5}RC?dQa^()U]!y<ύH?"uZ2bԱVPETm^h.?z J*;K]d Y񷹀@܆)WiZLhw3M$q[#;Lי ;v_0E}"转5u(_*ӡt]f۬excEǁ4AzH$cg) ƊK6ڱ4ZRMB*H9(Gm)5s'Խ^֏c:I0 1} |(K?'p'%+'C[bGP5CJ,F/7E D)d gލ,vTmJA1/m8%TZA0wz]0:4kړ3C(/fM*.lj?b]Kj"(6ZNNsqWT6`"Ijǀ' ޣEMҕlg-\3a+g{>mŒ銾Bx߇@"&RBm!P א n1~lQj;\O,vu9\B:I0ҙ(v PR{lH!_{ JPS o,!Le oO/z^s-#%?살ʎVZ idRDAemw8]Wxޱ7'3Zؑ5wAp$$+ ЪZ-ЅvJ_h$kӮXCDzxC%X!ig-iFJ 6[x}9.{2hP[q=srL|;b7:sOZ#uMB ;u)zsel7k&mYZq/I|$Jɦ*h%Sn[f|י=wR \~ e Xs[Ey,gCcoߋ:| c!)!CYwNI,Sv$a3X(xDn'­DiM 5LźKM Ln/m(EK*`~制;#( %=s'M%ltؕyEk`#ZފۤЊV D* *te[!<Ͱ-9^[#ԍkM8G WCx8yQKt 76aW6PGwL>,^E%usa[-=f&:3!o@))i}ɑo,lNޅK$ƚ$,oE~0<(L ]|cql"Q/ rS75(tqG&1sR(;]k~E{݄-5BG#g X$5)#AVuO.HPLkJ(R &i լ_$!$Yokjk  R(zl~йyP}2fx^Ƈjw^:GzA!jNP6Ɨd4gULdWgsA ! D-g bd2*#b_V{.F! y5:!~9v1МQi=-mª+v~5=бqR4Gf_Y"ۣKd p2 dYoK~.-9=0yG*n2?od8贛U(_&7Z^="eەTQ(JokqgU` if!il1k.( a78kjܯkCRysڥkP@lT9d#$@{TC% J;?bt"RDkm%5!CyGӺk+,>e&9j,\FM sJƂ&GR@OJ; >wb>4*ׇ`^"M*,8&9O̶=.TRyZX ăd>T|fi.}YƠ Ar~MH,l\~ҀkNP 2cjRۅ^LJ$ƜXcIq{"\7- +hԃYA4,'bLMDkHƔJyh)`^YqKV"\1\= {!&D:6)y$tmq >tp2G.GiPӓuEp}Nxi-HaYڧ@c7yMmSlB8P!xګ$$8묾%\D^y!6G `I#- Nzr#q1!*As[ౡI:áIˢc}=姧?|!+?Kv-l?/a!!rPӫ.#pBG: w  >|c2寍@B%pʯMЭ6}}"YFQ;谐tp;#0?bb^KUO_gR~Öt2C"(i13Nvڛ%Gn^,U+r` p#&8DR;./͸8Kj\ 䙉[fgCb?ݏ<7ߓ4i(k& w .E<%H9Ő2RN#88^Gm{6YYt$E+9Y5veqOeȕ7;ʉvMMP98ͲۊCK6,%Qw82u#u΍s1uM'I%7TBUJt竑KL֓2`AHwv׈-, {'-j 8l:d100X~=D;6HG;@uUֿbu#uƘ}볿2V:zC?Ot۽`r-* ʥ~RNct20t\n虥ڛ-e&UCPgΠqU#lTϻv)ǪԋlCP5_>^ElU[k)<D`.Vo şu&iwE)Ì%3]rb,y~+f=[^ }sgh 4 A 4Ii]< ]'+EmXM6)F J1-8W3v^t;l2ff'u`"ec+_@y)@/%x]xgѤy,xE3C|`W.FI[ hpw:39:9eyfx+$]H0?GlT)N`Γv:A+8!Ylmȝ'5VG<ȋHp{[3ETϞKOwP?O3b8ܤꠝXăCǖL^Aد=kpsO:ig;YuІIT`&Qe#"h\:'Z͗oa3?]okP,j⁍*NJΨNIb CFKh͌LՋsAvx /Ɵ?RԳ$)&-Dy as+JS Cr!jr05eUƱ|aH[^T7vs4W S[G q?Vd?g&'L<: h}wXX՚ujE4ix=yĀxɤnm!-(\%Jr/?h@(OAzhb$]rݼ#l{pL}> WocMVسPtІbbqLa{IƘnG;JB B'6$!B+XH֫w5 VgR;dWԽV`,ăb՜i~;QQw՗ց~wo/mxcM͂h+Nɍ?Iƿq G35HdV y ˃YEl?K e< ߈9YNݣ&.(ȹyZK?PjIK86-R7sɩCk#[ ˬ/KF |\0=-试{.`<&Z l]Ԡ#k7\^pkE= T@I+=NxIMԁr Z->+JZB/m8S袃’-ġj{lB8*FT; dnQUZ Gk`ϰ~M}`fp0s,6fc )o.s*1qً^%-{qKh&v b.KJZEf E:+֬ ^bM#B 2CWWMVp}ƨw4?U~ӃB`?ÔiJ nEQJI-::hˏ+'r^[FTQ픍 9e~5/3 -s[Eu~jZ]`ݩ{W8#Mg HwɾxV˖[>b @ila1bqw'}&:5Qf51ƪ{I@{3xHܪbhln2mN\30$1f2BEV?gW!v=p(5693|piQiἍzAcu UJkvla4{ 5HqN ha# [\ċ&ڪ4wN|ۦK'B\^'Ju =d1o5I߻weI#*ط B5 e5\D&X,QJдl$W}ꭳi*HOۦi;+Zýw_u4"`q^|G`AOwV$+Z% MOڛcsH>J;!q5v*B6mY$Ұc]_W<1 M}C(c$9~;VoBfPZ;E u:}0sR%|qf-ƇDiԔٝΫyFU,rܟs& ʱH ASRJ<ߥu@?~iA,;DmlSs)`,!#tcWDs6Ɠ ZćrUq=+//l&J#My#c[@niؾYh |{3hU|_nN" ODSܮK#J^$g\HZ|Z)o暚Sioc_b+{>QjպdDRPWqb\즌/L=sAލetCbDjs|J._d<ܭ _,jcEezM*!j2(qNTo9Ze٢!OOulDdpi- D=޼&!; @ zS)#"u1Zyha76RZ2\u_ p<%׳ ^~&"D^ ZWWThL't<B0J ;VpVaR2ΰ? W(UFN݄ŒO7V,Ǩtz JFNGAUw) B3ND)Pdn/Ȓ2>nkM{OQԵ R0ojz?ab%z=?]}؟&8[su I[p*LKH6%Aaɰ)k/H /[|hâfB}X3VµvQE #B6zh*cqpTqLkZ\`;yHyOKQSR㩑x[ Km0 j;S] ̧{ڹ҆(RYyhVgGIur8JYI:-dxcټ"ʹ}d&^y/~9δ/Rv'SU?$1&2V @MBsn&6}4l[oYv"gu)fc7U2QBg&Y, $_)xrC3KbH ~ J<޶|>6n' gٵ%¬7#T&bNXG׿^kJxy[ |usԎC(-H"*V#|yJ% >OnPcN~N!Ws,0bBJ+pdr~FC#I[%R{Pt}p7~cc&݉>zT@.K*(G:i۞"Z[:D &҈oevm>wV> )G?Ӷĺ;-r_ϖf0 '}Aq e~2vċXwk}^eϝf(q8ܬB6L 1#["뤶A,~t|JRnZwUf@gܲcӰNKD[on9+#^t% .5|fl:E^u.伴!m5(A'~np5* ]MU{/.ej]xTv)%6A<~[WE :JA42`jrIЦTbSbjVxL .yE gD~U.4czXsn1H_mTI8" 5~=b 񲂂R k_J5WDh \S:]Gf <_L Ѭ{x7t&AFAY3f}$fUggŪ3(УTʙM)_tw qT\,`"Zٚo5 \!T(z6(Jd4kòvݿ^c]wJ5,/ [XP- ƞnڳ~(EUv,iWg0w ?b3OVI7Â.Q}1ۂoǾJ^&:!M,6P!&qcjYj>Uu##|-(h;]E ؗPU6j]2W J^ !]^m](LAo&019m~? 7 Ǩljؐ5U7i.z',i;!EryFR$)d~\N|.GJ7; %K(Mfyŕ6NRoWQ {^U-k\8@y/z$ gL=ѧ #0@^[fnB- bc<[rK llmM3|UC`jx?2XO Hq{v|~"p:phND6pU ְ1*M| j*/z-yeP ۵ T㰃Ӷ fGfԏנ*vA?v$8V69nzF+D qMh89 v{)pN YG|@]QH ~ {LiicҖ(l@D9i];wB !S-`*icFO ϓ(ifdэWWN[o)79]Jtk=l))%ep<U cS ȥi|iM"} I" [WxIXU "%<2l<:5>>R,K.s1>Zֽ0na+8iɯQ9)Q@?Q$kЄYGR}\5jnXNId|N@(tUtoy,_Z8Dە]Y|{ pN7|"{d)9 g]uglV:|oBOu{)[{V"/[D."jWwD.+k *LWcΈomChwwE6K>#{6P}\*YiRe'H$_k1ވ!U[MwdV /|`~ba~SCԎi?Gbn9#lf7\h{1VT19v7x;i?SҔ+ڢ<u Rh ϥg,0KN+(>8muet.\谕R+XEhtnwG4(6ukU/8a]]jT+8 (t$dzǞ6kTz +PE }#͚iP"/+!e$sp m&`VBԯăQ.DY/Y '`\o,uthẒU/szD6#$R7أ0G0@]dZڄ3GZ2:dI YE`AЋn!@i˙ę9p#r2T#n11h[SĖS-9X}|>>#DT4^NxjSL~n @Ѫin9@ӂ2Aa=,eZjˀ~Io騌ΐ_t8:[ pie5wX1(o]¯ ݟ-*1MV#X Iz ~s߰FiO Y-ExAԺ͔,~^QaxV#Pm(Ǜ]s;Ot)i"sLNAjYR#DţMhUтJ6`wr/ٟZhmQ 7QճdTa*JAۍz>ںzFTh҉ Iq^Wz&`;&9VfSo8e`~˭h[QFw$}ڎ%w)tPcefHݓFZ#֗,@ U^ H#}iT]:쥯b8ĥrkp9aHt(97WZwym' L*lIVFNLuD9AfI;5\<^N)k]gyMsߛ %ny>,Qa?}߿o Sn4 6PAQ)-ݾ rD֡ 9 HD6qATEF`&Ko߬ ~$$\*̽I!e}&7`_G5As(N 2Jz6+cD]p |vEo:#FfIR }ׂQ9 sK൨O$Q8vUCߍNV7>ady8G"xiݩ|m_རL̹ȯm.&7RE+y1ٛ$d6 J2vybbP^xb1at2/RK(̓E؉bׇ$cQh\^z f@mXI{* _erLr3 eE@KvI7 ",:gݬS{7;>_|ljq?+ۑno q3٦rGp;eȔ5.F!Bsϟ+E.,[Vo^kidޛ\rh 11@M{+1JWÚ+"gBex)3AHjyY`\l F+Ԁ'wPb0IVY6TOa-9a-ލKJ|V͡)׮NL&DJsKOp>w1wD͖_`iEhdf/lUWP#uTY6$e~Jȼp׋935xs1 EL-<^p,[? +Ɔ4 \UWy {:~lbP dug2zwK? #x‰4bfK6]eqst|>:}\ݎEg@|kr}$+7JΏO8ּUq UaSRE<9@p)XRc%MU epgE2@dH%Qh97 Qoӱגk(+ףDߛ>S; M@t ʥ/-fl;?hEߞdIS{"=(6oC[ۋq3;ĥ rV_B\rR- DFatz␐Y!G(\m.HeⱫ肳e1顠_~1F5mUTiR<<ַكмmD bn[U^*h* 7}F_s@YN/2EDZϧhYGxS4A8v2?tFbϻ`T2^~ [9 em<ŔA0-$ĝ5;ΗHMn1NګPۤzwwL,JI{a1y-ě=S緺x/8RC;Xꍲ祆Ų7~4_~|4$֥7l@nVċ4 vҊxn׿֥}Hҷ 8_hY KYZQľ <͡d<ZSxiWCCEk9HFC~pa^f4׿XqEQIsyvԙ\?=Ϲ2,tvR%|]`id bJ1X/B1T2r<^%f%@GT$8d:ҿ$&0q,[kDZ<:G'W܁`̚W :HBEs8{F]5*Y N*b—ɺP[/ԁ=K%g`(`ފÑcIcܩILWV|'Ԍ亠B{c$nmr<\I1a!`:&n8ySIcFﺹ7l*ˡSsJR%B[nh+P)Ds#2˼7(ʺK?0DlA54ljԀ sXdŨĺt(F$KRq-Ěq-c^DHz"ǘ5SŁR ^7»GJ=0C;$L/>bʀuӖhN{ԓmG@xSSDZ\AJw< POxzC/RcA_\kI:qP[L`C֪PģiS,ӃHETނ C+4M_mǠCF3.8HLyv]GKZ̗lw-In3#~wTAv =r[&{ ݌ᵢUD 0 *ˋ#^̀"TJ#՛<ؕ9~qI-ጧniVa/H9Txn)c_~\h!Ke*QQ[$RNpC_5C߃xz JwTs^ά_)D7PuIZ(M9-NjX'ɨ]YDzCkbu{Zˆ Vy&E=I#ωkq_YfY"]MJ<" ʃaU5Ua4wb4|1-8EI$].g*Eay/ ϴG򊱝(Uw^ Ɛlra26v?s@QdFDܒ1hQifLlCQp3B1pѱT=T\toZSP!* uNLF+Lܳh)U@/"D!|iK_,+F^mpU # ! $fj^_KG`4(͟V sS٠v*5~ F-2(l?A%mkce}g0A_gMfzǓ#%2yb&7:w&/XyJK;](9dWN #% ȥ(560}ExJ#mٶ ?)NX́ݒ/ yXm,1»qHy|!MNHgX^:s̩kC-ZAqk\^Pȃ*/ߩSwqPMH]94. (1S݈c^AO<5Zٙw4VȍoNuꆳ]д }c!}J5k\Jؗ'Fupխ:0Qa|Qm^v$vGܭ_4bܱ֔{ `B^4q1"Rۆ&6_]hOS~a|*k) MG(/5z乱ZY#͙ΆS.Rsx%X;c:7SEd81 Y1A T~/eRl0:0GJ~SؗDs&:(9rC˄|뒫.W$EWK_mZ g`n/_>%OWܫPft%e|oXFf޴"jGKAL܇PU4*/kDS'T X!`v=$o\aXriR"oLb1?JOAZn&2ټnÖy oz7nUrcy+0ZR&u{bypLd\5∠HFv=2Z㰟:zIa\``#Õ-n]sL93u.23n!#9)Ub2BlaLFVj·fS쐌2yXu%͐ ٯ,w~TTFQ;cVN=7l,t>/D1gmdMk"WSv"TV 81|I͠'l;*'6$ca^3A$Y֖}n[&;/IOTF%9jٓ*h8:D[l gStmڃI"PB /fgi,v;J қQ9UZiwc'xt )}lVuknłeѧeu>(P>1ZX`GՕw/U4Jfiiw_L3% AFCAz˃B5FiRRZ/g~peEd fm4x}~9PX5mVѥ>xH 7I5:]&F3ۢ<'x_wʢîBsHBblx"w'F>_KE cϸއʇv@w"++EvnH!֬L7ߒ**e4}Μnm_hnz3MJ&&1 aݣ'a!wA "0 8xd[H:2=Dm(#Qd[Oi;ȫLe1Lt.ǐ켽o ]Yu«B\oP}*$ׂ%=Fj@Ek|D[^M!^^CIH`GR/^g߉?ֹګO>{e2ޡA%cQ s tGk}t7gןIo L8[]OsYGPtnb6r]Y1̫9J63mOg{I7a~L>-هC+f NP}ZtÑ)ne;@YdZpgMDu U*ٻ!x C 6J &WHֶPs@gR#m_zT\=>wwb[fk)싺]>(_z]iUaP@RD%ߠR k-2µө=kGx}d3l%'eМ0b=MRK 1?7k] A[Cs5rEvY̗S6^|XUlǔ >1KGfJ= X krV9U#P٧0O+y'E\JZa^"Hg lS#+%'MRh$_,JYğA\D3G2A*t~H+v\qVhuV-`@ ԓ{s^g'=igwqQ8/aGsh(V@{{uLI%Zb.v(M(@e=xbu]}}asϻ0X'#Ѡ:Q\%Wc1.Es#\k䒲^,$ *ᶛO4`l_8 !65H=TľA}"\A-VJ<Ч):x bWҘ,N%7Z%A|HGzQh?]JD*qvQ5eOHTm8ڬx$"Q+; hˤ&o- ǁEŞ[+Z7{_Ml!S>lzg~ǡ5 8v Yϐmw)-_Lo K3W-A?1جL8 q{l!Ȝ<>˓4'YSD4e3 ?5KOGA*]<ȌR1ҠیnzuC캼B^,͈i>] E^ ?|z)a`yg4Dq H H!re=”f5iz.Ml:<+a2Ɍ9=Tg~j `B%՘M.%蚅S?HZ1z]'5)~ٳI ˈGmDzkWDIPXZi H|WZsr!km(=*O:6?OُX^MgWö,20[y|)^w0gK*TAm0vT2=Sca!QDE4ir0oqQU9:\LTGgC0A>iEpG=#qxR&dV.FJ1$w82p%;{-:9>oگ8ƀ:Pɴtܜi+'<NW $hX;L/0&8^5`nņ@ႎ0窏x^V);pLbLlއ4)A$Wµiނ>U'db2cu鋵Gm1PWUyRy($AoY%"|y;C%)b#FE4f{g'B {bV7Ô@V/AE1^1n/l ^!HD@AN.:L]Z4*q9'B4Z`2Zd!=PQLnhNz8VҵTS86n`W 2mHXU{#d.O'Jo"MW@J:sGlyZ1T #(si ,}<ьvֳP/bwr^MS1jߍ>⾣ɓ? ʒ—KoSb[/}o5gXvF1 F!R\7.:"ɷ7Ȅ:,Q^G NI![EYΣU~mg*Z| MJ-J'S;4l+5=Iğũ5 )5>5# .e 6xWP^Mhc gVP1.qwbxB׹OKuщuy7!V0 U7-#R J4XiSJe˵""Bgy9R0Ht]N[,8^G .4MFmIY:I<[ѦM7E73߫WPe K!Hˇ -lK {GVwڞ ̕ɼ>@8m|c QpAv,sUve,P*+rFآ+rb)'X46}တgtߐtbƚiw:\hMTc(3rL1rFR$#.FmU|a@RM%?{;8 9ɃU a%=ay Rozwdu۲D8$[~8d%/o8ڄ)Oޣ3 m̥ؠ'UFex1ݙbm E`}B8[ Z?V#?_E/hȎr(iSA3|Q/ DX6 TE*N+xdUD {d׃!NeYH\'͛e_$#a~RTTʯRHLňfxf}xň猽k e/Yׁaמ^?FcZM%wJİ ŧ.6Jo\1T I:.~3RY {Ûbkcnմ p4qHK>} :?E|5gzΏԳtȵ԰e[+aSrWA0BT X!(6S50S(K \) #g?#[!>r6h%/{ܱ-;#aRO/1cfqZU 8۟)̃ NMO/|/+ emYΥepPg\>mE6c3ez0F u1x ãɂ#cc#9W1g7~Rs1yS!'$+skxMlg; E Vѳnt7TA0 !*2*\ɣa0j ]=FyS+;&oTPOy2h\8ePBx 89wv)+I52fxd(tnQB&v ُTPz&wϖitxGR {a$B+"* dIZx92&`ތFNNIm³ ?GIVBUÜ[sl)WH'%)|{nQ?K]|͘LNdݾMeXm‡e4\W #-VJ(jMV,폎lsR\MsiigVf1*w{S~\2LIt&^ދ3H͞ۻ%WA=5BP&Gcu\Oa*smbי v8$q5e;z[N_ bF$\WkrX=.1 ?ֈjƿ+N7iPƇMyLOB>8Q̢ree8eb?-6b-DLoQ ߺmEHγ F4`@=ñwRTWWEHiBg.w<% %f?˗' 9 TEs"{׳B 3s)s4[zd47xSPFWƳ)|OyZB"܊[ћ#TK>,:6h:nO@bړ}y:^ a9o;>Gl M2|F+| 4GFk{4 [!';eǮicPWOӊJI?A]6j-.M^8&0bMG̽ZĉM3|H-#C^eg8Z0^ȼ[8cv@])J-dw^;7ޯd!kJ2& @1î빈g]>wkv&qpI&3B|;;fzJ=&@ be̲#U! qqtRT"PD lfC>x6}NF `U'u~rMYykO6g̫ ɦoG;*@ CU.I@S'gH%n؍ODb7KE8 |08^:-bVЋH{"f7MvW`fx-U')e<3D3ŌD!7Z¤f@ZWޭ$.̴6&%YC5,})QFS7&13<}bEsڰ1Mġ`AJnXsu+(֟G&|jc ًu VXq# c cfep3!m&E&)ƅioA6YI0hO~8zỏDN1T2.cf_>sU%qL,=VaPg3 FKoᶈ6`3P`o'ܼK}ʘlm":iPL;9tG&/BǢh 6Mc .3ƶ?1rPws=J |IHBjp˸%՝!6ij_E1L'}ڢDG!;noSEJ[6'8n8A ]euxAsBS[; իZzmb*XۧI6:?mLf䂶<`9Ek*[@cuNԃ/#h ojƸW_Հqi"cmJғyeJMuzp2H?]b]yĹ j3w}WAVV)kכ޹.O9s\g-2ޭ$ آ xĆ06̯Ci#`h 6!H rxCOSKmI at!=!cgT,ܮO߄g-"c4,)q̗m쾂seRC$3O}!7+?B=(?%8y\ Q&qVWBQKMU*fi(YN eM򡏜ŻJ^<_[׳rƃwo8H"`"BXlMV̭C GꈺC.LOvjkM&wI^=aax}v ੳz լl v헚bʉ7٥NS8eMLTqqe]SӪ!ZŭHBU,u6pf97pGN٩qjayudOӨ@gtq q'<$B80û&N6LЗ 0?T-EAx큎S=΋]/5s@#(Wӻ0)bxtO @$zKk%Q}@Ty*(7WoCaBZV^^|g~TcDIQ}GErAh r|qZBs=y}3OSe>/}]zܳȂ G*Ry6Z.* MSf,!n0ʲaH!ºP%2bC5V>mpq74w`_%?e`>^XnP{)_'E#)%4yqC*$ZªGyψGF `o0 r`h9p` "AWnT2U6C@<Z|VALnӀ" ,`<#GkB#grjAUM9>M?ә\fN_oy$77 Xtt*{NFL4x,`Ȁ]6CGAX^׷ Z9Q6:Zଏʋ~h%$tiy828d}ǰ0|HVhg/-^ *j mjDiWEv}W?*>h5w;OǗ#W`u{7?Q|BT"}g{Q>F,O SB;=ǗDT$ޥ9yg7 pBJd?ϕ!T2U1 7/:iPo6<fxfOFgf eɒF\c,,+z?l2]^%?L| E{B+}Ďt\FW1[/$&FJrňiGZ S"i4Qm4q'{>^RۊB}>pc9kLVĔφIz',(/M&bl_ ,Yy8Uru=7jnƀc,*kV#fϐ}hP~u FrnD7oQl"A5zW1D|nx2g踦  #aX#Qu(&6[1=3 q W|7" cQhgFv^1+$/2N,{<JPӒ{ɪozwh05r`$?V.U=/S. e񨛶؜c\dts ~ e' Ù)gs|2 =>l}+{ЀXk߄NqνDgHW8!2fmn? eGi`ô-Mgvv R<`Zwj*(Im{Om׭g맂FVwHv T``6͵hI* m4J«$,.FKƈJ?I;eE 3->\W* 6p$sϽ d_P6m}ވ~uV:.s4uT(9z`HcܕQcoyi%R)a4mscm,?d>&1Yx ^N".6cҗ"idFp1zd.#_U~Qe B>e¥>6|>2g絥[4n $يQvb $k(/>yPaVrlpБ\G.l T1CW(X7ӝȓef46ΫS$qجQx9TٍPf0 DRiuikwjuINX@ȩѢ£` #h05-1΀fwY*Q?uSݻ;$]OItD[;'r KN?RXF!0CBLW_IQf(N332k_B'\JDXp\\_W3E-5ˆ oq/P`YW|Gz'uV(lxUkow&b](czXx|qwnl^JNvۙ ?\HL^Pbnν x"BNzuD:v_aU!5ews2jޔhm|{qdPOP%S[ϲ("-t4x j~kkNGv^;;h)MB;ΉԊ%(7{>rn4`eІW'լP7[:"M7-vzZxw;觲Obug!tYvA]gb3e7 !п,.O)#ޒ>X%U2GQv*JĹ_aU+e!{׉7y.1VfbI9}o4= ?DpSZ++lj9-,]Cd h]G>Zި g- YUZkwiZy0 ÆA 0`<)laI>Wע\9.$䮦N/F.iNu▓i8ΖzchB9BL^JZ~^ ֎56mί7tNvRJb}G3 E?,Caם_^ z\JYHbڔ눎FpX(xm1η \^KT=ZRA]D?E@z$WE<8D;!;ORoEP6u>{Κl+~'ՒDàTv|g|K fuxhr+$vEhr7_  s@LJGLcdi$:X'5vnb֔zyOP=E̐NẸ[XSէ@ >gY}ɄغߕGYHY;& ["iFx@>? Y&`C&VͶ#'9KznntT }@+N4Ciy"itzL[;|6oJ(V4?$<a-@6IM\,1XJZ,12l`wFѧ4xz e:nnkApy k7Q?D08_n+ч-}v 8JBȾͳڨ3Q@  :B_$A3:q\qA4ϾP@e}H$թ<{"%sJyu;OEz>Y~v}ݢwfžgbݐFȦd㞑%$N)PڄmI!hf]PD\hM[ZbydӢ>vh׼-1'\hIZ"Nb) S&WG;ڔY?͝J"ּUmg rT xI ߶F#,;5߿sIYxY ΰ)ح_-Vck"#>+u=OGSC'دĶ7E)]/txYԓG-e\=- +?>0 ;oXHH޽w+Ջv1Sn OR r:p -ӖB]0zYxY9F5WگQi@p[]*K鏤ȭ;-(mfE#ӣ= qg'b@( CiR57__%9>TRc~6 D$j%l"M1P#`[d@Z@,ǩ%ȧó%df+-ӔVԲJJp 1p8=wٻIWVTضkQHrU3M5wsV" 06>[S{j\̽(P2DE]҄nmMN9dcky4"6͗=F(eʛl c(L`N;'zduU dh_ \8k+TɊ6%"lrûYm(:l;/PAF=}&q#aC;FWZ}JW$e'}/<8ZjXy!bOyJ ~.eYk <aٹtE)[<3^[egP:0`*⵷گ;0}7=71:#87 iB2vbt4qzDʵnJ1XWR!7hɐ(yl0~;w0'ªz@T2)Ӡ OaS@9Ϝ4IKڻaVE H"S \]++%<)knCt"|7GC2!@8Zi4)+mE5`WdC∀,c|A1N^+AO6ՊhLJq4K No"ԟvLn]ϏBrZGvٕθKQxS6mO_ZpH솽M+Y~7c`^I3Pd2X8KJaE1VQ4Ki-#مnhR8_̢(MIT k$.1Y.y6kh<@T}II0c5p[t!s Xy3S.vYKyF֣{:ة2,xog &g1ɁUv"(:C7N{9}u3;@v Xuc">mM=T&+:IeoMQȨ1@3p8jɾ%hpF paM4mn8 mI)TlThmyi= P%"M/ -.!H lё?rO_vou;?9l⡋kM 3>rnXrh5['N[cUhv Kil8qI,xh$?I3V>P/QPߴ}yh#z\ x-'IkըT^ewCHiϫy #dş@/MJ/ȋNs9cɅ D1R 0HKEϡG{%4,i+A=:?s#+E⃀ /"P\&%= ۴HQi&XUU0>ie3bTbkө~k,¹*C+n?'ǚg;H6P̥N'| X_Ç^cdpTF^#ȑY fPT<:' Eߘ"'ާ"PsvC(~T^tڤ"VrhW%Wc!N/HWEnb9hYc$C /}~̲)Ϸ32dV&MhD\9+n?Dw^v0f,Oyt % r.ձebTkIK:I@jZGl(;;lpEÈ*y%,̓C<6@RCT`…&.⪳pwWٻ_T&{ʓDH6 )ސƴչiH_V}A#sPPS"&+?5{X8;&h>rLdg)LszGP0\Ϲf5E JadgbC Ӫt`p?V5`I9"66Ե U$xqj@0ў0c"1]kt%? 2xvBT}pr* ku!+ ᘕ\D {Zn(:(4{> y3GΧ%E El'YDz2eΖnlڭH:H] 鈬/)SB1;CIxJbjio2c.:8ihɠ1 ,YL W8 Gq-T?dxaj6C+>t8"tF&Lv3[.^w_z^Ljɭײ0Q4fVs$&^It򅛘F [@+Fsx ӼQ^\xqr[IY/eeFG8EO^gKN zҠɗ"Fz)VUT 쎮  ,/vFU05Q+ENd,X2wb)wV8dBwCsUV>92EѬk)_˯=8KSi[p6,D %JsaH]ߌ39X>=O( ZV3xoɀi+X$fn<)NRL<%[0E.9~y0{EWoE~M-g^,۽pS!4 û}&zҾ(T^4E-1G[QYd@A K,-(FZpf;?"M޲sy^QGpH9oGNsV Ȥ l)^"P<鵺j!(@'ό XIjтUyOÒQ(e m4h<F2:N=# ޅ2Kz[ltͬK_N)]E]'$'ÐXzFqDAe?x gc V/zBgyXU\s琤jys}Oy%^h5F$Ezs|$"#Ş-[  ]I{Z$ZfH}<=dZHT!(}򸫊Ԗ?%(`Sz%(]0$>KAXUV`m"J ^/uFЗfwloh/TV~"Gr;uQCO#aq+j`w,aѠ;#) 8&Oӌ)tMRFaw`i.Kp`%mVa\㟭RZ]eUæ!H sr ^jOؐ5_FPv$;i\m"jӦd+C. Q[NƷZ-M =+5ʘd m}kΒ䲓\HRN8RPk6+PMDKiIkStC0͖g+Hhn \㳞J]ص`rN)]1\iTH8zc {iENŻ`$GO+y(й?.-L"&H9h;ʪJ4Q[ K+ ®嬵e.yvHeF5f,$L½8s u ?` tNpcq.сf%,;s7-p栉8ћG @n"8N#$/ rlUhbwg`[.,oj7QN-MEqZ{8L!yӎ.JeQ&b}+*E/MK2-c9D-JRޗ7?Y䧊{_Cd=FkBՈ{z1;GIF)rn A{f I@:BWW2; MKzZd3kDrAqԎSNk ~JÊ}&< »CpyE#EInUɊl8B-"dy:Mr,s.nQ #蔛#ܝDu*b#2/0߾{`nE8/~9LzP׆D` )ӟie귙p\ÃVG{bZ `#7:X64Y ݥÇAF3#0ÎlF_H- {&Sd:x%3Z#6]ijC[BM&=9 %%H;Ļ*hIAVNŽ!lh]B`g䢏߁5( /.ޞrJ$@6Smy$"]<2,pIZџ{m(wSlLjMD'[Ҙ$cpB$#iךTZ#v7~dFK؍1ި RI$&i}#;~[a_9iU  ikR$ z* B$XqvytZRɴ+Y*'j j5w6 )  _ZȥA8GZ<.:{_ !Pk;kʲa0χcU t8`wO,Đ2/U Z!J>0[2-4s?5ա8ƭ|VCfN:FH'e$NnQ5DK.[g}3'M>*TQ%pHy<:h }"ޞv~*Jxfmwn H}M1TO݄S{Ti6MfM%VzFިhd賮\RYm^yׯQj@0:8+:#e4's&rh Ղ7%!r#`YisI`U]J E&<020:~qb~i+Shge'%km8[g=7sBKJ \|5 (C(Q@ +Vgp_1,1ƙ24ܬ!YKDg`oha SiVaak$\RGxTVNY(¢ $xhYfsCcutlMv.<:LuUlQ^ViخsOw3rW}GJ *`qއ$},A' UkBE>J󃥛RPqo*1{l u dQ_ǺY<ф"8ݭjj 4!4&nŤeE( G}IX( 5:| iȵ`'σrh \QZ`/://O4cܗcT J_v=:cv@PJ2JV){Fb ?xSol5$!KYVEXla:QW`ZejP`NޫN5(uBE:uR.Ic">Ong4V &2EGށP]My0j}`)>zAaeI:H!À5JcEۈ䃥9m'LM,Ͽ@~ QI4O[ΌK@&ܼ:GXv?5*QI~et(.)9H: %ZZI"&-X0~EN݃`~nq `)^"Y{q* 8o1%f|wu{{? (.d iC J i􉰛B١ܽ|v==Am3K3# Q]Z&/uӥ-=R>OŢ RQKbnak7=UryCXDVjN掴8nW&`VuM]ye2*$G{\4R#_3+2h>3yOq3;6Y9sĔ=Ƕ5cz6ITo]SzB ~wErk :1U%H-Q ˅貥v r\yi#"=-j אW$S5;yYKRC$E4:V6;Q#xLu$'M }wm \y=|ެ#HcVEGxD 5?O_~4֧/5 ~{bL"B~O(3߄>*HH=2ܹ_~~D슙@E}Ta.;Pz᲎@Ӻ%YHQe>O[i*KLBȆ# &Jbs1E,.°5>w1@= 0Uqf^),]hjIIK0|6W`#-F] @k+`+e7=Ǝi?ǒm? p[ȹXM4[D$.rZXyob/$KU1,œUA5 &Nx)q@PʉAhC]rDEudc Πr;4)bX /,5p1DOXJP1^ԩ WPbvKeqlhծ52;qN98S:֝y&`12°G] ~,Z% ^8T-\^IH<'?&'3#00=5R'-jq9/ ةs [^ 3164w): Ev `Is}.*SLgj-HB:i酖},sI36@_Y]l/Mt ܓʄ<qx)kyFa=qi;"QǗ1pH0 ɎG÷8$ärEk.HX1ESt~۱ޫAF ү6;z"07Ǭͣa'TX I!@}Ϝb5o[Z-|hcrgzC+}GnD\Z[~E,jM}ct45܍aYz,~”p0|ɫ^Fq`Ǭs- yOۦ bV+A܂Wu-l$""ٯ TPRi9.F+7sc5bޛC4zsS *_6Ds8$9lgԳ]n R -mGSF M(&,av/87cѽhهwtp#bI}|ug|Ý (g72vfz cș°yx,9VK"_y2 93!4\CFbQ WE&{qپZ&gg51S^|=Ԥv\$68؆ŝW?99Vգ&ձ1Pj[-AПVg+4L}ObZ{`X4$ffL5Ր,+%UP1&fU3H"rıY 5L J6@1\)LoD l S0-DcYl m2X PoMs ut}.Q۝Qs ] W^Vy4\섇8DۚNrzeS՞_C5aЃl"c3+~}Z?1x>X-=D7\dE@d"4[Sp=vd|O O+>µv`O֖aŏʷ0הHd.?ec3 V@RJ᱗5+dB-Ɖ+ROtj-ώhpVU%:\bOOYֱ8b>WxU:nxX+:ũeֿȞsfyEmo !cX 5zĥ(X ɇ1=)d%X%?-nx1T_6ҬH}u xqAIW \n!;Ωv' LT|8UlE:}^!v!lD{(k8wUZx^u٘Ae[*Gʢ:SgL=Ed>{2v0IzAMs+eK͌ NQs 5"U>/$:nsL`Sœbv5j4h#ݽAlT"mѨKĄ=%HP8M'uKTS<\PZG5EF̌c>F UK)qUɻwȰ5WBQN L%G=v!K gpw*hM)": 5T8=t.HZd#Dup.ޫUJ{eƼ:oH45__>qx x5+Et^XMnodI09i 99魢h, ii䜍i{g@`Jf)pI{XS% P$MgbP2`+|署}gB蒅qFaKbš3w>QY=IԺF* (c/DBS\(Zݫ ĉ};S'R5;O *iŚKfǢn1U—iB\KΦ :-ws$H_ k+ 98 O$ҿ;h\nVM83S1˂1F֢2P~fHv3f'׳Gf׬,oHd .oڰM@ h;_ϛs;BMz3PҧL!!yT΂f!'U8hz`}GpL& 7Y@yt>N J2mr Vri5zRanMf)TLY% DzYcPʜ\PSmK7of8쬽 $MLnBW͇\VTL^jvSU?Ab3uxC$NN[…,T"td`$KouJ@4*sQQ$cyי@5Z5 WvPR ]c>w%ezD<%x$WbΐspbEaDEaS=Xʆlw3Ja0:BUȹCkA7cx%/r3̳jƵ$9VL2 U4U_џ>-~VIMkѻFXx}E0=? ĘOzyƑ U.nkCG39%;Hόf6"[pȥwA:-%Iu)ll{7 Du)lKkX;^IV {2΢^Zh<RݯW L$*DwZ Ob:7:R.pIΖe橀{ҌT} ߥw4)o!SP2Q,nj)u _v 7!޻(!6`vYV#h506/R[_.M`_ h=2a4ܴy H|8v`̩|M"0p@4Rr@"*(Ő:ko -!9YpxCIlʮFGs'."xX'yܥ9̝3/bfwSRcb"hkq2 陦5_!ej}%h~CTdSgDQeX1ЧPFU[ *y76q\[3'eӖE |\O/CwϪkRm߂:8M`;X8ZI}$eW`,f2E'Op~yY1y_Nؾ5hL jV [VMpxЂ[ w4!Q=8!!$2"J(52BҸZEq)Z'g(>mU7w:oo#>7֏un&5gڃ43Uuwy8` !(/M(in޺7o{BՃÏZA/^{p04騛'PhSe _9B`aG9X1_n1@T|3Nxnȴeг\/|G@pŠ |; 1uƕ7? #FvM2t]>4@R7E|3gJp˴5V1 UR{#V'yW'גHb5r9vV/OTZM8l ˷ j͏ ¹ g{\ 3`,ukW7$9轗MS$Q]ȯ#C˫}tA@aPKC<$rW(2  ]ngՕrST V\B4BPD`$D<{h}B<7^kї+FFގ37I=8)j*m-qډQ8tꈞ^cNܻ6#6^ B )C}"fBk0ӃȲu?seU^IuHPc^p.,ۉP9Sx9S]j!bJr=)H 읡dcI8\\o_TyH/v_.oIW%?=S ~+,\$%9],͝JUiD!}ӕ bFEQH;Wk϶4 :AX.FV&%˶QQ>hܻF # 'xcߔbBTut*7D&RO Wد7BjNP}zl6).Y*\WT4=k{,F9E^I%XqeTTKQ!?/0tږ6yA>`  SG7ۊC , !g_]@URj-,4T&oB";B>'؃&0ǨB"'Rw EY{XK!Y6S D»T2a[׿ksWU.>EuY8K jiZc@jkf!aW00*𗉖}y" 0 yE9u72nʹG ZR;+q,BB-Tz5r]2uCh(NfKXs#}FCy C]6ί{+~˿y;5߉n `,K[%ěv?zA)C\ak<{=jR/Ш^#9y?6XF8 BXR_/=Ai`5?[7雧>1";w}h"8l%w~OdA\`H@3(y)(!AXG-|T$/D^I4 #&)NXUeAV9HIe̺B> ȉ?nڐ3| >-K΁z呿4Fٽ1!%w-M!R?֦Qk,(/1 ΊB]KŅ5Vx+Ñ;NQcT$O+=ӧCmd2,1ȿj$Xĉ#z: g:o6'\-^ͤ7sBp!/噰R䏖HuJ O4)أFfLdv#%܇$IG[;4t28:BяdS; V4_ 7c_ؕ.+ ߝ*) \"[YZu0TM1/M=Cag,F;`ƒPF7XQ:̡qf YD/pJ 7QҔwۦt1!s /2gH* N KW+* 8mr|~i;$Į^wv+%t|F.Q3kî/!V_s9lJĎ/ ,a` \ly%xDN2@EXCs%I7oTd*3ۓ J/C‘Iز4]ђWg"j>W5Y sBxr̃[`Yf6O]sq`N;pK~Ky5i&u?jlr?HU |9' =djG;Xϯ~|nbT-*ԚqW *Z臡Oҝ Jʪ3jwAhm#<މ99\[፦Xt\( P+,3ASuZu&b5 {Ym/;qH=RgR+2[js KюUm60+"0Wz$|uulPJ#GH| f-Us isT3NڳpB<  .Z}*b3#zWPA*MuE[1g&F5y!A4 ;XM~vG*Js YIAq M5$F$*tT }gwDV׆y]VVG3.@py{W/}I ;- _rJOC!|&;S x-{0 *ASJ_F;wn22:\}BBև5K:'4*ʺ 4(E3Hct |LHd5Q4R5hB%f3TXM M=+Ϋ^eCǪ+-Nb1d2wmpl0u_D\NQB5'yFh6W 0<@?:a][(녺WKՅ̘u2[$G27 )sce ټjG\̏&"8sRjHI6p"|ݸTe$ARs3N]HG=6'G.31x7VAoL:p'P8i~ nZh)S =\4u]JYTqxHRu5GKQ!dW#95-nvaVGi गjlE'Z!{O۰dȪN6х@kID4HH(8) 0[Icra/̿KRZV׉|mnJMF/ wXSɹC~Q nds`xR[5|m %&͔hiD^+n5ɮ,(HWѦ=0RtXg'Bˇ^cC]VGsͭZӨ w"h^)jQ & ="D"KE9dRŵV5Vo"pl|uG$85Iv/x/yxZ-7u6uēsZEŒAn$i;yPxZFL3ea0_ءأnm@eew{H`U"{1$ũcTjƯL=e(˨313r t !#3V Ʊ*-N(ԥhGg#SE41',NcW%?ܩQhGTD6`c *)=ulveRNM6aa&ƪ?Ĉ:uۧNMzwsٽ(y\Z`j0k$zL?4 CBHZi޼v 8A!(4]w6I[몼{zwӶΟêO5J2su;1.APK.9֧?޿V>i1(8IWνv !jcfc_D.N^u0I6LÅ5ҁn$U̶WZ]N̷[o gi7TkPfy fd+h{Oz&`&aZl/ѱf">J]F!Wlp򅢰JaXs 8/u =W@B:CӟvR/uD""9\ ڒd CO: %FmbCKFA3JU%lTdۺ b!̝mCc 6 {p6^bf/ɓc&A*Mvx,Z:ڶ3ˬ)>k+bpRKIŴ />Q]q=^RD@zJp9m_#W,* X@j؞%ʉo7_U-N0JCr`./-6Rb+84i<8xávxGY*KW'jD1Ct|!~VWadu&|t/8=Q<U"g$ >xlҬfLs>a*/C\'\5|$"TfgebȰ<5厧:̰FJsȬs"/[zeqOc]$m/ʼn8栵tb&Oi'* ^kw`Y+O>ɜ*ƿ8r=~&A\GۂiJ3qU ^lN?)8'rb?Q}q;|KxFHx#F3aV'$Cm :o"< ChC@b +A"޻FטauL⯧8>aLm:xH; SsU>ـ̄~ _$s5⤀eDo )r`;т?D)'Tz\iKx,D=`D@r =3#vAKR-Sqb' FjM* HJ*Jr`{%E&j/gI˖sQ#QR!cmH!9,n J6cQA֗{=Q}{ԜUԠkBM'dȝnWyN+n\1M#WrC)ޚWگe(-8eì@=t}T&l?Qn:5r}s(͏Ep<`<::Z 4eҡ@N>Oű;s!̌iᶺ@|vA ]"R_jzK. 2`a}E 獹{N-}+ϒBMU 0пV4/JIzȘLp,(#gq 1gȓݗ%NvRf%}pWKѥ3FBQQۛF*/ dݣ\w8W_ )4wҔ~` BB8\Ñ௦dsvƩ yl=B858ʅ;vTH2K7^Dd9eD,("L˵X0xflw H:>6m_/iH|VaT`tX\Cw?q3\|ꉜ=&:x,`عg 8"+$|Ըb{ߚ"7ZxYݟZ|{ Y>"tӤ?3^%O\e 1q`ʟc1(^Ha)|eoyg%b@EGov͢TVGPb`s2u晰Z`~0D>t<I@v򋆫0ǜvelǵd 0o-eH]s #Es-,K[FX,cC@,5O5,%YKNz$gx]2ZRKE juBv7EFO a"`vr?wf08_yHfKz۳Z½nk\@~;374d=ӀLP'!ͱ)ΛJf{i}2zO}SE#L^<"1YҶB!(>C1yv:De]@:#xˊ {})vGχ0Z߆9݁-R,H昹Go# "YG5A@4NE1*7`{K"Ä. e@r(P4nt @#n ćGmEAG Ea %K)WR˥Qyx}ӧ[?w5RHx4RC+ڍSn1la~(wHQsds"r),8V  )E iQQ  `XX*vL@!g}NF:ItF9W{G[N9&>ߩԎ3bZF=cv֚%)x Ow{:/w]F e3GN8aYG4WbOupj 7yR1 Qlx\sKM< Mh*ư!Tq!Hmzۛ,QWDž;;Fd2ݚ%0HoP'T& "D169%-ls {a8f,+ziMeq,q*Ňo6凭ƌw E <6cBvP5$ N(NXe1E/{4I>BHͪ wW/L /N~Nn{ 棙J3^2 r+[Jk^iɤt-sv!eN5+V-6tކ.9H%~$ 7@d(/t?sW$s HZZJ %,͔^/7Rˬ8/!#eY]H  ?@c֭.74ÄwO*QXQXo1iU)ΰףU 2 }Pa ԗp̒X$Ԓ -z# X!gzIK gnBH Wiu%4cq9Ujj^qi?T`Y= ~YoiYɩJ{ WGB<+(q=X&חN)$jk5~ksռߙ6:9xuO^ګX" &׌(~W# W8KgF9TFdG"U{SXUE vR=׼" Ll""S$U0"y,HN`(7^8KJ[ `S҇<=Kʢek|c1K2O#@ `w-5\n yi&4R`{8=bZ,$ y]v0&,"[eMsXDSFiFǞ p#WV;R?& ķoեT9`|G)r[ E!6\y=;yP;hԕ$\.pGyZ*:d4F;J[k csۚ'5@I醄m+;X(ш$x@J!Ҩ,7*}J.J,WiLGPu?dɷ_jȋ+ToR*]W[ ͹d>(ݻyNG->*gɬ[2:rzj88rp4 ST?nȼ%)dv?ų3Ӗkg7(u׻ b*3uf]CI4JId2U;+U`nl<;cG3d!ߺȍd$6lbgPpqqHY(֧ 5[h7~V/c@͎VPxg9ec*O^XQ+ߒQrYia8ݗEdj)X*6 sy/G$I˻/c5i> "'0v,3\!;.b&Z R<~0[awLiV`a]nj>ZCCaRLj)ӣR0(nB@&2lЍmzb5duJO5c&wMrg lG}$B NEuE>风!/O8 |Gub҄Ww&[UU:u^sTKLPR.K+#jHp0͙3+F$w%{7IȦPO /osf%.6Pd޲Z`dP=QP[?84s y%j|kAXHN%yZP'͎oh V6Ќt^'pO}o]Mj ??jJv;ZXNdu(ȭ\xE)H*P@q;T<`rx \ww$^Hc1EA+π' p|J".SSϑ+)E4k#ljiVz: ?$+zG@.Lu ݂!o1!Bh백Ph6Lh1MY6W;X4MDd,Ϥ%Bp.ed=h4v=O\Io37ar:Ϗ Y<<߾}_-0鏆fT+C%ڵG.Hv%IbaN3*^Ͽ4I 6X6Xd71#jλ85%%O !װQh\ȏ7J&9/BCApI^S2ˮDZYm'qS)M5ʝTk,6 "&>ECG&i;Ѵ]4>Cn|lYœLG;^LW|v\ %MNS vy~7bHW NR.WPVD3 ӓAX{[Ն'rf䣹2p3%ttxXk)D!ݰ88Fty1GMrHhvB9H0?a@ԉ%a$z:X {iByKcVk,MW_FKQ-̽ﵯ/>'"u0%V9F8"24$]gcr1nɳJrY=D7m7I$?:SS_z->_T&\q}R)!Q9l X 7@7BU+ZF-8ьp}!̌e5x|gkr:&I{j]BF=Gʗz D7%L9"?Q/oYˑjh_**pBw+T~y>VcHX]XHN) 8yA=CPGg֡ؠM%K1|~B􃚧*a^(rp='SKO fžۙZl'~ lw#5DXm#fAiJ1s6'wP, Ȼ>8L{1+M޲ؗ04㠶v Bɲ$56bN2tъA#[U9= X54>}1<`u܁N;${]kXR¥Q+eqhThb\>[#O 8ՌpwTo5I|褫@N]ermu}XŹZ*"QӑjUhԾ~idZy'=6w'lLtQ%dm* ]8ӕz/Jzk/K j1Bsf7'ΈqTcLwŶM˜xHeuy/?nBW 1UZ4ޝ={mir1u`&.) vo `:vhbBid)"uXOpkpJ4[5BƀGN,3-6X}-fm0A[RF:o/vz.ɤNI)sСZ1-'Ty֕,l^vhsĻD8f 3Ɏ68 7e3I-)܂UVO!#99\}f邗Sr<. D8yCUu;^cN}Au<G ӏ֙2AX(і~b[A _2,5MۈϽn24[{Ui[bPZy<^cikm=ٿɴv+U+&0ŃN;M8 7 ۛ.Έ8 ItyraBI J<NC+⻪(>0?\ [+%LջE1fw'0ֱ4=)0aбܛƅ1lcƷ\F:&y¹Xj-jeZ)SCFQYXx x)E'ݚ8 ǢfZdiZRږzuWܵ&I~dweT'B2h'|EhT Yh(e (!2A@mX egA'lj({:\!5C:R oAM?>JxXQ^̡&*`vx-?WLڞ5y2K'isGoYF=ɋ,㧞W*ٶ=q|<[I؜Phu`,F4X`/lUtbNj+}|{8i>vT,*eW-AAqHcvht=(Ed+ ^]tru@sDQkC|l'{q͊ 12=7{a#К||l}֥&Cn2LEcyl^B+-xSmawǸ s\~,Q9~=A.d*a xLqbqiT%5FaϤY& 3\L6]@y3b]}l} ѳў%&~%4 NswTs.{پ[ c>3hYj\~!r}iُlä&[ׂG\,HA+]JʒwKSt1UW% ݬX#yN`BS$GWmm$N%pʡn8C2 Oݝm׬QP)1/7[]ݣ0Jm7CGcŕ@=%[FWp1V3e4ٯ+!.ؐ|WLLe35:w⼞NZ?\GD~ZR&ktIZ1fG2i-_v)hrޝ7T~4yw(h_̧jY% ~%ItNU]AOšݽE3m=eñ٭rx`Gr,KHڑP2SLrZq+QzH{{ME4~ ]Dn>]϶_C¦Ip8Bj "jDy}5 t:5cȂ抢}=܆J¢oBS}C]ac" I赖ĨkL ͘{$w]>5UT nH=G9U yb="n?|qL+tʊ>tz듓zhGx`s[*ehn'۠ mEm|m:X,jp&ԍU@[:/FH]=#'.^@D3y2JגjgT5P3S^q԰o3aN(+;׹46OGAyM +k=w7G͗؊&ebjsMDqě7QL~"oo iqm?6g] dVZ6+bdwaX#Ll[߳Oe*JUǛ!R. D7f86fWT'>"G>x瑒3uy+N`v4w>¡+>FX̓(&Z!Lbw2~)~>^4Ʈ^`O48v]8|7ǝ-%#INXOgBS'/kh7Rq/©ϸhӎ94E_2\.fʊ\TmB.;jrQH)hEZ0v˾rHqd:tDVz}uazw-ǩꖚhUHhG*o4:z:PvjO-KvhӌO@y  0IVfY{2OH@F]a` Ԯe8:ȁnq=kSOi+I*Lv/B2-\.+>31Ba'925F$H ߠ}M9V YZˉS~X*IaX#<<|CR4wkЉEtb2PYJɥ`S}Ü<AL eߠ]׻B5VbnVJ4R2hzu%qw%$5hJo#=ɽNK,P0fMc"STjvġ"Bsϫ߃bPZn'nf 37Hf9ostx-?^ ۂ+(7/L}b4f f2aeAp(OHBmpur3 Z(z1+?l6ߛ@Wa5-1 : Eࢤɰ qP=E_i#~]χs=8R)|>]@}p(8Q/HԺmN׸٢ "h\W`ef'O՗J2W{CY?(jjI3=j8˔yCfvw *iCځHdܐ^Bh'6.>$Pz5'%\}B?_郅<<|@Yhdn3%HZIfіVץj}(Vq[k.x`"ƴA\~95 Wos{:fA^F&ʏ !=H=% a0J$|kX00e1g> 'H7Bv !kk p9LK:͙!y˿h3O<[lwQ2$k=@9#- KY^ŅǀPF`'}:=gQbpR|vp_{ޓvz,?+ Eq(@uY1bMW3]2쿃^{E B;i c? R3 \w_77f h vh#twt$|2yԪ 85F4y{~?vzCY/M= 4@fvdrpʈC>&p0!%pg&NQ. ۧqP+7w6qj&A ^7,ղk8ba[׃" L5q+@]E猖=pt>:)4Ł>PqW%+<y}AAI7jd_CcO?k&XO㰼fC_*n s cߛvȒ'0'R_m6'MtY@<#;-h;^G3ijk1lqgZ]ߺ;a~\4*ӑM⋚U[bgC/m6}y-9,RKS$=;H䊉6s2t(o|5%:t;ڹQsIw Ѵc`Kb_]$I 3T±87!i+Ʈ+sC8{C ^nj.[!$~#`*Wp)D=]1dʋ_U{ޛ=LoF\XV<_fO_K$ =egM;2ԊE~U uv'ojN.`LRvǒ 󰡍-7 9Z( h# IGD.b=d[Zw|Zp z]/q]uCA h=B^E9NJR;oA);utz}$|Pl(E܋U%(q dUGlv?U`@Y5}eYa}3C&~0 NPaG_i?41zQAbʦl0UŞ9 y_&>$Ī(,м~@Vj7ɷ{I=>S;4YxtcL6wAK Iuoy^HƣJΆa|+W&ц-'j.$5Rfk8j?S':"̱o-4NW\d(ө}IqGNP;n%[z< `ގ=bvS$?}T{R pD,mE ؾ iކL%BlJiZ}m߳vt@L}bB*Bδ%u$a\ *aqDJAރ.Ei ;f곣y҇0`JTh,2044")^yȖXIQՏsª?'|י5Z8tHt:gk3U9ɽ RtCix*sEO)37 CC3ͤF].OJ-@FB/`{%1evLb=)5n>C.xޥ .&"B1$ 4EC jh#DLzafy.^IL ouyY`,^AMt+I58 .mooTW@ZCSkƷѣa|>hHszJ~4ǻ xLxRH~ΦfV&*phk:B8N3}B#+-F^%Ɩ辢Ν.7hLhh! GAȬ`x%OulyyUP6 ߃0\hʲ|$w $N{ ':QEfcY]#<}R2jnh/0i*_ ^߹wee/5W젘*E {PElŪTSZ U&td0WiqڽbJ/KɨMx۲PA[L0PYa0V hd]sGYIiYX^ϱ?R7/%`ƍxTB-0Q_/{3TLsgQ h\jوjtX Klu\Eѧ MC\x ( {f ]2p8dގ*~s=o&JLc)XC%UZ DJ< "`^T@\7#aJFr8 QCߚ͗5;Pi@Mlޯ:UGcG۠0X縗R46]c\c9pvn/jۥ)lY'rD'ݙIm "`/4ŌhAM2X `Pã3HBQ5DS y!0s' }U?0kvAqP*R` 1[8<Jaj=G妾Y^xG4 9119<}Ԑ延gU̝x&:~$I2w+&Mg(zmӣȉE{Y]w|ߩ25xnbD 6YX 03?w9/@Iv1 _$dzKe lF$Zq_HPSac&g4:71^O wW塛%a n<#RHlCK9("|j$Z5ݼ)#ͪzC>rX.t~I7ySbx (` ^#=IJA$;G*_ 3 IݘQ+_WR9tcT,,hZ"t~634PFkc a>q&'09T]^ rӹ uwroU)YҐ4ie$zmj0@Le*xƒ/VJl398^ zx1+f/w rrPl&JZgbI%iF,3]Wq+&q IgtX'`> APBtJ·E%,1{Zfhn4"$ʗWjiqftuh\uW`MTMU&^<zM?piu~6AR"|'$Йۅg$ΥW6j!oÑ^{B1bD`(W%_:=О2uK2.bdB'u9~ܻ2:"C)^('ڦ| EWOUq3H&^ՆF4W.zJ[]34Gd'z[`ej+!/`R~ ,ˇvK=ޢ{=nP]ao1c->F&dɹ= >X_VխgRPgm|MfoU{Q(XB\8(;?$^ eۣk{5\4ȱ멷qX?.!2HGe)a'*(Ufb3`%^~!^2S!DtŊYFTg{"MG+( %^m.P"Vd}XVl:`[D %b) ;fIjry!*mh{KLi#"ȱO`}/?( ykJ&'uY{vc(ɋg՛*FXFzќ78"`漳OMMSQ aԒ t h*gJ>݉T -A8'1+)ܗej񹤨E;E':K  !=p7TKV71yQEE/I$eM,AzL9L0BPR$1Ջ3ol>/Ӽ*u6,PIL0ŧs.9Ldxcړxƒ{!?Rs1G}Ţ0'8_Hn\k!$YQɦ]I'l׏*%Ra')j6 P ~9HʗGp__/Z$NRsOXgx̖8 p@&O4V䌚~a9꼒}/3gx'&$_e?XKR@^m:'Px§ؖUZˠT"e4Ȫլ? Փ.\N=tȀEig*kATtܨ+c|e݆RZw:N 1QcyzNj=%nTRCs' ƅDxu8jY0Z+ ؎͑|΢~"z,X.66|(F }{_}BtZÊa a _ $Sa;j"$>.~AE6k0/J :S% pްyбmAgs3|Xf˕wNhvzJp^46<& WhU+S[U?Ke_bNoKWm5Rh'^jQ;FYz0zCa<^pT~`C p:%)6-_\׻oZ^˖L IFVByZz#H+:~RƛT]n=ؘݵrOH}AY`6}Y %%gDX"J>aZ&OWdžp9[b "wqOEϕ H7( a d"p}Y ߰K\Gb@\j] >aHȆvq+ŏ-@vFa `Vۏ6\Rû?vʭSZ~vW8yljPEjKc-Fa6kaƿN7<~xa-tИ]Vj/%p9 )Gh~ВF= k$;ݏ8R+"`+dz~XHW?|HYSћ<%+IY~{ҩk77+jB6@#P&rB 43@"v]zNT[&IHhc9A~ d9O ޢ{ Fc-u]#Tsf^!eG#pEb=&Qo,q9X_2(f {]rd1ӽk&69ZZ7}΄a=:\^ V:uG[9%Bm(GC/,nNBtKGI>> oU4D3gQAn cNF+!f7@ursJ* vۿ<RZMQi Mh=א il~ԗ1Hr@&)+Rm>~F#旁OfXG=dc{NT5}1bo2U i_!})JP36*q6-_S2I*_Uq[\-5v G{t"? Vwkߜ&M$7]*t%8}$R!KXW곿?[R<]mM`"/U%2)?%uݬTQ2#m'P)3JC6pEg#B$3k#aC!1T10xy*ϋ'u)u(3ҟ=ssqaVj\P8iՃCk; 5<^TdmR?mf1[ݯT1|UDG鴫;#`%PÌH(DJJZw?@ǸDok#pc䤲8x](O䌺5{( 9Wh)Ě]69T"<Y#v嘔_`0qI~6ʠ4]/ѫZ̖drBIt&AUE6cnH,7Ú\l܃ƹ{+ *d Lh6Y2+xHeL-gdJ3s!K)@wxbC  V T _5BmEn9էbHu豊( eQ4'>2xJ BRRQ7Nۂ3_*=zp6&X}d7X94N[,f&JIEtfiTSz R(]NQ\O@WaN P'#~.Zl@F JXrZ; ~ѤoA>D0_8>P X!ǙKG 5-!}S@IJoYRx&{R.xlVLͅHn-Vbn2i\ ]/ ij?k*Ic*@Gф:a;g0pPh}L^AYW'ѕ /}WOPt~5Q#r&>h*b l]AI+0;lzgC_|3̳ұzSPS&[g?I~E=Rƌ3bzlAhݳ%p ЁW"oQj||}T5Y8skJݘaegCdGEPSX^rݯl_~A@ok`Em~:ҁ)jLasGAcYBꐱM>]m;",iWO]05/j~K#X.ݬV8pJG͌ , @֣,"R=Ņꌌ'l5ٔd?On1c0]ӻD;_ƒ/ r m. L|J /qq (W .nRo0&29a!gUg>ƂڃNA [Fܭpv}Yos!RFqǸEٓԑn$0ѫ:`udrFn?æ~%"-1bMqdmP説󺐀]It&=D}ܷ -T-hj@!5g%֧s&u+!0eP\L}?賬yOl[u8lՕM:z< a|Qtt %C;`@WҞl "'Wa/9O}Ү ;CF$xZ<@&I~4gy}x kא[G#%VE DW4F X=acW)CĿSVz'J~f6:봚8\MHmLxKMT+gJ0_k+Nh&s *Sduc(Wh%Kij)}AL!RV5r0mOC@B S9Y ~LD졕/=C8zg/8xJlؘLZXr<^ļzuRlvW-.+1 5'4/᥅gҫs ~p;ZDn(m]gi؍mF4GړV' x̠Qu'eF2ej "/5aNUTpzL {8EIFdNZ!ӧAH&TOA^:|pL~6L09$mJc2vN;Ʈ a|/%ߏкȩ>rP@b~G(M݋t~B FbDՊ&VP2O# 8uV sg1a*ș̵F^s>|/ŵ;u0xHTxuBgg !a޼w< +ָę"5aj?0Lў%_qdK-Ԫhf4t {lk"Wt_ʆ*u-4FJjF!ET{Rq/JHjK:9, S  q7y@W۝C|ܖIpTZkKB;E|ڏ&b8f|aK5 5|9/[?OiJ%r+pl8dJYnSP[z|zbQbV' /' =׳vO)m<6Rc 1qF;O%Mi !~Az X*2xl d+KKǮ"~4r|ွm 9*e,]z(kWZpqk¨xZ@H }S\8SP^|ٕK=.YQtٗ4gÊE<|ZEV{nLdI(-cM- W{6iT6g;/=C?;Yu'&$~H;  TE+\w/{CWUJvXϧL$Hͺ o^OFJW(*Pۊu+p6Pţ<Ђp Y'v/_\^ßP$J R^@3:%~rj@{A}ȲYهoۂQ|¼e>Rn}*̻n` Ao:9 _s[qF:VraLf*n/ʘrxfx2FLAqͫ账k]h |QF_b|KhyI*HJ9v#v,a>aЙ_l\ݙtT:CqD0t}e^ej-M@%`YՌz7 m(ێ&J2o޼{L6[(jJ&+vYOHpu^&ՐmM<,ny,34--5 H䞛nhp3{vO_<ע/3Wtp(iF@=e8PGWcMu!ƛQ2p.P;H]j~D[d᫣R(2l{Q{,وnMn0IAOp$Aa\+mWѧ]:s(^Myseرޝy&\<+c#X,Uց=%=vh9C*([HE?su<}=.y U/wvm|="]U(wG#yS0h w&gdD}3jzY#b4'vQn lZkh:jc}逡6Zg*ᲀI(t/tϏ<*,p[PzVŒ<p]UDB:] ϣnRgo1nFȽjUMs;1re/8K`lޞwSx:Nq &Nǭ~=`h\> mwUYHFvΈ? zR*7jACǥ,0v0a%{zs+=Nݑ8̢RTAwW_]YqF8}"i{wEQ*_㖚`!{MtfHa k[x{ںaHffE:צ1`ߖ9|zph3 ѱ1.)*% Wm&HZ#n/w,¼ܠ7ljG_[ݎ᫧\ħXor s(دx}ӣF@z' <5xBPVFpkG5/+H@]uAyPȞ- *o : ڙW5>%̏9R KI{:b-4;&2WWrƗ|xy靴Ky=T`'y _=!HeT{.?%%M>u:f+̨Spl^\u7i6J?F6Y(^'}xК ۚ,zp߾]8?M( }y+4!!5-xŮ{}K@޼6|3k8B" q{ YQ_=i\~-:{d;srWSQbTS {49 pX|>$F'Vv{Zn)V'~ *S;) vdGuCWNهw7uj@B}пˡ)7LuL9InPBgٮfrd,d'ڭ8krXΊ#3`6Dhֳ_vTj1ړȧ64h)0YOHwHeƇ:tJS zK MTY Pc[;6eD(*BG c1jɔElK߬nGѹa0@B=e@NJb S_HABi"a!O2!b^zsζ^Ԩ팏@s]Ra%ch=4p[^S X8՟]"W?).UL9wi}Н{oK=ILgK#m9 nu_JAJ5 l+ޖ`1Iَ:l'Y@b/t) o ʞ5" t(ϧvW[K$6_MV:օZg1-~^轞dڎ׵\VH0_\IMbGa NL3v-ǰ&™ ?kw4ԷXA}<^ 5cʡ1mzG/rzմ]1XF0)˞Ú28ʵ*^2}2COr =90PB뛺j3@v)%(;5$N_9)`{ Tʪp!2Wz/+^g/ȕۙx'0vh,Ӝ?4{v"˝-05>d3bT7MrEQdy!)bueX>ٔWLD0.pS\>B+ʺ%Cߜ*ǎBg?Qע6.䦻Рj/%m{ki}IMTHg^۶QZ.XD-(Ouoft=.Cw˗X(x!L֣D7u|#Sȗ^S0]ȲUmS+hb *: +Ӊ[Cl*K4oby{T)} t5P.D yq7N)8p%Inn?uGKH }  tH"Щ%'5elp\MUp^)E*.|mnCkj4"dhҿ1-95ߔ_9YN3n;W$ηa:|߂bB #6GazAK] ,԰kot'= -]gR_79H o`@CVCBaۧso:كLusR]? {6je&oOqw]„*-eCikѩR. kKvnGDheKͣn@߸<1{nNKz+!]CpK[T2~VZm̛a ޲Z6$zCGaBd`-vJ]B*/ <1p 6+V$V)`/$HWD *cQȮG~w+?ʚX_ 7#dF7|4dtj8la톙k:Z:5V}t];=\S-+Yci2"l~+xɩM?<~s:B(}?>^A V "lm-{sriK]G)%IhLG.+z#_uYLf)H94Z&9O]Ǖp`ڍ_gYnJ@qdgn' Z "FbEH7"-7C2{sQ.yJm_ⲣ%G%&yULts:z4/æ[l&Qd,hl<1]]F\2iEo!] 1'i,\*YSv'Ղ|uCrj&dU2(qcGGnYnsDrěo'WZ&|s?'69/sl{V<;Mn~W|6T̼[ܛzPRpQP?%"m^h`7|(\bGZW ©"o`ivXJ6w8?!H?v6=)paS>2tlpwq⽙ 2 s~ͭ^L;Ǡ6\v5㈼p=w=)k}>1Z.&C0ZԠR,PVRBLDΜŧHA 1lIy{qOɯb:0b.{aE((^SR빕OPe45hʲxڻ:fͻsIރk/z(|Ym BuI#|I,ȅlL[8X$)$|<-h]ܿG8h(ō#m'YeYفvs[{G%u}fvJ2˭Mp 򦳥%JȫTg)?ϥȩX 5'CC;$ | Kf H&$jiWHmn oKuC !KzKh{D24x!ZH)(q y|PEK:ONs߭Up)Qlu~$՗q:o~q1l3(ґnF_xGӠ %`3E5Bre<3L\2ރcWBD|fJZTAgg|UE|GBl} nD$q6*~u!iu]T4TOA:-tx.D?|r(=xx_#H eXtBW{{}^T3Ҧk3:&%*n*{2 nz:⡀)K69l>QeLOI&l +Zˌ+Ԕ`@h>UOr>PN ;/=AJ!!Qnquq!,NdMA QV[G.h. Q凮Տ^ B2BP.dۻǡ^ !kmpSpjt| yՁoC'ګsR \({E?LZ{^:η|_{E М;MtNp'*3m&6>G^͓`++!2/˷NBύ'Z;poC# ,Vw[$ѩ^G(hPG~YH/AOhz%?Gsْ!𠾜ˆ)AJȥ0xK:cH{p Mϟ11]]WcUш~riE:9jRmbbq"p3h[m7o;8b w870m< )* 0_u-mUO &֑]lfR~&lf s x0A KojHA}k$N;z@w/9K(a {8jk{|2x1XKW''ՏdSz:77 G HQD1j!ӟLb';Ƴu"o׻hKtAhvI~qmӋؼQ!9 ꬏YN@7,3!xVB(Cx(+h'c84NI{n2h# wa/Y"J;44o؜MhײrgE4 %CO{eA5q{E{"ł}jIwqTg!5Tj56e C+c+E("u^mP.$hz[7+2g& ̈4d3i#sC|p|fm4[2Or1?@+ #h e  0Jy\M|4*?E%.Uyʽ+%B>✓mWNfn:GA&:\'5[xr+6^F0]BQ:6< ϕ;!B985u%(auzW~bhIcB]/7J 1;@ޗp%SB3 ;G:f+d*'s=k;-#ѩãE°m*U*71Q /d͇m ̃DP?a(QltSi.O7%РzEE%y#DNxd/oÍD6_lQda0)QvV/`Bͷak붠uL0 oWնm&$5?f7 G|3X+0HW#<},ΩW0r#gKNJcW4Z !!8[-w.Eu~&pf#֍ [IXtÈLm)eNg8D|5) tj,ٚ~I>Am&% 1!ݶ=͆-a<;z m۷7Le. g|'"2$dž"R~~t=SIX ]fz1z1d;|l ?C,Ly~ `S3\btk k &#NJiueX uޱ$iV+iGA5+-F!`YvhA&L[QWs?)C<:wB"љgsA jاL 4K˻~g=xy?qc'0Sc=-`9ۖ.HK tmd$w&[s8=Z{.jfp Lϫ$=c5D"aN`C# ]q&ugМ (aFB~pcY`uƣ΃P=]s)z$/kQcֹQ\x:Erh9 QpXU!;@^VϲIҚxg-}M'k=UIe\8'Fx{h-87riF-TmO7uSj?eQQψ5?! 7 9jP\[ :6ob*@WJUE. pqLi,#Z0x:Ȋ˳ԋ!rޟR S?'Sm"DbL~Ktf&`m# "kpȶu.2,Sri.FB sݖsmw;KߤjoϹ~ˍJ_dO{rHDXUЀY!vJ MTQ*F́zzUx䦂2l~^jc >om+ҐhZcGaxx&!gv?rMa 6 ›G(Q; ;nNT6OhyA3b,|U1qYjhwin ¡soz݁SsGԐ_jH6OG'V9-.mGRQ8nD:51 e~j4'[LZWIs&~2#$nʨwk%յM(Ȗr)+*]׏mA+ʱ? %MR<{))Q(!dy uTOb]uf7 s`M߬ɿC=^ nE\N3Xc97w9Cһ?Lg mؔeh>nBGe4Vd0DĵBFy(!{Sp&=_"NwbDn,8?vv%+ |/]͡ lyإL5?QiAo6Q%K8} ,_c7,ceAy7HBAEA]nEb0$yc6*k.PA++`|uMGPqЉ5Wy\뀭pfevҢ5hG1 b=9f #Umd*t_2p5.RUS}eʴ׮ 9wW1_M>q`{ѭ6K֦;S5A` mG횤\ 3hf~5m PQf՚k_7#dHb0Fyz 2Tl-O f1Yym !WV'[u'qdB1~4BxrEv!KdP7hi`DX8!fW-jBrd5ҡ@ C3uX$f}?CxDŽtfSXhc4Hp/X$+6?ule{f2[iԓA7lozִi|o JcZSxGQ^,HYYŠjz#]_LMBOpN2c8B+(=F[,uHW^J`;+5V6hFQ%&}/zb;Ph4| KC_rRroVKnxR'o"W{ ;bda.&Hۄ0g#p   FR/}TɎNa0)n ͑n^S2Q0[4]kdmd /@`Y2՘+@.h@];b/@ Yr_6+ˤZh 4&}H.a WbzcvV<(') OJ?{=3NZ>VYsgw2; Ka ח*>&"Oz;6\d""9VoӲ{W"5vJwjEh^T 6Py? Q58%ܼSiV!7K L (?(͢LB#aq*6>YE\ڱ;O S ̓ wĻ=F|C1qh-J{Jt捕I,f7y4I[#\[a2CW tvKwWK|qna80e|s c/VQA9~M)59!vZyiK^Vt1Wcɶ24*Ke~Ďڨƒ͓O=Ttb߅=6-0ӷJW@D]G*Wz=xR _x Pwy:XIԬW:vT~]?Uе!ʴMZ(B8x̍sx5NM7~%Ҙd,<Īt.RMvnbby^"޲vqB1!CNbo4#}M4lqXT{KRTlt!C'1[F1A羾,+~e!CwTZr!сC.Uc7g#7~bcC|Jv9L_a!B'jx*%P wN:,]T)[AbOlD'XlTPsg%hQX1u:LP#J,BUKayYJ{&Mxpuu_ ahM vk$]$!#$ڦi!Q@ j3\<{H2qM}˟iJJHAm. ,4= z|[3;Ctkɪͩe+ئ; ߾h?,ѢGቄm$NY (0AAK @.BЯ\ܾ !yl'^U!́J7JJRWٵ6 ˑ#ujmjl߰\~7e-o43TH E0_Wt+..bVGh.dk_kv#"574%v :&^=*O -: ϧԇlʸC +)'4:NčXSM wT7}AeRlIHѲ CSE1$#|3sn>Y]Ew5QO>eV9f}Ƥu/P<鈸|'4)t&/~V~/\ۏ%95p1 PT6)n$.\KW2NLt(k 7|2CEVۓm#e#'n`=p-4y" "vjI ]c~B\;W%E/ ZPԞ,OTrY=`7ZϺ>Qpf)43m+ .U:| 󋞜Xw;Xl~ C]K7gN;V˭q)wE< z5텬dz`$%G*Nr8޿7u@MFit⎂7;U~ab؝ms \(ڼ ;˥jttt{Z7w=c[ʫ:JFtUWG".|'6iVht#zCIȀ\@u C)luCªcxӘ, s)_' HT!u8j-5!) %1\!HgZ{*Qp:I^.uWVKLl0uL8c3Cr4ذFݽ:Wm.A`>2j8>܈W_o.AFn^9bGe3NNUSF7ʇ;W N8ࢾ Mo P.X8_1@9XhH`]BĦ޲\Um^&_iBwtR a I{9%pJg0t^rhXpne V Vcj8ʂAPb ~;1.#^$;v}bxb̙:ܬn^_h+e$.N=Gs gnun=()Tu~5|7WZ_CuX̬!U)g;j7sk5%i=f%n%L=*ΜyI' . <@$brF0_nu. JO:EvB`+ZuE0H?1Y6ckjl`V|:)d5[Iו\JǺ4^khs5d YAX@~5S]?C@u)9j1k1˼['h~O]@3ug.![)G;"MIKw/Y:߀ wt5A7TKx_D}?ftg#(43kO?Z>ǂBߜ1yQg} c-9*`ZLH*aM#S8u"0(CHr*y_Wȏ?,X YOpdwO@ 8u(G=dhlTى4I183v! .sLZ̳ŲyУf(doܖh#:L,'/>>XaO\ DlO9Hx=7 unIu@ԎUy:r&Sn/iRƩdYzF ?Eo]}_ 1#a= qQ  . H%g= >ၤ/r:zd;[5".,XBtOqz"yŚ{ȏFJz>.D>5('wȂFj)mMָexMbut犱V,4|Hof``Zڟplps5/3_^MKZu cM,<"]ί{WSq~T2I+._bM D~)ZDӸ6*zc=ud&9F%dPipV̾&Aq\S'.xXks "y 秅ߋX-̨UqPv2.ݥHҧMZ }lԤw1$\be$iJ~|vmi9׍i?֑=게B=@|_IA涆ְO7\3sf sJoԠ[ic8((4oOݹlFތ&f$2Ů";돔9/app63ꎍikd,"IxU| $wי~p~9zC]C s$ 3 d죜oഀ %ApOмGX b̓*c{ hClZ=`MkET~o=\:i|)ĪKZCnйs|Ybd|Q <<=SJO6f3m]x'BrRY4ݨ.  ~ fN\7Gt`ʖ\MyXDU&:;-5Cޙ0L0vayU7r]"Yg :mY&{ 1F63D+|5sJJ!4C crvA4L#͋+e7E{=<9!q|&-T0hP?@hwoS='%ŔNNb\'bwe S dտ(]p+\QjAj!aDYE bsC<2!7f7_n](Ac+<g2,މs+?TƬAGYupx~,g˻JЈ?jiEoyhڿ*d?vʕ".d: Ӌ/ޣ?3:ϸ1^bؓXb#yDdw$21U 'oc݁,EO2MѭXhdOâkXh0mSj zQ+\jts%odw*zm]ץ} ^qĺ<ݱeg1j҂ZKB[)䛆ݰڕa:x7aa ljX5T̵“|EЙ7w m4[XE=Z}  nO^G͍ў>9ɈsJM%K\xJ?5J'ǎ9j\s\e'3AjZè/e]'f;-vLp;⎆#W'w_c}=5{fÏ-tQX?(a r2_OI蚋X~_Wk|U;aHw^/ Wh"x뼒e֗׽)Ϗ*Wb >K{ff X C#vh^sת_y|B7.AOcwOAqZa@Q}tɌ VPސir#G@JP5b !L9?XiX?'M[icF>Sei_ʽğ%gxvf|G$q7U<ݷ~kdIPCmׯI2$)i7njoު=(6}Lh,.Y=mA#{N3tI?Cc nȆR^{'דW ZS:4/N` Lpxs ݭ*\"5˙1TqADW7GfUˮ@%$Lq $TGzƍW*g0dqUMp%N0p>ݗ2i`T[ԞzV[5MRydx#&Ƅ+QMgsØJP:N2oP"O6rdv7 Xu[O*McHCf%!0'ujE|Sx:AS>#QyFW#Hz`[Iw[joڙ&19v)D58xZH@_*3`:ٌiщQըc@1%VoèiiBЍM\Uw3$P\{xyR3V f2W[?nVf5M4NyL0'+rg?3BQS1fzCX>gDQNg H_ j[#]b3 %N͠3~Q+n;ud{%.^"<>aku(]nV<;Ow dA'.Ir737ʅQ3:~$zàyt7 ~.?#8(⋎ fbl%!ܐdPᭊçUq{DIBR!Uh2ӵCRQ^yikm@TA6E^QkJslb wYFɆ]p䚩9?G?3K-1\2 eyu,aCm%`RuGk~c@b 3 k~=TjxcTd#Խ^4^UW.-0NgpR\N[e_i8F r߾C+ z%B22Bby/?u|eK(4f_Acǰ^yY ,xΩθh59IKUqjQĥm@fYZ@J[p=/vǦnA0}ܲ֫U,^)™-ouHJrK?\ʧD:'K W.gq@WD ;9|mM;,~d qxM_Mr`dz>"e@;6e0>|I>PV UTcCyQL\` @Xq¯nDfMG̭̖OD8re_.|GqT &פ߼ ]{pUxTVGW6S6q LH l,X;kzdσYMIJNMDfgkV%6.k'u'&\xEL-_TH6p5.NȒг5޸zutCo{!P>ޓvr\0-c*`tQZDz^ܞkQ/A7K0(Ɔ2 BCxLX՝K %BܺAtyS 3|Nt4/“֣?dMω?HMJg \sگ7'^COKZ591ߋΧ)D7bvH F"vn'R(MsSfP9t {E]u11D-gI"dLg}؈Σi7~ΔXs4 ҙ s4ʎ_iya<͊$,S먠VpVŸ# 6~vn v#ܨh/HdBM"[`Q],zC ]|QN%k]PK\ JBj(5A'A- lj wqa02cf(\2n.<^XWO9e*zpijrx9;82la~X-{Jq1M"v)) 6.̪~)Cm:j-mp18^M$r@flr k L2UR]| R'z!ܹM ʙե4VN*<:p~$[t/Cł;o~%L:vM=Tyd4&Je^AIT8JJ,N͔1 0b8&Z.tr]vk8bh؀gD^fl7Bz'g#6Q`x&9&@PzƄwCȎPJ_ \ovkK `~0[U5+/L}IdNY)㮷!H[XBgu~](!ݟ IfgB/'UүxTޏ] 0CUimM߉Oކg S*j}(! H Ię$ Ԏ>3)`IԳZP8Nz㌫u/ü 6^ONҖO/NsƱ5 9IC<ٚ2~e9`p&*Ɛ_FA_(,, ZNMd.-\C&_͘/ݩjQvLiH@bW҆0%X\s<}լz38Rg>c^W݌ RꙄt"קpP*c4 Qv4v=TzMcCyNw?{f U`OQuNY9t˛y\afA-JϱABD8Ĭ,`BxɌA T-摜XQZ[`IU%cnE\mekh4<ڠjfHTH5\yH uP$Y%nvsxJIZLo5^ ne"X0 )\ eq'F弛bwKmwNHg=VGvͱ)6^> Z~ /{n Y$VPrŅ&EI*pZ`z#X5aZ  mIfϠGiU<5C#3_ >-o.]$3 M[In㟐]O~TV|η9D43M 5kPY(bW2ˬQr&vq# #gDGMcŰÝeʣuݿ!uA&$mzάݰ,=3 BSd; Q1bc>'2 w dJ;Hr-ܬ>"~=6;aF{̳σ]m}xniz񄔽8Oc_H1Zc1LzGkV Ξd LMc9ܯ-OW3թU)3OEŖk577Xx?7'gzGַ0tҭ#;QTLf{y+7Ӭyj}@o+9:UBHeD~&P ,끑tꉒfь߽ z2Nmx2& yU 3n;?GWhrހwgJo9Er⨢Æ!J㿻y-He>+W`9Kl؞&ٸzsDu,%]L(MzA gTQjOqv`"ac\G(KpvҬA}G=J m!MďRTYi\RZ0]3,w7:9m-}Ԍ* Spj406x%ӄUTYOr)X0>1wv y iXPv( fCaP݅-+V(\nص:wƽ1]8.SE:tl`09W 4dqM$Iۯɞ=~f3N]ϥt=5m VMZdMMr=%{i5y4o mmb-'S/G'uGZ6\vأdtlFX|Zb:MMks\QJ&9(Axţȷ.OCz},)tm*_09g$etqGB|`܁)G>J#@ڶg ^N8(MxĐk\U㻄z~Tqm17mP{πA!/|ڏVj] oڇ^b40N})iO#9)S(ܑ1?4Ar{=;IMVj%{!qG v~ty ? P#'aяNk_J8w)\6ݚT%&jmƨI1+#$HpM9/43tNQXWBZ7[y.EŻW,OI'c\fFgy (&ٛx =CdP{#{KK s;/^|kܒMT~ZBK1o4YZZPqQ$}J͘Q'@9&Q<:-7pXxS&6G^\#dL=jR$.!i x%nj6xx[Ms}Ee xcn=PhHWZ&-Fz8K8eǷo~9+qg \0DbGPxK o[s~f f SK1$ɥ-ٻaAL}pK}DrL\GΟ=k~ MJـzN8Y}7m}6wAkw!c;g4 :P쑱-(d0 OXK&1Ww y21IH.jKQF&2վ|ۘ~^4ƩFI&t,jVB2"̏oT`+YNC9wqwz6gogİC)갶\3rё֥:Ϧ bqКv}S Ob(̄|Zj|NC,>da s4Ę'ځ B^)o1ר/2NY4_tu^UL רovvmw3.tG2-I3oݗsSd~11<@#!<.3C+] *  F[7M"M\m{!xY`6l.W0+;,3Om1,a#'4mwZVJo\zAjs^e#fNT}Q=ȋU( )` Nm f:ˤ.R_!pn%O=]82s逇IǵG.*-GϮG<=uAX~$d,nG+.Oa~X$c 蔐if2QgόEsiru;Ʈݡ(@4WX˛' YrIhܩ3E?k >;7.7[-h s潁}+) ;>օ±MP:,Ȳ O %"I< H.^0} ij9Nیvee˦ROA/yO\'d[4(߿2bUhܽvfĹ}uߩeOgKP_$DHk A{%i <n?X>j$^ f$`hdB^ W&if@*6!J8M&pJN8E$OM+4mGHs p6q75ΗISEE Y0Z91 ]3|޻^Ya5m8dVGFI.`NаH.&KI~9Xb^0odH%)~Σ] OBjؿ=aGj` k:'pqO> u˻X%ouJ.OZDZ &C3r Y1^R\jv껕T;DGDlyc }J_IXV!$0:ohFCVzTquCW,w\莏J3$bn5SLw0T/a=%!6 u" l'MP:2e*;^ O1SЖo!%֧* e\!]`-tQMR{GY"$֐`0EP4oy}VLl`Y5YK<u(UZp|۔($}EXy/uQB=a8Y#soM)qM ^aiTS'oc$i߶=XUǛ#r %^Bzgh<܂Ծ\K(-ViPa )z63?B~ZżGRQ-h{n(` q1۫ݭN"1h~?*qn-c{L̼渥E<_5Vm}b[E7,M)np _lrk(,)ux%6+̶9?#âW^A`<6 S܋1q9hNGWƜv|-( D^CXM߾fyBcLC3l42\*iSZmnTAIi T@uu=snóFBϝ>|{]a>$) V(`yOzgk( -LHخњO 6`,Y(]~huGl3):KrA L@& wW1*Qng&V[Խ:v2%ujހ2iXaik`IOC lx0DKH He,.UO,Y RôP/-bה9W\F|^ՒX<3xc=s0OBO^img,ewE،v펜= D\(sN!`imh\Tsuy^h囘bbah&*HK_4r~.MxZzlVl4lI^#3n|4#7dc=t.j {j?gn<3ّiJ=Z5sT)]CVb=ɅC B}`Y @ s'Vhסy(0 ,?b"|zy`HqKP8V얰(AEO+jWiySTjT7eOLc!F XߕK&͍!PoI8 TTm/pNEi]$| wn87>Wdb1d֊XލfKϹ˪6opxSa}첆m95{@f_V[w ԘFǝiK9>6h}`PfbQ^rt@ʭ9 pU\Ze%pM6rrg@i%5Q `Q3Mzy*+Ubd+D;ّ1[QREz./nrB W }~.)@7N04P-o̎k]1_A\H9$x0"XZE dS*Drg-#q|,p۸ʬzPeWY :K蜃yy{2 /a'/tC͢gN_1h!0ʃm@?Sק"$N4rД GZq:D$)ײ"ҦsX1/5d0DȗVSOSjxl^ǒnTHC4r^#<MF ⢶R<%PL %Ut7dF[ CMY6@l;ɮqzI Q"M۹^@4s1>J3gԕH:t.m%Yna$84^:e>GQMڣJi2 Q1]j1|C?X^@IP:2S 1dkG"Ȧ'uQ_GO7,T :Ae's1L6QUCK\`m=%bR-uKzN^k;N?!8ڻ_}t 'm.z`_@$ZU\Ϙ]'Xw!=T"zr6@OwŇ.Nd֝[Y'9|$7I\̶Ae v3E-b~E'9ùk ̴ng`Km{8 @d?'H$G|[N 0 V- {=eH2J4B!`(ε7 ;$Fe[ȶ(~H %y';Yd"}0[:&#.ss)f FFT ʿTyYcx{>Eys`,#}Au3x7A`n ϓDp!h"LGٜξؐ&+0@+y`9Ĭb;K/㡴׫QcX|4ŭKiOHS!ROM"2,ȟX5]x n_ȼ]UbW7 w6;vvB =~h9ԹqTtVI99q^7 ԫ6x/`@y[4V_lnt00 xT|=ljC R=sZ;*&F!  Q]BA*/C N.?+jS±IV1xcLBhdB(t}ْ*"A`vCDz1ΙaWCoy(__`YHB 5ojѪ3fmp+1։Y%&TQ%FiLsM=/$Uk\6⢝DŽ$H1aMpQʉ2 /9u !z|Р31 N^kJb>Ftw;ǫ&P醻AL[4Q/yd3F@/ \´+Pqf="?at[Kh+!(ۗ05M. v 9ˀl&7*1E|Ϣ#Ib!qH|U}9GN 93Mkj0#`k|֢Լ#+5UMXTio ]Qb_U+r&QTOѩ$ʞ3S)y|C[SQ}@Cz~_ȭ=!ȗE& sZ#Y?@{BČGbl"V˖^hb4Cyr"M^) sbгA0ġ%#Zfe`do{/ WeF5 ^y|.xj6+yYX( {D_>KE$/ nH'Cǻb5EQo$>(2'b*WJY*<* RM\=I D \K1G0Iup̰炨5Wѹ>Xp#̓-jMםAMvC.u~vu3[<] csBC^q-Y]1g2B`q,ߕqŕ8" t/fecɣP'Q@PE¸ ]mu,X&%D`msi D8'zR`Q{=FۖKfgSF9#5qwr22tVQpe j"{mok'(<^oK~WqGTkPz?5>d;eLXhv;#[ǀ_oc:;+xr!.qY[͠eM10riOU9Pz$ΰݡ,?]Hl2s&}1M*dNf>xDvYx4Gz}15,>߫>r=昏1LL\&LʈPV9IxAWV\8MUҝEu1MآAy.[55!bOP:W:̀C/ Չy}sg6_g(GTri2^UNpSS)yP\ Jt$dY+RSEG^^佖Utau(256E[p!@v7^'/`IhQ4ғhU+],OVm^Ih]v뒂gQC>Lۺ fh#ٕǸeQ|y;l jztBɎUT^Z=V}S o/B(ISv ɜDݚX:Y80IOTLwo79|y;1V]wiXqb=P6o'?>u]HyuP^d师U=TFLhƏW"?^yӟ#lA2P7gwZm/ 8aoAo܌9*`1;A@wm;MNrx{/)6mM@i[b}ˋjEO°o|l?ѧM,c3WRabC;YJB4-ێU'#F# "F\17R(s&g\/=Zͬ =k+TRؐwe̷[;pj cT~TuA W&%].2LqK:"b7A.8e=dL2E ǩL )-I^!IVu&Rfֺoaul^\.34F\8d` Wm1=[o6*7gփ=FMŤ8?5/# lra4AbW?(^~\$EцCSSqV&SE);ZE!иBϊ1;~MTklIPeA !׊mro E(mJ[||r\z6oʑg+A&QS:_ɮem*ߕny/1H"s=#^^i8(H*5j~ gpeQt( zzO7!y/:˜Ȧ׭bi\x&Bt5ThhYZ?orߑ۾x~hAū^5Ӹx%6]q_KU_Zb,Ǭ}ji3m %$UXϓwZ* 4zKrV&c#s7;&Վ[S Bfsb'PAQn+%tZ`ˌ{N"\QpK5r e&%]|rD:~Ā䦄zK< uy-VĕP KaOC(Н]k .sPAowo>1icF]읔RID~ "ѥymF|q=-W~0o/!葅 am 06$SfLV }D){dzLʖ)>c= %si|M%u[<^ 0du ~i񉛏0D5#M}n6 c#t^yY/%~y'u}k& `a`L?Lu27w#JV#%?aWLouk}F.c ;HR\Qss.UiNfP%Hc9sJԄQM@^%=İ#v=m3ZVre,]?)V#G{DB'tmdnB 8& VM |'ӓrPrrW)4y]i4Ui`xȫ+qRo9b_)33 68!oMO6g;YHz݋feM))vZaImR8,O\0qܣt{p:@/QUNkn"lJNn(#4"W?w#d(£{Ng/J@SYܽPVI]di =M5oMFBww *Hi-U*+,IώRMW'`/ܴ%鵤[Tf t?1MZ.iRh/pLg߮B.ZSnVIrx ]$ur_\AHyyVT<_1w!}~_6[e  \0N"1<<MV4B²w~1$5/aZMXlO%9|>|\YXwIy}0rC5EflٽN0]w+E  ?}V&ӓB;'TiNSS٥v[:l0 "EsŠ3Iju,O/D+PwZky0*X{z= ܲf}If`ǦT?_u`xfx5TT\H9'aS}NU $FVjzt"4so7(JeK`V6XeM)E,j]N-UϪRCѿ# F 7ԙ`¬5Kco>P2ߵ[7w$fMNOP Y}H(l2uщq"G:cWěmOqV42H2Ғٚ>v3; k^7wBUl"i?Nf}Qx݉Hj2}Wu^WO \|J׷g-WYJ-J^V9͋.oE ['_dNhf&gGh+;sڡhkֽ8 3Cه'qW^X\qȂ[Ё,}WoyJ֍!~x@~`d.pB;LS9w菠\'dm u3b-\ v N~^/ȣL!]zNzBKQy|Wg&pN^qy=SLw/H轌'oy(uA.}Rth!\HfXYSJ##°Keޖ )$LP+_F9-ߣH"R q#y"D2m]M 6ZF| PDt5$Hefjo\s 'h":D Kr^݃lC 'D -P QY5fہ`+;$ wex]a3AM?Rs;'ِWy8e55a]0fNG_|?t2mЃ 7-) =Εp _d V x]5Ϯe) }ܑqo&24$D[(sF(5k*-۪=ggiI΂Ry!@h\jm,常l8S~~%KАj al~>MoXJNJc12ѽOò7r31(991)4aČ,׽b\UƙH[#ZeQGfn1;'ά{FFn:˜x *0bL5 w3,!^ÃPGh߷á]%ph-(.x 4d_ݬ@GRUEbb#jӲu3%TƯc-ah׿.V4",-U 0h'EnTF.T~e2EH:p^0f~1n`ުS>뇪NI%ig0u81!wp4fp@l.xSVi8us.#u=l@bxϩ'EfXFI >iišo9_ 3 6S_vt7oE< 4e$9-R .8]5Tr ?Un}EA5Zqr0ߧ%43wx_$VC~9x>6'ڔ8,,Y&c==JNMFq7w,-#7 2=ۆaAU!+" y2Ă+$)X@~.!Iv8r;+&4Jʙ m<~%4ҩ p1t ;5˜'Y`'S3*6^Zי7E&4KEUHmI/>iYO"47čѸYFAWLakpk~/slujj04 +'=B7HͩI1''I: K二oI"T*nURTA/F~TqQ' Pt2FiC|$ śn^)#<44l||P[Y ]&b-/޹_FDޗw\[]Y x.w5]?dN~@{ixa-%CYˊx3" o%Hs^v5RRaQ@[6o,zar,W|k^ 3؛8LV r6ўPsL B`s 2E3.%_)T&Q,!` (0v29k於gᅋ}bhG$_w=n_ED\cNLc /N1dp= 6= ڹsF}Z?G9{{Eq$ǀ֘*B>#e]*u2AEmEBEw{9{tC/ ^U(XG!^#7R麫]1n Vw,7gk fi}iOpQDr.H HB~m|(0RjMlpFRaz9DAF~r6(3F2IxQF߫#h Q/U/.-"P o 'xfyW):̉.c K"uژH|sY+,0;8I*8$:jVeˢ1ad}lɮ!)D HbFTܙ!}U+YȿjJS5R]O*mx|icA/oXz-9N7{(vjDqf\Ѓ粚͡np#,뵈j4q{Eaa4[SjSטylD rߌ{tuW:I,.[?4+F3 ԞPgvP?26|3^D*@DK(PJ[8/j'qAR%`Om5rBO K5o%롈!|glR=4GmNDJJaS\Op"'~J[Aq&_ME57 L4~y} $e<Äof8oV)SS>y3u,r-)U4kG#[{3r#ӭx L^s3|eejT߾qY %,bK T_ c=o%YP8 p>Go@НOcbtU)-0;Ƒ;6cR"ԟ> M'? zհEE]&roE8]_hc̎ St%6ğb?[fvsK!fgq؋u0+)1KKr&&y8g)DoiaL۳]>0ZJ(l*׍MH&" fQa 106OW_gF}*״ɾEPCbKitNn#r*]M4؊ЍT@ ĂLbiOm藿| !3z\M?Z_җ#r (!_vl7Ihf'1)<S56?..6aӗDIɃ57 "lcgʐӁdx uR;|WL3k}Xwx`h\ΤLse⻅e<3ES[Č0$0 `a_n^J 88XJ!HQ#VFoGy#C5 TujW?X CkH=`EUKTIhH_WJ۳n$|-\F)3]'B/wb~H&?2{aXMmzv. BP9:Q\yqC/OH+\kYK'DH{5bȠ zk\J7@2Y"̅gڷ2]P򎡳j p O#\S^ ZioP4 (I&fq=Z 4Q>Z^LBfɔ8U'7h\W`C ™\C`Ζ? _> )_Aπlzlaԉ6?<ˇ:f3\@%#oh-ǡD= d,SѽdɤBKt濠/JQӰl.TNeAt⏕s,Snl*Ng:sp15*2rF/N@om,%g.yqhkE*Us >ay#g۷Z?h*:4 m|i ePA$-M&r)TlV9oK׌o2`ibUhZNQ$%vHJENiWmqߥ<Մ7R'&qB3ʾco`sJi,AxL=֩],A]sWb0zۂ5r$\̀;H SԙIk}J{su/djtfU%4Ǒ.F#sϋ S:`ѲQD k|B_ċӱʩUqPb3ソUqZDE,}9:oHKp:c^.S{qH>=^ϼt.`e#Mg?yޫʵ_KZ0A8V"c>jPH`_@CmF؊=QF<7:(sX+jO$9j8_@JelyrzקFI#DX4hl{D>M_mrV|6&& ܵ31s>J4ߖ k5#͓["bU~,3,Z< *]q9& Vcmps, H ;GvpYVw|sWnYqm}{>'_jjTl3K\ιU-:I:FM+7Hcӌ{fA?pzJť%`8/9dMXCeYv-AųAaxù' V(&#(:DdZWة`plǝUbۯe2w62c4e$DPI|p lt$s ɔC6l$ RAdw%NFˆH҂(Í0\A:|H+ ReuiB>#[VPMߨ<]# 8+28Lt`(a7OhL>"F̪}L Z.E˜)'b5"DM.0TǏ.oKϛ[GGYhx+X]7;__trTm:*;("mM7X+K":+jb%#}(;"U' 8䮑%gObF~UӴ a"67J1 @LF_ewO.y:*V׈I[IІ]R響c_Yr%LCXcRl jK)US-p)7cOM<ʇ! RTꉱZKlq̷JU|kD>l{~0*xU- 68o3WqUH+ŋO|4/XcBagjn.:(U!cLlKOc5'1ˈLY_C. Teq?,-ـ*VJB`(nw$G"J=/L1+7LmEbgUl N`.oP,xrpc.1e+non50b<;$}9]0{^Z&^ECGhlPQNܚEtˈ(u: \43;M!W:#<$1߸olhroFWЁ?[fs0}}̄UKŭAaOC orh׵27,XzfE ԓc3n#`|r0&fG͸#2X̐Q; ONM_|[trW¹_@ŒUѰphiVq0ڋ;@i$J1+4ҖxV]˚/w5H٢̞Q;gngǤ9Z%#v-2 `}@?\:>vf[_NցПr~cU8@>^.]E?Eiby7$|pc =mo_$GFzy6f&+_yƕj&jNGXY1 ÚPH:Ou,pؓ*:BЊY@ 7 y΂=[vL1?)9XsFFs(kmѹK?}Bz,l^'(ZTҠ \G@D0Q+Yx|=MҲU3PE˥VNWSMX{h)Bc7xh N+#NK$1S׎qrJ%>m5|F^XJك/ $D'NóI4/MᒨPC[_pKNtg[ $`S \Eܵw\n8h-*B/hi e#4wGK{b:B2sƤgu}knBH[ճo,$PUg=-h\Cucb+Vx|u< +nt\<IÈrlD1/p]T`>c\(s["fC4\E4r1B{"O7: n甒ue*gMoPM]q ``tn,3W~ANt禆*a.*y\NqwC"{6Ssw~P9s)VDZHxXaNA'\K`9g0tgyE`,fOR%!y%@WQũt:y,n{*DH6$.uQ3;uU|MrHv|6]El"YJl> ܌gȼ#?yX(-yD=Ace].q: lE4e"jz>/]gCrﭗ؅&]p䌽 cW쁡c揔p :>4o@6CMatBQ2NV[ORwRn񭡞Bjmi*٨T_ІRN01H,gv =BI %BQǃ`\ }Aj*U݌.SQS Bظ( ~s&<$SdGu#_%B2./S6Y V 8=a I>:7O+j')KRdK^N΢@cHᏯ9߇ F:H]QF ,|F*ܘ.t D3)Ď-}11W_jO 09Xاf,7Ò?(b7F{b PJ-䞦QX$z8m tT ̻z\|%vؽl]K| R )v%oktu *,YկHB,v,QFrݺI5{ +NRcSMl*W5TddHb!% ꫝ{iBIv9Pb@ZϦCwl)Dj`u5 ѥm5ONqQr[jZWV`Cr?ބdc[tnLijNF=[f |2,b2FJF]ҹ5ECu)JM'V-ym_ `R$Q#hj"mm4Wmb@`qAjlD>Df~+~J\W֞=]Vrfҧ*ѷ.GqT0!U ߜ1W }/o/iRb6>Gte./x#6>/!WOkbNsծxL&Gl[^fAcɄAOqlPs%)LeB+Lp h':ر.fCC8]:j S0,#''d׉~{n 5*o(*r%%OEQ9)YKuн"PْՉQ̡i>1BƇ:Vq[/'n*f8`YݬUӂ44Y!yw0auk0ѱuH˧6ĝ4_k$}-bKuܠG9]k,šޅD<1# D q::2OYr-?,s-z?Yv;=okU>兟j.TPrtar^{|fO,*DͶ ~oJmh(9n!ԻA`m~]Ä B/$74d]36~aO`9wgU0u6u{bAgeN*{K۞ *sOI,Qa.ΦqĬ5IgomʴV892!MM\'/_5%4"VV ת/(Ot['kJFG_ EE-6^v0&uIbkbK"Whmz[|?gPuY"#ǚRMڋ-{OL1j_ᬫcTTd(ʱ,rrҥ!@ì-؅ 8CI Rn2C&f[U6aQpXz +Q=oч}>njhe?@vN23_uWbݥ?k&CWկe+%i˰1~qQNiAH PI>&ц,.,.%ÔW.=L:˷J*J9<6s_fTw)~ u=4j*q/PMbب-0~cFB 1) Z+PFB aɐp9j̨)]DU5fzO;%L?G-onP*m\̠6Xԭtu9Yv)Du?^[.2 ]b9ۦ*u+\ T00 Mzry֚Ӂ,0 N3 m.[16ni@ ܺ^OxWd>"cž/d ;hv`#wyvz@0B@ߞ\1FbjEcggD;,qSC"?(ioȀj7rJ+Yd8|B/J',;ŢH }4aًZFpuxR/>*3qA-@ c\gi{:eJPw"7XкDDnɮjgm;c[ۆvC5&N0!qogp`C_vĢ"iS,ҢA\$پD*u-C?&}IU̡,PH9'L]93d| ,S PusAv-d0[H\wj1 +#i]|{Gcyt) BX9GD^Tn V][nG1&w8=?@ﲚsq.v*~ ]|`"3Vð05j?0+vqE{BAn\Rl 傸+텿m෾/$?S0&1 xhOY J]~3™f~]ХQY4!]4]bt58< zcDiQ͇H5~5 _} p,w?J yE3] KWI;`DӉ~adQKD2|4E_ dBRdwzRq5VOZ/cC5a6VHE ;?M{z4l=RQ*s:S@fVtzP*F,ɻ+2),Gq $/ۆ~? X1{Ǹuc=Nh.#w4@%"GJ'DT*HEjG?cˡlp!P~s|+ca_CjEў4gTY,AzҺAZSnE>l$XYtEZU5l4CHj^P CDm-1ꏬ=)\ 嫅]]BVҤ@ǭUX.yqԓ 4w{t{@w. "!$z5XhK3' -U_sRc$'\ 4'zƒXԠrcX_mxHB ڝ# Ezrw"Pؽo Ǡ8&$xL>qG!vp`wg`R{;Y1p lFc;Fo=aJs5L4- OhI5Ns6"4O#CLHwF$Xc7^,5t$Z¾VL׽م Av+-fHDg<#`S+ JրS"׏u :\Bè;wɩqi{vFR|G|iRJ^dP 8'?>\u~~\۪!gsڟ\VU=r*5#Ρ@Hs e/u&U&X@β hUys3$D!*m›:bqL]"h7'Ptm8bU`\:o)NwM?f7HrXg`[#;UCzJcN)ff/ʇW!޷ җ3(}ST^D`SMYP͠sT/Zc-SÑ rMyNMG+Όƚ 1? =_[PPs59um5K`͗.rbqOHN:W~hIFGZW8[XG%g`nUnJ;TL58Tʇ \ P Aa 0\_o ٜr6c{JO6d(*[#ȫƦ8mx(9=9jA U KK^*]Džb+..>idɍI" /&daL?mU>hH5cng$15hDnfR9{|u۠si-!$S•}}7}VP*fPMl"t@NWhE=\e Uq޷GHsuʔ2v5z1sWx`R`éea=pET9&g7|@e+Y+ʌP֙pybFJRo Tx/S&9x!MR5\^³N=2`.j˅87M7UngPP* ڈ&-\w@(*)GDbv}ycn"1(4K}yV CgBڠp = !1WYo|ƒ}AMDw`tCYnQJA(y?G# =i's5F[e%8,i[K|FVz*,+%zA3TDc| ? O Z=\19oȧc6 i<穯Ku:KQ]`_ e25L`SOTHsau?.٪VgzmWbn݇i>zڵ13\;$9y<džF)ްMlAQmfSjӄȹ;m9ngf<=W4Oݥ6IP# \!LRݯj A]kecq2~ MȈ_VDs}9㧯4@z.J1IMCP]27i ̗EmtXS+N`kፃl=ljjtJ?I'yqtTkX岥vQoJ> EAIKzW%?~g !,\ʮ ChCك4=KR܀2S,CI_S/r]DV2˔H-%XuhN`fud390 H"[QiJEY^iaT܀bW٢P@|r%vx_h{tP"׀ | 3)qc5U)D1S\lѩïNa, PcBۄyˉCG?2O?ێԝ7)YY=TsqA e~ .ȷZ=M\ d``N+0ܜ>ekMEI) \L\xPTM:VsfV-2V-Kah@Fo reDT#N>OW*E_zA)d PT8ֹ1*>T*BD8ݼT?vyc9J{ƽY]S9W Y^O&g>v<萤IBhAϋlpuqTb򍥘.cm?aj4뻕Pe QZֺyA|"<1- d+$HDSTЅ~ 59onp>Ӵǟ>lq/+QϕEk .j].s ߸J  orep+FV uq21ߟ/T-I~Zc5X&׃o"ݺ6{t JUjiw" Ǵ(Q*y>0{VD$6qʷnIWh#uoˤsJx]d$u%(j;]rFU` _4ICzem_юt 6; +fi:)S@KrHm/ w"v1*3$h 2Ri-^&DFN'@&œ9X ͮ#te9`nV%BȄ7P(ޣ y FUX{ "!HJPHX?o=iD32H>~!QVI'Tb?ā}dbOtG"&J9ZAwkd0Vٗ")ߖv)"=92/h6k@K#=ߕCu06' 5gϓtw*Me p X,D(x">j2p.M@3̬m~jٯN¾!}caԩ8F(L+??yv,ط̆cKKu̚\pɒw l)^{x2d[懮ƚ|H,G>IHJ4݋۰S{Z"*#GpKλ Md>Hx8"+T. kiK茐A3U!vm*\ˏ`%cΕzy j8xK<,6O*%9HFzBH(R]q<6tݍZRK׼/(vzXx cR<5Ӝܭ^G S2uK1膍@= Fr\)/ Yf [\ eyȲ7ɑ6m(xqK^"I0ӮtH{{?fMxh]|k֩a_q Ӄ B׾śe b2b(v(;/[cW쇉! Ihw&mGȍ]ɝh^wJW QNςrDtҭX3k)#Aɳ|ljQԡq9t?fܡӧC嵮8ua[4:$FA4> 9lr`5t̵sI,[;će;7s"P-DIo *ɽ"{i2+p E9*)B5wj'سiFw|T/SDҬrnJEٹW&x,`dGse au *S"S$g~P:?G ь:4鴌H&&- BbP#z㯕\Knr.apqCAS,=z%v+dviY?Gjf d{ǝ:O%_H'^G$5{,յ ["c7U l:_GOQv< EN_oʹEw%)M}ٛU6 0V"#Ub{y?uÍwolG~&:-lDB%TmuU;|M;p߆ֳ J5Cov:I79(w' @S?͋Hn[/q:*?;(ôA kt;ޛ% gOk/ -I AXm.?ڕ=Pyr v2'W~Xd+["ߟ$/Hlh[FV?1z,E[ E]DO*+ rQ6ß5_qW?:Qi&vB,ÚÑ67-V2AH]@k53&2}1¬JS 1wP,t"j'PouN 3)?B9 /cMuuŝ G-&w"%rnⱩQ֖1@{bjӝ?9{q~{̛h8玜uwǯLJSrEz#08KU%MQHL@}4Pe@R3c{oSH:ʠܴ2Vo[k)]*BC%uٷ Yg֤UԹ4cXc+YdH <:bt]u ZD#>ZȔHgY¤1ѡ ӌ92ᭇ}չS7pKޯ'4m8 )8AL6tVREd@sv[WΆ I-J9&5}+weop;^dť Z<' "\\T5K'hz8{d-z4]c9rCp^荋`fk1]g^5r%u`lQQoMx)â9xzۻ5b|&[8\܂TMр?)0 J`YOc b;e(Zr}юnU6`)(pzk5;M_)c\J?m )o9_2L>~p)ho4/*bz}QdtOYŅ*W/Lg*2ZDju tu9n`Nw\F`;<=[(˿QBD %1eWTH W[jH тƦغ՜bBRsV5!NN"Y Uou_ݖܹc&ީ ASڽ :emX !f11g Um2I.5"{S,nBXCU+OM Be@cQ^tX|xjuV$~ b϶4c` rʒ!ܦ1a)̷&_ 7reҼ?Z|R ]q*tNYi( Q֦THQ{I4|_2+ 6a-\?Φ{yTory5V[oa1tYՆZN8H \#^Ln*{$ ֕Gs'y"\E$-5yl 0< V%SVHҨ" {7 %ޤςŖ0|ֲ3|)+/Q֌<4lɖsku%6(PMY]~ B,ZVPgjBT@!!\m79J ~PKqҤ?^"qnټٮujOh~](h¥ѕ'1P\fߒCP:dzkLŕIVxQ)8X"yسsj3Z: {QcUع~ɐzbuƿ/\R&&%.텵$@D֛ЋUF/QTIi~dzњTUʊ<\.D]ĕ.0p]gٳ+/i)w!}@8 @In`!x@ |mLاUҩin xU!vl8\.:K_䁏4y*- w;(aѡ'yxKςűfK e1 BMtO˩$֥Iݺ!J᷆A" 鎭V@z_B0*<5QR7w}`h(p&+p {c$XdžBpмR鬱"nrUknc]aqsal2'MBW0T~s+,;i>ޭ|wND͚"w ڽ|-ap3E2=;=&%߲lg%-³H经QL42<6u|u S=seY#s&Y8$4M. )QYzK@܉`1zv|)"x1A@5j qo$p}'_:ٗ㢖4Eia[3-Yd GDmҐݒӚVƞf-xKZ$yw1>ſy #xSR-fSM΄| c#ýρk$/RU%K@7KƖE%TXv*ɣaĪC]bQÓ]bzlwѢU t' 1YXg_ly37/ڂJF3F#ڤ;uvr 5P QQCdK֦ZDj6"6˺LV|oXr?^bh3lc!vYs+S5䏭a,߭$xO[9d5ÇP*栞%K~WG?(j)"}gBGV8K9MV@xM|H]8ZnuF_Ђ{p ³A@S[-`^gXhA5 R)FƞFԥA0. "[0u?7\Bģ)^N8/CWUx3shlՆL ;gc:O}{s$s??pqOos_eZ) 貾MKP{a|![HF j6[*q LQXXѓzQMR1e0ZY̴w"܏$Bg܀svkx36y`gD yz-X VÂNLQeu(4&z$>H U5 4 t.9d;Zf}{#e,_v/πqXcrMzͻ_uH.f 3s0tmf*e]oQ2C #Ra՝|M[*tŚE\i`۝!yAbY|<!-sR(i~0ҳK-~5i4$. f&>lY/cՁH/$SQl1or𞘿BY5IdUPVrKȖu1FA AU`iVTI K/`ÐXC>j+Ȍ&Ma%"(0ttlb`=Qwyf^3"leIT<2"{kv*bJSQU>wَm&LףJTY(<%|H HY#o;mWA[)Rs _ޙ.csՊxoƗ`|:u^B_$Vh8t:`!zXw}S0&IbXd)Eg'l)> xEi\@ [z&ow\ +(e tnc߲`vRHhRA.eS1<`7yգ*Բeuspf14rwdc+#eѰvT@]Q#q#C%@`,_eI]*4b@鱎_mݬ2} ώUP͹}D^NoXS{/x@YnXC4e n4k\'$|;&* njɔ-Rɋ&+ޅx2IAb,ng;J=XtGx<sRMyaКĴԻ:lR&`e^ZP~o&|$*߽$o܁u3sA/7laz}@(PQ CўL TÎN< ؼPR&?}fD1/ :In'At q^`KgK.n-3T˞QS J4"H/#)CSYpB$kOOSo68d D8%Ζ +&8MT>HY,aJ rʛיcbOےJ-{Y8*RXv=X?M?t %~>*:ko#dk9\E24 `Y}$%GNw}4lܯF$/thQ6ʑu%L7/06[<oqѦKX;zAA'eEXvGOWD;&c#QtY.j]BANUPn&T0. dC?Ƃ!C Tf-NXGDW#b -妇2u#jeb-,?N @ǩ"PX4&05?*x\v]3H&^s7hb!xy ^T @ƛצPpLaHrzk?T8@E`nˊao8-[Kfj hxYxLObw~vbM3hN- NDW%l$IGι|ccog;X$>νx+gUhl'IĢ7ǕznxӅשwHb#n!,1>`XZHφ01?YBhf`a |THȪh/ܽJK{UՀ;\CH SfK5 K+:5/g Gf6^ \*x+m[mY։;!rѴ,.÷mU9LR@L [p}^Hv{d1b+YcP5` [/Nq R{H G^ru'8jA~GtO(@j 5 l!(.uu'vR{tl :|B2mZ 6uu?G J[϶C)udFY`?Aܝ# ˋKrn1GKZQ$-n4'eubx#?*T%ŬBi|)fa+#24w`:>N_|jeSoJc?9Tų W69m1d$DPd`iv #|!H;6aFsjzhQq7x(T'fM5=uHnJo\t.}RyB+ Y.#bP’ ֖n\ERSDlEԹ~8%⅝LA0 bSd &T5}T 1CD2]3s^DԱBRtbDH$d.^ &Ƅ"1:]96wm%(-x2#Kiԇ'VNk#L哪>'>5h5 1^YL96GݽqTm*+ ~VezED nh1PpzHj0=(EB=,4`2ic!\uGϽhsA*Bis]$QP5 LɵԹEYGC#VFJΖ'έ¹!5ó`H6ZfK]]LVnlO*sS4@ĉ\ѠPq!E:Y#feWm_CqC$.ͤh^K:MPlAWGv0U FE_-iZP]S~rƒ{+i,5!5Hď UdkfNrG?+3_[%jEL@K# *8:8TAFھp8jh׸XIK$>K aAHѢ_Jڀƕ5Gh ^ERKĠf\b&Fuw/m<*x&A@;ww^'5]Qys?=1LJ uث-7 HPKEnk 6U__ s%;;t ~Dp9>L->fFۭN"z->dm9Vtn4n]l6Z ۼb-I-f`=}uTk6N@ pkׯ+w=}H["؄{uX]*! 1hŗkPxLO o Sَ/Nd)_p?9M݂˅1^.)nMI 5wDzҨn h!E;l4d!l^[~(ӭɖO=ޛ*F6ӊ(9H*φ,=N7nw>pUDF?+k6ggYF$x={iS<|,Tba|LjdV_C*z b&;_x %qQhnb7Tk;vy 1* tD E .HH]4E6VvunYJ3^WΘfspW9zȎ{. Vj?twcB Ptp,V^Q?da_j̯F"ɨWk;0!pVq_+`%MyAMTdUܲ[:Lj;K㜌xcp(|&?~)AwhR FTS 7R4?Wm,yT<:veU29H0`Om񮗑BZ5,jLL+b$ғhVuΟ^"6)eNwe-T"]:i:8GF;Fbqatux@Ad|{7|ErKir6sZ ÝX9P(My}RmTِgMS[H>Ŭ1o69@o䴐hcس!;ph /=@FTt1i+fkobI>:ƗE>, -4,JfDlWHbٖX/z1#8 7rq@YW+(f֜B[1f$XIrhHP+c?W<υ,lP!2hQ_k/~{ic^5mŸgWqT苅VcȎv疑LT~RQ=}QLvZc%-B_<9QO%@MPs YN7fZ-Ǭh5y;|53jʖ![W*rd~oLp`ޢ2!σh;/V.= =+=^Qt_pV[`_,@|!ĵr `oe6> 1W8@o3#-Lc RuVq5A$,Iډ`n1rg31]}DWXvK|I *GvV.O+#Û im'ݼ Ъ$Wh0y=˴Jl3r8\qXF{m49W F &vZ ІdK=RWթ/MeCr|Q!6u5KhC؍]l\HFXYl'2ޑ\2z٢nѦXblK0ДϛKm*Ξ}OlÎ4z&-p9@-7'3՝إgq_{hC8IY0۸-;g< 5P GKy4nGUYΕԺкRB;gII#m L|V2\䵓B2h m#ZTsV+& Uj˜Akw3x?C&>8#dXGt E)FQk ` P%߯Ơ PyF颣^fܯ);@ G_2ب9 K?> O0W_Tq=tĐǤp⨍qw3LZ _ H rW*F)Y|"%U!#-,`"%=n7H 9bt]+gW=Y~l^p܇Nam 7HJTZ 2H%6="ϲ˂7LwZʲifBQqc٘`lF.o1rBVҵ CGi<5+̓&+@: Kml⺥TZDhfgxj<4}mjinUgpQd30LYY!aC|`ᓛD>I/`h~uF2 L=k#P+8m_b44PE: Ex1@Xia= i*m"zBJgH!!4|Zǀji`i3yjv ʉ %վ1;թ1y_æ}%:׊&3ŶDzCH>/ 5jT2F3td8A;w7ʧ=\JOAhO/ ZDOkcʾze?ihU~D̯Ä ލ9nTx8b-)*k/xñl|yOaɃյQ0щdRF!ȕP5 Hg ԬFϝ+YvcIDE !t9u[GlvLʩ}{: ap!o"PbdKTJ+ҔVu.R&MJ LJ0F\"3I P|F^T}} &L`"xtw0]etQ냷mjh(̸~;{{wJտ fWgР` ǗG3+LRqt G]!Ge}N;! p`x/ tg,A^(='a*!W0ۑrV1+UgM+`֕^>6ټmX"){ -H> 5uW. H3%iqu݌w:zo׍Ys.KEb,}ٛ<1"AlNd` 73:˾Դ'nub3X96PPn5i2a1t3 coW>͚"m3L>q-h[vB"mѣ%NqY'|Jdޘt1% QΏ55= w|0KWu0DE)~0t vE'9̰t%ٚ~qkwԲ_6Omc5)<^koHۻ:v:l~tuo28,c;Ǯo$dܬ/786ֽIq<gbv(%1" }X!S* L X$rJ95 *1WT:6l 4u8JY, ‹B`gǮ6]OqÅfh."L5ꡝhE*=6L~m$I֊|X {(HXR2K|vo^`?Ў+:rѣ9b*Y  xnޱFd9tLmA:d2`nqH6vT!;5tՠSE1 5R"x5F;E*y&8m$*~~ؐ$:HlGŊtUf +iHW;ڞFy?Q) Lک=cYZmp*dO)HR<Ӣ-LsEU?RX-#~UTͷ8Yg]Rkup,Öp&Mp'c=cM\fH&a¬ITvLԱb&l7 @,C z HV^aJ'o[OƊľ:ϝg< DMZ1v?G r=-]/uT81MAx 5]vTo$u2%p7#cN3/:Uu6A꺼01~4s64LTyqq,?N`MV;v U  ×>woO}Jڦ\zжU'+MUs_˵NqvAl Rv0P݈8|LG֋H1%e+wvNkSj;S?ВZql*fv\16ڿd<ŠH zYoVMILvFfLqˈ d BofaN) p2MW7€ʓז|UAtSϨQ))15?i\dɦu?$9j"YA<alzAjUqWJa\DY\/EzP qYQvg!jܳZv9p\̫+BX?Q I!{tV)&!L?]{u3u}iS(_R*݅{г N\lQ|B[OČE݋#ViyπE<ũb] , ,|gkj^ʞUNx<Vbn}̭o]%Vl}V V]+u"V)—#kNq+d2GCD]˺ aJ.w4bLEKna/-PEeؽa˰HPƦ|E,Ba-i%`&Rd~[߮dK(_#|l Նtw:]Uvm,WBY} VK")0ՄR"#+68/~2$&9S *094w"q" u/ .\1Cz`c} 4`țu83D9zn2ެ=)B2NVyb|\y %w֭uI^D6&}%JYV ޥBa-iN'Cۮa3+Ncg/uD3#`Z?@.wߔbxBs% k_8wHh҆ܿ ~?.t"8z d0DѥN^bسd i5<EȇB"LsBa% ;'XI]]ĻƷ 7Ea"!<sX6ېTU( 5 H~8^l ;.RFCxN7` ipqЍUg. O  ^iH+j;I3\@mksߺzC33;.<X$ 2Np_K>K` dunVJ\>6 o<#F9Qw?Lٵ<:$vjD"zE֮޻Sz67Z~7ҡf(|_MmPOmGf |DJd6 -!9$-є.vN,`x nvQ`aꝽDߴkW* $Z؄cFŒμ@FX c2i3B=\z^?p!|ea/D9sN]R?sN`qY5"TN חp:e!e+6fs.X:dbg{{Y)!)?o ?A҅=6\'x,V<$$B`ߠ1"@zn`5w Yf&o:+P߰cFL&nA/@kDL#EJWFݑ`~O>:؍vrVDU ଲ[TP֭-˅85.*M f =oqnmhWV%B:gW^焮^kL,é RP4Vs1> Z_zX Fsk뉟QU!Nlh$IN?`!qzlq_&@\g-P .(n{tH+8鲀DK5׆.Q?.a$ s)pz];b0NQ]EBSE1$=k?l>V R'5eXF OL;,`:'wspQC4S}]p*-NΧ/.M)q2^;eΖdČ!'(3̒nn=1,ox>YS9URnǯ~/\Z"9!E(O ڢL7&' M س>&8M]'GJ ><|Yoz~0?qBwWb5&nʹu3|ruv!ZtO=hbz4 NR0.-3VprjIeÝDZ! c_ "e='ӑCRO׊ GXƥ}5UQV*aT&z <;ТwhsP 5Ã<4(AH1RJ1㬻Z?ۨߖ {ex̓hl8oq>AgF^`Hcvo$؇Q-"m$Y0t+n V4Ze恎/. #gaA8M1+SW-(}^| 7*HXҰƃLhj"wr3~m#O9.9&=q\*m/N{X00 ˷OqRrXZg`!+͜AIq8t׋_!q zPj:]L?gDE^-%Iwx\8Cy-IJY)1l:m^Up9|Pek)eTd4W;㞶 ^B1&POl1]W΂RMޮtĔP+e'ջQ광Ue\fA#~)W.OvmP>] x4%Bp΃=+1%*x=.8[ī$9JBj40.I#6c:p]ρYex) QM%*'-y%Nֺ@d-|>)9jN&w*Q b93cCZ{hIwiMr8]śnz Aza\?hO R\@ʆEq;:ki|58nkƢV m\ .Y(@DFT}΀ T㚰Jn4'Y>.s:A%o 3pB5)T+?iޯC#) Gq_xoDQ1Y|"[Q( DE-]q'Ast_O6Z6o^ۙNq~&Ue&:y~@ɯ{Pj,nu*Qy rr=zAiY4gUo ~aˡ7V;QP X}qGPk/{>qpd-=(I!5nNRJbj.g6|^/0Y1hC%S<Aíi$n UA)µ `}5;1b쬭fxBkL!h[W!K?akeg-3oMS Q}+G\^ۆ$"GI^Xs6ksmɿXx1]nJ#_AQ?QaesDPA]Yucx27]a /ƮJd(G~Sq[W6ӄkzj1qgMI9ax?Q1^C؍bjHJRdƣe9%4G?VMȨ4BFk=|^wI?ܒ+wWkdx:KHoW1}!9MOs< 4 W'+uaqi}%&܄o' Ol9\&s嚮6H˞s.E8@"`HG9=^)>qj+iC 96!s]/bR!O8]k4g<23аuj)_iAk#򨦞[C{>}sjmf,BY{( & Iv%Fg;Verdܪl\tdk;,We$&y"\ ЅWTb6?gqz`Luy'q9@\P,c$^]тY9-Bz8l.bqlҚGFJ:`ps6]36AWGJoD10w/\>\.㓿1fmbKF&@X}ފ(g7fEC ?c̻WBJɍVƗ)J%+~Fi6b$,74䁹`Eʱp i\_mg}6R m R2`.\4L4rE?VdƄׇQ.5)%2ex%*cma4C`tLnRK\k\Ģ2BiYכ4K% G3u:…QI w~a?~SЗ+ÂehӮqg n˘ R顆fr஠oe~Ío5\_0DWouC_=8WwevZabh FkL KLJoOZe>s۹)U($GU/}o'۰X߹VkL26nnXV9hO5z)lSqa`x0z=Ugko$ݵ*{K a/%_ Fk0~S;jfzXǣKR'ɕ5F@rO?vrw}$3SH n@I Ab3ń7:܊ vmxi֞Nn$mp; P OZX Jfhε *J7 Ǽgjv/9.%S:ۏ2o^ b4ESX=jJt\qEG{F}h@4Bm1~+S ?N ?fkOy?!3mgO#ڿ]1[V7pd*QyYY=C8hem8 ӧ>Ήoq{52o;E28ZHJ4%XoA\Wg=^z\j@IuUJ<(~Σ<?z?i:@n&%=Lu?c7q*S!|xA0&T']hCe@DJуnUYI/?uI"V+j|ǴR 8c|*"&6`[#\A|j:TQ15 +9^ơǙ4+†V1`U3ا[Nx_Cpt#_ܳ%d4VCчqw6f avdnXmfD/bY)xJ_MʖRI3:UDC>B ^+V^9nM39/ k yw^ 6Uߕ4`Wi\ JI/5G sҬw 梤g/͆x*8?oyq*6Osʯ%cv Jv-x{^fmR]C/@p %9m P8 E2!SˊHe*@ZwG@-䌠OdǩKjxr<d#s^*n$vՁ63f^Td\YN#;Yx9xSp4 iiC)[q#Ondް 3qݟG&GԎ GR34&ƪ*ѱ[.q0zF?Pyk~#"9pn^@Jb甽irTݝoX%rHIx$#1t-Jd;l{oLmXPd$o:3/VoRaW-fBPƃX+L/N2o6ìIq8Du]r?N(Rrpƿ%#Y\#? >5yo?kǐ !8l?ʡ hz)M1=8 Dnq=4Kgl׌rLIfbkn8`z ձ+Ty+bQHl;ƫkݪ; Ay 5Qt}EC=^j=c^ ~p}׆xKj4?NWRrrSdɘ4Ig Ymxi8}Ivx/\!AA:pʜ&4뷱j0Z>JɍtUe‹a>O[󚜺Ϟ2g7 ˜5;PO /J%) כl'TL\\h% J܋_dƘ..4\C9[at +O/M6]+1k6DqnQoRV=mw/:'SM;%Ofesx VOX}`*.5UcO%R!Q5:ՎoJಲQ͜_M%R[.Yu6'W>kwѕt2Q`PieA ` iy eSȯ\G%Y43 8BDڴfGqkф<ںzm sx*h #{I'xx9LO;E(x;ot[DD5n>Dz4~pE8GX )ݣ'[ya,A*)zƽ˰b+~U=2tpf sw]>MV)լbks}H>‡2ڮ|%@F -U|\6=--f0~E7",GKp"H v ޷3]|.F,c!H,y4D>Eb39eI}H(-yZw\X$E6UL_݇1/0wd#N^غmN;oG=^_ j)N#죎F E)xas:zrq?9kiȚoAʅ׬w )ڃ6[TObP=#i3DC}h5eСS-)|Tz8cvVHTIP Qe!)hsgVCzZ]p>d!YƎt.H&dzܹ>sFu"1skilEwWOHYdO]w*|cKFpCi{=bjX,\{> ՍNj +z!嘖aD!yEy;e:c/T/ɥ95J~{%ƌyE)=>҃~rӚ4m$O M`]JKhE *,s=uz]#_H03JHnL#pŬͨ#zpf]~K~YUdC% P>u;v]Al2Ɛv'fX  *swיuhǬ'Y怗̣M˩;:4emFz{- 50uLW'EǞ50DeX"G2t:lYw3T+#b#h)/zҁdY?F*Nb^@+.ˇ@z$׶l)e\/]:4޸oL-8!o׫ D\ kk+6׃ FmFE{lq:5zƻD$#*5($4ԂX S}7l[H\Juv}4^#ON0&51PYzo[kV dENY4# md+`pº> ͅ>L *ܢO3W0=V+տp~(/*TV uB be`]i>1te FP_]h$)`1傣G-a-8͙Ipbtع$\(AAȉ'0VAM)d_Uյ37򋵨dNoƋ !Zjnku >lҺXb N-鄥-Caw5z;ʹ0w%Tj_. oi@u\mgS9Tf_c:Q ֏=f_ )Ǽhg_z%L]h,+93rJu>!S|)hu@I]nq_N/UVyƧ ua7΍Fw]R*ф~S.u q?Ϟ #wOHU-ma)ۂ)x# Q.][ uEQ<-F!;p@.P &eW$c߀0n0=ACلoCt8g"1{{}cLڳx}8FRh߁<NhQF&ƥ7pmL26ɐiAJΨJHDrlp6HQKބۿlu?zvRhRO =@w%!8s$&^RxhS 32Sx݂ms֛V kY)ߝlYS{˕N 7,d\;gnzԁfܻivzLy=^-І}.$bw 3ǥ>A3- 5QLi|O15CiaY% hʶINTH:EyȸD~6>l]^w2'Z,t+:#g&Bƽty.bCCE0^BYN3͔cbA$`#gQS{dq^L `Li !$+IXg^l+ifզ =טݟO2KZ+9$ݏ{Ŗc1BMzA}0 /^}/φeӍi0W}RU? ;ECOrfIPXml R9nEC 2ܳ!МS[ >O ɱ߫*o5[wLъj%yYu<)]{O $ )-pa|Z_'܈p,1H%C;5nj(&NʬG3kȟܞ:B,#01+'~(qKPMc^* uJkuCHBy+p{{#g4݊m7jn6vr1#_/ ^aS+hcXm%dJx]z ˍ(2[p=j72V?Q7Wm'}l]u(yiPބ`|GN3r;ͩzS~g4o قϊPd+*rѓOnIҩa$RaA*O(Q x3> j[兘t}+U[]Gޜߪ1o.y!FWPwiEXY @kw2צupEJ) 1 DZΤ44m Z|90Mu), 2 f+KY_Ħģ`!H9i|"ȟ O*Mڡ^{wUXRxK *KYWrP9gⅆ(J+F`3ҟ,+S%Wy-yʜpSKv6 2%fy;fbnx|5Lh蕜Z>OYwk{egp,>aiŊDT(q Y18n S$d˪]o o$S]iO)M7_jg2[f]q{Z\MOdb"v8ȶ?!vF_y޵jɐ@xT[97]0nJ7qԂ;{W[MƜb2تOІeL~K'=2fmf/^D$4B nꏹ7?œ Taz;)*l>0.e+1 i#Q!,6௄r)2M:s(G&~Jĩ -#yPp!*bFhG{NgXCnDss{ *-R 2jI/Zq I蓦Hb(7Ү3otqw"+QBWco@hi˃z02ūWuޚM|跤]U(}-tl|CFF >=_P=8D f\.\4&4~pB~iີRsƄg =?heu-ryԧQv@ZmB!Kbu .Hd׉ƴ,pTեԮmƷ\UOȜ@E![k jYc [Cl+a{],F5rbΜo ig4mRe(uC|5| Qv\#~Kt +Q5KB־{A7E![|'=, 'Ӆ6?t" ^gʙ_oBv6ֈp 9lBt)4&!>WLiK#D< kXd\}MWdֳ%{4f i$eK7v +Y;u .(oi• %n0+ڍ ̏z Lj0nϿoBbElV>6 e&k&vDŠk뉓(ͬh aٴ$U\l'ˎUQf!hg2 c̵⤨L'2pm&Z2p*CTfWo*t>GmgV/;Oزb-9D@Wn u, HD:le1Or3څd.pNc}WQO,<^*FS׽*h-|q?jzB)wO0%٠Da)Vtf%wѼ~YQ-'*`[S-w;S]g1}a(?ɵ_RRe6)"O<7G3Qg.ɠ -{L㕌,R)3gGw6*k< o˴1 (S36ٽ[('L \=Z_;lHN4(+C~QDgmTibw{- v;1,-`D7Kg<_d\= "[S (9g0Z9q~oC1xiD|`[8E¹8U2[lyvq% y[ZN.^L"NHΈ8e>C۰Wg4Uz齡9p{>ovȉ{NYPʥMS6%}KH {dm23AMٞSSBA@gt57!M$d<_1"&Eon;3>&ڀ&::<8}̓‰F@m| -J~kYn>shËl/Vs(׃3gIGdU۫ePÅ^Jt b.QGߘSL:^p{N.HPfH!%yZoXSkw- O:'W^!90! V_A:|rRbvV< 9Ee,J[.ovUq%Ml4gKXڸE8[ӪJfFCSgv V7`;} Рc}H5vv`j?!(uPl->}TAڸfm<ʆPIŸ݉32c@JSJh2dzƪswed9e\s DŐX8MC;ަߩm@cHa_kbg |p~?t LN*Iz4.#[ r/5DAĄCJxrLs}==\} WL[{a8{ Ril#V͈`b\hL],#8sRk5L׊Ba?X-i W;BDkK,} +tR+[6_AFS_N2B׳0`Q tJ3=CPc۔v)" a^!EEX| G=IU Y׮+`,]^rPop$4W4CY=y>(Hqq@Ѵq1Ses k0GCн_HTiɀ}E^i@9` n 0AL<!EM^R]qg(:ԙt#|dqZĤUћ"6Bx TGJk 'dLj-:rv@&Bl;۱򌺡240I6<9V?1pNzY1}#l eߦuoY#6muTm5~XzEY3f%S '.EhaD21`'!Ov/oappU'|.z`?\"v ]>9 )N6͑a{i&)kt+#ז S!IWo٭<r\lg D3z&E֡I m0ċiH2bΚY%7ŏ<PuAHA\,uFs&}L'؟1BWe򗝒l jqLisa4l&\{88J(KĆ4I\lK(MKd͍כF_Zv؂ޭNV!з`}HXg Rto{Ald-6'ha,[<Ybs69+`ϮbOL~l g5GFAp Hn-XXd 4 SܣRU l Wu1?n5ۃ>޾?9wL ֲ޲Jd $)'V#'&ztj$4K`+hᨡ)5Au,7|Po% y_ "鉙1dN*W1ԟP &[7]EMt|_`\ﹲtڕ9ǻ!xtC䧚>eI<)dhv =EM`NְO4Qeݳ9 fd0]ٙZ,={=T{'{uypUgp1)IdPɛK:;)ɕWoĕpҍºy`5j 㘮F 谬e Vm<;7tɁobejQKrJ_]ajZT<i_.L+W8Ok!k fҹߙmL[ܪ.r49z~ZF#2VH )jPAUIߊڃ[ 'c,$&ܕ3x_CŒGA^TS&DtƌQ!X=N[wT]usdK ā-O2͞"Uc˥c͜:޽iQoVZ033;uLi"ϴL5Ѡ ;+jVLIK Pl4CQdC[xY'!⠴=5;HX0cvM⧞l^''q.f@^i57pvR!wjt҅=Q;Ts?n&|1N ^ ʳǹ쎧$֠~lƪe* x5%;w3@‘&Hofpx5S3_feE+,T?{w?,#_6hF"=qڑ ڭ0,'!YqFS 7U}Z0};FXʹI|n?+v `*j%f8oaw3=p#"H15$x Znw6d^@/!ON؝c:-i fQy;.IՁ҈9:ӗ̱#t L Z6eB Qtf<7|`|ᤠ%Hˡh|wRb2 neq[[e&اq,ie0I$?zٲu(̀l+kP⨈/д-K\K`tqּ4AϺcw6!4r|x2y  YJ#$cL:#*0EBVrvZY}VMJ _Bkd>:-,yxn`^S(,'?YSQW}Fo-DZ7´{\B9`RE 5mEt_vI.9a1 F[^W+&odR4_ KZZd)Mk_LOA^ (B'1DwLK#>D?y$ Vu-G+)|?0P 7NzJ #4*n 6R -Ҵgvd$B{f~ς-p^~94aҹ|` ؾvE%{i [Ƭx*eg&+!׻ qelsmʝN!8RvG> ǥF #z!|Je¯I*XFh 1ZBBѫVȸSYt GrԦ&Bƹa  +cfiNUgkiAhTi?,]i+3)I.788B҃&頾)X 陼 _ d-/=E2fBkjo%ȮL!tO$G mOԼXryQ#u5%l}qS"W_7Jj`IZ7`x^ۇ @V%I`‚WM1gfåA<}op#m.#, U߱t鳪J 4Bl_^ϓ)牠|]f . Gܨ-g$̆({O8,?sX*Mejp2x TMɳ G(1 %Npcn/ >n(h3(z@/q>m'x{/!_TDRrGK/ܛ!B՜qFG~p$n]bu.&_9;.k}@SH6GwPwq?9BoKPg[ʕ佚$@̲dy2-.ݬT60F۹]CvJfE%1,u2-r1 P 7>x>z~ AUWzUjxEʸh:Rs`}! ٛRK+5v|:rUVl&LV > ޶`bN)Ƞ!3#j?R6Hـ j>vGfymy?L(\܋W@Z%w})4|3&z(G r.I<~ Όf1n *Sx6!n" MCPվܴa*D`U7sѴ nU$,4F ! 1M^<@`O At2r:lkͅ834]wzm?FsoÊ_Be7Ln"0t^5LcDKAb0Cv*J|giqT¦\:;O8ӧ0,mϝc}(6p O~ˆdr(SҤt_ym@;1n Ѹyd\D8̮\'^Q. +jR[򠛚$[mD |.2eQ\U }*u$5B;3l#fT95K)VA #>i0$_kY;<£)R^^HD$^UId)bWc-ţ؄Wx|PꝘ` d{HN}+3шtBNo#{WVk;J^s tWR6ioUR<&zHs-s|.7 #84d@`X\nTURiOos \]^w# փsC #OoXjxZ5xۤf9ô8NI{G6\WPHA9 ^v=ZU  F*0n֧)sU4yC71h.;,ij9O} ;3 G^u f}Y G撩;?C]anO"]N:Z(5wUKDIw@?ػZ)Ũ=xk1H-̚hn5cRtA,owӹȹag9$A/U7%fcKɒZ6R:8N'HkB-w SLJ@ZDž,:xrj406)dAa:;#jOd<'(Г/RBktZ)9>h;u r6{9ٚ<:7W.):}pޣ%E>uT_X#VwM^A]fp%%EsИ`҉r{eVd \srhE Ί PBjɓF(i]OMVX*< 7>lP@MlN|  # a6ĉCL k=lVR~L;ԭrQ41uVcawhqC/%qllyl$,C&u$ͥ\/I/Sq],ۜt%e>Dqrn}^+=}H-lpZcEM%h$.Y%45?h6ݑwY+ S7o.Ԯy])+" XZ_ }UvϸďUpUuەae<;;ݧÉ`{M!L}OO[fȍf0}0Thf!OTnRU&Xc{)7f}91C9>g*FAد@ArM`{X)ϛz`q:``0)-jSAwaJf` [η!}D/Xu!rpvV y.`,⓬m!ʻ: % BkXy#.5.$lgO&ʅc{'~8[*PŹmƽ̌FTDĥLaLPޤS;ej֡eb;uNjm@o#sjҲ6h~_H'Kf*a(ф}kZݱ+l@duz.7`! Ť)P4=Fjލd1aY"w;f>oVa1%+xdg_7.d5w*$ZeSxBT9n=!⤪,+Tieܣoa*ENwT :nm#f[fP 1O JfƳ[9܀'? eeBNP-xc 'qn0h$I6!l6{s9` y8_X*S`eKqT@L =#A=fYc#kOb(IuX.r?o~^+ؠvKb nOZFA6x];Ff;L"p-Bß_CH!Z&;>ֺv {U;'F\8 "ҡ"@ޫdk :S|Bi 8UPl$ح*j3elP6[LtCğ9=b^DdMI$i?/4Tx @޵72#s>]&}sWISZy}%LyOhմlH&Rsx:p$F [k? '*aV_Mz,f4h"ܿHZ„Dt\T|ԩ -/VFXk*IpI?3L'Q8<=*!Hk9^_fp*4Utз4L3;P,$6f$F97jEvӱ} Uwd'ONkp[vyհaߕ8)E0hr0onB0䶕-'w-h]|uhڗm[&?cgL@"z"!{gӀK^Ƭ>Bro#D6㫜ԫA<&[>q╘)HIӀߥ j#-XVaغ[Ś)͘0VՀP/K'(g91-d +XlؙAw-\;jyD+Ϡ2D%h5˩2tBAdh_dѤ/mc8 &wIy|q`;|!Ksl 8~Dh 7W,A҅Xx$ [&d6@r^s}~B?pr66s *:KwǓEݘ]dS˱ӂ8OYw=28P2 ;xT_/3ۛ1s;=e&ӣ8}aڲ+-F8@ "rWZ@la/MoKIAiMɳw O,頳sR*SqzM%@gԳEcքGQu!if= !z u+q6x5*vo ܡ;wx]4SE-0$kYxh?wi~޾ -!a􉼓[0љBj}?@uQtAklFbfE 8Ć& q r蕟pL=7)MDn&Pvԅf蹗tvES\DIZK/^*LjB_, wC|{ J:tsg ]L5oJ>r>9{6+ZaM;}߆~b3Nj؋Y M,u{C#:3)OrtpXjGB5𽟘ugY(S]vYPf]mU`L%!qNÌXk 3{?'1w_ӻ/'?=cvޑAZU4rX!ॻ3BttP X@xstRC/Ò⿪q [חa$cةʼu?35JFn@¬Vgف;=(_¤_ LkrdN4A~It :3~>X[|oȏ >d?%jbY!>nFfQasuD?nF&lC?O% :NלBV.~Q'`yW&ŗ4l+k͞9q|T/w!Z7;:6Mh/E ZS~'<ǀ`:fMLIfJ'߰b(@G[lSmuK"LFŀ;k(WՊ!> 3 ZE bSҀbeؼL|jLxυ |瘶-mff2*1\x /oy}E} b|b{?a{T-CU`AX(eAv!^>E߬HXNg<*ػ)F.}?tw2Um '(}7= lM'e_szM< q HU.= uo孾*MBO\K?KG6t/] <)׃/:t(wV{33xZr]c GgvҦ)ur }ԥN!B2G'YqSE(S<iXaf/yw%{|F5h "_<@ٽ:LxF=5d6{ۂtwݿoQ n9? )~r&-p]֙oa3rm4 >>gPy|<:ƋfnY3}I#̭w2Y'oê7+ OmWܚZo}ʒ! \:~vG;:dEꖌ%kn9؇y.zCpD!eMX;oYw ٸ1 ײЦB?de'I˟^V2=aKQCplx[7FήhXH%9spl"Qi8V<;@:iRfV3U$-DvlDzeG`!X Sשya-h>2rU KGZBO$ +{w58@ m )^=Gu>w:ȩƴ=_~Dҍ֟JFS,I`-;jоZ}ީR`/_!*li^I;k]&Ļz*O> П h@=a$RH[2]CKgŌpQB̈́yh.et>%!igo.rރtb}53.#46z:T4&wXyPàThP/ "K8L[ZcjvfqQ~!w 77Q[Ftk3N-ƦVMy7kʶdj'ޘLF{KW7տ6e[*.cSF't5W~7lTb#y?Οo%fb0|rjdǿy!za b'vj1 d49#Yn8g陨ʢ\y4Bf;-q̉ac2*]юi_{XPKt\PoAYa6rKHJoRsL&vv*[3dR `)I 0!I- # Jr۲D:tI[:Ǜ1M#bʢD9WPPb$vɧ#fR@wPO8Ii2?D&)!kvET@imY=arZk1jq#BvAbcq 4_⾬`L<-L6Mq}TH5 !]  #S͛8L>FXcm9FN[U[Ut6Em.1nlq<]T='Jy-#=@.nCVi 'b/}&*\e;&o|O*f?QVw'*M2І@+Ϋ_XE)𖚉Rv#ŵTvToސ+^]jpoK-RV*<džB[]m ֳ}\&Y&T iaib*ܘ5dx6wq5G8PQ`j c-ٵH|7k`mPAJJemZb|QH\1X]]S,rg;yzZյG,*t[`O ee+{VE2"]+F`{SM6KU1k[vn!(Gf1Ձ4 "suyviaTT뫉efsy{ΕuXMn9OHs)AېMfvX^b\*C](38OScd6* #7 ]QVW Ho`^ HlVQT47WQVH`<5#UUw4朵pIY(V!HQq+7V n+۔l&z`Zyc݂GӚ~_WqLvHvdr VaREї~qkJ{]!wK!\2-#1 E#xڦ0`GէSD !ShD( ;½y(r=[ 4;CL=qMHҘĭ/U,l.mZ@YG?:.9zޛ<]lG0]2fNiې4;Į$OE7 ۜ Ki:wgCk\b:\VZzr/=/IÐ{ Pwn7PcDg)4(t=7ֺ{um)L-`.ԶԳA>XaBsz{˻Y cuݩl pP3Fe3E8+lیu**Z>2~&3KT;ޚyT=ЇYY1WHAzxS"֠'J'uH!sS H7Ի$up'u" " XqU!^lHsT5x>>h A֒v ޯ^8 i g}R>18|qC|P"PPYncs^\wV((EV߿wjkxYVX-=̓=E~Iќ̓WVM@VX}2[󸏙W>tgy?cD,,Ya!r8N tg[ գK^OJkmn_H,rUY/o 3"`'% tLSvxtY(Ys0U>T.\DETf(vZĞ{0=39|uW:bgQҳlЩ7Ogդ &0z.$26މE,Sۤhԁ'qlo8$tdNw\(m+)U~d6Eu,܃Bi ȕwzA s6+ +]b X QBqr=i퇝f/ {rјsT̪:٥KgӳDi[*"6DW BHO^ݢ`ib~ݦUd%9G糟39awqG`b2tq+93* 5]\iՋNa( X 6S`n6%ӝFifTr78.(.k3UKj @Qjw"9Bm ]4" A>+t|ﯦ TV&cIӶtuca##fh.˽B͋.\kE"(;҄sڕY;^ "05,vkm Zj$lSJbo:H6Vs &_4 #l$S&6^c[>(ǃAĸNlMs6Yd.LTmy!!7c y'5y:}8Ga IEVLH8jlQ #v8a 'Ŏ;2M_4m:&~860,EoXݦj.]GFvs2S&C2Iwf yQ-.3cc<-;ćŔ_l{{bquj N\'@)뢚3)M$h~E?ȫc&z orE1i2`9_b {Htӫko,ǯf3cSFoACzFvv> D'(.[- a8,-1*^C.)6b^#&yؐgy?'^KY=oRVA1dK(SslJؠQ]qP-RLu%Р7Emv*"ц?R'F[yQbEl05^=svb1]c̟E2*LͰf#{w]Ywyd Dh&ˢ@+N7EhZ_;P̫rPާ¸=c$UwY}]>.5DiO[A>*B 8+kK£to S0IBBګVCChr@Hԁclh˾&뻬8clC)Y7~$4hP+ ͳȤRKUl-Bb"8ר-GvBw,]!UՅ`% EdN䝨ԇɏ*?R03Zsw2DΫk|֬`2^2Q f] «wܿ-l,DC?id'N[0OD1_́rN" i'f2*.6&2ݨz)=|6gF/ \BIКGȗG^=/ Mf8~$42gtW/MM2``n2ӠoFz%9_w}`#F-"aPc}an, ]ݝ#\`>}\QUro0:'V vmrhYR=@]+4cUm (,F|XVH;*ait$x;4Iڄ4BEYA]yIa`G;TIF;S#^jof,OY3t*K0VUjdJ7A:J}[#fU$o"=jSlҥ8 iM(<^<˾u]O@+ 576r ]Gq+)_oOr䈤sl_XKEN:<|^Lp l0CՋn}Df| {ekaYLqKj)o~?q?y݇Fbru?-5A^ijbIbdAn\ 6HY];T7_/&xbL^B,+\#1kn ;ut͛CK 01]"?Dǐ^v"jϲj8r5|N2pOޡ=V%@7 eM]qd_oyL0 con7񼝱C"b^lz5V-FP9EF|].4Aqك[\Ŗ j^ःdDm1ɩ~6<_r/stON~@AqɫFN=׹MGI <bfdr7q.Id.5j)o_c ƍ=pFyp9Qվs7axf dAV{;׉| |ۑAhy[`_1+Q*-D߾mA݈A(6+F>"(.IU_SWm&H2Np^'\HkrxIЂ( l#Ggv AGlh2N^k9򼁩(!'mIڦ{i/EqPtr'bkIѯ3#6= ]ULU<崘'VBl⇟97 67铖ߵxl5pu~Ԓ`\(A=gn?B&vvV^y+z 5c􍉞;AW0gh(!A(Vg[D:٦؃^>ionoJҊYz-6k/rhH owr܆ Z*bYp!6< Qd :MF&_)nv^܈Z/MXg2)h=g˵Q~.xw?oۏ{%D9=l}桹OG6LP%QYNn@j=)xZϖc;|pz+$ 5|6V(1됢v)IՊx͡(*O Kr[9#Βة#Y{.G:͸܂cI<rczQ2}fuTA s B !:7R T`Z6.{~uUc&7 Umz;#e%q0swp#Anb}_.#ګcx ޵Uܰ03([T8 y Ci `Br "T-X| bNV?*O?%ehoSOժ[0nN4ny@kf1}) ܣh;SXwpG]KTN>vKT'ʹ^D*J~W Њ} Рb K4Yf~p|}ɱ0,_mfg14)<P+Drpw9LYWmiK@wKS5%GR״x}c+GpK4̗adcwXN\JMBo_;R~<w1k +1 BD,x5WG1@X"~հ] m-2},,YQ-K[sw!Z(r%![dݏ$Aa5*B(qu+ im;6K\-%Nw:vj)F{5{++ 7,.tqq:SxGpG\[d@ x7эߎd1aj'%ƚT`.`i.z"?G3NFVU!w{;ħ+kph9emۥNz'I@% 1k4"9dXf6ss]PmNUH؅R((f;c_@o2D)FC8cf5!Y٪ӱa>A, 3+|6I]Y!С*Ok)`3rKMN؜Chч^KsJ8reRNnMR;(Fn&}PcP*GMpBgtWyHuU/Tlj-9Ó3%nOkK'^ֻ鷝Pa7vػ 5a~7 r,P~6Q?1͆t-!+@uXy.e U >C!SW68OQ;0쐵Ud`s"P}yyėe y/8;z]}NTb:⸏úLl8q`Cɛ[ћ>9}DxW3?o@RK^]Ǔo|EGktoooGaʬ3= }_2IՁJRӓcR>e$?p YKnֽ.Fxh}9zd:31SVfx ]VS~XHpGe؈ʳg(slhax$L@{q%OS"pZ#pN^\V|.n=76Rr,E?n qSij`Eo^7!%%h=Eh+u/{5k2*5Qu;0ӇMnUQLyĕ1k!a-p$@Y FZV hO*ҴC.GEZx<=.CZgڴ Sua}Ҥp?1Y|I2 Ez>m[U*h *7s+7\eq6ErpQpF%TPg& q4W~fujxF"L~e)`e2P@#bS=ͮS.'yIcj<{VNV `6 7H4YkjzxbΟw>Yխ8D,%B4.OcJNRfsLJbDh![&5äELYX޴=lMRX\5w&!gt%4%Okh$rP%u9R[b=;ܧu3'fiQ)xl'P$ *(%@$N"/ګ;y&CH{uQlgZGTE=|,:X~\l,w+M"Z w72}''xe j#$.]-[Ǯ+P})}Qe[T>MXύ4 ,eX`8eQ7}\ c-TkM`鱀Aߙ)Adq"D1=8z4n2i0B"I NDJ9Wrid6aR Vӈ0zE+C?PR&eھɧDz dXƳpV#U aNRX~`&4:lT3 kA,SmiI)KR"/ǫ-%BNcWI+x9w˕Io5{|k32 uܹo@jnT߄ )=D#U4TbSJ~*.A 6jT1"*ύ[jxZQ_l$DS3܂hTs&#"~>sT}A#]x,-l#jyKqc reeQ4==fcC$myP-6TCDϢ比5lR S@+mxK<䷉BٽFvgފFeai/ڐ"|󃞘Q &,d\i# 9T`sbQx(tqGR [Ĭx!e1Ϫ/{a|$DZRt+%Tak1̅;Ae$xGįs*T*Z"ߐ2[VU`:̮FJ$!oS5 6 b_u6SkMa/&G󶵡/ɕ-Q"_^2B3jzS\n7׎޹vPDN J҄AtrJ5;7LMWT[^ x\BUk)r2b_4LpBDkk*|/ ?7q8v^`MhoDx/KZ3y xGno+D ޑ+U<ԥ7"6dh2I*霨ҁVqj Eѭ ͆@DwM, ФkyXXtQ4ӄ*^ac ćjBtzn*| CwY;@9>l[O_M ps=\@w- 斌pw[RfμqeB]wߢ:Y?#H9lJ"X?5Jf VXl;VJscO6 Tѳ)y> <2{%%f_}起Etpn1?ꠍ794]TN%VQ4Hd9Sꍸ9A y'֞ z?FM7(M@]vZHa`o{ vfYߜ3)N5DY\< th3gV8=P*"O~ 9&ss~%.[7xΚ̆9yKs1N)}M@iX%?juuEyun_U~x#* E҄dêy7czm?L3ZwcI%[.WtΏ\pq( $ƹJ0*!*ӭlTRd*SWe^x+*(ӓTTzoŷ#Sb#@ pdZ7$X#p#oj9ѓgu H+=x.[*WM:qa3tf׸P SGv?tu6D_M*,<+ Q"ͤӇOP7ቴK_M4{A`"peD"&ߨL0o OHXHPY3^ԩ.2ˣRC0e{tsR:հe8Aj2`׸f$# F-7il7Hc&\lؐw7o!n \Ay -Z[)%%J>IK̀LVnYLٷGEO֞QۻUi !M5VøP $(0d1,1Vk@!k n}> cJ4&|aƣ^x;F1SA:a/91aXMDCl* ͦ9dnk8sصzr #hd3=`[Ċ&Y}/6GIOG[O=Wuk[Tַ>P&K!,ZQM}5 8@'mhm޽!(!F#1YGsjBvK] !S_rkܴ";Zr`vD*1sgK҂ʁxl ix~ piJnZ!.#" g%sQ$%v{(E0֨Me_{-B]b>~ ׈xheu}nW3MKDNqԄ)!C7j#AEA#%A̰8KV4qomԙ"KAJAJWbO=(rЏHva]Fi›ߌPwkHx&ܱV:*jUKP"']evj2$;R g׵+fASXn5~{U-/o㶡ߥ6I'B}gD,ޅ=~Wmn &\b X1Lҝ| #S[4E֙1_$TAs]$HjR.Ɯ]$ɻgF,(<;dn\xzooɯDsbe!($f+=zƫ%Dq3][zW<o0#uJ e=iPhxO5ynz[*t-u-m㩂ЋCiug)Cu)v{' 8F|ּ1@t%h-ҠTӎSAd9wH$g C^T &{=X=(NI<[^,({͂ߤqϑjM+Vye5ux<\$WB fo=5C 1` {ZfW*r`Rr~ #fFT5< ZR6ޣY10G#E~JuG_-*R8zWz(E"W8{tωIK.{YVY{kBق!MkuoD|V;Unu&!Rx3B.m& =|xCLeo6~8En *9^LnbȰu KW`IK{jP8YW0߰9LB";rG[ YJvOI$GsxA.n+%I~FY #0pS)uRށߡ/~~Gm96; L[V g<$ U8ib|ߪ~m A@y/MMCn}z`;-XM$24ϜSw--Bs1r%*mVډVs+o Zc2Cjn3/[ vAQxvfX1y\IFQBhcd4PVb()(bMr`_9{7I m_GvIqa Zz5 gk1DKk'\ޏR wD1"VQpve 8ƙHT!@B3F&2rpG|}KY^4'G6K -f6Ki`l{o@2}g8 駝3$KʜtV.?Aq xR^{\r'u,=?%YBԆdr*H+zaBVPtԗo# ndt/@& e.nĵY%D 4~ |x)e:;u({<+(Bl3f &*H1ߜV*dYshaL`=utn*avdG( 2xv10z)ȏ }6Di#J< %>1MÏYO!_,X;4-*+!+ȑ1Q{㲒|>'-rE>2Vx.KV{ϒ_M2.g)_(l'[;K- V'?Z`S϶$_{$q .),>:C{"[d$c0'oD"=VpS@w#i .,y죪!A/8ilԳa:Tz,8Cc3K p,F,s@F 9Hɴz<s>f;x;f/A>N|1m 44\ "MFՅٚD4Ekp.<Rjry?Cͅq![6;;`9drџjV޼"0 ~>C6 =Gd(b=$=sյNHwL|;CÿŔz@Ju*4fC-J-,Vemyhޖ׮û(R 3Wn% h8ѫvi 4ez{_ztA8/XS!k{՘mtѕϥXSQBf'wB ({F.a4MV߳Z .8@SfɆ4#Y$k*:& qfKיDŧl<_ފSV&C/G%:9uEt6_}HMRLR85\]bsczOn*$I$C:IVzwye q1 ZXG,T_ZʷMmH'??dAs "]:ehve7X2Co0%v[(Za`Ȳ mBt=y'h,'Ng^FA  @ܒ=+[t|>K8)IkcEұ[j쥾@okO:W&e $4O](4^'Dڲhl@ߗgS^$3k2",6̤]$ B*eȻtJ M룒0,T }4MV{Ds9WKu55T􍩀i>o!Vf[|31b抎WML_F o]nȲ\}xWKGoǽI+ KUqVa~  JUb){ 'Ajw\/m%9sJUf  'q՝o)=`1D7TxhsoGW ?bK5:Ƀv''Ļ@%dpu՝*?%@3<+K[nhMs`OVj;RÁ7&4OBSK# ?+A'zx xq7Vhț2-88V/%!V.#igHbi")eKصw-V (N'[d?*~la^2yV~MdJI:T?0@qwy3 Q>ؑ*]wH: >Eh+F8=*K cϲN36ouEʰG9{|gT__5G8]*pj$fLsvخ@yi9k ș:KBBԻ_V60('y[?[S ,vhQȠJY/0"jq#<(H|"|ЬH*gҍ1OiT%{D_NX'BPRb|znN YlCߨp§?żvnjC;^"Zٰ'ħO9Yh~1ao0C>bNr-]gBVv#}"#81Ɋre\*%PYZ;=>gsy1=lwx\R,(QeX:_Jx~͹LARQF @!Rl̛o :$4FS ,{RvV,_rqǘdݸx(Ja< ʶ{+r+x}6ΌX@ofPI aĽ Ǔ!~ćwvy@hᖼSvEыx;#~hiL }jżr{!5V ,Lhv=8!7‚^2/YٙE_u}'gn㧭 7OTҴKY5`{͜r5ZOp7VcA:Pw{c0gN᫨ 0ĭkk1i]HdQ=w$$fz6ܗ%J_2rDd[n`&% 9]F- 4Ew*b,LSO K% 'K l1" Y)]fFX yl.U$P-@c{?å $'#W11:(#[&]U;@ uWAs%}D5%G +M龶h ;a.P^]|Qnb'eg:,ܱ f/l90 x27Tꯣ>PbJ3d'q#K +DtMExLԔ|3F Szi'|Zq <*ܖ?bqG,|WxS*`Gx/2'3:%5ګc5,~ _1 Mm#Z,tz 4 ̆gHd\QxSӬ++^id K> ;g9/)uxAe,5< k`ⱼ1aS(V"&dDQ p瞇<R*[dJk>77pODlQjB ,Лh4a0 |CA28ՉY+\ &!cTM&X)0>]3!z߯Suu~z^)kcK&-SG'+w ]ya`{'Oٜ.Ye}! T! 1lCx7"R>Nb9ZE—Lrc&b2i;삃*cc6R4AdcsAvц$E'gF3PT"/`Oq[$.3v0j@E5PćNH A@N88]xx=mtoA=YW$EЪڧ3c>9WWk6O}Q,2:'8;lc4k(Xۄи69T!] IqS%]/}5-Ul);ksWG>Ȍ5_R$qWN=tUpB}kvCzUVqf%8ѱxOHgO2X: 7; \ VbҝC}*xn/ϫע_Afme4;RЯs4,L[kC]0uTw;ioM  C%{X[ FP9;4%CyQQWjhø䩈v_VP|S-3*Yxt+1<#0%%?S]9x U]Z ߆eJAbMwZ&SWduGxh FP1lߧ9GĂH(ײV6Sc(1G;8+=v7N@jլݗ䎻H`'V7]{FƓ5r]bbSbyeݻĨGyX3e/$cua/M HaN%7G@QJ)K2J"2$0Ћ҇杶W4GhF+ 1R7l8O(zaSO :B a>)f}-T|A,1rRcjY.Th|{8ݎx$`ZT-Dg/|&^%":G/k(.f 9ehS˼~v~XDq(fu9Xc&@-+ xMKKdj%m0>r \a>Oj+7˰q+[sx>Cb^n2!B`0`gs6pnm̄Cʊa"<xq*3wH+bY잰MsE"a-F*ÃOLUE;҅Y}9wq%0S)ɲO`ׇy*E16xJL!Q:$"Mn?TQ`#,E6R/%$u .SHeKK;Nv$UttPd"V,F7\ DjY2>6s׫wfA=fD\D1SqhaVr6lUr!_#U S΄Y]P7zw޳jr)XOӑE)SDj1j|9km$#I{ XHw3ϩZP;Uq?'[,pR:$+&95EI2'h;*v;}(y5ݭ8mF*TXغsy^!ڄ\\tYTHSb̈́EgD=1/RߌY_D9`Mb (NgۈkBZ@oqo5 S,TyIǷҐ3dPpbGW EFش>~T}2f(7Ϡdc3ލ@~@[:.c XJ̱ LY.L P偦2^ly Ք[&!@$A٤vNEr~ehΉ}!(% #ڜO;q×0# 'O2OpABÌ,+#rIzG$wJ n࿧(DF ϡ&},.QUZ[X!HNy\Z%,XwZg^sP4˪T/#?]xg@:!@Cjqjyx}S6!,$"{w7!l!DV/"UC>̹܎jπ_dZ^I(6enNs/5E[O&P(Q:%;#k-ܼMv=<hgMsf͉ Z&)܅ejoQ3vI@A'm'߷[*z!NEޭ% ž8ո:<+_P!fU}`K)BYp޽r֥܆" 4bli/1$@ |ca;}vPk'^Bۀ+_ tq&d4ό }: kMp/<7jŦ/rluVgRGl*}jJOrR2oI+Oы:t+j+_q0zI`Ht.Fv#H9##56h[ 3bdwy;%OOF Rح˸Adމv B:CY1V9^G-s{5wNreR~S7SߵiӬ%E:ˏV]HU&NjŎJ>] "5кeڵH膥ZB|6_C-ɻF'we9egY-[Q%" rnFhK"! # #.SׂsjdR{NĻut̽d_ W.P uknÒO>0̘7`@~PJ]݂Qa{}0J\xWT*AF|#㢗D ^ U>~jdR0 㹁dBC&oOFt8b|ɗT!cQ4{xӐidnPq" *Սh-gX+Z6x,xo{?$EaiΜdE<%O9Vm f[F 6fUy: %FĽ{T$i8p"_EP. "3䑨Eue`# T8O|tر_ĕJ'Kcx%5FS(3]L9qX*~b ;%[މs":'^Cu!VuY& MϸA9MRQ({y[g0<ejxI6L裛։0QF (~B]h>U˹Hv㸔¦pݦ.g=&=%-3Ղa!A3y[̑ӮRȼRo t8sO'ogB35xV'JmIS`BwyC 0ݚgisۥMymAz0FUN^Sfj-FST S`נ> fsKHR.8)򮧩eE_?U'dBgB~},WwevRʪ S b#= @*EXֱ1i=ҧH Viw| U(} jՅGv| lV>mcMi~;郠w;??ɸl'[O3꺩ARv/d}dv<8"B5[5{!%?QOdp=j<'Dti,1룿@f9Gi%ƛJ~9/¬ษk#*0>Ҍ/Wi:ƒ $ %vebpHO.%{#";Ƭ pxFTt1d8v0`]zṕ$+)F#O ߢ+PRGKʖ'T)5NҶPx)Wp5֋H{[Yr_7!uD. 1Ɲ|R?M~*V 3 ޏ|X*Ȯv=2.b4I]mr:?v)JQ93z>]LEҵ OW564 +yۄ5U6E1SF@{f>Ԡtq!Tj%TU9[ԥ n5qXDӷ]&TUwo ^y0gK+ p+h4hڔs?/_s8{Lo*/M'v৻7ʮ5  lSgMH< މZEO+o“]* -F! ^pkcν;_ϏWp?U uikgeb /2:-Y^]w _-fEM۠ulܪ|M.QF6qg42U,3&uw5L{UNKB7k:u2Bi !ɴAݶu略%W=V,6{ 3{S].f?WUl^cz~0)%*H焯]PvJZm)Plrvʄ'{nJDZ~0\c+d89$rDePU7oڥkd[/s oGgj=ᣋ+2;lo]{맰V7aM`Fq6曃 !WqHQDtPtQ1ho|-p=Gln #2kQ72_x-dz.%8M+hg%$/yY,8Ѳi`\D\uUތ09 |QrFwZ#6ZP&mVcV?ʕ&uC]x8 zD18FJqu̷rdWJPxOdwҘv42 ">|gF?Eh븊!n?XN`EkΫZ9#zە k LQ8 B}s|TASșݻ]y˽Q )d}"\Eb~bFǏE`7`e$4^GtNsɦ{¤rumtixd]x hiH!Y$X?4MD 4=?bI%yUE б]6hU4ǃΥ R4~WbEBZ>3^L˷wVB^}p*-OG>v mK[8X-$_pz$׎d# ~hV[e)LU ʬ0JOfj\CAI-T!1?DnS6it' + r"5vTqri-fv"jӕ^ z}ݏFt(Se[FڿQAbi@v:d3D*ޖC1Ab@hY]ח(CE.d\O'[GX΂j$9ɩCr[w͗QmmB}kcw= ǝ<DZoO,E-)0=Ԣ8Q2һ!>Ոh3$ ʳㄨ^}*5RL.PiM޺ Rs@V#('{ (Y s\dJ+u_S8̓l Lzr"^>'A9}t<4Ͱp֟<3Ki]۸3yԖM-Go\VuF+o|$#d\1bjQ *@(ᒋL;\ ͰJ\ת}ѓ HZ]qFiL-x쌅+4O=|sup&ѕ釯#HpmO('T`Pb#Ѓi5QBHZ(_+:&;{rfy!J/멑0)OU2GHHD}gTrVD^bszoGE[>$ŤN- ]k ,OuŇt}W3ˍ^-dU[x"_Y4@J#Nj2$["L_"YazMiOdɇC©W]Dv#8d.@C~p`F]< @}o}֝R7!XR5ZhȈQ@kkw*2jK|VLa(YVQJ oPSI2@gG Up6 i}:*mиê7d5};`=1D#g\fD1r<ʷߐ~%apq8'MoaEMc10" NZ(7 NOXL:Cc)X#,IbhJDv-WS<ͤ'j(Y!(:6N8]TJgX\!]<ȧJb vy` %y6!7>*SC )^T "w_:bqMqnd2yJ[mbxv) ǯleX-"~E}}cF8 l>J|F~wַX⩌Պb`J`C`eZװnPt>svՂ_^crtp-7r+)}:DƲ:1*%'`Sk:uǒԠ`!p\ ?<$3YS딗`V)AGЋ^ XQ"V)k'Xz@Gp\YS.%Vl(x#2w1KĆTb.lte,B޻9˫,<쒝 {x6?',On[ey>ݪah4jf&+ ƈK7RߖrŊS~l.Qe ? ;0sa(Sw3?3oH){O^R~7^NUc8m>D d`ob+c9sxۙgxh_VCdBpʙN_J h~Yr=7ʑDbC\ *W@_hIbY.2/ǩa?"mc wm@qMo¨OŒ1ve6+~JSX_X"<'b,T#ʟN WLYK[2ep3`~f?=~XhdKdv{ "V?uS絝'֍ߨԫlZV!b ݝZp.q\#e' F]-'6u7v h`l8]y_ZsSXE̙hh?jܴ-ps@Hm &'pFZTrH;2ZgA<6,t>%V<<>&hxWUS Kd3}N_>|P 곫_Ȥxag$.ČM/VNFȑb85O6 fj2Ph\pq-`?zf4`Jx,[Q  !#Jܣ6ڿ@'8!zC5;R OzTn_21|sz^_e E@hlu gyTg4sʂ54llQH"X }i$$D+2DLR60P0&Y,Y6 4=͕ܽ9Snb+RM惲ʘوGb%_K/yo0tD˵ :!X#=D3`d7~Ăs-z\Fh*v"εGV YCR>,4ھjzR51JI00700IU C߃qq%0CD"cBLCeYniuo9_O än$-4f%/RZ%~=UdiYqCdz%` >l}ڽjt hOfT*Ai0(vXBJ3m/ Gzwa2G$(8 O}uw Pꛦ!U!RCc<YȹTy!"Kj5CD i_z4Mm)>U+T7!/g@qPo7 + }H>by}E~P/xzxOnE@n7 B&&H:Mi4p{hX D|*PyX7[8z%ڸL2kӳrim-@K|u qqrpYq OFz n:4 J6T ȜBL&RN lg|5Bڵz] ԛu?^to^d_Tx隵g_VcPɅ5&6ORYߗRvk\|REr N7Ȥ}&v{"qX87бN0s$"[KqЕMa;bnPpl4 yh}:]d~}+CI"}TZ16n|e"1@S$MQ/(!5_@K3 )'eHo-SX^npֻCLe)Tݷa"%I;"s f%{[ lǂaQA]t"%м{ܑ2).$Bj9ZV欭c̛Pe>u 0m%M9fȠ6&z.nپl(mNɸ7o4:(XV̔, ] u0` Jt282Guɢt)scG6"SW D]hd,M{i&EPZ۫G h:݋'k{"e?):XƲ):f/FT<h(G-Ip 0 @'R1ia/!:|F&2e$ ڦty4(j92Ae|gN$JّeK*q`Ė,rETkviO ȺpU&vt۽֧d8Rz0@A je0""A7- wT#3wZ艨O&JyjgMHjf#ţ@R+F@4?F,6jkg$ Y}x.vfzv{PE?C Q?6`L?VRtH u4B5E|g:2i!w E~=@5sss SCv|T]nTA5"(>.Q.[ޓ&Sϑ 2jSkj H{C7 ,s;ևZh|P[ܗܹ_늷OmJˣ=9լ]qV&?lopwR_S}qOmE,z?>WL6%M3+UnV.%7=?8} sK?%tļyԄM'+H̾,&:ZF*]़Ŭ tk-Rő9ޛΪs78q7:!c\cV1()>EYk =gLjZ=K(êKoІS;Ϩ@|9{KxEx}O8; Qƨu{-\4Bz(e[F NB> kbL(Ŋa32A&s$eL+ &KwZH9=4Hn+m|5$q֠drY g6 ,{ 8o<NW=VOp%Pu-pt xX=Mqq*'Pz 8@Y:jYe8,meF^ʏGR".mt4:}Ѿ|g]% 9C4)Gu@w0ܓ _ K=DzTϣ{6"q\5\G(ċǢ {A|VW^`@}fU.b M=̧yۘu07&X%Y^ ,FfL4UZ[5闄sۗ=}4c#':\0bCS2rRRՀ$ɺӿV#L]7僙?bGldy58 &amXkG6 3pcțvPdtd jak(ʕ@Z9\ؘ&eo7lȄ!㮵UZa"PI㕫V F`ȞS;r5EK6`*͂%hm,PU`t.sv 0T4$im'h-O7\$"8 &m=^ "S٭]P`r@MVF%,@B XKB@mLec+ywB '@XOgKY[NSέ, !0ʓR//y!.&1&^x6qf% PN%z[9f{SQmGaLUqb Q0n oWo9w'Є-eĕdW[b׍(tCͣiwU9/.iQbT>A4ugqiI>JCV7'L<5>N;p}2Ne |׳m'W?6;Zq( w"[3̀~x WVJfpzUK* 1$g0@w)/PΡurf &w0ED@O>Yd=QtTנJ}`ԄS\8>D_3Eh_Qhm(>.T$+H~IwTyuX,Cd{dWK_8rH¬I9|"aq8(: cJNǩny湻Sc- ٳkp;. UtĈY;^"kӜ{N)XML}=[Sex ,:gT.Ͻ]О۴U : $Ŗ3T1Q.zt xp'R3jlrKԞroh7%@yhڱq1q?f*0B>Z#IFz?4h+(ռh5V< }n *]EhA4}?[6QZQML3 i@,xHjfu=IxR:|趬GXKL ~yVIjgQh/ʪOfEadB8 +xvߺhK)˧Giŋ'콗VYWGuϢlA@RL]}oZ9lZ&gt~ގѸ,E4_3V 4)1IV q+Sa[i<Q;S?4'q{4[`Dvaݯq30;+i(&ochsg!0M̽\F-֙7^}-vRU8j: 6QlHt2q T?t0;-g(`nJc5m't Z?\qKܸFf(Dnu+2T ɬ)B3>~[Ӻ7餽Xh7S!,I~{DdQTԲi'5`,9o)֚`ϟqQ^lf1RQ/z0E_Eo& ەTAwbE(ڸQq[MHnY@E(+EϿ/){ y1\&6{vi=/+Gl:kZ՞NROi$ o7yْy.% E:ξڿ"!Dx,"JKNWp"EP0w~EĀCֵϧǙ ~ ~f֍6}Po:G!ѼLu9DiE? \&YpxBPNf^#/Gw6Yx%|o- ‚ƭ;b*Gr%ȵXb d9u;Ct _))Lܫl'X}yȈIޏvR|zd6`='b<:#X1.IfNow$2鸳ҕCj0g(^d.5wڕᇔ[>󮰈:64FL=rX"?z=V:Qpkz1"i$n]9 y$L j*V129 y%fe0?1޶:~-GG98M1!9PPYܨȨCֈZTa[Jd3zVa#Oّ/S A%j +lEpr)FcwXP >9e_fq,fg`(9]ܺ kx^N3 h{[/0")_ MNs8/H\A[ 粟zF'bj0?~ />g{'Y۲v,/i ]<@vKkL!+Jq[E< EVYߘa/ш~Kt4/ܘS U.Y20h [bn@fn-[OvgIeK57B@Le)c^,f|5F:r/BO=@z kN>bd0ͻEPb MM\dImt$zVѣ. 搐ֲa? A:a/>5Lvؾ0[C _ W$:O4zyPY9(ĚO ӡ鿧ԃ!8ÄNg=4)wԾ8bDpXXd!;9W,l6̢1Fш_.=5.ھ@M"!X–`o8D){Iۢ7B'<܀(#T"|EUͼhUx t0hg B?`p{HBPu%>4S+P=;D\1J!Nv::-|5;oܟ= V~(KIj"֝)inHjs~q rF:=V;BUj)9+Eq[x }CkU؆[A!kc>7nXz d'©Zq1%$h*82e M!tQ]7C<byo 5qzlQ/\JPnq*9a|) B!,`onR6!.~񅆜".~|+N71ldPˀjrS|O rcQ^OvUK5 Kˀ"Ρ ȆNE|􀏯_e^`fwYZ@WxRݣMU<fM)d\OO̜aC*ed.] :c^,R# |_F>(2va,tXHQ3nņxﺗ8ڥ<jһ s&}Hj.n\9VzA2Moz>W :+ԜV<\cC/G lh >e RT1D/AہJZ/%=Tk+E %\DxqnzW.= _"2MV(dz#h[#8 ˊդ(Ғ6B COj(l'N͏ !RHM2#K@ve]74K 󋫨*̿c@u\OjiУ<Ħ-,+C4%jhƸoL§`\]ܮG̔6v DB1݇Db~A!M~,*TMPUoyo;o@Lna .}.ljNorm']7ڕ 1xMŪg0i۷z G6뀎B_U2 2ƿžji: γ^%0cN  ab2Wkg=CC^t]=$/KknGRAq]r>i䲭zȟo{H6Σ`2Cٿ0UI˿I= A2y4{_ 4#ڂCx|-8RL޻CJG5C)`AWf+heJHyX %wi9" U[c}pSIF0EᲾܛpu x}_ULRHЩ.ŢDˁ= ]uGhcH qFvc6$ PW\#y_60N/R(9O>Q< sq!gq t g"˘6wx&ND`/CjI(!sTTOҹfZG6Wߺtg;􍂥 €|ͻGL(1yM2m_"^˄Ypa$m 9D̮Vl'=!r_[,Ǭqduu 'wzRWݢgظ?eH],<@s̡Z6=dSEHmla}S<ܐ}aG9/A^mB4ulv幬xI0xWWNXr)xg16!ŋf9ghMٝޥ`2`b{u8(q'?-,@Mo]v&-נ4Թ5–fh@WU9(8> gp޷ JFEeuUi/JCO$y|jBY @g-DKG9gm8rG,z! wEsNѻ,5)$ʏzX%gy]"#Ξ|嘈SVfSLjt\WqM#B  ~W=X PlpM;:@!SJ Gqdp1?_L{&U1 Tے2$u3$IzrgtŚEuoϱQkQIDyR'=Cٝ3~XvY P$| D_yVABivN$;I=(KM!|6߲іW[‹tРz__cKT.Ɛ%-F4%EС$X+\1\FFvmO(TO]s*;.y^snyN5-eN3f0f 0c ٍwXB*fDe CY܅ :^0>.jy 2bE6߲\ԉJC-` NPxG M&͂Y> f-[~p1-a<ۏV>)]u!~_9JRsg>Ϻd>Np]Al2-0agFZDV{#A]}"pTZ%aL} a53܆9GS9YuV4~ՎOZ-0پ@"C5rpV IxJmć%n$3JT_¥Bޱs6 :8g@YUY lyTӣ&#+dEc&lFǐx[iI(Nl>(U 7z% }N[O}o^7ptv0p2ñWOQ5hKb0ѝu kn'~+=^E^AG@KAWX0yψQMgHgQ!6!oŰ0AOaMmaΓ3Ga j.oU:Ȅ*":{if*l5חLlmA5-+/[9nΏR1;,~#GITÑ6J=֩Е|f rQUM7|3̀ ۡ7 ىhǽ&/YٞXY}@=Esd+_/_{PX$ĹvWB։Aׄ4B<+0Dⴸ>C.|XTE' "\VBV.WY#f뤋'Ta-Fppi4g9fp,њg\mofdkW?^n*&;5<牘9ޏ(EQgNh:?BF AQ|&=QUf/m|GҐMǻwkqw >P4F qSqvKCW~&\'X6HCk@ B@qʉ1&85˽4;hEw?:CرWP%c24 LJUf#jJeէ]r5ң#D5,.dъGlԛes+%k1:9bx)/ s x; drۑ3imDGXb/aTK4ψlZr>V/P 6H:PE ՈWԮpi*".=,hGjpOS| ƬͺY)TQ\~ )7$d]Ѱ7d#M"3a ߔU՛Tb5I|%61G/Gq63t/8Vա+XY6PW. )զYhk۾̇&NJ2 Ekwf/a*##Bo, *Jzmka}QY0K" [xz( 7r?kKNZ(Rl~9p?qU$SZtCxi8˜R!2쬃g(7_VqA2IGزJB1 ڧjady0zqc;?ǚAhMbOml\Q 38yDdp5,+O9Xa6裗̆foox&pc8)JB̙ky<PCeud뇟 W>QR />ȉ2rKfC)B(Pl ϕR9*7Euh@(CN - SeT/rJ7%*09Z+c+~x[ vƹ2y/9 7:tTlYKDm.5{@ڽ= 7L[qFy"!Sf[>7:eݨ.q!d׮h ԩ ҏᨋƣXJV0qTylqX_ח6V`8ox< 48r ?&9lh){n*KkDд/Dq^QOm͵TbO?Mi4}n``~ A`B_V zu|":m>q%Σs"@7]bo3lc̎f!^ ++&(X͘.^d ^"1TEi~6BôF8j NW¼{RaZ9gZQ鰠m(Ѫ[c=CXv ,1kG^jЉdbq.>[\θ6< 5C'|d23qjWuMmYIwe(byMwm30x2(&o"ڧ0hfjPVڈ̓羶ҌrU~eЃ:~v 8y%-yy+f/<+v9TAǣqxmNDjk!BSP3n9I.^!{_^U>xV=Z@0# FMyT*WYIX Xdpy*-I<Xgg HM8llVĜ֛3N~i蔀a 3Ⱥ  MёwřҺxC0BT]A4l 9?!ȍo0G/mz*j'c\b.E24{%$7Ob棱$3?2Υ'udՌvpu:)0l-PPR1d?/ 0CcUx xlmX1aKev,̱@mBFLpM>񕼲]wK`)&^օv٘lq rO*g ɞB!UqUgFhSxx!s%9LuLuZ͊@ czy)M{6'I;DL7TJ;>BҒ5~ԁ.b9_4YiQM-`Vjq]ȭ+t {z̋29ևݦ"*hl˰bİ~H}r&r^$}A,US-:Kwg"wuj&q* F-ÍzJMHPՓ"_l۲`H rݥ?^VjlKW|v͗Ok*=`'aotnM|*BeY |3 A1otjb;˖-j\׾5JKP@a7 $|ڈd*KQi4BTp\hh/2Gպ>eaq3KNX&^g잛"rI&om(?6_$ [.PiqÌ-jZXLVR15n_,- rjrRVk'Ȥ*:B9@,V@P|͚.,vI f%NnȺ]fCQ^䇥,by] 4s+ 2^ġءߊ 9Q lޡYǒ#| UXj 2?‚64rAKC@Og_cFŎpskSVtT?<羯碪8B:9b,!7Пd ="jުC٤P'\󴴠^plNf!uxk569bAy9&v)I86R! Sm/Kc>"wYP0zdK1r|IU6 \:~%o`W<ӰLC;)k1B~ OQ*gg&$T·XVޜA[5 (=3tYu6XM9lHȔn;k-3]rGd)UG]o}6LA){^❥+`6%nԃ/ur81˲6HvP&hkf|QԶ5SzǞ9؄6B7(90j{R݂5%\ FTF3ҪXȖMɢ/.GQ^Ʈ*<ǝbknH&=cv5ʨp8UmS:)5#K f,)N4/Q{"`X*0>>b0*dظ룩WӮ)Վf2\m2I>pcKc3}qp(R(0-O[OͬM绣lډOnzoà~.FZ CK~}M<ԎS/4^w"i,TG }x\k &,F.L 7N|^vOMQ+Hz]/gFJ k@$P^PqV%qjaJq3Af0yeaIBNt'+7Ma!rۯRI nsJ/F\%)X\a`ci(!Nj!VPH;%ܢn;g^FHm|rC0rBVG}ےn CD}3ipuÆs`l G:Z.iG9qzGitL>Wď{%2Ӕ%E^/$%x:KŝHG4dU~+-smmrPƌB˧q^(*YZ?n76g E5Y\]]snˏ^ע|H绹SSCT1Ʈ6Q+yiX2r ܥb|}z) ˅3rY A}jlU|.a'~ЭbxEebۤM?%hY8;78L>OK$L,@5o}'yR%;u%(bWަWswɔi{Q}B9p.+Fb$q=_TY07Ni' R,]{Wq2}gg'xOch'_k˷o\sf,1 %ÁnCm͡Z+8<6y2p8 xylxP[c]Wy;aqY; _y+WН!Da۱Ҽ3YR(2Gsg.  ·9ku(N~֊<XK NVl](T<?a#ޑ!#`'Nn,:T&AS8]mĴm pBp۲J˘1JhI1FzԜxo!UN|Q"ײR ͍w-fW_# ޻u#v~vp3;mjB`]Ò(6ߺDeQ4Xc]MzZ];n"U\ 65o(tgp,6e[cjmWhNd3v^?h ^e=.+k,i2(gb{||ѦkPrifc]8PϽ5\)ə6 PјP5FӀ-9oQV#:. $=14&GatR{mpY8JY5#ZAc 5W38W|"xoDb} Sx;L)j4'Ģʶub TRx-.9`iqHv/X*xGf817 @nMOObzfFb>TIEL &5&klQ[6:\6ip;}h!Vy=ArN9 ڝvWIypI h%oH6 ^y+jl3fW ճ4V')CԘK^`0ĕ``&&$H&jʃ xLn $T܏7& N.qIC;-`lNF ~nvVL滘Cu.zOhɇL!FY0 b=#|"/dy8 ڀC'~`S!~GᗘuPh~+u9 _2V4V-p8lA_P>)t3p 5' +LS&L#)c^f@PP =b\=?!=uDs3 񿬙(Ȓ]]oAh*˴A=ÚFa ڃ$6JM×J`PոAdSY%-~'Eo_ C|n t-D-p*-8+5LWJ! ؇bwʦlujۦsl5yZqx-喖h5ŃkMt_.36VE>ڭkw`ȳwE7h=*%$ˌU)/)2:g:*U֜4Kcj}Zfȑab8 ɮZi׮sm5gW&s oUP|L3x3EI#鋶q@7p➄Lp%f<|q,4 Wa,׈+!ZiQwO~f0HU)gnzh0yeJ< &iN$$Adؽ>3ǷyNKLKK9:g SRQKJAM'N W' Ra7k]i,)w|9bYȢSjSb#F E@kuw*+_h0u\S/PeDxW2}cl0hic4_# bڧLٝR׎a u Cg%~T(RQ"Lr׵ڊ kv/AO,h l.A1SӐh," VdM|CXBcy PXI>6CrIQ`?(U,pOmӤdC.T~"ܥCA <@1H!rJܔ [_FHZy'ķACxa9ᡖE4R ]S`!,!L,MBг$Ч,Yf.z;hpy_+t2Ų'ϸ b~$Q,@so![== da{,90A|g[%E1ႄtK%fPN)[tyW_?*/.<ڴQ9v,>.wBBsi#`@!ױg0=#zzHO +?0]/.X ry 8J<%)Yls晢$.?Ty8EĴfQ'SLps.awlkX Û]{bq\dJ^drobߌ%XFHlTO4y F[(pl #nѐf^Z0 k}킌~Ϗ9C\~?u`B6$$xZ' @Ƨ fQ^!dl(,Źm/~NKd@ 诒/Ep n2Ȑn Hӗ&\QX.okEb([฼=n ({oNF|ScV^ͬ~C@qa^IownWC2w,9*`݆ř[E("[s}Sj<1M\$7"jk om%joL[ڽ2BefTc@:2EAЂsuHa9y鯝  76KwК7Q%/|"B>5cώN3qib\t/eT:3H#X^eEՔjEv{pHZ{M 7A-d@ -SE|Fk9:p @YoC|#0W* -#43@g_S^1[>yU$^lG9`5eBaX8V<F6ظ-զ h%mJsy>Tu=eTbzL K*vQzr)e|(52&?v&hN_h=38lNs9tÖG:甤.fTRl:[cV22,džAA17Gjr"-sy\i_8$~mn)#3CX\D-J=v&`u\ҝ-b;64 !xt}&J&,5f[ 9 @:gu8<d^J屯?kBr[g{Gϔij=17rLd KʹĒ}?OL6[L}\VvHpH9! x A9ڍ@16ޙ>yQX(De_Ϻ.z[3m1e??*,fнJ ޣ2@$qm j탛*5V%m.GC4Xyܴ%" F<Ӆ$`> x6.i[Zi-#L;Ѳ>֡NcWڕif++21y:ΚƢh1|א^V6^#}{ݺ4/Φ&-t6ZƴP {JJgd&)P*i~빾ƞ3gRB4yB$\UdQ'<^PRV-"7ړ|¦ }cC-yy!0B,.~9ǒ)Cd # ҉!^TB~ɳ T"|Boc^=ڣ! hgnMsN+-%tF|g# +7fr&̈8K~TY@v)uMռӚpbތ@͓R5=^+l?n0%&H=e%Ӎ}]s6 Gn#a_|ޞR &]kB12:ۑsaƭ›Ny*rߒ3a({fޒ|4)W;qHoB@Q˦] j+&:(} sHK2Ȭ6}'eBD^olmZVt4}M%n"񅫉} j; ܁txǬC |ơS%VhU0VZ>~)fϝZ| B5n͕p.'؏Sel'/ үd줢y"V?OfbYj`uw 3Poj3rHtqoa5ӻ<2FT7 ;Ɠ ANYI!"u`{nfYKn_/ `~Ky_ON̄J -41]N~eI9e6} Tv9N4 UJ['1g<.:\tyT0j QWʙ(Wb?gg#{g2v[r0h5DD͡L?)DQ~ϲ/Ͱ~5JhfHc6Atp(7dpnA`A">- & )!4ԁۗ}["wkg[vSR#\=#%82ysD9SˀekU_f\|нA\ A%B}Jtzm:΅0^1<24̩dB#-Ώ])'AΥNƔ)4cx|ZR + ='AdJ Gg"jSo M3;8n͘r-{ U #0M(nfgn B75k_n/&)6FAHz[RU5al u+us![NnY"WV.LY}f9HqqڄF݌Vdqo|1(VQYM,ٖn&0J N-s*ygDZO ^Y1Lg@QMíj"]\g5s]d _‰C]çgFYvyMVx.E?eK90RSP)0zzAUc]r[Ufiǎw͘R0ˉ|::vS/ܳW̩1!@" z :5KMi>",!/oۏBV+ 6zک0J1jv39NP iٽ}~0Y1Hh7L5cx)EO`DnY"ݶ6 p4;(ݦpZyAG0QuqKjSCPV ߫ڪX,6PCqs[ g-ɰ$"nt}:KuZJ)i;`q]ief\Lvրn)VPZP'q}@"/*wE@R_h*ƞAYh_4+G#{s&L֒u؄/ƫdksk'1rixG)*:jcHyKXswvS쿃IgM42t6lũ7ܥLmBCScN.@FHj] qadZϝZwVpNgv͵i56)MHG-o kez.<14;*x(*;ĝ-rMqO#X L]M%{|[5~p *q عw`\h!}ǧuj,q2j}eaD׆vꭆY_% d2,׻NYM@-觽},,5Qᎅ{KB&7mԌʴF{!Y7$:ñirׁ̐lIxq} xBS\~c \V{}`@Unсs6\b_L6CC,k^C^<(XQ^4  EHp?0 h@wFc%~? IwY0< 8EWZO%0.3BxxőrXQM6*ɐ\ ^p_Ґ8K1\pć}yZiq!2NCxㄐ1쩔+>qp˦u؅HNo+(tI2JTOvNWU="",yIdSK}%,wrJdm73.tm2JJuCH=1'-X0i6 oa^+RED{,3*0Le mQ[n|Twyd3~:)3{OI=GާNƶX/iUU1צ/ 2GHGC3an&BEE(nqzƏUǵɠұy*gҤ]c p~$JnVI=hsI)e}9O}bћ֩3=6_ҙ>cCHH[; {XLbSJMdphapfA+ҙYXet.5V$atm`k c'k٩uL&̈6+͞ ߍf7~+kӮel S! qѯ{Kb)|^\ !Zڰh!{)H8ŀ )x= :nOػOoЇ"vW(Nl[SnxSc J8NPG ,w)Ҹ_;Vpޜ~9ᶫ%:_+.A!<.bfqk;svjjC*ۑM0n XdvR,vȖC~'3߁ - 9r 8alX,$tc.,51wE~C3KټdF16"_;k]EÚ*WԒD:dc8vO+nT]+  34$NI <:nN1y /Rw S έAs%`%A􅨆1O8ArǐX?qz푥Y/ylaSY:zo=g3σ=o3%JnPՙ˧'ki7&G~Xd؞ڼmfr)c7'],p h$*ȨD?Ou~п6:/|6];N*R$t!NFI*g@vЪ$Z4x.jv)i4`LdтB[wɲՓw"`!! @eKPU%0;>h :T tl?P0]R#҇1F/ N&E2f rS`LtXB4L^tYU 51E#;x>Mbq[5UGs#jm](tJk ;iFKnlc9$w)Tw7s'GLi\.Ez!&b=!qʖI"^ =WIJUn5\5V-4c̯rŘ"1+*ܬ-ONqBoȥm=hoE!YS^Pgʾ7.d O8!}<>kiR^RUB.\`٦B85iftD!ZsU#";ƢC>%+sEM҇_5 NwH\KOVYװvjN,E(T9zG{ãq԰ 4Dx[ԉ9[&`xjis9b8{AV/jq끾}iWzr#Þų8EJ/z-*{D4̏|6.eo ܇u >.-<Q& OC=gS[Cniꟺ!ʠde|BQԑ~9P?@Kg?/D cۇT]} #oDtmrw^ Z'%n|9',M9t)Mi,Hn[Kv1n}Bɪ}t' ӧNx`I2dF"0.Z>Dwt$-:ݟ- :]\cD5z >BO%&Z~p33j3U5 tcFƋsA/60.L.G4hw{0BAmg':LYw\ʰ3&ZS$}f,uk!m,v>L_:DE]۾{vcV04䓠t2DB#bAyojZ d3-1h;D9)˄-jiмJ#hH-t4+,$ύTơB;YPfxDL~HX,LG' #NYwu4GB/~לn۫3J`ua,XdEW02yuF]R}w@ߑ _}Րņիx ``&Nz(?&tqLvk3; mĬefH̀M]KvbD,TVGبo+x.~} \"{*hڟui1p;V>yz,JBQ˼u-&Al`q0+qDz,G)nbHLrcu1Ǩ1rqB$$j7F= q6(}i'P`qBs&1IyBT<)%&{ ,=NJO׫ $f0?ѼN^n/Ա!PT#IAu+knΝai Z/.EL7Mg=a@Ey8㨿(Sw?S_%ي } peuyK7 9QK )_0o%W+8 Wv2Y Mo!w>j"ŀ&@A{\I|8=3Qh/ÿȭ}C&DmLq|," eS.SEzvow2\ *ƒ 1Y G)4PpUr/7ʯCu:TTM(Sd}:R2Q:}xo]vu?'ds̫++(}sr3JR~m Wݽ@0opdk mGy]`\b{ Su7: :c-K .̛ĉbB4߶h4r R XF:f̲muDjLC :.poMzM6c2#̑ ;ض`nP%/U0a}<ڟ`:}Y fW\1DHS#bރA` ֶէLѬtt-(Bp`5hY b9f$ οrb?!~S6(%]L$Jx7\"ʼVt]sN)@!H s:4ux{}$NAcPZ.'w&Mu};h|QZXHB8:/؇LD7Ʉ6fx/3:Ԯ6*+ yZ-N*3ދu {e*QaZ $")ϙ$)S}Zn  z,m!TՌrVl>u+ӆRQ1}s4ťKeNZ ZKEk޷lc!^+~WWҍ6cu['/p@W+5Q푯xWf.^Hb-Z۩/:<iЯփ0L*a,(E>>.wchuM/: D<dq:wԣE֞D&s-cҍjUSPM zp/p9ċs7S6d[z5h*K" X޲W^Rze8c^ǀYcX:`}\quDqSIj4^<+*fыϦbbzl⓲{ժ>Jsݘ$W&IJOE~ҙRmfD%KfL ƛ4=]n;sֿԃwD4S},[K#GkZ}qq)y8 "v^{'nפU!}4~0OqI rniYf>\_cCՉL)Z.;STO]K@p2mK!5ےat~#G&Ep&rdFa/>fPr˨qfUZ\bU[a(c-$v9L ~`,Ņ?f똙gvѹ~ֻ;{FKn^Odr(0{N#ݣEZnMr~H ax:KiN )5!"Sf$#HxB&e_*U6Zx&# 9jY3_v]̙BAimwNĵs}+,5d3V@HZд7/tgt%\S삕DktrWS-#:Z }:GD"lf˽# &֣e:<;np.ª`@`6Q ĔXJR`1`}xgD+ trRrGS7Y;^\ʉLj z(Ix` MZ ۉpt_. S"#R2xFgX,33sO^3Y6;8ogMgtzv뀩c`ElC/OF%7Ӣp%\qv'K9hl9k6uhv\[#o|=_X [0W|9`*b,1Eh14wUqDRK& { k"玑ƊmkR^ eBwb3?ƗZ] QıŠ 1ռ[?wgyE(8Kݼ`xJj7p92qrv"`M^\Z0 *Q-ξs$."M6IvalG<+`"{`,L)Gs@u'\h'=hm3i!d^Tp뉉>JPSdK|a5m)i_1fY>+KnKV m)˅{$nl#*H1cvکaue kYS\X{(+|p5J>:h í@^l:M㧑Q*Cj4.x1Hi4)"ʎpX߰ނڌd?+÷r/O,MlWCM0/Ӎy6Sfr2z#K}k۷ؽOetkiNY`+jljAI9|SſS>7۪I2)hz7 ֘Jm&ĀiU`,N`!IPWJP7A1::FSMFQlsp""|y/Ui$5sd^/ 6:_߆ކZS M5~w(BnLɲܱVĘ0 W_Hq Jښ3?>v7j%򴊌"$7RڐX#GG2j )[r% ͤőL "h`!H,0Z,1&GKǪ (b_xBw|vMؘ7/.'͠lǾV\%%v/yO9..fd70LRMkhwzϼD ei46,J;UCXِ`yF!˕"9!z yufB!RFpĄ26r6)-sU-OIq@m{ ~Z<)!a̤f\%a`CUzolND!NjC^smY tjy!Rz`JBhF@g-f0mukf=.,Q" ; -'nZsVRl!Yq";Fl]Ge$iUy$RߢikG|%} xrBPXY/WneU;"3IJ}-iv(RXQsf9OD)4 wk5l Τtd]4ǫnLk:{T Z 8lfWZ)ߕs!8$$N6H|/hn}OqiicWnI }v#!;( Ĵ`\]IBH(_ -oFk6=<>ت1]j }ej<*89S Z9P^r2!W<݌Lr|cĢs'qA`ʻ>бVx)M3BeJӇ9Ll`0d:)CpKk}[kl4IRKV%/aJ3UdҿHqԽzDlg6H.R}יF"sYpQ@XegyD$ 9\Q~=.Qfa>۔dFNr?h1@_MfIZ;Gʰll-.+: #pls#pҪ5Viӄ\>#ji YK8sH< $$x@/Q)s Vz=Z=7CCAlrԪ!Ꮀ6~k~u9)bD'tY҂?O:nzw <Ȣd`fa03՘'1+&iH'I{ؙ}{-3t,O_iͦ Ax"Pù̌s39ͅcprmw je8i5.a 4:}3{OU@vAv Xvǰ2״_ޝCp~Y)k*VbqCܸ`O 5ٔ-r; 7Jf@N|V\`rk٢]o:lJ໱uA02{i 㒼Ov8/h`Q H1&v΂"/o#Na%kޡ d q*Cc>T~Gbu R(O6,-GI>睥 2P>8'M0-)D4Qyi(ኋ.gq:n6,d CnPIJM8{/M Cm$NFEF4O UV* k+_芟}qQeqH5Wg?1HO$Y,8Ӌ?)ܵ JZϘoV[/opf,!$/OT S7A`ᢥQ) qקs1!MqG*x%_KRfGwؐ^^Y\-=6 c<|8Qy9SLm|aI}''"ql<jP9 z1aSW7(]S֤sɦ߅!@jo]Y1s֠R'jqΞn41oj|E^ga9A[CDXU`} y[HvHz|^* }&hP3[ T Mo % >7~۰Yn^ ֚v2\?L H-JE!%DhE/\nҡ1Ԧ2˔6Ev`u$=Z(bm#rEf3-aE}`Y+GP'w=>XB~ݧdSХ4C)ՎAhZHt`; mL]9 l9z9ݳm[f'd 4} L.1;4:!ؖ[RD|2?!};Buh=[7\pW7h# 9Bϖ+gQB K\JC5M6Kwt4#NplJbva=fh{:7d$OZl@e[b^; 5a{IEk/M`x)Ƀ=G}4pіI4r%:*< XsdK@%<&i3^1s "./?xK/krE# eZC1QYúR!FkO@8 ^} &u928OR6JڸQ BKXqe]f.C|4kߠx):Ǣ Iu(馍 B}O[ !ZKL7;"֬/v+4Ӽek~mG#x9D1Ҳ>FE99{{0ܸx窲 `Z.vqu‚ښ! +I#'i|騒qIZ;pNI=iMrJpyžvH%Hq|z"ē"[ ^ʌ:m<'8S Lbv&H)'#6)Q"$4Z|8$fe_P?ȕ`PLL `!d5$EWѰ _ӻd@uާ 11w4И4h֢p'箔T* XA,w]TE"mMl=TlE;*1 u37И2?g nr{ka+p]y_j:deΣv0 vWerV yL~&ǠJ\qEמEĒ{RV CQ'xdعS¤BYR|0- o\@av<`}s#p;CW=bT[ٟ\.>8_\I~ //OXfZR9``ܶW_5#bR4&\CI>}o|d=nFlxB4S}t*hUB#^&^"Ӏp ?];XGsUQN~8ͥJU=;1o3&c_ k}[ՓFZSaط|ߜ/Ϙ@ʇ_WZ毯x*=M[h*:}f+6Bm NӚ-&E&wry[M+|ORRJI\B Dˊ1#.s#x[ EZ@P<*оw_el1ܖVˎcz0, n+JMxb?DEDkT/7L]~>"}ݖy *"sJeKV]u;C+S@UΟG ]V 뫠J? jZG 4)ðR7MxW|kl=s"i҆tBk?ST!iɰ@V;luV$n5ƈ1'՟ U6Q9gL`Uس>;d\.(T/'o*R9BZ`Ms=G5]LeȪڤ#ҵS0dP\9- Q~%W|hUZ:K6~ΗVq@XGj<\4`+$i. 5YFo|[g|}~lwo$7N>gBSmMr̋#@!# i459ei!-f6D1D* 1g=iKeߧn;~'$uXlq~ky:NB7JʸV(7xE;&0\ (G٧j7%42.{K5wJ,1{ 36M,Y[@gj%"dc}(6` TFz9>Z9oB?yVsMm4\2qS^ <-Fo:!Yn ľ;nmą4;*s# ٬@2K;=_\JN{ NkTQX\|+2S:MO5~bAUQ |nPH_}A|/H ADZG2Ԧulbk1m(y!++~@pB[аl\BJ O7=, ?nk]p! ֫x;{\2޹<؅fRܫI3 m<;/-#kUW /< kiLytPRasv@u8ĜDB, OS9{8l1࿖%<>uVnATĮ"*aU%)6kj5h\!ψr@q6A:;feAv: ~@)}He-BbK&NksF c 5q0*rCځanXy(PrH7*Vr"μ=Lٽ'5 ]K?7H`I:%8&"WH7&T >-$ٔR5Xr :f6 "PyYtvFwdK2ۑ6=s@7amtݤTJrFh+syHMbՔG^vR9*΍o|>#cUY~@ :w߻}HoWnېxl2)a0}WG4rX*3J@+˛|7W_Ghu[2!0)l Pi88(]cluy  !7z5oI- F zz9<:~caӥ[~@T`m:q}SK邔Ҁ=0R2E>_YZtRf$s0ւQ\ >pڔĠK[yv?ܱѰg(W-gٮU Я;XC}.? \wSKmǯl‘5Գ0; ՗i)µ]2C @6-.{0:͖L|8l)[Vu3e`ʖH'zٯ5QHptwml2e*Ad-uɝ5Ą<X91!d2;%`@4۝tـx{[~@xM@ug4O–B_7%)Xa\b[N- yliW3H4Dz*>|^ʩM- J\dR5N4J8F|RLo'ē/V"Abz`-k U{-:\ue:K52cobuH^0^>2¹8}ԋ:ҝ7?ͽC68غG2 y3u %/l|ٖHgH$,؄ ۹W,  ~#yA=fe vcӪ5 #J-MȑuԢ$ȣא47RrsP'Kh<U3x>CfK!D +oP.1ZhɍHJ{h@~Y,$9sHk2Ur@+NWDˌjr0mzĶܒ o#۔ z2gdfF#*a֥"gn|%>;7G/ f)a РjU*ʱ\y.V>yP@arR<%Oǐ1%jJO1xe xqknI%*|K̀Wl_J^@dDMKw 9z>ӜjU3&+vA)pZ&xz* 12|ƊB'0qZߪoq* R_ ;L`k(Q!jyk~aJ$S3uagC]((J4(:ZӒnmB&ݑlcx:ϑ *ZځJsANKEXj2%8*L -wTTbaAJOP:ℿwڍklz4f2n 6.M_::R Y Rx#n?ף&DX6/=;'vN ҧo;Il݁A:Or`}!>/6+3{CrmH:%zO5!4o>#Hqiv$l5&.};[@ˈ 6!8lOKS,=AO-S|O8>xZf+m#&v4n{a\BY_.ۅD(aoJS9M5&$ePry^mX2A@"Z)`_ayVOO_._qz uLlXK̃n!ALVc^f%ckԨc%ґI?k1뿴AmHޯHƀvD5% w\ow :K9YjzRlZ;3z+=-48䖂ۉ_J۹%i1pUW#uIѝӂE]M{I(/,Ksvj,@!;Il>H@Rc~ |ц X.0^sN]k0 Q-WP ;V$߃eR7QR0 9E27c13yg^㿢GUnyЎK usdWFKQHх4k! _ko$uc770qsZ7g s νWS%B0O61redxmWи3l6[8-fߏ5@bm7 aȪmE +#;'~;f Hr;bZ}Π%zU:ȝצNybkڧMh:ӝɧoлD1s4f'#CZ(xwHf~ôU%1wqıS4xshG?R´!ׅOE^?\vfW=KVYE1 ֱ9cK"%ݎie~mHPkAOL_#-ųhق%Z. GtGAS\+חJ6)Jɼu#v:bw@zչ ;#,\#Dʑx.Ire'6 U!60bޏVސ4L!4 83N`wkZK FI\7>yGOҼ Bf쌤C?>3vɽdQCRLd29kWU}ClG~ת wgW{T_e!CX,UqVמ"!;S eY];"DŽgrOas 2Q=IJrQaZqOr|:/x){Izp I k%^ gJƉ0Uj6 5&|SF9?Jt8uK:_ŅoaSlĦxc#:oN0j LbGcGԣ[Ⴑ5 t u%QaM *PC\R23֔l"BTW{z8%c[2T[kQT/x3!mtɐil^(c8`~6:S<֫-|2{I)%,r{JRC7Vvəw7PL'L>ɊeW4J6nzK) B~XZƦrAާv[6`e~Ad, AWNTǧT5QN$ÿw,o<]LU8.=sqjuC?gCܯoP-hjׯ1G'1]|$b߰٩OFEN{6颴 7T"~b\AERLN| /9B4)EWDWQX|wP:bQk[ &57Lp,"P:cj}+Y!Q TXpƖiRLcd $5 ه)a]hدzsXJhVF0+[j15 h儡<] P':C1a[.$ϱ{TyNBg]<~u]b2_N;ư@i,KxZ,T sC€\fQ8+Nƪ3etbz=z!@!*::kLRuY)C*vTݣh+%܃d]6`jNBUyF&7U*4D x,puE#v1B\?p=p-{{^C#pqR' *OϣլUf8ǔHF́N6˚sxrv E"-嘱ԩ'5 l dk:i)>ehy啾dXk}4>bfi{mWLF8Ѝ675Ys2iplD%}@-eoϞaު5Nf%{b~z׌Jv/5^c 䕖jl2x>~ƈMʪ[|tޑ˚_WIjV ;nf`R}xZ$NʡGFpʓDhq$[E1%,M*Z R*l҄BYlZ5 .f".g^NPI[x,649tq$w^譸b:kW:S2kEFp$~hfOW~Ns6C-Ntx20]+Q' AJDXكW kO` eC-72CiU/_VŎjW}6v_MrloB'tY-;0+x1y1ve>U׵䷫`fAÊ%3*2[,df}%%2/͍恀P)ԛMve|1q8r(B71 G F1 q Sr^Jt4x(֘v| jnľ1`氿hoȌŊ_y<t ߤ]$[E9E\y ?{|hIђhǤZpp}0lf;C -AhǪeH3X]|a)JMqs}Å`o[m%*@O_v5PJ, LvHf"PU?$;kdž8EP6KOyc[+K~7RMW7O-DD.z}_xE^+: Wu? ;0W֫(<^ș}c1?5lzI[Ζ?(j|FUZkoptT^OD؋B]36HNQ5~UgZ3m))M,JohS !,ܭԏF]T"f[<2w{,n'5iPxvn)BoItW[t ~VrKq`^qZЊ6])*6DO4 H2Yo{̣0\V[ CF{VUVp j;g@tIksSpzT W ![A  m~XD(ֺf2hG|DD.}YLbv~_ 5.V;y "PXk.]*O~ur1|xT͸΀crТ4i7>p{+ĆO0@aEeՙ釋T[Bk(Ԟy0r"n/ \^arlJB56E5sɐWbZe&Kt{8d1&z?ܽCk%{UC&)fϹMhLupa_0\f..j7XRnpeAղC/ {!;MOfRvVe=&k_]T;|k?󳁌4M>6E(P1ݴC1 Δ`ۓkQaCU"I^@%{tX/M/gu1W0LR8{7(HFNWK7oCOAD|lCeO: 92]5Ur#oڒk k pm*&옒i6 r|;ilx0ٍ8Ϧ&h-=p>u{3ke^J%tmN2vW | m>L6'̅/7`N\k,Z ̈́'ɇiSp񋨢,Fۅfw?=<*>g-3B[N/IcA"L-Kkؤ[3)-! a yv7ߑ@ =PHa*ݼ!ףZm&Ζb ]xY;v0N݊RQW~?氕˗P骎/& s[fRM-&LIDtЈׇ - J}M9 ukpງNL _K_ib_Q}%mAd\}v}%&_''KKo+m5w ObNBg.B4>uR)T3Qx|RSh0Q@ٙW=Ӹ-Σҡߴ`@43T߬C%SɀqhTPSFrwjuo?Pak8TG#Kq1wH#sr~ٯ9 Mb<}`~Me3(F[0qɘEH }ΰ^H\1tnO*%7);! Q'2xӚs宠)`|s{α 8!,B4,VBƥ_Fv=\5$#Vl'w4$D|HbEK> @?Cp5oނV';&QsF&2̣mH9tD*CNwё*=|'» ft2CK*głuKc}N]&/.,)7Gon 9.:4OL..ɷkl#ޅk"vW9.yoK`9V 5( 7,U 1LE(.?4`Z6psM G쌻 *NF ڜWTC+Vlxͦ`̭?-<=wg"˦wՅJ{СDAr' ckYzHt!HN΍D. cezW˹b@$:eb'cФ 7Q[T3E7V_7 _?X&tФh֗ ~!'PFHLBP_9G`hyQ-eHiF K"?-zϔ/N3Q+Ԓ9Jit9?J eS.Px9?&lʄmM[ljݸ@-v7-G@ 6H5A2珑uUWօ Ksmeb-*޲ g\*94@|7P5b2J͠FT}$FLOa:y>Zl4pCekU"k-.aj ъ\ZBQ!bw&˰uxg܋z2⣺_M%\&ھIQvYXbE4}?*p/ p[%?uyg RgAukxNL%lͩircrA_͓dwީO3 + eӻȝ/!Ae>OT/fzZ\!O7u^u 8;r:K*樨h2NY_x>e@T(95(+*!1sI{=xX'Is"JaH̍nܼ{s$yKwl7؛5ȢMY50C2 z,Ex*?R.}~#:lLnh F{kkBϿő/J*)p3Th{"?eZP}Wcn۽8 {7(ɼḫ+A&$pb>vѪҺJe RA1b '.OobH{jQAjNB{ ݷG@Thw>klŵX񭫐[O$^/^t::Sʹd( $)OWW=3,%:_}`l ;eG[9eI[Fz)n7s{= xlAԹs{X@'/uf~X(Ê$$'@Y[G*$H— F=N{#`\ 3eǠy߼]j(|;!șHȕU"-%;Td=lC0? @(ذIqJ\E؆YE:+ެ..7zYuȚco+ Q~z?3o`Bd$zc;[U@/GMA Xo`['ņiL-)w#JxP{yO%jE5LTv @jK[t"zOsmbcو21ϋaX /;EN TsETK&:o;@K0<* Ў$ j!MHWxWMpwg3FT>UN%z7wȬ2t]3% TOm]dPĮn=.6OЂ4'?uPኆxP^ czi;0|^k6!NSDgT#Eߟcu}-ۑFh4S薞A%Ujdy!5Pj]M.Y";g}uȁy7nCP$wƽ=j;L+]{.O^Z4z/M-kV3֔y'y(7jsņg5TJ/"^!" \U827\(=L1;r@_Z]Gc, EAq<x{.%eueqn5bw{ 2eFhˈؕn_Oz"MF808V?pqQxG뉙906sgFΨ1Ǫ++< ^cGfsSkmt8( f?) T c*o< n~f79ζcÂ)1lQm媪NL7퉼j^( (6/'Ȁh$S 1Ϭ_1PTʫ=$kL8 r.jޜgM(¤tAiCQ#AJB[)0e'ܨZ5)c"P/6'm"~`UNͥ/u*x[ʿdNԊ~u),y\%ZCp3MOn+vzĜ ԗRH27L}} /~,p;|):"*G%s۲*X쯸Ml|޽m 5sZ,2򫣡夕)b$a;w> wѹAg<85Um8_@䴨L1*m:{.A0-tࣚs mq)|lVn }k" >]nS>V&pv~ kNn1b(F~gc6ay\]ڣwˑmdX}إJ/X'^A(I/VקggݾX+^Y)K5bjj]{6%h7V,WZ2A=fkfLBD_Ύ+} `NӴ:c]G̻XܓybﵥٞSsi7Ҩ k}^a!'׵jaGZhI( bcb)j8\v=O$/y e$n_Z uFY [Tii:dhT͕|:1mצsn[9 Bk#_6EsȹEPx^-Z.g+ ࣜo??]0? EɃC-ȝKqa~RiUBCH6<()Xn"k{܅r20 U!s^ݐݝ>8ߒK cH_hhL~WǥPyؙVI Zo =ne;g6m2`aFBN6=%D.R7.9<./X66iRu_&jud@P3ctV eT@?ibs )i)F?XqFyۜr̥9πN֍x.ꢇma 'S<1x.l{}>?-ׄzI~>:rMduc 'R=r|۩h YS$0,6S[kz桠ǔk`@r MJg1+A J^/X'lҬb  %ψaKLrv󧸮QI|rfkEϝv?ci:,x+: pdH4Fߛ0Hhf|Q -uO0F`1̷2)f)W%\ WoxRW]eg×5ɦCo dB{W}q,1iuLRX4{ >}7:+׍U81I #n&Zp41֔&zƗ<dXdX>yz6-ͽ>W- ||^tF߀4ǭ"c;ښ:D&e4$ Lnxڒ%o*^lXFEЙl'EĨ'}[2 L 탕vhْi ǣ |麍u>_a k8rKiG#[IG%vL{M\/k#ח;Oc: FGDԫDo*XZCjgÆxmNd`wJrƯ ^|3=U2,Ǿ`3bd4΁?3sj}L) EPn sgZ5uZᲫ^k\,wQA>O{+`qL_Yё3KUΓ  %&$Jk2K[Å@:2;|Nh]",C<=:=f?!SJZ`LIcϪ`yT8¿͠3M2Ҡ6LԥUX<)Is×͜K-~S p4X<SfC yJgX$alEo MmXO -9`*ִ5{9t69=DAy;).tJ}PU+9w2u2وw*rՍe&5"8`KuI?_ՙjZ 9u>Z@dH.҅X"DvUc` 5ș>0B\~NMF*԰*ypS^CU%$h+Dwy?l,Y{1JrLtR X$h̝AeMK7He(hհ׼܈QМQ1:hBoҵ BCDl&$2e>iu>gyE~`5zShy!>sP9mG9o%ɭ^ e [߷/!s; /E72Eg T!I"vѠ;e yUzP?MBtk%5 L W8` tE]Sܯxr@"KDlDzvz5ANy LF?z^<-RYfd3WKv@^-SK1cR0o_Wo껚~zLG۷b&dY"ȱqU\#nT HWTXy3` >S2.FJ>;pCTsBs;rĈ }L>5g8lƋkp賫3tnt"II3x#SY4HHwVK˂T݃kXfAhl_h۬r8I"Bn=53ųc'TRQ?`tڝX.)Ecrl"B.u~ 62TC0_R.ʼsp'3`k?cuyz P؅H>' ԫ Q!aR-L{[4ѥҶנ|l6RiKE3?t-63%}Dl+*L3s+^."Ww$:Pb?*SHЛO ;L4|vsu2=1~xߍ>5lpsm*Vauo|?KZp3>"$8lu ꂽ,yƃ:{كY ΧNBu_'PT2N {PT8[бٖx~ c" 9h  >+=uXBWQe8MVA1ir4X(*|XI㿳dd䔛8%kk,$D32M)x[!Z/5(P|1yАRs]}@tTPdFk;5E-0Ǟo PKNe_([W7'u42l7:V]q,sr}n/j9_E}IZiCbL]u  eNz= ӁiwIB",amn]xW\E Pf Qj1U%i:}4s塂ZgEm'h P mEFT)T>lE@+u?pYA=^E=T>Q k|ŗCgͬ _p yCwFv Rp ?B r=@dRf|#ˊ1 .ņ-ΧP'sߣT[#Yf(#Eb~ /J+n1F~]T\[G:h4^oĀ ПߗCVw&w'[Fk|mT'i*3Sڝ] ?ecK@:oC'S0DesE=M7蓽04B9g-(5W;w:{=HC^pzrMͯ RuR޲dRiWadZiuǛnMO2*Yc[k1w9K le#<L#aAi0|Tq6M;Z6v^ =.z3^:pDuhc[F&ZЊvbiI)wXSn}Y45PHeU64e*m8Z:q%1s5-Z2o+trK匉ʅDzj_yD:Ih$q+47Rl4BQ}Io9M_eZ'Ok5W"$Rҫ9׌@Hiv_@h)Œb1C)1 b_@]aǠ_wEj`E' ^TF[^̰XOH갰SY#WNp&V/_OcJykpL֗>K|JV$'^2pZmg<yX|d.J4tnr^ڦ)RG9tY 2 z^߀7=Iu[ul: A˒)MLcML;Cb X_G(ap*w 3pMM CH?C!HAjp-Oi.:OuF"Cd/Z#~B[%ξ&,!S fXNYUw0It[^|q=˽ )}"Uʯ%w[M -ծ+g|IB/a&;$>+IH O}υmï?t&Ї4E A484H-{J+ݎy#$@B:!5TYa 0 {Tr GgDSk G&gb#;f[xWJ4>hK8r~#ɓIHE6=߁LJ%ߵGqm[侬8y6D8)HӞÑԛBHLh~&$=]#uggjfa bĖFNɓ?P(:#(}EF,71=:5e?w:{ +9L]bOcb GbD1i~d9rʈ 0Jދy-K㈛Ht 6ݕfA@s l9V<}3X\A*:Cs"{|ft[5cư@Fi#g"2hKP*nRU0xr}IYv;y@ahOC>򠝭ޔ~o?,CD)tq\U|.m܏9O̻f\ȬOQ,4;U_7q x/hq\FS2>!y2 w:rQ%[Z+?| #j~1%}Ng Comd]# Y:(Ͱ*\|C ѷBNauHȉ}b ѠJ#N>A'U8t ϯy㻨y/j$nAqYZ[6`-bL@6e/?TP|aFN@U~q#4BIij-lV|Na =#ov+~GZ|,ɍe^ Vb9 ?"'ӑ=cHkeH-H/x9M;Ku,/?qBxξgP/g _w'`8}[ mI/ ^`0OT;蟀j :Yh'pbIWa#*BzJWrWv|]͸mX||h;l Ϣ.*5̧eV,|mOouި8S@=s?%giXkmw21zl[)Tzu(ޟ`lTWS, Cu̩|W,jRN DqRoll()/[4wT)C'wt$e+%l_dؽEVcOy3l r@>,*xKRjj-T팊J;iYMݖ-\Y<5ճ;=/{8og;(mj;2f!W5{;|eA"cEKq][KY)QGhq-!rZXa.}yJEs~{$ΣtbØ_"` Ƣxgy_o2_C[=!P1jcf(d!q0j}(0QoLWh-mwY8d?xE-8Ly oml+w`+̍r˨U0xVIadc\ I4DAhԅ_Pk< xu$Y.U\w똈_!;}%ĘkʭK$mXu i+)M A@u DNH;,nk&U(¦tz瀼ݪJ"312٣߀SxےLtaW۝jrCˉD 2ayljgBE. p;ཷ(#e1(îBp L"޾GjujO+Xebh_0ef.1Wg5tzmO.D1mafyrH><滮gahĖ;w# aE K5SX<1kn ^OnvunT.@@s=tJŠ5E d6m ˜j?VxCI(cW|(pѬ82[&}Ap1L7cE3 oihuU# TKOeUUR=c~ C,\3UvB4)YLb@ r-,f? d5ot %<^hb E&%!QXMi)qVC>ZS] o .X%]&LДwzRSVAdKF$R%# {v] +|Bt.[t <&e kC~~AYCڴ>3vW\;b tP 6<\*K" =WF<y6f'ǔ06t '̊+-7|Um&D@ VQpռ6JNû6a SFK'xvw("qk.X Ȝ2.WtH ']U7It/)Z^aK2a@n#'U{\smc-lЫgs^dmEGut5{ҭIyL% ErS)xoy@RA)0dMɋRqT9Ƽp.q00V.&6G}(U$g?+[\0 ۖ)A |5ZS{z `4$w?Osƒ7C }&egx5fpLh'mǎ3Ӿ=2[Z.|?'U2fV\w*^V 6P 3ݨk+}65p.]e,?Uk>vI6 s2콮 ?__N jz &ߊ{N=rx7Kx9^\/rM@2bzP!YCGJ{`:Q"[@6?4z=$23lqy&ܬn"b4VJ].s1-b.|nxj }6c#4jd^ֳ!{G񑊎tړUNCa"t[$6H8],ൟ؎$̿K5:&E3(r#@CCgY`Q@NmkyDYB%XY1zZIPɭF {yAVᅀܦН6uG0 _婋dcƶԀ3YhʘN##Z5gp ̊*2!tCj*u~,(P:4Up<&5X"O"&@.i@'Gwy[ͻpoL7?LtΊkN/"Tr68UQD`VhHv)+68ٚqh;J BU3 ͲF/ȭ6&A!rQs4.$v~Ej8;1a/3Sѷ> E}$XJ6VmsU!X[K38!SoHa"ʂdbヌN[\XyCiSw)e\x6f~ު\ݍ"53 _B8L: |CHby )8 J-~v(R\֦LrJUH`{c2N@+ߔ:po! ZBG.y]ITqoXY8tkNVFqhrV#H UzۼE F:c-V|<<.Y2+T2݇0d3Pr5?`[67¼alrR!uX8Z%7M.CA%EN$Q F[lNhkUY;ŀfq45Iu@<(" ­,{Oumݎr:ƙ59gŘV@;!^ýi3>2^Ah#&f>N<[iu!3~Z*i[`_Э d׉vK?~O9mۍnp,+l^3+k}@-gUnYo>*>վ??.j4 =UT,Gj5|_% R ;~C w,k8ChsP=e__] .)(TqF=WEPy?k)^xd#zs-麌uŇ<ցZۣQu);t QvNhTK$q?ƩwqkBFybX65ď']K:3OS}x 0bk;v*T9a2Z 9Y#!W@9'`&y})~YII+\',x8/ } )fK4Ȋ#u,LRv:VBoSmcZWRfd~h%r/뛌n0J 6rkDٝU} nT-{޿+~;xadHM @KjI\q#Jeԙ( {T@<S46TPy!_EeLdc`$賥*!/_g>SE  p0#D( 6?P9M(+O?lM)1_Wn5yuXym{#5](q:͛.c 'Dx93}_56!ԗdxBaUt8"|`W[5`wHn<^~0z}yζ/olDNIњnV3fy7Ajm9^1Cr]M %v liѹ1 h][XwZ^ɯб5Q_|~PoCA֣~~m io`WML=AI5N+@ҔP}݅@= n TU &g2Aoo?G!:sU*X0ll=΂P%S=Gmx%vAl >zRdU _*͍z-_0ffvt䢲tQ_Vb/Ƶ ?D7`R65o~ (Ipv@T`ycfgqxTgmnM:AJ&BC ۗ݉ϲ_|ϓ :?>p\|/RnA[', V9?rDIndNM N*g͈ͼ+zo^ !"WphY[Ds(,8TKP6DA@mۓ"el6eϳ'`.\Ej U^-SL,^hNiFytN(0nYJܡVhzWu\ԚL1Xl^Z 84ޛBն԰iNg;&q=F :Sl^W2H'פQ"JQWHiJz b/P8)kwdSC d "w.oBI;|Y}_h.~d9]Kw0h>~*K7fx˫*,JQRt31 }yԗQdOh -(aRU0}}@X5~-ju]3]jB3:BsicMVA1*X ?i3ʝkjJK5Hyι҆b瘎\B%0E1Ipo`%c1GsyN!y`ͅ#ؚ&`{B!pqAjpYW'"n/ߕ+SKk~;f`GԉZ˭pTDP:Cp͕Qb?>ˆO`2.ͲYܟѕs 2:=&=7BI3D(| |Mrئvl5{mE>֛U@C-:-3m6=hHcdMCkLUnC#gFt\?NMOPKW b7/Vݡ}L>}giCcB= z{1 !o 'W e$=W@8^- Ld@gInq3e Ё*䎗y4Ug/EV5))p ?`60-^)]#Vl/KJ;Y~P^H!ڬT ҹsn`NjH*ɹ73;-͌mfyinstCq?;!h{=d: ^UuLjN'.Ziډqn!czC؟-Wh} .Q|ޅM߲ETz(+ޡ}nW@iѱ|5 86wH@l)&0' X$76{f EqG~l'Yp/ٝ 7cǘnV Jdv iGDgEp!="֚1 V#1)l1=8rkgJbz(v.; ]̤NN?4]SwgB8Ua¯PkK݌5"SFk]\T\~@Dz! / 뇭jt0e*9Iv5!3vh:<9a(jI9&f<9=H$BtLKHa,58*Pmssq"-9b 45 RE6_Ғ":B+uE7lc<)O?ۑQ$[BD* uA}ûaF?!e^LiȊU$'1T4V6_Cp-)w4Wf4X(AoPK TKoH˱aΏi7Q竒ej|ѰIDzz@iO~EU=z=ۙEp=(6u?P6jc`hgf8Mj3MX oMTG׊b4Sk]N+<GB*z!kQV7#kv +Uyl dcN"xpr8Ե HWi˨+۾Q/5e.P3[vB)gaipu  Mͥ ozK|(ȑ2aw["J\fbUͬQ~ 3(϶Ib_#TcߔIf-U |;@ ͠&s;pN"or3۴o)}NT:%Spz1_K=k"dŢӍY5c?7 9' `+>B}/30GȈvxׄ Ụ/"?#y=k 떦J|u)ewT>Jԡp&Nj15me 1B`> ]E."t 4HVz,c+j; RJ.VmA#х.G73{wKɶ@N!U >_e@E#T}?U:gr&I?+g@C'61j—+}An)!9fxRxEÁM<ʪB !54wA.C=q8[RgQx3q熑SfR FwcZGZ2/n(_d??N[N8\;KnTr [\=C4sǩBc=_zI+.sYҝPȬ(ktV2bt̆Ul5B*q{2 %"HjI5gpCqc c#@ؗpq5?)@ݻ7h~1GTFN1UN7682qk #-[T|h2">c/mv? *\?w!507Z[ pC}3FSϷ:Ր'Eˊ}o95Zo(ޢMoVm`AD+dmW^MϪT R 5,[1{-͵-}%Y!)%vgpB~#vG6&Tei8T^ɲZǨT;=4;@^76(,dM4b Z0*؇h`=3ݼY( QIR,$ƙQ⡳KئqRŸ>_4u4%sMnsnCA]I˄sɱdfψ3+HqF HPqv޸  L\asZ1󸴇$&)QVb=.xSo"^ )L4UP8!7Ȍ4J/QJk;"c%875r ph 8NƸPrVe`!mwMzG0;N0 Qy dOZP5:g#P0ȜuB_sZIu"r}/H>fLi8Ub١έ!2AlZWPCv+sڝ `QsW]e[B !{Ңomj#0l?}@ի}3>pLs]KpA:]vըAZydSSfErL滕8򪡂[u+Ɇ3Epx$ ڀ3I6̛8'fd.K"ilZr{IBфEˠP84t"I n閩Wet%U&vϙ`k/a\7#I(՝ P8)uv&QhxlR)L*o_ҰE4ڎybǛ>1-َ" ;?u4X,**uns8T'%˪r{~Vh ^Y@>h6 E ^^Ωx嵐X2ՑnRݩehǺj$-S>E ;YO64?!Vc)񍆧K ajAepW@ O CSW< 30!~a7d9n@]J.&=f'΀ա;Yپ362۵x?Nd}DCECѼl"K71r 0WVOڰ9t>Z5u1I;;S+a֡g=񚃊V}qOOKy:T F_0>P!SWۑ>SQmܶL@'ˇ:*wN> r :f3.߈=BD+zaNc7[T}Lk{R7Ax9 G:- \_u{SJlFWl9`Wh6߂Z{%Fa/t \̷vRlY%{SYfnrd|_y<01!'Ŀ+i|Y?(Kol|6 gk|EJNHru~v ?x0*\CJ"ZRR#'ڥӨEհŭwH%KXV!JV'06,NynHƄgI;Щ=t8y: $H9C3KCnBIqX5]K&E6)]Yy&Zi}jVǍjbZ`0.2, 0RXH!ȤkE{"I}%zViNA3`TJVrMeς=MJiV]_-6/^6 wᰋ=y-}=NgZ%›4%؜4mpSb'Q `cHM4S[73\d) h9ˣ"cK@o/hl/SV"?|1螝LXW6a"+" m;(<%Oښ>-r_{ "y~%~ A1Ь. Jnõb[ ^vMx0|4w^DRek%!np)ʹ6у瘇&ݘ6',{-$2G'7ujc?#[&KF?jG,D|4sڜVȄgͳ2>:٭dDRߖtыyEŭ){S|xnkw vӯmᄖGyL7 4>x3a.tq bM萋Wj>ƫenp xS6JQdK@s5H@9{aF*kEcGs۬>2KДa=:J pn-bD3c1mDMH[Ͽ~Vcj(]ڛX;ތfԐ\8EL EXPs%'FIwe 4򣺴OgY$, ࣣ%14WX*/'U"xzPPб 9Ƚ8^4΂3!XJ rB,4VV\E .1tnԩ~` J=j nQLbO i2+p<7˹Bg;0Ѱk !mPvd8OC j=gOR~WYmssmY ‡[2љ'Ȋ1>*6WH'XŶzU}U0kU ^ڽa@_pe1[sFYN~lt`!o:IdMV- `j(5J`V]b\Q#r&Dl0`,PP%ij nPDHc#'|W4ǫ6cHvm;r۶AE&XT ɗĶ+"נMჸ[8~uν_X6Ȭ?,a/AcYqBC$GsGׅ,~DGu\.&)̆x IMiRi{qVln뉐X_heߪT}KV1sJ#sSбu7E,Şϒ좒&*}r$̪,^xߏgE JM j ij-}t[[̹.OcNh go!)fw{o~]|~y8vj=GmtC[II# Y=;zz ގw*uI>"YhED2X9!LdW#QpJ;wNb*'VZw28Bq2:yx RdBofvRtȷNYy4L4y5Hx{(uYUeI#OݜU~A-.uu6+j]{KPB ,\!J\38 [ynciEk:Su+#$$ҎlI6HQ.o˛Ь"=c9%)OQ'E $,H0%B#z rwk ^.zg h_^I!lV$$+n~V\fJy40OR~U_R.čv"0JԻPmL6`xf2؛[cOyV03|YJiVg+^_Edhwʵ#-2PumPv{D|'2:*$"p@$&=br 4C(d]e(w]׷]ޫ(,iry2(!L)30 D7*9+8[i9; _"x5GzfWB9x*"W mS{'uH`1" #?4 ,A95?Asq|or=HcrNe=~eBUo:pGyptRwUXT[Նi_M_v,/)fIoGW^O JV~?mEA_>~~L0j w?AHz7ıu X1ét=:Z Jw5E4/Bp Hݺ7Ï989 A1kC91_ Ԑͥm{a xH}9 #Xij(edCdhBt>6)3Jl.mYOe_n}SMtӌ_sAc]:4!:~(٨AJ lvd\!v:=m{vA2ׇo(ҵ @ISt(8f9t­Ze_#*V&EA'̵shČgKCY>3ECU U@JgY! a'" 4K^3/6 l#N>tSBhqqk^q,Ϭ/lwSZq0]u£JS#34MSs+@<\"(?g~ȇES#byqV4z7[ʖR֨_neSeD9m-䔋1(Yvuަ+2%,/޺9=h_TߎP"zѽFr@`JR!gObx"[ Tox 6@-셚O;twڞc:XeѲ9P0(jp|fXtU` j2D²ڙQwCl] wHy5F[6](ϚT#]i3ȿq/8w94A;IgL&&w| ^ǩ΁N5n3JǞdUֽϋ >{C> TBğ etv8Kl靺BAI?>#]A5V1H#L64@98!*0,6E MO|ʪ< A+ctDLzBU'rM,)OܓYիH[0HG7՛D>D#8`8v8tߴ]uM_|2]/yD6䦡ͲQq콴9EӀ:VUp׎wr ޺93)Wf|\T|pڜ'-֣"(>0AJtIFy, ;%rO p*+䊣4YŠ޷EhduқC&4[ -Y{{醵8t MI;Jq I (`nxᲬɦ} @{C-kc+~UF;m""'&BE~IYֹbZgl[⊾hG DQSA>r6ݿ.Q`dbkdw0"2tI/58',LdWNs"s5xS/-j]'~ܙMqPby YO7h3ji,h_ykU_Ϥ֝R]'?N ̄YU8TRqKk7twXyPxM 2~t,f;jC #_Ǐ#%KcCsit F0v(:ǣI]wF1k92Y{ ugIf>TF:dR@~hm s:hH̽+bui9226@^ z2v4KxLG9 U| kɹቷoJku!475} k"F-s{ldifa Tdӭdptv׏֔2@>(cC2sq9Kӧ ly:;uU| Rd'WOHWf\,\%jK?5M8!$;01,ǼfPL/-AAh8 ޶gA00EbL" PN3Y=!^Y ]蜱LEh늖A=v9jjsbU geˬgPJbT?xuNbB@){g)w8dcPX Qk"ofä#Fq'"3m!>sHy|#!:"1oy߭J{sBbI,^Z<4ºg I[dZHp![E&"頶^ü*;wYT ~ FcEY(n#k||E@`-#s R̠4Ьo҇,/JUAb@d\q#bx!jܟ$SOUdO#BרADhlHxwY+DA,)4kU{Hi}sj]i%N`;. N6'2q0 ~F& MhQW{{Bu?wBbF#ՎRvljɳ,3n .a-4[E1:h{]L2Kr*tz7Tii}gO"O~Ū)QpbFЋk9$[sI7@%z+ pvWҸ)Jq5VJDZ3OQfb^1_DF+BuMAҐv4H]yW/AԫXȂHLZ HIj疰O_ddSu-!zMO׶{[1ҧ ljB4>4*Ւ;.S1cp^R$ng8W5`XO r=|2O%'nN7 >%PR6i򟝑ޙP}͐v +e7Ϥ3Z=amf2{OO&`heh!YE!V&cRůpmILDNS4Pyi`:*ۧ2ӣq_j76~}K45- #'UB:Rva߾aCյ kQ=J ,G )YcB!.ߥUT5w]^f8.^t%͠gd xBDxAm6']-W7qZ4v\*!/3f$6+ܪ (\|>5%-Bߓ"!Ypc2!.rPX;+;7 5lʣ+K0>ZDRoQ6n-JŞxXpv8.6B~ e=EY[JegG[1!,)g}YhԸ THLQ%]}`, :xqU!)v ߕu*NP9*ys25HۤQr>tlv<pfGh1OG2(L< k4zyPNrJұḠBzѧL`uԣ! xڒ> 6TO7cTYStqِ7=,Wc6(*$:΍6&nyW?8yR 9UW P(Z"s՛S(=yr* hgx팰/zC> ՍH5ѽ@|V$sQe# J3x pk11"[B?nRD, RRnnfJV798dRD15C%,#9qҵC3P- D'Z Pު; CA+si Z` oϞ=Ts%kM?Eg+)EK-ۜ3J%AK?{' W ~xEq.N7p0ޫ>2\Qi`zW&)ZܶrBءhZTɮFV'JA/5}5jn-m ߮V_\{Ya.8NhvG;Q'ݕrYO~>_1 \AS8cx[J#BܰcTaxHǶ#CiD/Cel\(s+GH*(&x-`dhhaI!3.Fz@\ҴCݪ^7A%ƦAj'PAt2\ r p^8+Tͼ":Vbr~fEaGdRdz/^[9yT+a5YUح!]'ѕ|u `@,*J`-6_yJ9}(Bv;$xjZn%}yrNHn ,L/̱W1p-*OX%Чw'ztLJFu|+[y*-0`Z6ڢ9#\_sB5G8 3$pm E6t[,U! q ɿЂТ5 t4HJT2,'F ŽZBq{} B^q2l!͢f <ޟ^Pz\3|rG eFRd$>=5=. 9uԾ$Hgz hȥ߬AolUcAqʩ ItpOin̩̄@WNo" .˞oe CA$'T"K<M(JBb1vTi qzн} V4ڙA PY[,U:ж.ōyC })pq7hI ;r3uh(]gK.YU&9{wdg~,PKX׶cDݿJى|=;HLتvG-vX<aDh _q>~:1vض&dEb5<1[B |T% E¡W=3{VRI4]Tу'K' /o5vQ/MK7$  =5M/imnj5#t&|?Gl)3o_Ίk,#UQ^P^;A0+ }(% (!ҭ>$mMO\tl8F*DuO*S@#)bRah{H߈H^ըFry23 4hދ;.DBq.o=(| G}O{-$on]ߓ[GTG*O_rFS**w˝X htѥ&JWN25׳Bm|_!K/eϸﹹB٦IEՏ ߌRA=1(-٢)ugl5i9|Ƒ[Z\>톁:q /_3[PFۄ AEECUDn#"3Bgko5rVD*07o9vamp8ħTґ9^ l3`D1p^?,5 Ҽ=j)ik.;%;}2 hãiS(pDc/oDLRg>Gk&^"ekGz/p3z4EhVEn&+sMbVb$Nh4~ZՎDu&08s:7lDuh\:c5E{i/7S@WG9KlKGrNLe) r?FLܒ:d B#(k(ros1㩔ĺ MUӑĄx\Y.C,%OH]J 5`D'}̲[IiN%xəREu(h)mv n jvm~ f>zW26!p* O-[p$MgO#2rC#1n0`ԙmrEH9cMH |2? +vpsVBݍif{ФD,T Ql;A/ٗa* c'F `rMDc\ ռÓQ4F}w~'z2#ECk`'SrH UNA4آ۹9zq{BVlj)f)8wX--lnG[1C 9t|'niÒ,91Sj3q|71n"gyR$Y^[RWf}Ȓ!r ɏP_Rz.ٗ8@&dM@?31{wp<4tN8Y(wvm5xº`TDaC.1L11?у&U3;"AXaNl. hBp g2/qsS6z*Ch HZ_6Dq3ȅ5s+she^aA?Ɖ!ɵ͓0d->YxF~艹3#"@5(dس ȇfy3cWk)~tWq8ӱ&0207z ģP./A=gބziHM)rBT~Q8rB~FeQ5<%fQhB&'j/M]X^W_3p-ܘeֲs#PTC ? ml%R}M~`se'>]BCOLG'iCmr)E-Y5YPXBhux^55$\t 6NoGq}wd7 I9Lb*~ 2 'VKiA =.5R H{o!5(\FRn;TZZX&e]dT`U Cpq`8['s|4A~<":`1b;we8oeF 6^p#u充F(;OӋd`Sp忴qன36C4j.0fS+4.|bF.ӹ#$.y{$Y=,˕`/=.DhxU+$E]weR8 S{'&fb{4R&L_l7Pr1w>HM(ɒW}})#v ^hXbRWoO{*V|{5eĝDgu|&W࣊us~^v7m,ֶ|3H87l| .߽5hSs3Lj`a8`-bfOs "WOk !c!. 1j*Ò K/1;z,y'|%K 4 en,/ 0>f? nXr#d*Ȩ;,g}<;,͉>7}/hNPlA06f بļ}=*ۘQfɍ%E`:hG}lYvn*FWiv"a29gròlڭ+w 3?rWQdZ7okZ 8jƞUH6xPr eYnG #ņHE$R3$17`菡D;i@yq&fuA9kZ=ܾ5kQKTie#,4d,zA7d2PL?9JSfU]P6鮒Qu; Ъj9?2ܷ@{blveԔ0oNT+:1?8 47@%l,x*N>Ves:gqᄪEKYwP<:Hh5tGw k,e shqeaͱ$BAud6^7r8- :XL<ۉaa:WH?>iJНcfU~Tޤq&1@- +N@ } s-m4BT}'l̎0A^AeΠݽ"Õ4ČbN˼a@NaI51*Yam5څzCqԵE<Hhq15eE͈T``&΀$%-Y@!^g:!7԰hHӋ'71*d 27밍FG8B6A$1WUҸPOh"$U9]08L˝5_ IH;I++krZ Zku)}߽U:Lvl6&ΪY`)!y27.= د^%KWa;~=qUOHp|q$R)7tv >+GNOA"'j4/w =fkU^I~0bK|A c0ծr +l ڤѳn /`!4FryKT4A:o*ĻLw9o–A 2/z%X`iufތe^7j{;aJ]죉8ľ;uߘ4&"nt |.XrXЯw:(CVy fwA5ѫ 6}Ww'{Arr)lTim7qE *@+U*=ft6Ў}eJmwagO0>U($zM >|M,j( E;˒;d~d˵i ]w\ ,>] s<̆GԘ弣kԶ$?{%ahɶ xMCx]}ǧ!LMX%1M1̥޻?`WZ"J"ȣn6a7y.L¥#<HOn.SCMztZZi=Qg叡ex!ʰ#jDB$O83v7=ւwvgV\ f1PJa1RhR{b1GZNW2&yRŅ$HYnUn Sm5v?B&콷'̶{-fH[+sk95Pr1QJY1zT QۏRG'K%L2)&Ŧ: {Ŀ4ggmePWfY˱թ^i=uRG&_$_\ wyl"1YlmxǏAh,+6"+2zaB`:o6S3ݑڏno3T{Qhs3լ xbh醪|WpDBwc-G+WqBf9yLmmlPXm{Yg1a5HCR_#Ꮏ!b? sNְx>$жJF9= (h^e/sh\`xQмH$V< |ű}<`C!~uYqiXu˃ 2^[zp0_ Kzvt[vBHѷja%~ƒdw&et` Dϻ6 -@|[&9zy aD9ov3-Ŧݳrh2']%FKWlArKH Ξ˺>S T 2R@wƁ5+*A1K75b}IHR?A0ong1ՀV$Zf`*'K5OEٰͫnM.מ^LTH)`.]gg_6$peocEN dlW086gRx=U0yM_Q3N8aqcĒ(vC?OIٹ Ip+!+gR<{!_-&FF.`J}%(3TWӶ%?HFE/ dP SK8XIi°IH4tc{Nw[-שS»Z^kE]yLwդ髲Jp8Gҙ8(T~76>miBt|fgQ ZOpz))B[/WO+a3b5Hz رO©e\^Զ>7Uvi:\v|SI652MQfg[ƕ|H?؃r*ɮVQ,6{qV/6(LXv66QUv{Gt .Fœj B|1 g4 J^! 2}lWǁ%ӻ_{QϯmNRGb1܎rJgU?{m!&f^c9Tq;(IZ+/Fh w?wF:m,tW`և&\O,UAH%H-LR$}e\ǤJc7X $3] 5fkuhK>3zeW5}3IL!A6z* IqC0t9$Uҙ9u+<Ϡ̨br]7R(Ex:k, VLV)[]au&Oa܈Diy&Մ F.kIvKi@ո'{ICOD5iICn bfOnЅ`I:,N8 ʐL&[9d]%1~yNo$¹)ippvyryc!Eܫjo+q]lzeH,bMZ|04H\E5Mt5); 5aFjNZiR@eezPvۧ5 y5)Oz%a3\-_w,~ARcIh?X @ԜeHVmDZ,(}|}ep5ڀLVwIY; d(q j({wY.'fm L ۵jWl%"vAЏ`"i"|X["?%j| {ˎdu杢6@r* 0,A4HgM5hL7wOkP!g~#͛s#* LL&&7EJwwTdi{t »dxz[gVDkU< &GI"}#Z `p,!@4rYêƼkpxۄΘ(,jfze:yM)~/2;挦Q>D٫H*]z⇼s&Pսw}N2/B>U >L.m^E,XCB"k>FU?oz xw6s9S7AEiUtQCwM%TƭbؖeŴ0LBllϦ|kJɓ h+{;hzSȀ7dڟ|UYR->AG]2lVe,uj,`JIg;8/9RTXmxP 9VѲ )^⪩+p'SįrIT*=+9^Y-lHp-#Ox^_ߴ L;NJ||3KșV@Ngy֗Q4+ã|*mVIj}II~J|dtrN}89X1(1UNఅ0 rb er*k`D Mi5m諤XLB[$ Lݖ6j;#/hK IQf4EMOSR@i=>3 MW ]qĨ\gwo56GF8~CSN+ջJwV/͛SPvbAPrg?}`epq-8s8^Q/n(vn7v(, ?zvƨ$ 4^47 񃇂8:m.(MwVr?tN[>LaNt7?,mb7;P;g |tFFЇrDWSCV+@?T\ Iƀgx;N] 2M1FlRN'9zbGCpYuYFt_|r{,K[FyT)__xs8:m~F,֮~02T% Eݏjܟ WAGc˘xr7}n#^I,@;BPF4kDeȗ IYԓfc!^" $ޝȭ*&?U'ūWL"F $V=Tm9"qlG%{?G$*%%xS"Z41R,q,@$/:8Ax'&Rc TSHtϜ 0,1źj fjq EEE/U1U9O*?-wZyiO"00MTu ׮Iļhcnwf1WԈ%_1:W )dM$狖vPui=*❞p{#8fkKhӷc6A :~5oN#vIJ NRo'/ 31M@VcpXͭ׿<UlN=Z mAM=le[4ktf1jNI#VKn ۍ oC܀EB: DeJxJ| 0g3'7p ҥ׀ŮFK"!Jf ,P5Ji7F=x gB&Pgp}N%4Hzo[8d3v P('l]gX}!z5\K\p8%2}tɃ̵8@i EX1gre䵊υEFvF0$;%n7P\W#ԍYUϱUzW֡rLKɥ%;>:ơ7fA5Bv7:;_?X˔Xk #)'?@@1n"JǑD*"]RLv;͹`R]^~0)$@O/*-Q!g$T6"1AF>WCbqs$T%3ߦju..tf9ks/waaCB[ٟQ7Qr@54rgm Ob%GCA1¯b# ajɮ"X~v+Xo涷̿MKs*7Z. ܚ@Q:ɼ6]O\rET-zncn6Qϵ틑y%qY14ɻ%XdDV^#{VQ Л/p]#g6w*wX "g/hpӇ_dSlxtbȹ.KrҊE4k;8 ]X~U8n/<[yħ7ͅ27UGхZÈ &: `u CSeK4&<_FY{1޿A/\w=gk֫ !.Zh|F6k %}5 b_XDH^%gN'0CbгAi6Zٚh.ُ9E8)|0F5ze(⚦pu3 MѡI@t=,c@&Oms4q{J<XCyJ| OjnEBga?)sD2q?Jt-ZԻpBk9)ff1L}..~v\5~*ۈǒbfޯXrg@r xF-Q`Io3Xw{Z \O՟abcpH^fço^jKXU.P6qnU'#rwDK\UHn"- [KǾ-^ΟE{i3<4bBۜ^?k}I% ?LRGW, 9dA|Qt}NvŎRuxJحXqVWL'H̤i^Md|Pۡ7ltMe\7!6pTH͂,$O^J,}<6:3^̩dprʇו7n`VlÁ ns!`h{iK%Yb̈:_ N$Ojl=|9wB5Qg Nߟm5\}UxrW*nKO3V)3[Oб($bbQ1DB: [m !3OF N=,Di}zӶxu4q8:Q\;x5Bm'Obߓ܇- B; J4rt޹'|;R.7̈wܥu+[-N̍#^v+wiˇ##*iC f/fv<ԼCi }Qw+ՔX)Dqȣ+w\ldzwHMwxcFPa.ޘ%OcK쬛6`<)S q[#ٿzx *ԐZDgecBXFVD/5 qKѤ}^9-8:+d9HI8Yºɸma3_n[U=Y,ci/$N:eᜏ2+1~vB9NynP=O6\]1qPlQcs -'q->{9 ܽ%SD#N_yV5U!I iO[^V̟Zf.xpxNGj:z5 s(e1CS]Y6 ;VvUZ I|$X[{8(-.tD}tOA- mz3J61Ivԧ(ʷt7P &JUt@h|;ݏE6&{Jk;kv_mB*X(PPiîS_w [%JMa0kѬNw i͸:(a5znhh3a:P7~(3UM4meuG/"f$ qIQ6$W)#ɿIɘ +ǬV?Wi90p!.71 ٚl`a%\V}H >Yr<V&mul*g<+nz9X񧥌*Mp?޾6+AcB ,5RS}waK=ɼS=|mґvӓ.O!'q;+fY~!6f(`P|-᳐Bf+U$THZdvHIy28WV7fg ۥE=zq5m'r)z_MԗjZB2F>OQeM7RXFLbEnq;PxK u.)'9| *^bИiFe;uŒ>v{%9_Oq+nu/8B TrkhqS14b#fO+8>拢RV_ym2 ʀ&V#d {ft*gp9*[%bAkwf)zmb]pۄ3$R%\2c.%h5N:"D(cS' X5mXs =EBho95,N1tn14C yt&eqI͹TchCݽ/Zl$薣4lQFx\%mTIm=˱u/~/lDKyS>sEuG&,>Ȁ9%dwg8tތ$HBu;㙴lܓNd%s"coϙۆ;# i< qpaӚ4b:ynB8p%G=8퀯hc܂֯|zꙑ=޼o A~wcաKoE"mLN*z+-<*OvjOM;~\#|H:i:'CLR랫Q^d>A_0>fns^FWW(^f Ua@nYc U cJOJ!DME[XuV6 wXU64")p{⺞I5 8CTUx_J!$4ɗߎ/?P)UL#)=4gd 88r0$V#\ۧ.9'bTAc=k[ g!bpטW=b#O+}gL'Ɡ|% ]M>$HZl%.oӊ{*8)b'E8qG7lK5 HAJ=gs"Fl>G)Fr.5>fb9"o:)zpޑ0F8xQv_3E< 2r(#Vx* VIp faH!Gԉ[qUgڱ 8ܜ1G{YfK3،3y睊=t)@ArǽUgW2Ona*QDI܄Z j}N=>gG!gP6nQds"7gdJ{<_hL=2h2,6[W7IHE($EBX*3*pu%}>O_eT6t>͵Ao]8co)qZcBG<=uX5&~K3vy+vXJGPBgS6E;|iԍndLi\axRԇ/-1V{!aJp|h-!'Dσ<ʤөMc]Tds/SD3bi2.u}yj ekCs{unJ/ ڋ`!( d[ z$41(A#2+@$Wv,pCGcNz-Ft3-H $MٝB-ol.ӶlmB^>c-63L0;wvi`ANPlꅶ>ΖhB1*漦Uf6$1@l ?ځŲl77wu`!Jrĵ5PŘF<-DA]#`tJ;7w>Hq54+;|"jHq|* Q1>dϴ.(qاK;&F<$ZP&&T|ZjlgS3Ը@3af/~}i]g 8S|ʁA xﷇEt;7=Z! t{ W܏6[)T 7.#@{-݉w:y:qޘil;K̐« bvKRJ|~/I3h7eZ}+T__*0Os㙙D!sܦJYTAVq2#k~Hu1v"kT,jMwşȌSOgKPA 9>:î(`Nn;`pLE٫(ߪ ؀Tr~C^U6hF,,f(WܮXY}%03 95/ p2Ҫ/;F+zƄkzTVq?bX`' r|l=3Z\ YK!96UbXT$PUDoWd[̙`B{"!rx9\?kכ ߍpp$157ڔ 4UmDTᰔAP2ǎq晞p1.x/>Dӑ[i.Xi Wj~F(U >0l[rWK,L92K5_êhn#%!ASJ΁TycFHTU˻-/q?<ɋ|7.~?I>=ʬi9%\>ȭ$cWdwBZ'N 5>YF4AkoQHvqmHfj::T!Ef/)yMBAۘ#|V՞k+TYخ ,Wȣ}![?}jظxf8F9pF8^c9 &(3W|їT,=s+XDh6".)Hm-(OЋkڿbi$~-Ũ8,SE.wA`z]Y KQv'~E-^8iv<"8'y5n. .@3 a/M2Cȡ(i&11}y8A*BqTm08LiBp$Q}/}t%9r!V-V-^\ES4vfb)/H)v`}1+, 2Oxb 2.70.{ag(u /Ϯj.U1-a}"zs(-)KLR3\Hs>Aatպ'oY{5~D|E="p{(kE 8~WAPWm~6gtCĕ,~ץiBt\j/E;i琍桥\k}h&-J/W"iJ,ӕHliVYˢ/DȠΰG sD_h?R,[`=ҽ:w :V7NWGBK8sκc4u†-) 誴c!Zm| 9^{!R me?謟ADgkfR@5`n0{=>}m:֛lD\~p(*^6aAw9 C;$"ԝ2s!S8th>g{iR!͹8ZBsQqP m,3E e/ J bMyKpԇqisV.m$LMo&5=sN=hx)զ;FaVO?ե.&0cd(_b~[eJYχz4uĽ;8Apxn%J1"fпDuqyF y_Z0N]ZFef|nׁgE-kkOAt_0gi1;.,Du*|͡yydTtYXnPhYnRw29#{~EٸXThVQՏ@.  uKt Me$%rɠ0BojSˑn*Pmô%;Ȭҹn/dq .v{ [+ \W$j3>9u' b ܅b'FvO[ߪ?(?[sV9JP#77c3 , )`@44ECʤu]SΚ>Ď"qx+7i E,=p0qOxŮZl1uI2Sf[0լo2X{VyȷNv|NΣ`T8GIvՄkXr9BE ?j-i3v̆ڀ԰i̜g˫}b>ɥK' bVV PƨM [b܅O:5f(.&Cp{xg˜#d?H/.@|7/&?12܊ǝ0UK_l"yKD+jb Dža=}s\'sO%[RB9VTր/-ݧhܔbL׎% *]@6F 9xbg/.B~)BSxJ$wpef;F@~Dq.!S 㤾2 =mT|o4 v?40޶:J[JZ-k+E@%&R]5<׸k,s;ejY)Mt$iK$z[Z&x7z\3GMĿf7Y 7li 4z/ys3^'uCpt?=ސIpx\IuX<XAjuwK6ҚI"uH"y)u? |)XGYIR:ewпZ]mJ@gAB3D8:Rc6Rӳ:/*O ܖ;8P6Y lf_šP*:%^;7)0`!hxۻvZk*xWۆg۾sn+/P;9&os>߳4U#-ԋ~&֖gP*fƞw;>BN. LYEֹ׼kTZK mkWia2; F2"nAA%%ջ]~;_) `VѴ *Oeڏ6{gR[D_:oRǂs?WhW }3w]|q׮?,WX"7z<4~M=0]<[\Xr4.Ʊk8(Ӕ6/!_SJ xŢVM/K}80|_n5t`uGW:\uJŒ9S:b,=0Hib]79F(/9 SdIБx#"'NjGGm>z:Nf/m^f@Z .m$WԢ":S#[ӈYDh'Lå' )*Z_R0:霘Sq%2llUIO"57vߒU>)9H~2Omڜķ>tlN Pgbn]O$Re?{b?;W߸/vWKF!blGS @:<72gwfY/PJ)x#jt+mT YI#>I:E&% {q%FPK} Z)<\)Z<P=bp ?"1j%vHVnb Wm*e6_kK?as^JhTY904`` _+3,/ 5iM @opyjf$=K*hu]|nx&?P$!#nc=~Zc-?,X B̑tPEk SxZ=,$5ؾTfY ,MyfQ/f'~5ZL &LeO>ҟ^8Wk ~1Ed8& e)Ṋ\3yLwI`Ac5ݔ70S=wP;t#nYDUu:r*jѩǫKٽێ(cT=79vw)qT[-ҀU{0aY"*.WJM2sj+}\c18Λe/t/YKoO;ep6E \ы ]oN+yQ"۟R_L)"3AoY+Gf v%Y`vl->~YK@7fxrx_ĩm Vmr/|Ea2LSCb1]jW倹6ο\]y1 [L/)K=%}ŷPJbhtl:.BޮF5>vi#I$ "ҢŽ+3jPn& s G7oJLZ+<@l)DJq g俏h_$F؍ {vy3DuE=rf_\Z՜{7(QΜ K Ʋ9.DRѯz.P71D0puQY,ETXzaS_[/ ȿYbݳs): 7ea;ϰAkϸxlv;2꽼|:яy"m UX9CM;]W-ŒowDWeg}ꏁ+ )lGbW=$MC.2,P1lmv2`g|!UN@=W^&B]aE+'8x/Qv6bwţ4jTrH%ltU<*"g-dNPf빜Əí.HD» ⼐| ~s2Z.H1Θ`bYk9 JGT sѯ\%8ٳ'kzXB#UD&5%%+Ր_bM3[^ &Xf]( 54 OCՍZ. cM[Ÿ!:}&99IjhSE$+=c<9O?'"E"f?5=dv|R\W(\ 8dN{5Oе @q=^X I(y ;ASEŎqvXAu\p$F9K@s:`Dl!_:嘿GN)i]cx&W#!A*)qV/cm jGg卂Ac-F`d [;Lӣav*E^–I};cU\*NL+xW:HG.Ng';1h#ZNC c dG37!Ÿψp7VU-}BHmNvc"qE Fݽ񅝊|M4ئF X@;Z;S)?z}h+޸$}"#NV[7 MgYÞ,]P&f&hE~8l%dz\Jt}_mds.z Kc`R;x{kHVȾgo?Y< U5[jtA9}ةoieuN4^/ ms!SlwXh US1K+XfĖփM@y0/qnL" h-]U8|\]D?5̩byCV*,ELB|f&1ٝX5XMWCjpzO ds?]S \y_ЂGo{ڜ-!P5<"{U3;ܙ qz_Bg\ {ͮkQa[DKR#7JUzҾ4\)wP mupdj='-I.6>Ad^bp.+.z'aVd`An1fEhmVo7~ɍHN842SZ!o?+\zce"1݅clt }gTe䢖XâIi(1v$ S~Q%3Wҋ,!iDzv.FKyωّzM<˿-ZϨGTҔZգT2gc@7ȢsK§$fjT+O xU,&V *; ir4Q !7|`eX_͡Z\iͼYSckfw***k%zflA}=B55,bN \Y@6]´pc҈ o7mh\b]YWndӥdWEk#f=322'{TNNΑf:NRLa|R?`S/ڢE1۽yٳZde,M+1ĪeJ[1`څSUXk_txQ&z}E=nƔ2Vu$ 3 =V62n" iU n(٘Ѣ-Ǒ }n} l[yVeۭllM#q{;M5(:̢, I0HēQ wS˧ǽ!&%y cL}~z$Jg/#@-6²v==3bK1Y  QM,`w.A܇/ťxbhRQFw~}Hqj A6J0<~%RZZi}٥c)"yqޯ"3vMMV,,QoǪPZSEs@C}xvBٜ$P:ShQ)52vd+h:vR]L v>n;%, ^N$L]`ck6jQ4 n. V h 3//b7jui7H8BDfe NMgE)\xw5 >2aָξ ]^:rJ؍"n8|["QɻKe"GHe ֯GT%0=֤MkܗaYmTG )Lgsp/s$z=Z޹0|/(V~/c7m$}.Gu64{̈́84d3fxr܈ّ6ɸa;ˉ bj4t:,6Mo 0 (MDL<eadҠֹÎh<*5 $сܨb 4/-J0{(foےf [VIGa _C4(MkAܑF4 kX'A-uIU;sm2N4>Vݛ{Xvx""~7!, Xnq5gW<a.ute|A&&khL3KPcb>AR>F?=()gy9I|iR;-60"J)u@2=Ev_jIJk%JJ\lm5׍Yxr!kasDO#=@BZ tlLY"!M<̀ ]R:Q80l𓘜X&:}ūKiR~>.e!:N0qNEՂ50\Au.ef;ݑ DŇxaHuACV+0U%γ4d}`xqJ/ӄ7Cxnte9.jlg 僣 TE%ʉЖc+| b;ه89Eں2K,1o{t_ή­sZ-hDROouE"'~kV<=Hh󔤟 15誥FD ˡ #&]̕0ֺYcծ)ʹ#XZo1j[MVW &ƝTft—ӟ.hH j,K=*Q6W;5B.$6ΎO0#9n)B TU+ 3Bn\6qcKiZժiɤI #&Ǣ໗h99Yx-,@1J@ ePg ]u`P-?% k1͏]9q'}m˦748ș4~a'&,|Oi*ӛs+E7TQt$ YNyEKB=Wq3Jfз%fcd%.,;bn>uF13 9L AGc\*\׷rNX] Ш̦Og.l '{woތ@MP cu#kkmcZgJ?;H .E֠:pnH!@ꋬ6KJ`Ø2BN (AcbN4[bcj .j!E-vk9"DnKt;KcAPhŽIf~|%@eT>JMn#,>s'"u00+K'<h1= jR^[5|X0~HL7w(L+'<# <.Dy7h5p k)&ᨴ{/"Eܡ1U.<¶ӧVBW׼9D,-mGU}p-,/u(Ew^x@l0 {eַ&H-SqHK0g,&5 ?if^~6xjxy8VQ Ƣ:ZÐ*NzsH xfM (_x&cSƋQmbLw"q69<0Y}X!spVg+ D-8*\o}%ǡJq,0ހ>{3%_ ,cOe\JyCeE^Œ8x(HAlx`kv}kL I hi˳pR%wk̙ , fcWͰ γpd)uр)QjZj.a_N-%@[6^o#ceUty\Ku8aApYN-tJ qpuB"6+)/YDϲ !g0ȧo  ̅SOsvCp>i`8ό]c12a KoKo42uO c 'T)#bZgЏ oZػYA <7.*YPEHznj/w85'K'+g,EbSW"bك$Džq1@DD.62kVe&9:zݾ^"l?LsW5AoNL_@ߠ`]-i'^~Y2?PI0o8/dՙY]h4[p4J*8\r=,BE;)nY kCMØ@AxynOιVTfӈU~w'a7Lp8M6`d39O358~Dv(ֿ%=;Cvң\Ou4wr%( Q'FUy2Hk u3AJ=ryx<_Uӡ k҃Kfg7NѸ&gC9$=j:uH4v 뼸+ӫ!X8up m00iS̮T2j::ti9.`SPspriϭKg4lj3^&/Tq#rgKJQ re<] -ihjiiz(;h_"\ W>%ؼkHSH={,b]!,߶6xC=`UG'Ku +x^[) (s6 #0r~ُudž@1cRZ}ƷkW+G4O83[X``5풏`HO,t539b?2="s{ϯTU'+0m|rNS,{S#@i|~?|:6>d| h*SJTXoNgRIA0l?q65t,.i /*NDH0s=tsc[uo􆉘}t$4EǷȝUY6c6k5,S`Mqxs?X]Z0ZIzB7*yd%eϠJ&{/sUZE|!_+_Gnx 5LE|큫5JL\ QȬdjXrDGGs ezfǺ$kB}26'3GW{tHz+1N$E+:DO\0ݲ=-g^h*~GZٚPh0 c 8|!UIt*e4i.4EHTP4SDHYnY7iʼ}$pxfeTD Σ3)W/Rf3(Mɸx<̓6u;ڐ +qBMiOv9iGm=q++鈒*v2}s$lH=UJys 2;i\ι]~ !y^]+&rqHE?I3aAA[36~4-7"E.q顳qzQ{ڜh11RF(' yqMM B`^N p 89!}7wWH7>摻`%]T{Jzߌ`6 h3g޽͵CU&(Pp Eڊ+ߡD8th}m ])X\qʯPySy<]jNbn/l:!5rH7uVHcdh턱1 !=%u[4eʼnFf A 6{J5QExЮo\bB$w4ь~"hWg@W8T U}S@K#Cw_@ܱڴ%<;PÚT^<+K>|AQ3Bƽ'Aٞqa9DJ uMx$io:n#"yGpꭴ=E cv`ÉHCA盍=׌kj]jߤ/}NY#'2FbԀUNGh3ɕ6Y,{K&02w:vITPnU^ۣ_Lf~vbY7X|5*\d-mM%l3oE~xE_QTߟe|si 쇳FҮNN$$'PC*x` u.B3KU ^zSC{\qBѴBVv-gsbEHђǨ{WdX]fm ܺ,I2)C=IOOb;@WmżO)Dr nMn aql&ƴ54RdQ>VQ)_bTG-T%&"6|V[V>ah."Aq9tgs=Ӡ76Dv 11J~~қ)j/ 2hFZvpG}/J:μN A_As 4.׻ԼivwͫWV? kVpK A8R"pQppF-~ꅴP18~9 ꣍'nnpt.M}F҃8r,)Zd쯘K1X zv 6׺|.G㤋pUX!q^3dBM'dISLY[EE%}z]ޖ!_O-'\2\ٹD/21ojIk[x*$2`4?ڼ̬eݼNoG*m˄,|U3)3]Gm \QFl olqGj5.Ɔ0iǺuhVr`uGge0T)vE(.:cr^u+1*1 a#&PҫlvO T[HTYQ|޻ ϮmB*f*f[3a:tg!.&y$̼. Şh| VT?ΌԌ>Dx<@ S/%Lc >[p Boi{q;W(fŒW)!C'aՙ٬^S^؝Bz _FVaϞ]c(Lč 5Tgy.e;C9S<As9J`J*G|hB}, Vl{jR5) `*˃BV!gObzD#d%|:g,e*2Dr#J㗜FKm\HT2MvldE /lC)U H Ń1&E ܵkx*(W)BH-Q ȈN5Wl)VF_w99q<sʧ#jj1goߜZA[@i.s}hf?fmVǮ l1,V.~`AΞ~=BgAܔ7lvdז!zJ,~PuFZa4 ϒHpp(}~EI9Hh>ZZn b>;^t 91n"O Mw+1#cT\A>+B7؅0YS|F"klY+AITd@V O3^kR*=v($ZЉQLjlƤkb9an#W}#41aI)ܛlW $j5kkO02v}ĤGn/Xn6P9҃_2: *^b!D)dyq;=${իxczy .t[ߌ '/@\[5}zռ1?~tkp ;~ZəV @ޑJܪWJja(ȿK[V ϵR>Ш]WՒ/|%?d8^nT"5wrpTEB}eV$PNBADs>p;MdFB[<oך^};s^|1 ʻj]O}1Nh% '_p!;@u|f vv%8P̰0 oE4 S+?) A~jT'J:s[o~H-9<#<lﲟ8EQW~bq#RX7!Z)JE:o>*e&jF Zrڝ@zu~f~P"am*jQHK(pmڥ"u51#0,6nج0|Yrx[b%T=nH^ qx~ ,yЭ4G6+EE9J)*2Y&{>};-Q(Vݫ̐zDIr"ku2̃QKO9HH2mP+\:COJ)|57DZ; /gO:&'p<FN΁S ۣ!,Un<2 nLl% Bzo`?u Fc\u'# =7?Ƽsn ewhبj8R4> )݁Y;T] ?K9HӸ `qV9e ڊvZ4YPI,B@O(^o7wY@{zwb9 5K]}.T_oHk Jro'J\OH<]ی_w*o6 v` ω2 yv> K1"!!k&[lW+k!ȗPyEɍ]bue[tӔ}Fq|HhU q|i7,ag}Ԧ rg?zA]_: g|tT')e8x ĖK- +}wX&xaZAEjHp46om$רOB9Ǯ[mnf( y"/)_;.vf8iwajKaɩ-DUѺTw(F0G2~lM+[XPv ʭd)Y$<젹TJZPlh:(⇿HܦIl֝nVѰBP!!3|T6lC~,Y 7GrGdEӘ]o]8ډj%}@tz8}]|ȉ;`/]4RGۈ,l-l LPzz[K| 6j]@ Pt6 蠇[lOY6CrOTV݌xE _<{+L6X{MKW]hSTu =_CMitP,tsY ]9FOV:p=u ğ$uY'Y{F5·@)cq@Hѹm֋@#tʦ,o;:q'#{w3[k[̞Ⱥ\[ۡ,zQL#[B7["jޗ2`fCb aUT@̢aT>U|:&x,|ٗe]W*?\)wXs::/0JӸd1IK1T)8 ;=jcX#Wa͛ӝ;tq^aB*Gz,㸣Шܖ ׽n@[e$ b{ RX)qPOkc?SWGAQ`47ufү15ހf/9u&Wp6'~wh;yS[D—۹CG>!zz۪ѽz52E^YXϾuE:gv^˻X[ "UE8ڌ-!a gC #5#+v넩2.K~\wQcmvp4?J3FM[>n:C$`Gt?Z"~z z( aK/p*)cai(8~x9#; ,<)-0?!W̖ur 5~ Sd1E~G05`UQ1@4U)qiJ<8<2iV>19pb;hB"L%VdYr-|AU0LzK>@܌rV-Ov 1Rw~ѱ)w!_4or˖uϫ7IRڋHHJ[ 8hю:3T 4}y7 5X]VFl[ dP UCK41N7?71%Ѧr~Zw4LCuM+g0ёGha*^ћGj.§x!y ,Y{#I3F,dN_ف=2Cv(6M$ leKkcr9&f*K1B GChsl0 ZQ<@>~;Qθm+Z ?nSA+݀B1$bSlnIVV܈R&8~Uhnr!.ߦZfRwOIr(dOĺY?72־K,Mw꒰5_1HX1*r86gTDd ߨ%jڸ(tEYWI`-ձA4`m PyS>ۆM'}U;Cc=e:q\~K!$`Q :ۣ;rX7-PُϷҴк wӜH1yj<>1}"[?3q<ۭlL@qU]vR5'JOv nmI cSrBSA5]:\㋃fjSz=0P9Mho,hrȲ+S;-^=wQb @ 8Rx88j%9 \6@$ `4}U7*/mVp)\V!s2{=}3̫oh**BMtN M╺QK$guUlr̼ܼSqT$1 XfD_dF@a?vRgJǺX$#pLј"SDVOv.ۨ}"&)3SqIZYBVoCTpNt(B9'd}oT5M k̹;iF)W} tyk!*o7Ӗy>g}bjͥC Zm{u2={僺FplzJ)=q03bW=3ʏ^ǝ=u"h5m둠>) 1 ;!`hlYsGf*v>zK/Y*j Y ʑMTK0t}&x^G4÷C`T<u`e5Y/BF9F6+aնG;T~.< O O>3acA䃶+3 dQ]4|>Yu-e@aPv. f1ĽNjz6a[ <>86/ qt 9u~ҧ1k)t\J؇) J@[ C*m[?m:%QOC嵭LŽgb.y?UUGC8p.ͭ(r"JIdrfſ&fjwVa Huޜ>|q2  fLM${Jk#8>%BſW'(gO-֣KZ[Љ>C֏rJAdX-8mIR!q~AأZ‚H@G%^&} bB8rEB$]/ o*'Ƣcs!^7/Է.@'ڄ (uTchLfE p=I>&{;k<ʎ VLIQ5'd(dn{9M|Zaө1]GE#JI{ّNS_XKWةe,̶ot[8e  _}%d-u82:Xv©c:H7]WBW5fWffjCS]GbbҎ( -MTou52'24sX:m'\ʮtbVe'{'xфLրYUTT/Px ж/*6H"5ikuEn0˽C͑H2rX76dJYL9xhb| =q~)LhdT̉^5h+ ̉jv,coaBjȜċ?W H&JFJ r66"`IJD%<2MZ|c^QǺ=Ļvmhe#y"_Xмaߝ#q>ըVXb`\9 ʠ"ޛ))L>67 n(bݖ f&0YӶʷw(^$H0>'^.6Tc YW={PE/4RdtfeVasu$Ian?KuLSY<kY痁[HB^KD[i\jD 0e|m0mL\Ȳ"1BLee*vlSznk t_n:݊O~ OZ)6'/k< 4VsA0~RJD mÎ}]\g8ҍPXZN._-%[/Q ApȤY޿s?G_7Xfz%N80 ČǷU'lhLbtv~ ב~Twšw %؞4TuddKH$gپ RC)PVKC^x/l;;z[ce^-KWki+@|_XUm;&0ݒirP&vɰiq"qm*u3;X ڱTAəcrb~+ O3SX 7U&"}B>ahc1?X3'BBB:M%S%5uJ+C {Lf ƦCK\GcJXy ̿@Q >RY+QY;wH~Dv W[{[kͫcyLTZ_3eumܦ9):X*8 g@k :re C!T h) 䔚a#pP2x_:KH &ﵕpRt%s8$Ext,kEBj 7K}Æ%9V6gppBd1FB%zV&:-HOKySsVű蹜TZF0_kk8-(`%PkZQh%-!x #I圢- .>9(MLW;uX(ա`TtJJv89{Z :d<~7n#-*SPm!GqWlQ|L7: #G/Z& c]``" ~ rT v؊' i/צW3iNC5_Vj7.ɧ]r?< `X"5l_@/*fFf#^!B wNI@*ǠUϨ!J;rފ!CZ`1alM,LJyQG7 "66YGI#%F rEb-f?+gv13GX) q/jvJ/*wyp*M,!\`A&"NꭕNq+=iXsRL~uE-]]JﳱB-lzL3mKT;i~K )#13S3@W8Y?ƅT/(/Z0L L_~l:IBYmϹf0-9/=6bk9fɀwFX8Lv+ԯARh2\V@Vב!@ӼʵF(9Ccy1W밽鸽u<3{G(]js bҙ(ˊB;UÏ4ؒZg9h.U2k /O?״./a$}h`ٷKCÿk$DsB#E/*D$x*F5C@Rid/pȀ SBq?8ϱ?8?tWQtx[bp ccRJͼ"cJt>B$+ G"Bf-{J g'oX:W#;?DyHWVQ-|ڽ(o[P$ܣ"M~۟ Uݐ.%~KI|_NRe!@HcvBV } )RDT}Ja1lzӳ;D,Z E9cݦH'cNÑϑ9C!2O̱ a ^'jvCѢ^ȍ_hxA(ћwH:},P:P76k's4rLaMMhbUU8yQV;Ia xBDEg$UXGwIh(zKnH6賝.%`.SJfvB0."TI9"*XT4z֫{>>CJ`'$#'mFC~\yݹ gc^!=eigxu^VnkL&MC.~1{RiWFoQ˪S5 50;"zqةƫ_7~ f'5ҡUA@@uTϔ5KKRZ~`Wcb(I1"(O`=ժUPI/UY$-dy`:j` #ΧSᚦ‘>>fE헁/zu#!3 _GZ1EZޠ=GeV( ΂AXj4Pba]L K L;[<Ga@ +oh#o4gjUfY|TƾIOŬl}0> %(h @Vlˊ*s!4N `W]ݦm\"Yi?ߦȝVi` R FI2TXdx1׎}rB}^Y键rhH΍n8K?k~8+bЛڋjܸ/6-uNז]ѩ-qYJoWV#ldmz)rT'XL&st\VP/ySa<{7`^ٮJD=y /l@=(Erhp$uo&K23_[NeSs[> 47@(TiOy2Rn(hb WTR*oe*7_x ԋ{Qմ)И0FG^/]Z:k}$&LN?Y}oyQ+ 6U#̥j&w\*~~Wo<0kI _54[2X=Nybrl0:3 2lu\_ RWQΝ_'F\W&H'*FɟKkjtcF:ʩ{gDycfCƱ&b `ޒu|(٦CWϿ:s{pa_65}jҔq+~HwG@2foHzQь MEPsX[~FN%ǔ6KPv~"oKXFc FIaW|uIfT$p2|PRR Y=WQ1qN]LS @p&yB/\X'{ /xN7LlI4SR0U}9SGEki&1Զ<bl1a1D\듦M[;RCBSZ#9`U[c‚ލ!={5Jb$Ed ';8JMVn굗7h4E"b<7Z]^A<:ՔGR)^֨_}+N8FݦO썶YFomsuyؚ_%]ycc^G+Q8f!_tmy)=b/8>z$*[YD{q%&cuU?HFH~&TP+ܞtS8ճ2CD3a^:hmѧS&x  sW=Cꨭ]YxF"&+>!ΊH^Orwb#9=5:J@K7Qȉ`\^ ~~4JI|%:N>ܥ^0 6Y7)`O+($e)5?gO܉UW%‰p~-p7 ۿjƗ QTjB9z?]vrkNMLϦ@n'D2R@kHVttbPvųx=fak0uC0MyQe&죦`p5 \T͙]ʎ8?j"9Oi(ww&,I;T)k : ܭ !t(XvskpNYZRf?MmbL_en, %A "9Q4dsLT7x!,} F!Ns- )"dv,87ޤ\#X/sF cڣu &^iם`I&*44o+tpY$U!3IcL1qw0c[ƫLa 5?@K0dojY>0]9( [2,p.ψ{pƙSoc/XZyǒoI0L^CC';>3R~Ar}F|!9\,m| 4ժ#4,lXȨO=O/8ML-ү<=c[56jesډ(;۽b>/۲fs-2`R"!(!"OjҧM,pt@xR0/R`~6'c?5swO*,y Dقa %yDZ߸&-}ؤ}ɜ#ȴ -~(X׽.pv|{=i;Cp;BU0B;yhRhdj!hV+̯36C{gWNS|Nd9Hf쪘[{Z9ֳ=4K1`ۋBQ=ڃZ<$=^~婢YѣGpi5k%Е9lwj7+{\ .Ϯp.SU_,$xq~#m h%Z#f" Jbz*ܱ{2h#REEaBdŷeۉRYHwpMˣ;#?27~'ݣ{:R}opqt\(?>dG>zD/2:oUwP ~"PJ6@*@M(ms,WSRdզf$2 `-$;+6g(C5![^6ƅx⛮J7W%Kq=!}qZg` SQQj6 =~Gy<L_uZ`7˗#lem[݇U kI;m-߄wj*s1w##vmOYb nzK hoŏz䷘ލw*"̃IBeEvLI&f`jUq!ߒWkZ±!HF&|Wp^{#p՜Y "UZ;\4Ks[ s/ӀkvߜTSy^1+,E;hW.{<ɺHł1ߖ37 "FpَD|S.[jA/`bA5w} tfӺXzizSTMW&m0@MhxIڒ$&1K*6LZ9 Z7Sb ňI9v$v6JPXHx`-nŏe`ϚΌFDWѦfxi𴘁ֽ N?+2r](> +mfo"As,>O]L]VjK;/]^eo`'V}IuZe&zGC9Xa Zf*1mzU,diM@uBK(ۿʹ4`dě C^ilf򏏕;/3`ſ3Itl‰VM4`0 ^4:>VGI"qZjўʎ(YÝ٦I;xzwIT']>}IjY ;%: pO<,^g%D~By1egol4:Vgk0; 9n"6ШA.#!cI8ɂCmv#*>:r_t^/guz.S % myUΘx6]@<.|vR=<1 E!R]}ЭSJ!~)Za5 Y0Vq 4nRo/tBJq[ 3+fI2iZӃK,9N/Az`&XX 29.(ݟ]t<_\o@S~vCLߢ G [>:-겿`ͦd)HЛ,2z '֨+@cAYnj>.ߨ0T R=͘h\ScDġJ@|i˽#@y]LlC;,F5mROnX2 /Jt+|zwFSS$ И!rk~Fg,$`nZ'c-nɊyj %W5Yp6cp6hY8z8積E3ڄ 70NWchd8לhNޚyUz;yRkHU@]Nu^ }'%*Ʈ=HHG/}6T!bzwgXs|9(ϿMAw<gv O @Z&t#eQu]OF!>u E_ HmsdXG& W d4vP0\00?\f0h"%5b~tx,Pq? _N5 1QLm(E nL(Ҳz9kY9sB#!wTwPڅ.H>+tr'}l~7$PFuz!+ΔSDu5^C6i(Gш\`J tgo1{nA;+1,^Tlx7*>Kv2%%Ɇhg6o rE- cuiHu-w_A9HJ{z6%;/tMI!#g4ŕ85y"ԃӵD Ɠɇo~WV+/R?ұφyx6x%ťZ/W<[l F$nt0S#.н_]P]1}gHb0!n0BzP5G'И(F-`i5v MW2Ҭ-A5ř5شٺ n>?3A&L_SQN^Xr̐\H:HR%Vpw P_&w~k6~Jyqnol.?3RaoR?WYɽs&i:˚`IqZW"SNJ8WNc4wVY~e'e ;K,'n+xޕq8[ 'p1"VC; kq#͟Z.8CmAԋy ,KUss<*q{:P`]cc|nK^ ٶ7$  ];}%j?l A P[$_G F?n\a0v_{;Y`֖'{x&:1!hVO職Zk xLhvFhY]v2 n˼j˻'JhRxiM:*+~~KɃȔ ݅!|tkF/޴vv#K 4^ʒh sX<֠ļ@qF8_^Џ < q{VUǞ 34,Q5қp5WFs\C?n'NMZe9!Ѵߋ #:;R, OA(N"I 2*8 lvH3Ev^IEE ]BS]decp aAˏCOݵY-(EsGJmQIYP N1o[ɂ땛 vGFXSy/ x?~Ga 'oz9g#\؃ ˈ8Tl0^TqYmL$%x&ĻJNOj#h@B% 2!%ِ}@ơ.d e=st[TwR$Fqaɬ?HcGXpgWn|j(L;#Q@Q"| )jDwPE;sY{d/3:(ʃuƶ]6v&3m/x6YP"Nܡdg9Vṷ"?>ת^_[,Y NbڤX.Ow*#Apc܈B *P qN\J<>D l&-n1$ ݶS}qS J#!e:\7*5&A%e;ݜ0^1El>Ͽ])tB-jWPhgGN3+(#Y/>/%p@4QkƉ_ۡw/@%spq::-X1o42 !gQhu6$5uL:v<5h彳)pFI\N? DJkE<9kC55}~vq:'cb0D!qwlLP !QzЅ.08MD+GfM3Yf :kΝ"3T |wZ8n}٦\E%E;D㘪 Vdn,/[ޑ)hq-zZ ?,Aг),` ItoݽF>>-u#1: ĤU\Ϫbklji4=aPix()Š;"}#{"n`A"z>H(P|\s'Zo_\O&}m/3}+ΝyۛAsG|Q7H_p)ݗVϬ9SiWSUW;$r-bKXZAu @^:^Gwq7MY{V= `ĭBk0~˘r~󯙟=~g?߫hTkY73磃ࠖ4 Fb ,78aQრM*i\j\ +W/%[ق؉;>bJFn/n "7xC[Bc( _ye~NA1*Pw⻀?\y~YbY?z^,'e`i^p% uG_mjk HģkKZ]x-cDiM:|@sחXOuok )\z(&>Wflg-ZS5N{xPbj_3~6FKPzUثsD@c0y KzHU(u`.oorHew#ߒȧ\֯4]M2 }LoFY ߂?x@֏ ͕Fs/wāB^3ͼ<7/fq{Z<=!䦻ߢdURA^1aX(uq|rxOSc1ɰ#ɦ^|? l}["Ec$p<{pzEvEF,q>3}l V6CD%Xe0? +>ۊB؅e{=`i[.b^o 5e?cCLP6"9Z9߾$><%M Z]ܰl ;AiO& ^欳эϩӊwيpm|Vj|A%Ip K0QdxW7K'4A#] LY"+dw8ԟa^PSkFPa}._kH;YK 2vcJĢ"Π6ah[rE p\i іsT&T蛦Iw`գ!NОbi70P,!*x8RWhmMEUP0x~̳LX+:&th8C-T)c 9~z/'MYaQg(vV<8DfloM6JS7,uY/mcTXZ⭌ oQ#*E5aK%s Bqb'ӥ{~"Ehx7srGiiHnZ-[L/Q G=tZM-}½b_9:NH E+KSiM1Ls3]? Eਦxicў1;Wё3t ܤ:T-<,Zg8s0ĤNJ]g e=0MA~ %K:x$ v])7 GWgRjYrb;Kco~ēae~5y׾ 8u.zÿ)%fKd^ k3ubu? خ°XEV!BYmЊ/{mK<Nj ^(?3Ekv/8O_{j=%ԦD-=%Q6kODJCߕqXH<3AނkMHt9xQlV+ڤ43 mpgA'f'hJ^vSC&.-&򥫼P?苩j1×gSF`%.?LEjBp3 nc#q|c]{?eM4=`T=KO6V[0O%0ӷ.Na:=};;=;^lӒIBϴ| ]c4JI7Q$Pg4v6>A{=iA jNy:B( e|"y![ 5mh)q6u|?D/h|MRriTZH 'y9g^]{RHGE)BdsI>Qr@Z„^9ɱL7%y<{8xyoTX ֋da`];Qr]U&$2Q{e{R| +6f |T'rpMadZ}z_2|߮EE? PNiG\Kh*EK;ފ,YGzxq:>"m(Km&,Gg0B,ȏi=ϯ{A{<2iױm=qjb7#Y1[39`vPe>C؎zTWF_4*p<+}v$ZZ,+ݨ)#^d=Z8u]:=odٓ&ito%u1TnlN8ȶC1Rz+ C/`+ve$siՂƲp> \O;Wbd=Y-kɖ~}m ei˘I~ngPamJk\i"ueS?h|PKO'kZB_B]% ƈ/! AuF ~ry̺R9XKDlVã@B, 4^-C ̨:4q^e@Pjm &ֈqL(41a/׺R]0KKp,O0@)ӵOeʛ5+ 0V*>Nb$'Hђ~r 9Ah蠨!$zoxRkd9=RkCPy8 5B $Y@ >.Jmn.~OH1.drYjC{kPu<3TKm+oMDY-ȗVr(Y'2@2E"D]hpX#2Ev ]80SʸE"F2#A2p`2/ \d<PF"I}fu~ .q%$jQUn'd(R;}LaCU[gA1vu.-aӍⳈ_kEdr^R 5Y] Do8kt%9᭧"s`{PgrU-R5v74*qpf#"m#}}Hr AX5R3*S`U\^,I⶗Fڻ~ =/j*y3i*U̒F֒ݣcİaOf`R_WJsZK#8k nV@f3g_U-YW@tvQ&v^}W\]pf4~4rt!`t5K@ #Md{߰HBX%%fTp]{m9G[T&d3T!F+Lփxy1E.HKx,LD{g" :vmpyE및! x4O͎b/O0hy;nFz4L[")#cd-qGzrT@Y6'Kr8QiVz()ӭ<ޗU KUWv́It~=rtn}. ]Gb ȰGۥVQICOf2qMa`|f%r0 &B'-P@nNrZW\#+# Hfߨmzt0ή6JNQs A`r0(i~q LtlTG(7xs@ gHK/CZnhͮ Yѝ0&T#?N&4-喃ʦ@uk)ґ]+6UZ*`iBw̌hIr6*BDRoe)6c/\rbcF_ 8Lcr.u~̨hz}mU?X/~8͇=ᤂuc91)&۔/9EE*EB}v][ , 2"RlvƓ(4uTk #Ì;"_vމ IUG,EXhd f;![&9k9N(Ň귬[e]4.=].Ղ, ľ()؂Q)$1)2K9Ֆ٘?<|qJ s"pǐrUOG]g[SKNw~9\Qs5}+oﲊl/-q1޻\wZVyn Eyۧkw]Z&Aug@}Zp 2}#GeKuz _]6 OE9c|Q/K ى/xaIᚡL _ ,z8>b+Q^+*2^@fxmMNURAnβIJd M(ok$Qm94 Y]1>CꓲŲGͥ^Vu髂țw5 XSs/DmTIa*$AߺNl+t Mb@۬U- l0BmtC$f:)xlӊ98^IEPLjC>Uǐ>fW14lS 9B%GIL ۬ <MZE{sWQ {]{PlFp:!'m4r:r{O-zLOA)txVs>[vK#,QeۯYɯ$YSͿGߣbSZ(عwCǼE2'߆ cI۽4a3A=4+X? 1T 4hҖJA"?oϟQzDd" ?Z"W_{ײrqҡm\Vd^ш53nE_LkkeʹqVO {il{W#B*_GfȎ29 c`L;rC?1Nڪ7JB,\aӠwXZRoݯ1\.KI+aNiJ{䣶HCNlޔY[PF0qhm?48zOLw{t 5 M3UcTՀXT(OGˀ>~/,ңXAis }tw<(o0"5hƞNbjv"Y+#J?hfBh{uF˼pQ?KB̬: V Qݬvd\`ƶslthͮx-oݻm"Ȅ5M/ɷBJz@&\mb s8:߬`⠎F[q@tH!{QD V'y)hؽ:gp A1DTM&5yeĤ}dk~pOqs1trF#7&~NLQR}Zxghȗ:̭1҆JV96CRSvˢ{=Ӆ}VNkWaDqߚ`S0x+M48U~9ϪMSX+ϟPx+G/Bq@iD% 3/rĮL(ד/.U 9&6]uDa]=<2_N'i:B5dSɷO'Y^][k۵\RS0#+yvq4ވ8]b_쥇/ 8z'N]}V?" |o9ޤ%M^e3&nϱl!9{ [[NREp'n=Wg ˥T9L6&I}fީn\n6I[ˋ _7BΆ;4C)*Nْ읈6I,y9WE5@DR`YK 6AxD0Fːc'buAez<jѠUWngJ~OpD|0hu)f GG-C_X>#jbh-iLÎNlmieeۙ %sBN[!+.ƛ35N5^T|JKYR:*Zc9y"4WDy]1T:a<shdz[bBNXJMyn{n !p6n-Yq[,CMu~PDK_C1sU0wĐݕ۔Ĺ!"2d`&sT MLTL1@!}9ۿ *1o/n􎮭<EESBFAW!yϧ!c6%,CԞ"5ge<^l"Y!G Z"(]v+i[nO%7o^`tJyrFpaӔKa4 2: bNn8uG6GLսP,B~gZνi;Ů - X"C BpQŕ,\ɛ_iQ %bF77'|g?G=r|N@4_{/B\4drGwE͚340^&)27&&f2cj3 !^csɐӠA9s,P#JnLɕUlvloƎMI eXPuuv6(z=%'&dGʄ^ l[^>BԪ=wg2x zmnjթ4V|d=%QLY]BbS1s ˓j{KO%vm'4{"S";ŒaKh8)+3"!⎋~S"bu|$\'+U_I X=kh&_ Q͈,avNI#!rKwFJ>4,~:/ ,M.)p1! -펞C$7XIag3nÇ:lCzF{lS0wKj@Bj \^%Bg *Tv$5^|a~3z9QT2fٚ|gwϸ}MoOPIO_hM$R~OM47 (ik !0HpپFr4ųD5(޹B Hr!͆QT+{fA൧4t2]Xu,FC,/'$4αfM0>y&9JDߘcM,yC ktN L'stR*lӒ+~{'ΫD $LƊ$zbsehhQ~=/Q7i T=/Cܔڋd0=ȍ5Oh#Un]CsoŶ0Rr2j2fHӻbv9X#e͚?Cl+Ek3([譆\:'5er/-ۅ޾0A%V_Ʉtiwۼя+ɡ\r95!쫵W LX4;N7@UoP/yqY0>ѱ 8NT?nb ozsT>2StÚUʲQ.W`Ke "346@{/V=\?rWL]Y<p~0r06B޴ \LuPop`˵i}E[?zJ>^tB#e`jKs:B Ha)ȀfgEuLDVWO&>3J^Q$smq)\:^fa[8|TK)N \l G1&&}OҸ@E; 0B6kJGlkO]2L-E@-5<02%%m/XEֳ3=ahOMpe9 @f^=mWcaɀ8~& uU :T\F'_|ufܵTw  u3Y!z6sGyp~~"2+"oʠ? ٥q(\%q? @cLTM1St ~rrۺRsN؃ݛ'2ޟFuFtTt|}hಚ=[J bS;\N8La&biiybg3"HGYbϿB W++[/K}-ڄY1NpJ7m7`#&FR8s00"mw }IRC9eMx :*0ҳtAl&ܠ.1w{R\m @BG/;ݱˬ i2~ۥgD>yMKZYsO1Nb,˂\nkL_ں (p*fzp!,rQ!bC&U3v} ^ *Z!Y^^YļSg'ߕW.pX_=|pGo`d[O;Ѳ tWAk@ ?sIslf3j!m1SZ5dh6 r=з6`1t4ϒtD nBķ@J4rQ$41(͞3 DqofarrEr֏kP-|سOMЄLjPql,I'H9NvKvs7)0 JQʾ$0r,ōtIgLk%_vƼS--#AMafeK3xfe7F'7JuHsJ%p0&vmC` >BXeߥ6eZug=-=;/O jRzܩs79U<G|A6A@Rw_[̹]&&ωzn+l_<`']Xe'];X_Pu\*B"uE?wlDzJ~Kd}b`x[Im\0  -]b9[no0W鵈Wh<3CF2B;u'<#WfBpULF4ӈWmҵ/!HOEaҤYD=Ve0o buF%Iݤ*, "5!J~cy Mf/i~1u} <3Nz[<CM ShD8J%Po*X=,Ӂ 1I)] Puw]jQUS\bګNaߛz+] o):R)`| 'y6Tj@Ҟ;k@d!MZ_q˕-Z9)e'8삮ByG֧5Km8`=ƞ7o ]}RRx71DlΉǞLlen!+*{fkpK i.G G+ш?*gz׮ځ yy6vY'ǫ_jn1)3Iy,=,6L[G(&mʩQiu,{B ax%ؼS,6נ# 1HxPAXP J"1.~>Im"NJcxpRpRR1h&JU$/:tSÈXUې?ge'k٭K8gEAgmv>%[|˾8PYy2Y8ŷ|o' # Yv1_N:BUb*cn32Qz|_V^xXݚ_ 6T/=Nugȟg?{'l¹u-Z#s#-$ZuqT7#RGZђ l%}bsOgs)}Bnnt\=\ Y Tx3A2"~>3! +ǐ!800J&ÉeY Nm`.*ItPCbӘ۟,҃ ߊ1b6\ٍ%?2O|ӯ<NNh}GҪv9MtnOMDY8wh>+ o;s.Z^Ғ2Ancz+ńk1<ύSrGZd{`2B۟ Y,G4#A|* /HO)q)X#_|2UБD{! FH y$#耀6Tin`Rb Y4AKtt ߽|n2A!L %euPCAB`\A4TŕuGLr,qw>`8Rxܺ/[1wx-8Ru{=W~\4tnE'QU3x+XT^ص ѿӎ4)w!|0EjrY'`a <4}t>\k,SٌxÅHz{Vt=5a6@h}"ELPΚ~Q7j å,-7H갨 /J>M.r)Hr-߳)]VGZ߃WަQS.Vl;Q+KKQ&ךpH"AF.'ZL,!fnA:jK*?sy7w"ty# >0*eSPS0KəYff]5)x"9`9-xmj{sZG0;ׯFudmB }w(Od';XQ ]"--l둨|pVV4iFSDNB]sjo_R,R* DZJĨtԢ[ij8m?2:kZUUv~y14d<~}d;Llkt Ww ^ YspCCESv z6DD9+ąikʲ KI7 X3{G[(0}.L3GPr*` rkk56QeO~"n29l)М*0T/an|*jwS%~{EM/),tRi#p>0 &}bof'盘GVg;!bU:rmEh'cR:=M *1b[OXG ,;= '6SMȢ0`@փnǭ7e9[ (u- J~DnˋwdY"_-6LW9ZDL߂AGbfX/sA&\,vv%&yhS[EFbhJM#NRNIb/NLmS4< -2v]cWٶ":9彳GIjŽgz>B'=/Ye?VڥExrA-G%,YCI K`LxR+ \6<s akUk 0N]2|sˢ']u?c,#I_0F`Y8}bݾ=i\΅%&~u(08APgqLTLb]0+=) qtfy@{srHߜ=ߣ3m5XI ʫI?d_LEհ(22/"2^9oFn^O%%P{Z-/-i)~we"#mXv}=J&ͬ~=;N!շh'BК nX5*95d'kAj. Ѿ̉پmKgHh^&=*^ixUbsxu5PUD>K%w@-hkuq^sϻGd PJvhypud,fBQUѬ[m9l77V7<nF!OM${ǹ6{<M$jk |`Aw BJm]l Yfm.S.'n|B k0LT%}wS럶<56U$6=ë^i-)i?:TG /#7֍ITiѹ<'"| ])ϣv檱m-3cRMk}nSe;ہuhϊ]t: |T=|}"~[6VΖc%T3 ;>%Ѹinū}X @ bՁp)+FN Bd \Me$P.3(R|åu㌜X.4 ipe agT%.PъۦqliHp3%szX.y>\_X?Ȱ=C \//hb*NoǠѦ}kcU% j[A4 >y?,s i׀+(׍EIp[b̄ȻI'ks>B,xU-,&x0'bf9]bbNOȦ!*$*GF (J&H .f9oҏzl7'=*SO)TfǪ§BIZUL͕\'3hUp౫]R&^?WTWO̹Ǡ˦~{`AEnDj;yW~chjtr ׭ccܩ4s-Q|S A]@ Q#y @⓾$>͕ ."40Mq}㒂c0S\7ѩ}oTE*#t8Fv8+P߂UdB iڒ *H&.PYVCK Ha  Cpm0r/RC?alePԋ=.M>[Qu5[Z3v7EHB0mFH:?tGT$,S>6^Qџ788͖7\?,LPW}yIINBMR$_rY>+ X^wWKB # 4}ۄd.]Ε `AЭmCiJ̼Iyrv$Ju>9 F)LlmzX. 1pVEbD\q߃?ωvA3xn鬌=5鏛E} q5uP z]\L0P4I;^Ҕ-AeZ>:"VTiOkX7Gg 6b&*Qo{њTӁD#^b˴ZݏO͗*طAS,fvll0cB"hY@WG1i5/O pX Fy=r}Bk!P~Pԯྤn!E*v-_x hJrf h@8G}+t:TG!&LJ<UԫCص#Lih*VМ3 w? +h^ zGP|2rs#5eѸtP3ɣcY6aTMןNEI0.ީh11T{CN')pK֧(!dnjŝ MlepD8X 3b(U6y'Ӹb$4} ,&LvSmoDacy!a~$ kUi_ %ʼn6n/I5wc{>6p  *Z~5Dr/F:,"*IO0 N/3G7TPh;opE*roڴi˝ }ppP l4>7jՋfmFqo17s_{ zᨍ'pיN}s@M07۩HTi13Y.>j`wD c1qƦ) e.v&৖BA)L7ƈ'#&wo +|svuoMfp~+UL?h!ƋFX&>篆#HJvw"@ 7ߊ}g.c;CHߥq`])GhDTZMkܭH3 $XCt8qz=*^ͷRBf/4.s-#z$rEfxq $x3f'beX-Ayp(LwЌWI{@J+Leџ;@̗Y )ezT78{ڑ6t`팛uE$imi &СEoW mH j*|x97{)4u#f3jOFfΦ|Jzk&SP؃`qp(|W,Jfޠj;1 zJyE:<•Cy"N *advf֐3ıi5+?p7T'T. D*22`M+R XP7wۀh.}NS(ejnU{OsqwG 8 _lrKv)];86oJJDsP5؋ik\z@6u2uSGKf?ZNv9L h}8hIRw)^ȇ{a$!<\0 }Rh-XY>z]<C{߈i{d sHHx(4rU{ Xl~-lWO6<_߉oTҁQiD(e&O˕!3jP-&>W%B\e~dx+0b`C' & 5?Jߦh>20 N+GZ3 9Iá~cd GI\8R6js'Ts o- EuxixHhwZJ!qgS=XR Zm)!r+.׾uWkY+s|m҂fheo@` U"(ST )2{iP@Ÿ GJ䍥|? "(U 0ݨĈ!: vd-)`GWWdUtt2nB/w3?nڎ8!J\5aN-ah*G,D[m;tKQ(~Zݛ PV?w˃c-;m kӘARSgןIM>ռEfu՛j?o_ٱ¤;ٹS!LJ[n Ԓ@ G/  w12Frxf7&mˈE[GM%$/$wwƺ}(ɚ)soZ|s}^ڶM9gXH\2% Y 'zbM`DY ouc/(xCr*.[?oF@m1x<"?.X$< ~/C.]! }n-Ir `Gy+h^|/hǯcInj'EV 8tkG@\z&'D>CCM`=cjf1['lɝgȽ,"C9M8G"F~ c_uq@qRXASbLB| էy[F ak38 _]zp<ɪ w]ں#q#d6f3@ؚܯT0yI_Gׅ|_\he!B--%AH&ۀۈ2SPk\o0 '`C|kGάY>שY|&ˡ=`bA ,qp%uP 3"2$lؼ䭈.[,{f֧ Y"T>ŝQjVśg8WqWJ!Z lŪ^,LIdb;QŸT槤w`BC5Y|"&:.gor|x"T~PG)C=٧ v-mr:? ǯkx~S!U-Uq~vEU  u&Pi࿛\+EĈ)9%ӎIC행ʞd=Sޣr[U]5Z^gܯv'̊Q@ӺL9Ҍx9Fֆ]YBDm:\]O og&95}Jg$-+nUAtaB>_fCndCdTQU 95V'kn̫*)FcSXayز޼b\:lHP d-:a4* A ޔGdOׯTI4ȩ,0}ɝ;|~E󭅪[Zhf\)xjshXf,Oنjѐ&^JWYF: ֪}tPUiG 鯨̨?p)0/)O/, \Vz-Ţe߰\ǙZ NA+lH_JD~*W$206o*N=K6ME6j WFO R?(imZu9F' or?S$b[34A 5&r{ wr9 F!Ƭq0mZ'FNd+[aI\4!D˪ټ%]K؃B+Ks&\sۊKg$A][vLrhiYXꪂ)0xh>fɸN4(uLl<ԃ:Ksf(u a 1 n~GzAyu-5M5ƪzk]-nה:SZD;X.u;$Ϗ"q ӂϔwuN\C~}؅vkL:4083@"Ԛ\X { 4zIZ;#dhy4bP39Լb= 2և_τ_> 40vNXYRk,Zf|7>BymW'j[)1Qq1; n ')!th ,t (=`%[!wh, WO8_+2N a'?D꯹`*j&t#ˋc?75eLo*پ&8GP_#da=7Qk!*2I 7OҩJs=o#0rJ Ktc3M`9`k] X&yӨպH| #$~r9.ܵ4[uY2JKuL 7K V1=fޙQW|1PIl{EJMI|v06nTUTD^w扡 \HW:~\p8k@،oW( mӬs+'N %_qʼn+FO~H6 wR9wZ}79BL8}bR N$@2?W\EykS#)nq}Ⱬ&]EF]ā>%mJFc!fpỨM"= 2[=gOq-np Ts> m$b'u60`}UWIy<m;k$J:rg_i3:wFKe!X[B`2h''CPvhd_p~kq[o/T8eɭ;1`3m+',XjM^KA;IĔX5PE˦1eE8~م4!i6:QI?r2|S#,Ew8soEZQZꮙ8 PԳjHMT;~y'#Ie+)9Bkt<'lG6A11ƲیOP}5r܄)|G~iexc [OӲFX&{Ѡ72F W 2[MLs݉/"c+CցoHIz*9W4b=q m#p<pZQy\,g>VmsC(7woחK@Ǒ${,~U ? u%;֠4bɁzKްs|#^]48ڶ-&Z @*j><eԟ7ہaΈơ°!i+-RCkGѓRsIBz[gJo~<fQp(N'zлR6xv+ۆn04hhr2.C>* ¢HοТK1GnhEnFGa&x 勺[YUyQ)窼xPx'*R .&Fmj!>\9觪ֺ֮ANhad>CGI2٦Cc*h'Xj DӰ3): / Bfq .e-9RP6eȹj:|0CZY#Kal py[ k2s"wFŠ"XA1Vp濮Lmf!6r|~ hC(JܩY644d >r<=)+e(ƱElLM@uq,xIReΧ/@wI\YtbF^U$գkQd>~#;U ֎7tT;^[Ę. >=8sh/U"};b`֣{K*'M#S7ǐ?5Ks"LTGWLk뢃lfJ峁p5.oCjOk^^R7^t@I ",keTKogTpÎEiN& fÙ ާjd gl4@&$#=Wv'jwFuڑt)%gkvd8 ٗJ;ȻpX imXnPÃ%ICW`4@gN|Jh`F1ڎZÁD4;}G8y;{xaxu2UGYꂲC]Sd꤫%Ҹ?rB ZPTtM.V0ã~?q[,$BЩ24ۮ{3_@&K.vwsAaשz6{E.'`*E'Lu%D7ۆ ڧ^!Id.;R_L]k]0JUPngD\قj8l-2x s#R86HiI©~ :ꏚG rcؗjM2ėhMjlz%6Լm<%=EwmbY"m:mb-XQ 6L%[.#lI>2d, 5N \ 3NSS6[ڈٚ;+tn^8"{/5|l j,Ra'+cf%;1ȡۡǪաz!!{g$8Y* G_M~.sKWÊfP̎2ʏ 7`Y!Y4>\G-RqvJOot+UwUə@0PFgؗY, ;ɲ$A`.[{Vr[@!7^0l[uk3| q2*.78cO׫޼` _<(׫۬"q}F-btbsJ7

?ٮPjET,g>?]?]:C5Y EE6|ii\KTezp MRjIG2O@Čd'ᕿr)Ҥf g`{AH"' ~]gO!p8hDD혲hIOeb,Q)G a8<1`tM\-BvX]֗%T+H@;EVXDVy\ߍhP(ťr/8Hʼn_,I=v..&vit}n [Lg\kbT;$jHGxrfά<啭5GE!+vlG(c"$/@ku^!W g03cZiSZ(XTb\ʘ9)<p0J:b#_#Ta?A=Oł6?ڽxƫ FX{^(.!emVlԳ1r>EeSG@Q "wG6oL,O'C_%NKO:KҪ}43tzml?]ՈNWvԼօdh`>>1Sr?-{r,hhvTSU RS~%+mkwЉѾ89^ip9CbeZxXi'@AzGG@'l nޖ7cFGJփځFl|QPcXg{׆X1+X`;"mucx+~P;$a]]Pq{b.HE@8KnPCzb;v >92$gRz`tC>WSH44Lh,N|i`X iwľkEŝd!`웛<թ)ẖiEl*]̱?~ [GjK6J}2lvvv)2tW=Rl|D{+%ʖ9FwuOwE nsAmbZL]=a.sbUH 2gxHF>|ڙ!FOw]yy8*$r`X8t ySu(t1QW,no.R)IXS~xW2* `d 0ػb9_#ec%+:'QXfk,n.4 *0+^^T_V Gܛc7+ }*BD9f~cCW/HJpMS\Rf]e"6:4T'׶ ں$T"*VM6(68'J 4 A2s QnP4fQm +(ˋ *zN& JaQΛoK͎QZ28_ -U)~ Ȅ{ U.L_h/8pYflI6fQ|k h:%>(Jホ ^BRS&ň awcE|{'p-eݻy q{:Z0βhтjO2@@O_"B8n؊P]^%>:X~+stOprVTG=_iæi?Ce^X}3Da͆"_:MSx2ԥ\ީI%0y:2C'tr752vs9er8&{'a9leHhƺ8AqJΓK^5rļfmMƪs]7WX9H w4VR|D zI)Ƴns4 _X.,}ikXM{MW>{]u e4% Rugm[~ :"rc԰b_"ͭmkS!|BߤY<;<@FnÁA9[T|KfT]mQ/'"*ddR IhLAg!iDP2ڌB+/5^s р<(Ʊex]h:?ܨ퐥*SФOe,x qpV1/V<69u(\@V`&˽?^U$5EAi^.FȬȥ凿C smuou' x87ޙ"}bH*kF2(^"ݟ -]L5}L8fݿf>6ιZ))8<ط=6X"8Ls_/ nޛ^J/ f_6J!7mBiZўC8&IO}ÝT89eɽ ;<8zU.Os8-lp ,{atߌr7O-k5 .~a!&a&Cys'`IeSeX.yA~BP`]WxZQeX܀@;Y9o.<5*}Fl/Mfsh킴Jp6#N;Ð`C5CfCX,;,lq/_}|訲Z,bheSFƢ)k>qFzIslANhhiPDvJ70aIa~>⺗i*=}éïv@^mC̥%-Nᬩq%$Ů9l(lrXjc"BWθ,z,WكQ(Wme`p;a|7h?Ҡ1*"aj9~{d-ra#a7V5vC@ T5>r+: 1b4H)$eP|zSƷ,I \ " y"XL$q@, 3"Gٕp3> |`>5ca'Eދ Ge͟tן=K|S5$&=#C`HꏩS?4J!Z(g^Ƭj5j:.LYˌ|E4n _) Q H~wQvڬ¢ڭjRMYPfx%( YMsvݵu#h$"V O4V*/ yI:RwJ%Jr(o#J39cfM! Cè?^MxϑpeP4tZzڟB+9"RftHKܤ$,|1<[pI·ohiW]ר cOxg$$_^eL K=A8WǓĢe{3ฟ|LLr*(ڻf}6O?R~nO>S-M lLP pW ?5>]nmMiwsc/Jƒ?/?Ih戩"&edjRwU7"èwV3.$5/4顳@ƉzTz r.EhoA+q/{g98n@~t{ 0٢k$ t)QhHgb؍SDMj$Eh܋ꮌ20ML:lj ق-s;,sF7 rA _yboMXysWnB-ތJUֶƒ]2pP^U(B=nm%e?)h;T_EB]l_(U\5O|t֭ SyTg!;Iw\s!{kLްn]+M}ߧsM8tojڽ dHGTUӋOu2L2Hnc.P#SmXиFt 1uG.s&N ;C'LxpL sAf^?L}0l$YHeE3p7GLY*$^h]gjnCBnNiܠp /W 6*r np ߶8}b;l*ўUhl@\аD\1$,Zr93-{¤B)iM<mJ[y-m¯G '17_vXи4R[0#46g s9`qf>^TbwX?â]sw9P܅hc ҕQ81WԍI(.A΂v/N5{sTJ^;tؔ?`%%м7Q 4DjBGQ-Li =K^ j-=Wc9)k чRk CYJMTfcurFUH/l#!茈n`PIODj+S*$lNe@8_4>7P@ϿtLΥH98c)<Ϫ͉~A"|+d>%S&M)X35`Xn穛81,ZI=9PF[cծM/ H*^C64DRܿ.nDlh`~OHJ]A+ǵXʃNσY%Ep)7v$U֤S]|&H׮K Ub\VwnlV5a̧?f&wNK;~XH2 ٮij\{O.Ѷsץtr}j!py;y$bqfY3[),LXthY!vǔz7 TͷSh-z֬_Nb[{~\g 4]6Uo8uU1(W ] R׆B46.{ 8pE:g{Px~ki|dҐY!?;EtVNw*@C"Wzljur = K i#R%X*q{aV,z, UWIPaE뺲/YjRf=+ eYĒ@cA 6`{9Chyo5.B^kBW-ͷnޮ]LSd ql%۬=Xu*bSݩ]!+t]cȒOLڔN`SܟX SdRA;2X}6?mE +#UBiTfy`s7f> Q6A&=]8W.otY֏5N_W\PGAO J> {"4V^20fe/5[&x},E'`RAڟSѡX㒴\c3y" `|=gGgzƙ1iX}T@ǴDi_\wQf) ׶GtDWs( Ƙ2A pT4}xU.Nd1{ޛeo24n]"n0ܭe,{UNxzxX4|5NlfcrFRIXI{v'ì zXDiUWN1CvR!gM׃bs"t4v y ' pTGIb|^yK|8AjlY0\-Tg)5Z,7Όv#Ʊ\IY.I* ^X%;k')kzA/Sڗ$ܫԅ* Mz6R붸ð""v%m0IT/j4jlM" ytH<K7sfXPNeN3R@C}L zxo.@#B+/[FثRR3$\MiQ" dT{Ϊ?b_QuIɡ7:RM8c7%$>1E O4 }OlL9|8IS[}vيv/h]b X0WV*ɩm9E`ժhr)] 2)kOrԚUǃ_ |k:6tOȊ]\:DԸJyAz{قKn9NW)pA_ij=I)B[wӒusLEKno;9b5CBL׏ĝBa} PYOʒ&Kɀ:B92/C`" QE} X׍ģxYHѢXxP=8 VĶf?]Qzχϥ_ky]Uu}tRmw9\\HNpYQҶڙW¢xL>ׅ(\‰9>JdzmYAX$f20nDT46HJϠx< :ВH>O.VGIm?ӓQpc?<~_:iAVm۲uVXui/[`Ȼfj1%2Q אwӧDICl+( ڔٝ ':H:z Ò4`>1YЂhYr& ( !, QK8ȑɿyLcOa_B9 LZp,,,E@Q-?0WzP%!͂ lPy<:T0Ļzv n{ouuL` V7-cfڃw]vI(a^';fSNkQֳEB+B<|J 27$bڋqII6dޑ$V^ZpI8 4SM0Uɚ _ΰ!kG]yrL _.dgR$S]Pa@Mx- !JԒr^' ߫+0 'zl S zsW;摁T{B<{"sMFô+M.v]j VX7&))V=ddzΧ~(djD鋪lG?'&2w;|71'OƁ--@˒/yL򬝴1T7N!5qF6܀]r *17mFYRU,[W]M4NHV=Ql9~ZRRKT-{rmyfhZ+32o!3OEe@ˆ?q1$\P/|6őd>/1GRrꏓm >g0Zf:yW-TW%4)~<}}ݽ!ء1A6mt"}$&D:~ďk__"|ʬ%##ΐ D avޤ}Iʞ{o,/fRU3r&''.!YM Q]D̎[1O~)knNBް z%#_VܽiK_u:8OL 0-#n1X0vv9Zg% NƵ!cQ}-wh,ڊ%kJ}*>}`N@)uϜup9/oQ5ֶM"$>|sɛFm|=dv0Fpm OaYTE[$-wmuĻBeAsmBPIuS`Q/E#N<{ů %1YD/&q>}w1J}-N2׈2ڍ{;NH,W+'R*iG2DGoDUv^k iYE~zQF>/=/@-L>&"k36w 8uyM>x lz[" ֦XXgcp\a d'+_À7ůHh/.JGGZ"Є'(F7'r`x6iQMy1˙48g² MXҒё~V UlŶW~{OӬMffAijX[r+ I$='Dυ$ǧ uKT5عkZ &d<]8hAC9#gW&}Ѝk~D-x@fZ :MU}υšfIsB;JCqL(%FPOOgbqNC\h.Gt;4exRi*՛-vC4L=ftqI󝓖ﲣĔql 7pq:rO3c)Gk~ɞ*}T, $ o9_ñ9 W;x.eF;--ZF ?# f)j?ڊ@8{ 'װS2S۹ C1]({_0*GwQ"#._`a݌hPQ5Y ~_v d~S !~xiQ~9_k\s`_ S0]޷c'}m?(3ֱwr 'gL-Cš4'8F;4M2*V,< ov=pJYjh6CzSQ;cUC$52l$vDi/Yq#HN2L>4S*{Ao*^[ K"Y*BcR5Ѻw&AE0 ~<,ymW@<IXffWMq"**VmSdS" ]o !oUlx{Eljvm u9 awKI3 -k{ R!MX.jQH_Agz |A{硕.⹣be2u scєXa\o9v{=/V_UR>膏zq{kpoV10^nȿ.Ji.)Mt5l1xFԜP)U뛵u"CQg)%OAe~cˬ006; YG vȋTNn 7DEpcnrÀ^n+w4<ЪNC_0khщ]Y@?E :'WoɊGs(t@( #ՉSJؤC7`%h#>W71N4#W?0~;t#yI^di ـRޡbIcsF Jʺ6s}(8M.}9=H/*̘bdحspePӎ=H_.}W0(xߨgEp-(fZG rPr=]RGztہ(L!D4I'R5"%Ƣ,o q |?xo_fKKԌEZ+We#9/ ']u&p$~f^ Eіa4Mj&0lٽaɎhVbz4~c; ޕƓ_Ǒnqm]0ץ41jt::`*uo]fDo6IkL?{"I ھ )X}3<Oxx=C62r#!8 ;YĘ~@2=T2ш.n dꚀ@I@%_Y 0`W6|+m«Mf2vuQ<- &mwvgq34:DPD~O'RKŝ+껐!뗾1Yo,N @Glf=brhWq}4 A+40 ꓇nJ@bLj/HL$zN9*Ăj׻Wn(^Х~7X\d#Pzx4߮T8O[ $ {8翢&#R@nBK|F(׿yj^ZYrPTSQ (B' UJkmpޛjAҥdz 6d Ys/ :+^w}904z925簀ZQe1 C˅X'7&!KvBBIKЃOe`-\h9uNA\4u~KDzS.Vq~A-BK7C+QCA*.vgjC|B_g9!F,'?g 2YGfLY5[+ ,T(pmX?F5$hL"a˖: z΀xOBj" D;/}He;}֜GāfJޠ|:&L˴m~҉@\(QR_ڎ5\|YO*y2"% `q?TxK"~24 ;-?Gjҕ|RA!"f?d뙱_N6K,N uc {cǵ/uKq JB q?mJzKHE@K/kh᜿h4,l#b%L|[JO0ji*T)rry|=1̊X;fTP˒8M~6>H==@u˂!6O#U'^OX.U -y&KKgx\X2 fP3&eiKW(~ҁ?CVʓے+vlBUa[KD}-s>U$3":huj]wZGX&[!Zd࿓"*Iv{/]/Y؅Z@@ٌQaMǻ ޔJwiD6v~s6{iP8ջ4elL3D9^ɩN 44.ttzBtQKqtt~jAI6$K)9a1D ec+SksѤtqxHӟޜၡBmk EO,.J@\x^loӟpMv`K}9#((}* D\y>bT`LOr0/niT*TBJ ARj#8@]&ETF5 (tfV i[L̾%vP̓;ۑ[4De:2SsDQ<">G^-!"ń-TZAT]YSO'k\ (k%֬]Ȳ >y T{C%v?Eeܸ̫),Q)0,hpl` ^eX6MIxWcBIqTK,NN#=z.>$٬DSBߎSګMtoK>T~Kgcks/d[h7%b5b#"U];MSҀJv EÄf mNR1 WDܜM2:..rTtbt9c_ƣ{ܴol|إ`Ft9RXWK[FPUo"XԞ{E?mN_#J`ygX!^Ra₿z50U+o.5wdpUaq5^3^ -l <ՒR֎EzwHԅ0[I>^yB+)ؼᔰ}A{9˴XfcqE1h']N^.?6 Op~P]:(6.oJ9jx~Sd6 p+^E6tۖFT ?9ƚ7礭FZXj=6$KJD-jqϣJF`eck@p5TŅsZ셋P,֠bEvv~+[H#TGlTz<<-er(uF)ZF}YRGƯh_(Yߘʂe8jDuȩ:k)HJ&u8hI(f &0a0R UPsV(0~hߊr>18Sd<稁'Ky U PyY\!*sEq*Wqzd]刯VG:#VdF!%A".9V}گrw \qU !78D$y& s$un{ϑ>,\`ߵچ"Wȍ\J[vSf p34* bt ɥg9G{%1h< =TED?8/V@?xtyapcn #^"/ >u,ϛ`qf:2. @gH o8緥Ջ z' ;oe/ gkMDژPs[-J&WKQXPϨ֖V#m.ka֝E2;?hkn I g+xaʑRHv44|oY[[B0Vł"6?R.!F@9kic/fi$`yrK9RHuHPuGk)+[}/?bG{"A \Aq!Eg 1Yy<"^f5*1>gAv6qcSwPo#) vEzOk2d=n{PQ_ܥC_'qYزB?/aKS N^*t^X b۫:GC.]K?:^> ӑ_P( ;PD4mL+]INj,-Av\d>wra!|Si#56 ãvDi6w# Ή$ qkI#K:$t~TӦ02*kA__C1!՝OԮW^;vi$BZ#dH)Y(q1R"W;W?oexoiE+*l=&.b&]ֈ#tڠp?zC;,e5Va4^% F<-I _(8 d4D8al}7'Y.IW(aWrems!'aקY\ qiN:q'_R=A<%wI5+څ9\S۴f18?5az7R̔) h+;Ya%lfrd%FB4\Ѕ-vc0(#=̶6'"W\$tZ}ZES[6'OY!7 zz'c$*ՐYH J>O σ{'[!EK7Ej o7QqsnUKǠcm÷ɀ5Lλ^<^_ыg(AbE"a);nKKqMu˿<mnN)l7bv"ꥌ#iIEюahN`\r" ۈ,*C pk/-R |Z@ʼn!F9`؎|j(rƭ;l͝^~$ȟOfpMbWˡЌ˳"Xa4ciҧe~c0PjE U(<XhDHao.zP~pWĨG*,vػvPt́"'Lbt^$9 _ - ]W(!|M˚G&|6_qj9CM*VyRܫaCvK `+FFG=b|?' G4fnHaL gCG$vv!e à_/$n({zf-9a՟ea45#nS>cT%:ڋA6vhJP{)S'չ>(O :8؞R^ e!/l֜F윈%}e<4h YT,N{߿5SGr4^6" @[W<'yx[ [FM3&e-c>{5\!`~n>=(PR'7e3Oފsdu@=K3W2y@2..sx&hק &kžXvѡ~1vЎFV +{FcE e iE޲fu; NHݏN+TMje(H*υLQ 4iM5+ ܠTBV2l` o)[<<[WXo $ׇVq\,MjxOlnDmzھ@T9RChe(˯oKdi?x!}`q`Ȣ Θ. v8󟘼ϸٍj!zԫGcۊC1 C)ܜhrI-Ay _gv=x_6za3KQՏ&mXIn6'DXәfMrN q?k2kPK%$:);] cCߢz7PHB|gL26}\  \M dO tysљhܠ:-Oǒ(wb/ˇgu!VY4}i'25X"!/Q],ݐTJkBj?r74E7y*>djNEAʬ̕~]L]F5!!&z.Î:|?fc2yא?Zz"H5͓wX|h*޾0IG{FX:U PyvV<3AJT&< ^ᨓR+U:T^{.2NyE ߛ1osU[~n:^ST3 wWKxݲ`=RqjX^TW*1__/a*+>|κI|%MM](7W [5#,e' I[-FmȬ¥ ]Q4-siў8=1gVd;z}cV :L\diHط?  굑Ȳ_tuwOiq\#zCA GMQJvA$eypsgekVF)$fFԎ}* %{*Xq>IiUU pp:+>@~Fs.<4Fx։ڽNK% QPVrP=5&Io4As &?htA67#W@62mu sv8+Vfc+b0Ba=@4*]&%n];kw˩SUxrRčfTN[G1N BqLOh;&KwX٨n9q), = +'G~X +ٞoe>#.HL#ސ'~Ha(e?SWꐇB:$Cxԗ& '4*ү험 pr%nѮ ,&0pwS9v! ةbUC7Fr2mCYc'a >1%\y+Hf1|ٓ8SI{ɛq!LL2Г\ဝwM_!a5wE-%or+Q,M̸$D yrZZ~mMp$dc1asOz~Y@=sD;42Yf2fS&*Lnhγqh7 (W)1+[s ћ ;tNմ qjD[<%⟲59ex7(]tI1 vq|n>Wo3zlFŵ|}Q{${ ɨ$~i=[DoE۶l&"%2:1#9'pßQrW˲rH?nݚ*E\r6#UVrpY.ӠI7?`cL2/̽Vn(A׮SNZ% [>B/˚]y-`41CSI~Қ ;g$SW:8*T>+a}x(3/8M[8&^hvҡE!^ًSѻpcRu$I^YY]<`)?BJ`fb0Am+˙Qd&&i[OqZN;HhC`hĢe$PŬZzd3uy<ɱ9L8p^6C4rv3=/ 8- AQ`nǻ4`E,&]N bݢǂ6q1&d"~XT٣BOR7tm.+B!o"6Y90NzGqX.l+>'dS41ްQ|;xzz>\wo#auUZ։aqHh@_ }>k0zUJ+E ѹa*wM,:"E')bP3ۥL2ӱB=ȇ\܅0<nOR40UbnAfCnpAsHAZ>f45A UWjb(J?{k;@Ar vTz#JEJ}wU -o"Qm8ԢI{wuUU\_*)1!s4-2N– HS+\6is;G%8ҲYzr.8eg' 3b3qEd򗳠[m}M@ࣜf a}Λ}ddi74.8{g+NdCa3yUZ,/$"!^ov}~0dxb ?~KH(+w;h-Ue"6N?{~Ef TyK?j"uֿ?tEz-4yO uZ[~H5#܏hFZ5O&fKʢpk]Cv⌖;T!F[w>|VZܹkcz ` AANMr^Ϭ*wpbRv!ՊP,ųޮ5n'+Ccf#lfдPS\<0Zos)9̀/72XRb eyEB!C%h˺qo*0Siv<._;dB.s!3>ޤ^S'Ԉr%QM]vL?`ߓRD+a[aygo+}48_^ k~- g s"L,خNI[!S!S!YA\N`j"}!B(q/qW 冐Ue?q$|pDsxA 1?k[YDHd9ů1K|Cexӑ WVh`.=hԢ} CCӏ" n\㗤2aR-|qU1͉w/hd_;U] Dؑi)h_EiR$XLϛIB'=G7쥊+Y 5wSXSsȻ%'\v\>G]A֡>WPǾEC5~SLz:(%_Hcctрܗ6MڢSxR}. ֈdwQRDU/Iz3E>j~e,oļd}F@pr ՂӋ?E`?#݂{&;) 7Ts"-.rGF} *m pT#K,xPT;3͔ԃy(J[CcGtVZV]Zʠ&Hn*y| X x__{Js+4/뛬JG:7tDk|f򙬉d;VyWn}VDmj 8O ?vS˰ƴBT L۟wP4{]e89ٯ V V웓dTp# 2!S"Ѐ;xu=!YzpFga8|YG&lorZZS we,O Z}?`o2JO~"38C ~X3i=!G\'-47ݼZYK@p_j̘/&u];G`@a+:/ rfr)3W܎i.0GêDk da tx*QMqv1ڃnPFTܦw%K,v%wnǚee|wk3Cu_HA;BMt 4l?#6MN`%u9OUXH;ڤ`M%ѩ!33o40L0H^,v@Jcā;VJrDokhzKFRAdbm[,A8T @a&$qOT'ܞnU.{]~5nJ4坄̊%68\>{^pa8qr"ENERHͤLDEKnM*Rt Nztݶ ]rRSvdCa xy;UEohD)?âf^ FA 7jŭ#,`4 @&Zt)hqi,K7k<?%s¾o ZaIX1őp R;/A0STSh푪=ZptH$-QnI y0];;m ^zqNK0%<񿍷h]I3_jxgsn`D.0ٌ~ LƂ..wB06M qPSbP"U%-wC<\mNk["W?J坙i^WoHrcf?7'U3)-{3A =W?B*}#K:P{V!ԷKGWnqEl!Oܸ6D>tCiU8W_{ڈψy lJq ̙Ę*$V!"fba}T|R -~PʋJrB??*-s4\3%F.;_1J.*yT.e7sPt=d>%^U[ɘR6j^N\|+{?eKKjb'!s6f[̯nj`PG((OـHJ< +ln>]$n slI7U4&޳I]=+˨KȽgrOe 1m|'r-jz.v==SlbjG|F-KMO"fe6Rhl%`MCM6:![͕d\ 6gRh2V-ŋFj8bli0[?Sd 1* :>5ܷzz3> {YsT{!+i ˵8񟇉$FX [O񀟹Š/dHɔiJH*^dbـsv%^A[PmۯrbSF~kԧu*mP'?ΜL^qdd#~֪^=ژ`MLr&}sԆTdFZ1a5w Θ”@2񼶵 ]ߠkܵ'~I 1D JqP&,Y:b'`Kp$ \ Yf\DEهC5.T^M+xRn y`'uZ>LN:0R,gX\g@FĵU9'&q8(XiB$񠛚n1Ly}y optMj 7WBuVN"$մr{PhsRM6 D2֕N$_~Tp݃X wL%g`i{HԵqZIjy, xWK- @5C{> ͎;V>rÈP@Pi}d,=}}/p0@r B9ƜF5Sc6e@<{P-pOD1a;-"8*\ cXPP*i JF|S@hЕ0yxB|^{u6ꣽeQߝ~eP+\{̪膏El^aѝH_ AO&VWE-HE@Kةo[p ӇuBw |8-9Rչ2mX~kR)0TOG b=C"jB󷯹d_TД7xxC IY Ɇ;U`)J,jhQ1rQ5ʐ[`Wa aX$ȾF7a<E!"qm`˟(ZxwFR2|Pp WJw1ӐըwՑ8re%,f=Z;CҘ&c k>0槧$'/q5{"zva^c I!Z@7.f$fN83!6>W./5vP.1&!||/-YEtMd"ǣu ugJ.oQ {o9VP8FVI EiW+أ|_M(ZN “{ӇP'Ũ ,: kd>\C`|X4-Q$>0uuY_LK-ԋŎJCAQv) ̆WK$\g2Xйk$;8h7W'`Ef8`>DA(U$jMfw|Y6)@?]MMF؞$m_.f\a6,y6`:7"vv<w \!חS?ˇ6ɊʂJ%O*(:h`m/r95! $0|t%bc_|iՊqBܙϡ3K[ȨvN S=,`'tmZI$Zr6 :ZHAkb[G-%#9J1uʶ;;1Lo'Fmnh&j SE ZЁ f&_!П6۠۲ɐ_ar~u5Es MavA,hժBJ򱯜(ɻFo.ǜ(}~(@֭Ɉq@J"4;}mLZX33'rD&dėB{ =X1KTi|u8 GPˎnكwߺ(Р?%rHR tҵs̀9^ç674w˓4]yuCd6zV0H}q@Gzbkǻz7FvkbL:?kAatz$YZ AȐcPe F6#!.G[٥;W| SݏecAQW|oT﹉Dgu3Mݛ'OPHiB)~|nÝ2kh_ F)BX[A d"S=" Oudhf ̠$ι7t^śO7|b || o@"G+R5ȹӥHzqHN|fl4$;wMSu!-+W@dcmᶃ=2--źwh؛ǸgzPԼn aX*I+C8bxyGrađQotڠP8ãV6g&t8f)mX -T2*+-a? >p뢒P Zm Fʯخ4_ijcjI\ U}lZ:q󋴫2\\{Lͮ%7쑙@:$w O'Y^V *ܿ i8gӇjNLr*̛v;l!ɨ{Q0O`ޘg|L!bW/ ^ēO{Qoodv5'Ʊܝ¥؛˓r9:tjfę iT/Ӂw_Ju..^F%5[IkF1׌JJ娄:KS#-3¬X{ C5 K?w4҅ 8~?/De<֞H2Q !u/G~gqsIw64CIsK GĨl|ӊ9X1q,0XS2]^.uY D7)])j&r[6˂/S+|z(q,!Ic>)@5Č[;L#݌n:HYQ>|,,2mC ōYg+:d|~/A!$ WD{3/T:v!#NǮ#?T׮eik5Qh0Q 4dhc[kQ`ŽxHd=HՀ] ^uÑrG$M<:j|*˙Ͻt}.U з>&{ߔT:EJz-Q9GkH$F 洗}, cH[|!&!ذhc"2Ac*w_6$emFXi"۪L(wHm'-8Z~@'F &5zW]&$umR~Zǂ)ɋª!Ypd|=3 rQ{9V3lm4~LX~b@#<\S{(3ǭF_A0[*XjSȃu^CKՑR%nUI)l ہ5: ^.q?446s k"3-y_:\LtýP}%WG>6?8HQ!ZPd}?Dť[0~QQݤN% "B ,.;}GwP#n [tZspRuZ[3 ;zNgx :u%}o~k^ݪ8~p1|ցjhc63-svQ8utيLߤ@xe"w|M@`vZN\~ _7A,z,r˚@Ecƭ3MFAaJjXfvHr"3M֜ECי Fs odRrU|kk'1X#Z)ZxJt~VD4Λ'_V g;x^U5fig`Cs!ӄ~]Lٮ5NZ:ie-LPԝYID2aKҪ&7f3p/c{ޓeV!d,I7ۼ( ,*S\ gׯTD&BƮ;P+NJ {R77}ͳV,-Z.]v.=I*~ Hu:f oD= o,m|G eD-Ӥ*v͔lǖyx~o^X?$<0sr'QX-fGva=u\:'b4}o;B#.x Wpd?\ivWEnt<,I#y4fS~وzM 5X ggF J~V®q~니1;rҏhCg GVa N[Q 8sp3̀>3Уb 28'-$"MeCѯ?g[PW溽w SKYSeٓSۂL!JaMӬp@6Hy"t=ql݃#NKmyO yvۤ`&1pH&90~hjHs4$sa1^3etkqT^/ ~5S:CR"Ll~:Dc2O=BǏT*a .Sמܳۤed}Z=.VRO['r#53BG`D ON!JsiJp3Ҍ4BU#QTl{IVR0T |8/) "doUN79گ?BG^M֫1_aRw+D6|lB.1,7_3Ǘڙc י-zǖU 6B9*ѩ nCFۈ> kXdX p 41akr&w9'X*j/Y a#&Z?iǠifuh9Uai婇Ti% \)'=klznLa3U!O>Pq̃b :gO!>CFakPg@> *U3kL Mvk޾B%IS?Ach䁌wwUNp-:E:Tl?2C::eBqz\2Ou~ҥSssgRx4u{5+e_wI^"%(y1N]L/;e XfFi9Qvt I5Mi!^beG,y ŇbkIJ$ 0]l0bH4Ir27o~>Ƅfj"_P;8-XQ1;~@CjN;˥{F5}M316+p3W4ezs—Nr'&M֗].KG4+U/D6pQMwܵ̎-CIu!w cU A7oA]ؤN(DdML0G&990nM}LA'f{W4ZlcdB7x!~kiP,4]1~EN,$;e.Ms(yb!F9Dnk9jS"yېg(" f)o޸gtP7c݋)pk)F-f\Ǽ޲߮#JA Q6NWN<ݯET18 NQE֬@OCf(c}zGR ZF?Vv?M$,C86̩Dp-A{Xr5ogr^9Nx$@3{ȇGjo\;RRkhZmDUEwL0$62lIUʲۯMQ'+;W)x~3QrϰzBFx4ÑB8Y%Va 9}4l-L%DboL9'hRK1^܁M+@H D|˳&>I߃/^=DM'oa૨hV''^Hͧײ0ֲF]*CiGI ԨPZkGҫ賟r{͢BRkMDkaH`gEeq?\ͺ' 0 Jn.2YACum>JY\ A0DWI3"`+xHXgӚ@Шl5FQ}3zL"]uxYp=?cڇ66_!nW!ʁ70vMβvxrmB?X`vzPIރmܚE>0dOřV0WrELBdsjiQS`_4E`XCz{NJ(g#e2$cDZ4L3cB{]4LR0Nj^b@LF#Tkyn2q\4(a_5L =/:4U x`BA/&y=V޽l$Cqp cq ΁!d#O xY>Ɨ5WD#$W~Tˁ/:H6[ʂ10n,r ח#!|̈)ʯOeyxA0/ 4۽òN$9mԴFgjZ]e$b+ƧnSͨNe"mfMrW˳xԤ5ZJrیJԑJ8,?WZ y=]XKV@*9ܟ!;1y IR{HBEզ,b;reNO eǯ7駹E&eApiQ3i / 8/[$&P)~~^+ U9I+@: du(t`}Oj3T{ P#gOzv5Dh7=\"R#2O~lPM]DqdTkYqYn'+؛ݗ$@Q&=FOZ‚K>lp Q?U1H?09'aPêA>!DDZeo ;K5z2o?9&ڇ8>ww/"v5}P%,5`HW?`dq@ݺv1U8/6%30S;G_0w%za<^(ID2HY֬jqb_*Dv|JV^g .]KƦ~*E#mk ;}YP椭s@BH2͛®2 {.=NTIa9鱃kRO /*Zи*gFuIt-~lHIsxbζ(.OV uY;M. X\;U_#FagpŀyCod2Y(l[hz#}paBU|TvI I6d׏jōdq6t+y $t<<+ 6Pw:.M*1E31E7eOڐoLOnF_ (U;d=L\%v(30C4{0+C`FnܔisX#Ŧ\MlDkY7 ux2PUș$ٍnHO q u2;0܊p,l# (.i+0k_>Kz+eΙUFYgz0 i 2c]:Nr,gOw]ahN$+Cp"cWDdB6!:ȡbB\/5rΈ.,`Xp$zV./w̳\† NF7 TR7:&IUD5$]Ԡeb\xzv$M*c|| pM}.\CED2qCz͆k:D@MUF~o|bM1倕}Њ F\c\!rvP .g,>6HKqje[6`Z ޲SѷhKG9d8A!n9w ڐ!mXeOlr.S>ķ90J3w{ap)kBZЋW )JQ'*=W7 9p]ÈƳtojw7ryzN7}l\lV *WbG*Q97^"I9Lԯ"X!睠E)aFfa<ub}1s{e[,V"$caK+].}bripY@o -ɼ`рHZ}wo ϫt}w"CnaZ] ܫ??XT2nltV6sߨ&o jя.-mi0ڿq0{`&.}@ ̺L UQ׾o,foL [ܶY.rV.j="Zũ\1 s4]mFp-&][7Q6R?b2v_$r-:.d-ƭ/= \U1B5FE.@Pmq/i+/~{Ѭ\K&g΢>`I &-(>-s*s9&:>-ٟuifFh6NK-ľ=BnFVYgu˶',KS7,DV>'%ƋdoSuOx Z2= 5xt8=4(XfFA2§w9u^@ri"]tAHO-9K 1 |@o#ht jTWq k&`t<6eS"4I燔%R].A*NUvI˹`/р_ \>tS(t@N{S9!;ŧj$EMyTq Ah0bZ4sf'Jg?^~z},],K8r}}}XJ5HPk'|:f~Hoﴛg @I-TB[ҭ $3֡ /&w dGb5#&k/Z{"W$qܨVtR#f)\v6#HMEeu$wl#wr1Eb p]ZJy$o4R (0裴elFOoC, =?j0-n94DN?Gc!}W|^d ATW\H;#>R#mVY$xú8ط⫼y.\r$23'uoo#ge% 3C> Yw҃E6b QPsQڠxY PHM$0a%|`99 JIɓe!Lw9 3gl2[ϗ'*=9Tff핕Ol*9?Y;yEXq}&eBCXbc2o:q؞ƚKEJ:5ȊwET.MħyD́xS!Q35(nEn1Dm5&[S[ ":}*X;fuzAhHItbr #ۡX~Aadyw]-Nfecod ZĤ.=eP*MQ/Q nՕS$6LKh)Ð2H%]+;Mm UT8ݵuw3sހB{%lCh~GL جyB0. KL<b9yY HG@"5 Ɍً+RJP0 F:}go~(%`Tio9!\Z,TI'V]7X,c]LTf1YH4$wP?WV7Wg{˻D\U *U[|9˭G֗Ʉ{ G$!+Oi_Atj~~hOdf*s}!H1șȁۑSQ<em_qA)N`ͅs`Ex>YS err,fK,hYk"kA֋D#0X欼.n^_WBBM0NI bS T Nu^00-ؓ6 E#?$NZi)+}^g{x~.|Em٫5 SG7Я_ĥ^mYȸ[gCKA%,ᎆ͆{.t&'rTB IU+\bw.IOq+jtXVDZ-ul]߷{$\%{4)^& k]tq(4kaN}Fa.J4!(13~{\ I+i`\-Da t6 c6"JrBV݊T<Ҝ}Rʹ{rDݳXsά RYb 68Эb[E*X;Jҟte<#K'5br6/ 6YCz*T;tf oZ#-I=n/Φ)j4Ei ) ڴ(54dJSPdsG5{]?'9t{b7 •` en7RnuF7 Y,Y* F"ڀ \Yƒ6rٸ b.UmV$EaϹAO(/BOJ9(lbJO-jz{ iW>+,M|rHԴ v؜s_T,teC( 24 Xbisd̛]uۗ4@Pʙ2Ool(Vf 4.`ZV?JO'>q!qsE]kq7e*Rֲg@qi[U(Oǧ.,4'`{T"Қ}f{+􊼳fBJʏ?2SKEkDzq"c"Xp ; Gc h~?Eafzr] ?Im*D sV+qx}G7 {p[M9S*ςeΟ:*ڵa]E\,ژ\6f-2 0W /smoHJNYT4OY.hUUVJ9yr` ͼ)$AȈ'e -|kEA]j>ˉ;&W=6A 䎥f=3(?x݂V%OF3~' eBι%rqH΀r?v+ϗ;nZ)FE=Tsm^7;%rdF9N CR?.1]ot69e ՚0=ak$^PR@R6b7`)Y6 Ŀ>yb& "qcGk*CgWngr'ԶW/|x6e_#j `T'vpJU 8m5~-ҢeC:ZY[ЍQ0y; ߖ&QT:*Cм嵮Q9$Lk&&VnrZs'sm>jǐ|y"f.`Z?BCRnl..$FOgy%xwUTa{_QtV|A@ĢJYg Z)/r?xQ:2&gZ0Gy!nY|eF0]-e>M+7폚* 'd/$}k# $n) ;p*i1FNDX>7`.;]ZC΢Ffq;R![Y/x"lyyVJĠYNxoJ+O[1# +?\iMEwv/oqL(z\{-Mߠ[ q;~LɃ 2rm>Gkߥ~MH6= a& f>ۚ4;aZ .W;܇8jrDX.gS#A AAD2WMWsY๤.bmDaZ1$B*wM[ovɎYAyxjkED$x_T@~҅UWVd'iMcYqu:}KlXI/ҦC%Vds `re˧řw KˍQ0RR1=K.r2/nlA6o*vƜ.DCK|j!5OM]T]Xs<^PK"3+^UU?H}0koe1`W-aKɊ" r7pHP( 0? xg<>'ȦW8IerNT W$fB<.uӣ'Q`@`sQ[פ0/ m SnmS0 a7 q DX9g$#_Z)lE(ԘD-ؤ @U% ŎUUH~{ 8&/Z.t7D9?ʇMۏ!."RAj2*Պm=v/RRLcġΙeL(8֕ƆKR+ppmEOޯ~_QHQD W "* z k!3 cIㆆ:.׳KΖ~)-fr(9 s0޺x;_ >P$Q'a3 -7{rQ ԟN͈aFcرqg?&2xcZ*Vܻw34 NU j+!Wi!"ZMePEy:&C-6~WSlN V',˖~,6h&z: -x5Qf)NdfWCXb t$V!|bIFwmꬨۻD Wv='Ω#v~53OHx¢0?ЪtKg8sPWiR#V˔P >ioX~T Cбwr5kCO (Oezg [<|N+KwVW3ef0x׍Zo__& T(6;gWb/OL?V,/So͢TRijMο(#ڙU' wyd>}pnZcF \=T-ٔzffn%[Fi='E'fG%  YJ B_=ON͆$yP1WMpͤF.[ҮgAE7Y"F̜֘M6)`?n#"a#Ims@f7̵lC6HWl$9&b[Ѩ?3u116Pj˸8E'mWє*Nt!W &'ad)A - pȣ϶#aVp8\p;(%smO0.0V_Oi裝8Ccp.@CnAu9_C}5 }`ʙAm@u} ^D;![QwJH֕;MA"}rdQwXSm !Z=貜2n/8>qE_Q"5{|2 h Rt G)hT*q:Of\#'7oJ~< q}fN,5Ĭ]biL]<\ BdM@s,}6 I? u\VJ]b)࿜Y#Of㋞$p.-ugRqq8|]$L`sh0Ni.GX a̪Tb-1LI  >DJlɌ W ?YΉr#t$D׋׆^@R J ŶX7 )HU6;)}c>\B,}hY%ʧ!sqsPcy6>-bko;q%0.;9[\@=׬F)=.6uL9+Ӥ,3-׆Fae}?sk_?~vjb|~5:po@fY|Ւ~aofM{;:WldOnnĐ UF2,̳V}B}Fѵ{9I(KB>:6[$285*8Kt:Au,ϻ[$8g)Ŵ r^ps @h,5f6vn6,ʣ_.}buG6D$%8eE:AGj_?ݏ1"| [Z,W!p&) Z8c17>b7c9{IBۘ&V<ƶ!t4dTt AYn{O/⁕oL&p />͹c]EznƄիZIw[!>hݾS#i®k3u?^ *m15a f)"Ѐס&פ>X Kyc8Bo(o~xlqo*8ԍ uX57ACm%xǟ\nLPTM`n- trO+ަ@5gU+pix"48DS՞գ9:t^#*9`dxQ5;8/XWX-Y9l=ŷܹ7]O2Zqk ^fު@7 Ɠ$K ]~#s1J0J)q[3a:6uڈ$Z֒BP麝} t] 9n_[2iՔWY"{n+x ZSEؤ8{8s&,N~sp#-k5P|)j S74)X1Uy|/s9T*0\ c\6w?n. H+_W%}f7yDI|}\ |[fֻWvmJm nY9}:5w~2#QqVEx}2ljU5فUkُ_1 XkϹ"] Oc2ZiP>PpukuՈ=+P0)7Rl3#<QfeHH"J%[j.< t<>F\Գ HITbv=B|e_vynV~v89y\(ީ,ꋷGnw@>At 1*le])ȹ;go\0Ž?S|R[!G~פFY5 WIW NNAQ&#*=/yDt1|>blf euΠ]LڇJ '(S('qXss 0kI^!ܥxk7v[ ӎMcѪTl:7~*/I7S=)Dיk* &ɮPѹhFPqY̦ߛ4rsgZByTKz69v"]N\g!fE-`_U(HzIF8 ;7G7/G0h?aﵔq8>,>r-bOd"RU!mi5V!kQtrZG1 !%Ys-3ed6  |.-}R1af97LKjw'!Q8KM}Y).ݜ QNŮܔ&EDMQNL5i7!MQqG`:ݵ-Avi(܉S-QE{,^-ef~4%#d,", Vb{Tlq_̙Jn6s(m8ldH2jC'2o.|4A>Q ם'SJ oh=)GoEݚYT[Ɋ#cfI(arZ5D150XoxѾx@`0/E{=z>tS+QIDv!%qw? *!/?9bWb{\e!FD2E9R6ueYG#yڱXGjK*.d9TXoY=?CŒvn-lʷ>(vXM΅Hi^+`{@<#J U&5Lc`?V&B~FdžhR=u#t=O*:_7Ly:>S@qOu|0aqnC[=kEr-6=^hެdZ`ۂ_ b!jԴˌ咖jk~yWt}x/n"]e!lf* Rx3=Mrs_ yS$ 'K߃$\4 p߱MF:}V?rCvZZ? ,Ϛ!D˲-yy|U7|Qtw~h&fևl"U߷6%?t#PyAb/03\g 5L圿 VucS03[{ $J> 9N֏y 8ϏX`"[ba\*udmh?s]&靐U"&eI0_a595lQGU<ZшA | ҈J~iY|׻p̯ڭ\, '?v5 c8IfynA%Mytg,Ġ}z n5kzc$e"J'ċ.6D oF$$ ;GPݛenrW|:Q+, 1d _5^ƂΙؗ2FWe#8 ?ym9< Þ񼂿5fud*ƴ~F]/ak>D;io%+ȟ"V^1' YN(aߜ27”<&$)̚6~!9ƹ= FL`~#r_7IXU>_Fƅl:%ʜ$o MK`u)>ihkN&Γ-Iʖ[pNYG p I#ۿMQ/L}WwKxw  ʬ~D|ԮNrX fPѤ:](,RD/{ޗ~Ȼ‶dE0ۯTTM/L-aqC* pU4:ẽf?w4[JFs۶&O͝\^9gY߂zv Td!2˗f8Dx |4br]Sbd37SFV( '-sŪ%y8D6>Կ_:k͞ " @"IL~Ų>4SCqYlC8*pV+Z.V lXW wCR(ʟ//〬qg"ȓB0w-S^824 )7ِKaKL*>?[?a\٣-$3@҈4!v)!$db{HF_EcHЗ cLl_MFKf44R.TVU}M&+2uvbSԿcA*֫LiE6YX`׵^ϱXvgг~4qz~BEVN@BJwwng{4e>+[(֔@O?܀<ʭF=;/FC.j _w`ĐZ&ib6\L& cRH0JjV;yPl2LݏHd͎\5konvXRNיlK"*xj;--3UP}`hW͢6b?)4ʦ~(:Z|7:j@DZTʾǿiZ\ɀD(0mY1 <[[+Sf6*(%L,~J'^ɲIgm zD̔v֊"M8Lpc^vZŖk%shL!ᏣzvoPQ&fvO"_A H-J$ϵ6eRuj.( P[G 6cS?2P@,N-w7[%V8y8AgW)5DbLHN~ϤWM?OY}Kwޒ\uQ_Vcfip5!VT@@ M*F&(AU Ԑ ҰSG H]Jwhn~ ]%=& Z"ٽ<jm+Tݫr0k?eŹZ C3}+5U'EJdAeE &R` ^&!Q;֭s; MA*.,xvIo^hr]L}a ZIpt=8yi"Z+ɹpUT c!KQ+&pخMUBwi|*iR8IG%rvAo [[c`Ni}b4BFyS5ɸ)t~hŚ0uA]QL7}Uʃig"#,¡O1"H옏a$vqn9]+BVk}7QgqYy)"#]"LXm;g͌.D"Fĭҳ&S3;1坲y'UB4u,ĥa' ,+(Y /BA#0Lj#o5tIC½: &m^l+y~QTI*[}׭&`iG_$^oipoν8+b><ξM?P.7x Yv&J噕ĕ{i=kc>?hodT @vW }ѶO7qqx8t1rPg]7gC5kUqd|˽u;'m^1A+NFB&G}r@/MT Kdl u|ߕ]qMS5sX[(U=(V'A)&mRDqPqȫ1*-ײ!ͱ(m:ҋ yR>d17 W?[8Fp~T!*QMjdBĖD6uRYmO|BGWi[[V?Qc p3Fg_wn.9l68W-'{ Zh!G`\8HuuJ\-9fPj-F5 jYn##M,e&z}euM'jk܎ioyB %Lp]BF !8$6VmI5b?/֬}7iE*gPPa9Z)_!g' 7ZgtޅzBab[:tVM~/Ig RߞXQd>9%,j tq4/ȨnTn|n]ۙIŘS)zǒ7kӬ/irU!D,I__A& nIw'Yi =g}@KtҮ~Iza&z5Ip!kRtrkۼkoN!$<ѓS׈[7JěEo}6y.$ÜǾ4 _J"`-P7Cz`{7@fpͫ!NZ-d@D&0hz6-PԽ.˾5I}.Ia hX`7~~G6R <&e[,#Na~a0 YDk`!kJDp'Nu/@A_ӟ]PyGSnjB/0ۿ0vH [hq4?lېѱpp+<`:9qaK=a }iдh-zTkcx)@JeL_gK*q+VYӑ6V:3o6>uUZYn_|/8 N~|A(Xe֧?n=-rØx2E<z}x硁pJQ~Ȗgbږ[:K/dԹgr._pPGaC`|y:!?!*Sug ?_gΐ?o3`zg1|%z&MV!4z? ż17S\6rdR.4b2s0zsGa`<ļ$'|L=ϮU0Yn'82)uZrxW'Lꍧ#ma(bA4,VLV/+~ޯNGW}T ?{/9ODn"h2}>AXMakm˛w?mGTT|\ OeW|h,v C!3绊im]IV.(e1,dHI{g(Fi7T |[Q:2c Fbf7)Ќ^C z2ROdUci1-m95 2~ħ-ٯuS}\Ovc{ZGYи4 lx @ߙc*8 {D\(=ި[nz=SF)nTSpG8]'^^;~_"PAlYz?lUrPgV)Hm~\VIx@ JI W_ڔ&+)9Ebf#~@:Y2`׹"~-krD*ꤤT&'{F51 oI$[ybow4?Rq$&96rFg8FrB{>rCf$$=~hi ƩkqlU!} d] 7->9+mUK%e6W>im4ZFʰ ۣ,=qRmi~Qd-tֹ[zPP3$Їd(\d}IJ0Z&bCdٰ`L7WD@=&XKtEM:3}AX*4֢ƒv]4 wRN"|>hO=(F.e/nUɍz/\{͔J2ɠM苵:>m踝W@ ==Q&85zgnX %k5.3#C4 lUT#|=M9yW[$%dX#߰ﹷTT@D`uU!} ndGFTjZ;R/~&l1՗ߴċa4hkv)`\ǘEBxI-*2dGp/"H-Z,JƲEJ`hkN﹫o z+2(K !J#LTO2:T3wĶ\x.mG1 j4Q2_/h)AM,0Q+ckˁ^Q^; :jUZuf~kvhnN56\:,[JpE֮M+6ꠘ)B·i *N01noĻXm218JQ垺C/r"4->jQgG F L5}w Lx%yd͚ˑ攗a"gʸd۞"5i )92sߡzү/@o=UMWk}˓8Vy[{1W/>6APTބ)'ss|f"Q2_LڭH![(`c:2hR~```}.B-O#rg?kQ)ZoEE~010}|c Sǚ}oq FȋdAC !1SS{X b;nHuK˾վ-|C =wUmTJi}ExȍfWu<{?~1-cGzF=O7_%4I9Hʚ?J=}KiˤK-=Q#V7A;( otMs:/rSZ %;~ 2e6>1 [Vmw2T) +Kт0O`FH`Yߞ t-, "S[tesF",, X=6IK{8N]-n[5xږ'ys)T1]A-Mg_+ fg" lɴ)P`w69P"kuɑTWSD[TYJ:Z/0X b<=B+LCn6<ΘS$%y*20k3$O.=ZmwP.7uc1:s5[3 mR `dґ;Oy6At~jl8j?xb&&߈LA*'UC@0SD|ݦdmI2Fn; Xq$sGڼq=v=DCKwE9s{:C򡐥WJf Zw:yrja۰LIoҧ=%wG9jwX%kw8E?-?sfB!鞺x4hvh7(״8+!tA =4njN}VR{%cvzf2GIîn)2 c'E=1@*'btbs]i ]߬lsgsW V3)';o4:e Vs祛7:YE$iųdz>|~aegG&K"A˛q܋ dudދk3:ExkPv?#TF0 V Ȉ߶f4 %"~M:aI E 1IK w|_V y떤׻#lB|_P3+sKP,,t\ ͽpPdIMkшWۥj6aO0AaB\QU^+:|Hoq#?Q֓zJ<9P:nk^QK5|78SsH,JWc7hQj /0r?#ʅA]vdfOYuK{6x>L'\:[X&`wFmr[ei{QZ_GբJiM|%c C~w?RT\c=̾ R7gCk @s'𮥧:!+%ZpO_\ \N)'3{^2L QJLʗD m_(&Z9@)]k}tU\t>ٜ3&c|.VOnOc/0{i 3L-y+ |m&#>x$ey? ,XfJq=UZb+@A hvoByo_ Cqx2i?|s$;0&Yan.YGdS,S%8$k:|t WjI^532_SB;MOӭI[FC[vjPb>"wBz2Ky۰nķ' f-4? t}B;|?0_%Hvq!uUr UޛTk<q E*H$T0goв TRJT6v)SA5=̪% N=^ ?#6TU)*y} d) u8J\OJ62y&~1|lKԘCfG=PhIRݍH~AcW2[K_[ ˋ΁ɱZ"ŻQ T6|srRMUkihsLįdR}!o+?HtV^+^6'ڿ^m0QsF*l-j$j[O [nhגiSP*po^4Ә ٖL^ k+j.^i-ӥ?̊(Y3@7l*h(LdJ RV5 ^1e(ڷĠot=Ftݴ=!RD^Bo@m+*"A!mQϾe܀W!SqTWKC4DQAS'U1r)W/?IT25%¼ws\EټHJ# $7" O\M\]s+s 7&?Q*d)No܁%%߄F)e/_p3 06(ӎGvͽPmNEiUYqU-8RLfCh'TRB/_yd 1rg$t9'~6nHo_1A$V5]#Z/ɕűiS8ͣtȦ6?<3Z]E׌E܀~&h a?*%x+j0z6R_wg;gq@WXC4ˤ]7IrLb''(@FJe;a R5e7wW>,,v|#/}ETr}9E8+C?8ˠ U!$a391i0Z _:r勽K u Ed'o ~ 긶aq/com;PJP{pX5,Vdl%Ȼ$del,+%T,wb/_J=nE7n D1d,fg-mӓ2Xa#_^"֗:|Đ ,H+vN[I;8+8&.m{h߾$Z77s&}H1U&h;a+[ezwkys!Bv+]_cBC1!M!}B+X 4e˩l:ST06M EmHcRG9·!tb4ʇ 7!עznf|M5NscB-$;i)ش7RHkxV^/Gro ϲ$ FsU? 53ⷰV (p=೟r觉q.kF,6 /%8Zpı!hVovyo8y&:msH;Rerc Nn\7z?XU Fj w @3 .}pPa}z"ozj(ifvhmqQJĤ!s,!qpj֦bL/;)C9]2߲𜶸|z x512˶a$6E Q3cB$HE(jXPeuE|c![X:0mAJ5ޝwog@N޿N,,OY\fc8ߗ|iLՐ䏧d'?X81Q#2X`!ۃ}%:2fBcE X@3!_mLh36gU*3MضYu _%lZ/Tl>GE/t{ 4_1Jɥ:9:2.& Ԥ瓿)&"4qo*վWϽ6(1YNT^@W QI9]}^:8SP=k 2 6ǂ5ދG[V ~y '=&[Tq'YĿG[vƷh,UsAe 섐l//&,F!澒L@$!p_k&FӺOKUH뵒/@W F\Q,Zk\քOy>ɖ!IXR i# I!/?Z*{wA̯v+8>Q֤on1v+X2OZUy!DYVED9vi ߤEo𨄇(,)VnWlNoG =lr5%<6{ܬ=UԏTC6L֯\._CoV܀SZSZ Z+?HZa1cXU;r)#.} c3{H'vL(ejbF XVH'T@'Ux; 1X*hNCrK9;y%^n`DE02>! Ը `G OAqc:}jO! ?j^ʫw )2 lOs\80VE$m *сԾ__`Ąc x<m$-+Dd|,}r=Ew%»`NgNGr~n-wRq2TuԮ:GêúWo3C=Б-ASzO釓֑b n4'C@E=}s%o HBp" IWQ}5 FeYOf=^)ugy-+g&,ZZeh9L]A6 %ظ e6JI:C=hɽGyQQ vb%\c5L &XRm7cU3]?N[Dz ҙFeP2ᴢ-36Ο`YzGa籩yax? #YW(HP6{Pj]1 3fçoC"%]f})KO$!=\,zŋ\&BWzQr MКSmV|R~'_e)KT:+u>m HVXM~0{a6lvm`2Tk|P._EUyx6? #z36‥z7vEEr%Y/N̾dUc6j"Uqz&7iܑt~1;G*UKyBd E@Y2SLL{[YhkPyceVq'y<ĎBbm@ wu+/A/'&F/f7*T鸐w6ԾOa;eY, l <w3@nYHHePuhA!K,Uv@[OѲ4Rg-ڏ}~ 8/3F ZU+"s2bHҷv.c'2Rep&;|D IH7"A=f)5]<  sh4Cꕳojt3fA[3la̸ք O\l, - 8;:Չ {+D#Q MA@2xe=-{<ф\n'ϳ\7;"oin s'f=[ YOE~"= [oE(SŊz@|)W`*T c~2ZYL/j-7]jlpբhijbmš? ut ~` bx־rvDvj#R i@G-w<,΋|a>8kIF9i#G>ZVPʞlp!Qݾ+N4ApŃX>Z8y -FpM[8đfm_L4po$E! a&Τie?Y)]D$,s9!ėO!\sHgT YBb[-$s6A`b\wH΋æDaj4@dˈJ LT>4$ L|pޖ\dbDY4,Hz*Woz/*Ӑ 9ԈtN`N%'fc-P.5T`\S;ϕ5YR^qRs͍Z{.dn0{ͱ]#ոi?(4掌__ ԃdÅ暮S(Q޼1Ө 9x:_OP)-ӗEb{:Uͩ$Q~Ι M ۲ `,5'e _Ęp#d:9s9( ~*ZM|iH^^Bׁ5;ꤏظ@{=HvJ}#9='BJSŊB|W=&z^k-h6Wȯ.>JH\jn> b)+vTTwřC 07V){| CFo"[_Kv3&bq' CKf=h5: W% 4n{-. bh`/Hr(!5M@nL`N-ֽM?R,o 5Umd{Tlj{”e67͹U pK2Jы~F$ťH!iO>ErζT5&u[ S*Ȇf?+rl0UBu Z %/HͮjoQl,C}IOt{7^?皈l#'@(=.̊4G=k }y=4L3'`>u&`Hщcd@g^/)8~2Β)<˩/xfqz!pnj'lYPFEljrHL ,>EnL(x=RgK&]2;NQ$}Ƣu.30SdNgM Jx?&RTmt ']!AWGY6*Z%]Ee/\e`7FlĊP :ǽ k]H͔Hx B&4SaHU^2N\7PYͯ>X 4 r@G 1wA'.Q[Ux6ߘaG-9-ss A SN[T6RDg|FTVK˂8-}zZ'z}jVf_ΐ0`3W._*"CHfm!RxZ 1e-3jwlYa Exk?FJ4-rY'_㉭SFZCqAvP,ĠtW\~]eڒ=2F;=D^Sz}F!{à==>J2R[@* sQ}Զ"@QqlIr72bt敬TPАeVP7p֣S}f.qT[lt +YP/Ӓ/a*qMo>ԥ̠O~ u`ي%iYc)ÁlRؤa̬GtwByb188(wCQ8!=aj[SJE%ƂEi|:Gg2j[j7z*8+qӞACUGhą;-G)?Mv puB=<U^ޥ# HCNJKf>8oUskh|Tn|Jn}nԔ7rfO# /\۸s|K4ʜ3W m;[)dzdz3Џ'k٫tWcr:T,N5ډAʘ{ax2[ իq,g78C64}GཔjxqH/Y%o6jD:s9ƒ&9yo3A΄@"F ]U٧{[٢[DQoʿvNw6:#/Q6x`,w:}.]o?GhYENVmn52L}ssOyp0Djj4 c ݕO'FQB)A@ۻ>S(upv7CH9q-òI⾶^CiyNao>kAbhEn. (X4ՏI/ӪCNzQcf#ׁQ١X[@>m>C?Y/OO= Cf%=+VF6 @k^]g}(mUGa :{X2Xnh)3`1@-2UėgdOw!bX=t! jL)|xN"k[ABFi!V]kQJɭy-܂ߑ+-w?Ѿ΍l˙pٯ1>I< +PX=ѣ[ DxG%8Ё<it3Q%d_᯾у(Drٖ62cj%kc+DtFKMRlL!>-#7~=M00۠+0 iE* Jr9^(IT3D$4MJP}^ {0LaYK"'C N{RBTeIJہM2OB"T=ǒ9*3ZXM?zo6*S0 /%D>vulj 2q(;7-Ԋ๫(2Iv->Ii5~xnژ^VFq%lUNE ;Xʼb̰T7>0>˄tV1 =]3=򙒽/h$IW$wvuiPsc2VL6w<~KNq T|rBҌ)`j7H^ }QA%Hre&O&a#!ZUv:07u;Vy}-o ]&#¸pųд)| 2v J{hdaPZtXf-~ @YLN81G[ߑEK%dv)"бwUtM.k+Sݮj!,hC}@ߕ#1+H'"&U+`Oa+~G2MH*hsc)+ި]cudſusX,64 RbTQR#G$ci)PƷFsT|'!4>ce-#2AL|<Nr~*2!BOԗ5A  i c6\)/5EL%Ʒ+PhSnHzxVBz3q |埦HEʑVQbkk׶fNUE*}v.\*h󆙱t(BۢSq R#p6Jǖvnutg4V s0 V6?s}VT<$lZMq'NRgnins]# :_ĆbUV2XċoyӝGF1*D^aV3J =r> [-0:,6/j:}fm ;z2(\9KyCi+hn A7t_03e#sց/d0 AL#K/5`;:VL wƼ+2 jhlhoEҧ}a7?MhĵeӕQȺm$$@GEddރ:˴yc76`ՐXb?'Ƀ$bssK)D-e/0Q6Pc.߈3'P+ܷ>prmv$c-h!eid Oz|m<;b8M*]SA@.-4@Cr/S`*]jVX|f3')>@{ko@l[<)FId|x\vj*&hn[H]Bۀ,f Tix(%ԃx/pJƏ{Szx2e'eas'mh1ᮡGN֢qL^U"6D? H5KWkWnLްF3ϊ1F:Dk[[^-2 v.&Sq`EF$:7jvai0s'A88ǰx--(4z3G*,'6Y `xkU<3 Tf'aFƙAӳI*g.0 >k[K* K"`[Cj0fatu@ktXںLƴR8CcQl96L:࡚bjP9,/aiN1@VW!F62$/2`a;,݈l_8nF7&#J!>& -H:vOS^(155 <+mFHLbN+r8!MZ2Gf3¶##N7"90k%7fO).Q &\QT\Me\ӉIBM!X%P UY-( ?`SE4]M_}"nmiVOUN4(.>Gjtx֠^3˶y5 Qg3ukSƈ"[>_\{{;{%^n/ĺ%1b!w=gKPvD:7)k!=qB\>fl+\~l!cq* zڛMwZ $pf=: nS7 2fZly6Y?IGy`10@'"]'3sН5#0;4"coO6Nl^ba7_hxFbvl;YgJ WaS7 yjK C`~GwK5,FL'HzMFOqJk,XC7ygM9~G?b1P["'~w2tگKh;a]wLJ2C8PgWV.=P<;w"pQ< ͒'st3Ңr&ⷸ+i$OPqZ 2߹eGy5)jZME+qͪb{ qe:x u xp8Ӯ[( Ԝ]x"u6T ӜğcӤ[,"Q[/9rܣ"D w\U ~0Sܣg |8jl%@ g9T?*;R OA"v6?`.ٴV TeID>́d3 u Qv椮7tN\<9GjzoUĔ勆'ˍS7Y^]. +)M;\"5gL9_4Yfǡh#Q{m1–'uDWhXJ+Yk9v̀EX6&az9%bdK)8~ "7Cb-´NVDA 8J+zA1rYTV{`qr\dh Tԕ ^0N&4yi V&aJWy밤 ȱY@"/ EQLfcg$4Oiα11Z_nF1a.E^l=r/M˽ mMh&bsu 7ad-d!8;XI/g%|g: i-o?uϾQ)vrPo2_XC< 0"rXcJQ2.W"#Qc.tBXS >瑭ap0Έ?ᄽgF q=YVTQfﭧQ#f{ijY_@=N6N1J +i'{h@Gi<.KqV?f@6~ cJړr|FZ+Q"[h `A^U Ō<þ,? NR+'.q#F[/T3~˫|9~k9ѓz<|߼j/@yX{s;N\NkMkHǰ1*D碸z1ɀ ȇ~βhX2 QKSPz%C w 77tKW i 06Ll|wIبޛ|:qzތ +E=|]̃VnpVȪi 8 Hq_{#9I> 0:L@g^0N9K \iCy!m6eHu{ff$;r Sǵ hGM[i4Xb?G'h (ոu:~.^CA9ǐy̛C+V8;Sd !hA4e@ѯ@w$^8u$,J]E=msM !`/-4x$jyC\u +mG闏=iUAfPX {'% vE _m׃P=`4^Z{^??AT3fA!U8mر^g=qލl ڲ|C_nCV[,$$7_oD“G$?pom#2CV{ҋKH;9"1q~.d͂BұsEjP$[~{O$Ebu~>TK6CXk03JpyS ^K_f&׺7s-HyUӍceq J3Y454vC;Re:s5OɋeyFՉg*u)3GevK &w-E$ ׭L-PuQ8l'nz*>Z𐴾(n=|X4u.gFI -'ed%8pO YjP[;2B)Ͻ(sGeiBiۄ ʉjgH맞 Q'ļ>\îҚ蠚[}2)LgxR_Jhrͬe`=Aȼ2'L]0ZiA_Z|ho^N$D`҉pDY HJ6 kWxEV,)U9fTxR ϟGKdhXS 73*@=]@hɮ 8xXKTV~m; z jA!e ->P!U9 %NMwY>o'7o)GƝP i-L= 'cŦ" )xW6rtf25Fyd{nqCx_V㻯<*m, pCAW ja9nF26mdC+pCA5` -w븼y4TkW51՟a~O*f4P( G}}NI՘;52RC8PL|iVl=hV)juUc1jpa8}Npٕ׎OIyr6▦qe[C s|{ù`)'K)(b.Q{q fQBkB-.j :q+&D2~46z?NՇ(%dq ?q- c: hO?w =3jnc|l6L|u"|+r C9)gPVt#;QEp 7x[&%5#9Sυ" Ha `4nZgxKy $a䗭17⢽v˹Iix?XsZ]MєK27>զd +dDt,;6zs4&-qHo.?QvCEE{u@VPhDžW NU[3s|d q=B*4 J>hgAp0;K9uokiȮ9zEj n!*P$I/I@Z'yEX4C?2L U1„D`W7pAF` =5g<#׺*ʀ%E!u.?/MXUw4gM2"Xު|ec6PK{UzT-쉞H&D!SQpM)eB*0#uErx$cX>J"M-L-]F+kSχ>nk @Z~]G0c6@#]]e-ђsgVH3J <Է3L& Lx&5jK(eF9㝂&!$wp ?P3z/~Y]#-JtԄL_I%^Ӏ񣇯h?5;YJ>9*Zv%kE4Bɝ5+,&!o9 sa&g@nXU~yPKhso5sU:TwBN{JOj^ez4z)7 k=B́[ )7&÷(Mh^NI}pɣP*Ju-m% PQI' iPd ) ? ҥ͇5`?3vE5zpO$ft@_Py#CD$b@U[ =T(vT gbXVLy$~j.]q%(dеBMɼ,SއJ;WQ$"]0iQmQ"@I(G(M7PϠI"WhYhcj_BR 9v<_?0f)F]1:|S\#D.𣏕abn:PúFyK;cdJPܝPf%?} 5\#9 PS>lg 60D1*rpvXڟ9ݧO}W-i_~D Zs L\O `wQc!花\^l6Xj ZWNcɠ֒_DuSr N0y%j5^9jJ5x ݷ! vRCgN8e$] A_ͮږ.Th LD7Ojɖ$=v]S:# 螑Ptc~F4˂].yc2w3)…'<-thA!윿вp=qM.SW/xvZƾO—Xĥ hBtl, 'Z785t@+$ԶkJKL3ƽ36:s;i t2fdVEg'7^ [i"P ,1C]kfs-B0$zZ!ÉE^mL.Q,oXCN?΋aL)֎\'g5ExĀR=~gĺU3#uNvf MRFFH$ILdWpToz骳Zwo.[Iל] %T7/k Fݱ:F"u[ӆz?Hc5}~6-?+ߙA~L+VN/zbo]tC3"?n*aSئU_E~ A].ܼ)?DlфSA0-{و جHA ZT] \:'j"SKHp]uDNXD*iG1wG`^OPiy| uSif Y9`Du>ߌE/TN N0GI`^L3W$N]ȍ^zkw@K8c'wR%&n zJrs33r }e =Tl[`jЭ v^N?qǞ D Klv)J^xQFҡY]7#ry$pyRyY=(}_c"avVM Tό }]&iBEWǁY̖a pב!`]tcNơ?4/pyާSӑE=Nn?dr-,ZP' H$|&OW~+3v<"1RK<ǁgy?SAA.0΋S.%l=:ޗ< ӿ'I#wXj@ͶˊHf<[w$- `A-0rApevy'l, 3c/Oe@| [[SQ}zL|Y%<GR-׎V<!F{[k'p/ٶxTxƢ.$I-Ksm\e%LR^*ƀ*ټ K0|5qNEW0chfMK髦#Waש#}K0:0܂v7ׁq(4wBHHT)7۶Ig dlT(!@T&ڥ|V&a.6w?g  %`\0A;Ʃ6^SY_^q?"fp<5jf+ Fp^N$4 H.bR`٤^2Ri>37ɛȔrU%$tqvgKr>/mJʚpjO2{'#wkQЮv{LӸ:8gۢ? wݵGbE+1,,4 v82A=ċ™K:k`#ax&z "l[M#` .Ԛ?[=;?5EÔ0e;vb~* v'kYGqQҕ?GmDZ' (Q`S'c|* 䥴*cUmɃ䠤 *E7-w?! IAbd1M]F7ϐLgV=?m Ӵnn'mIw81iF|ZqSF z>F̫~,Gw}qB h??V*XTZoobHjSnǫd8=*0pSFby=dl7JWsiOi<8 OD>ٍ6JWTa&@+6% !: 鱀pr4X.52yWO}յk&շb1!7x+'LVEi_|}’yo1bACt ,'?Hqǧ‚ Jϵ=uY*sLϏN7h:fM/٫)(O\B)&rY2Ȋw"L(mVsBT|OۺTѯaFHgF; <~E\ }mU(קruQ(C_Й}K!EY_E¹žOi'@&HDxnj(J|,%aUaF5-CNu^G4 lא Y}9x%]S E8?S ]2~l[/x6pA5Kb!qZLp?W̦DTpw2'mjK]oAXxeoWr )`u?8/7mh'ur˨GHmO6z@켕 HnBo[fzK G6(3K=lDx@;t)\ڃ b)eAc1 0] (E<)l\|6? 9[  6`*SX㓣M.5#.m@(9 ۅc5-=[ h 7C-tuc7ΈՉZxHp{'|w7&(EJoѲ%ZRiр <=^V$lD`GAuF;KZgF#мTo, UFވ)F @HH9*f9u&/aT YKgNB\_(* =vlEzJkd5+nEпMZ?@ML%ɰE* `Z[$)E;ӳ\uyLzK e> +=LeE k~kVg^TvI-BepZ>{ LzcẌ́ϖR͟ʀ!D пnEӱ@MX:ZW7}8b"#)(#I'w9W` άv: _+dOD#)@%:2eMC OɀJg$K z;=:h"↬nڭK@*9o-YĢH{Sa[* .sB Nq5a8xK Q7tj|5P"¢1;ych2+ʸE՘3o)󏙔Ix.`yz~]R؜631"PS,R}#ZdV:?` 5=Q>]ѦsTp,LѠPv8z_وt"vMgz;Tx%EطMnղg Sid}:i(QYK T(GST*+nE^BFq<(xF(UƧjϕ]9kf "Q{/I1ǝdYK|  EN(4F㨒DD[`ʂ^9@j1DSJ&& ,~hlc7@B9p\KuG̱/ƨjߣy=YɁ[05pA~ زR O t!VNۆ[Yt6bQ~ڨ - >A1(DV ;˰5g[C] ޸TIDkOM,<~_xNذ~(3q7 $JFGYAbB1C(`IH l)9Pt,~(Q۠j ѲX}8q6T>fA!fKdɮ@Μ |:D`3I1d$̂f5WtnY`GA!=dlJQ+YMEA:4$KB=9BTki!\q/@O]?8%IF23)J@ԔʘVEPh'B$! 7x1uqc|̚$3sPBQM] әlE>z?y,Z;]٨6+-kp-KJF12-nw#MsJ*p"M4kU7>alLny*ǀ0LL>\ ~^.tS?K5Oֶ U>hj#GuOZ`RB*j19`ְV}=$K?czESY1svt0`w{ 1RyyzxtUEtpA QJ :VjY*6q FLlvA bfV ᭘/\µmj5)G eY'VUDXqJ!`kRWd$2X5-<DoI0"n#6BKi>t iEoxd^K6 BLGfbD!깣]<o?= QƓWF ȟ+b>-mpUݐKkP[z i;zFj+up.zB? >-/iGnM'$qcCsN@w'p}IQ粙Я#|B.0-}N?b1Srl1(/WmS@OU)I*vpFŖ IX)Ej@Eu 0&ľ&mYڜsBKEAԄ !7shf9$21ɃT$lpnWlSG7R4GiR Lh5 0Tު%Xhqt[ஹֹg^ 9=e )l#zXLΚA8*5[ "W}g~^|B[7FWM(KJ6ء. |ky4vT`=[INkz@KlZQ#Ae'tKu1'5ylCs; hi jDZ|خM6≐WH(%L2v#ǁӰgF+6|=gTzЅ>/ZcE 0nK$Yo7`6j@|iN'_k/Tp"(}_ (#.̶i{;ΰNHFeBmb\{0Pv5 ϻZΩwpj75jrEpVY4Q8<2eEbQ9Xe:eQSϤcu2?Nt)n,F&`;:BVI xts4#ʼnIHkbD4`t[CȚ-+gu1%DDKSYuu& GӕdGizdwWk5x3*w@ } CIӼ<;h&w<{oa+!'W z)#3 T[X=\Dn1cJrjC2R 6ݻ> 6;&[y*F8'-HTM0?+~kԗ:.Tuέrj1V;NR o=IgZ}/LV& T8gee KoT= waIB!M @ A=8!{>~5`Ao7u 7rZ+pBs7Bj ҊpbhB7]Cfo7M,Jſ/cُ-(}H&;E=Xoa&q8#6Y m+y4-~ 0m-_'L:KBSl;=m:]b~YeL Y"Os_ִ[vxWw[_95>N3XRxa- 3o j~U'(ߺ(E1We=*Ѐ6^U}3O]+@`+4 hU38ƙenUƕ[O0j d`EEީ!rrƾ$ `]`mAbˉpK2AbSuldpXܲ{nGo[>"mIyM[~tb"j{7 ԯ_F/)+B޴t8- &᧎'hv;߇k,AafK?f lx0ٺG^Z {E 鐟~#{*8ӚBR>45j;vxՙr fY`̈Psr5bOqb뀣okqu7b$̯@ ރ͊@[,mUhTh2ӈ+ՈGNx3 3+coͻ;0@1 uUۄ!W^'Ĝ% ʸXp_*~\H"9^7wS;`8>.-Gc B,ptق -I+y@|,A:SPz`⻂B;f@FPZpte=|$.%E5U5|,hH]ņݓIf2Va>a)=,:^wn}_H&F\?䬗m?Hctq Y+/XEAYb#> j" z5(|Ӧ?r!єf7wi~g҆E1Y+SqH/^wn+3YHT0Nɷ7ZubNzsvY$ z <ĺc,g- ![&N7 T*! l̓PWpȝ*1L^oĂb0BWBGn>94+)ʼn y?u >AnRZsT 3z.M֭WH}19 #*fGup]1O(JGN~ϙ~O=3=bAYxe!K@&'Frd;%EEz[|./ڈxYݻ YRy4A(c^ρ;y7f .CV]Փj;>PvotR5 ͺlf3\«Wk լD52ۯGń=8lZRuVr,۳B_ 8H㨬$?f[ ϴX1ԕ%+-";1 Yq t^@&ww&;TU7t7ܔê~.FwJv#z#P!8 JvxwDuP0YaCRRmѴz(/U%mK* n*<~sx/?? m .|[6Z9\캔 ƌh T6w}=N٣pP<7 Mf>XpvVUw0.RFcۊ$l #o:t{h%14HJ~9(: T\o8d&9;?E\UQBK) X#1(/xU\'TLHvtkl;V0X 51Cq:(Fd @-땃4%U`+*k+Pv Tԃ1g= 1g|'{klox=sbP\R.edчkҍAC9SxeMt#(3R-F7-{~WemVEIP [(FE}q3 UܷK"e˛_C_(λˌACzK +Po-xͭ5]|50 O9Q+ĥࡖ|n)RiYthu ЊMsx!^Ot7- ۥB%hW_T|`gf@PFP{ zubp(^ T$`>tk.~^EK=tcEQ4[?oU[g/DrJ}MTڲcE@ $q{/ `no0& I&-[˶DuY^z:<1W &xŲ0 z|J }4{ma/&d,$izTs: p 73u :d`RZ7d3v&N;yFnOa}f6XL*;p8\(2<AWeXfl f{t6Nn@Ȣsk4cA<Ż?pU'o2eDL̝߇ $Jۗ5xЫy@HG&uur@Iq!klǢ'>ꨁH/\u#FjdY즐J1\a{FEj# WCr da`Dl NyYZYxyC>'O:3hZߣ+‘7o̭㍗nŕ$-,XLDw"mjzL(vQseoi*6b9d(9V6q\2`N _I4sUQ.<0YBcAS݄ůN>mX {sV w7 ̧FI!@V$M9*L0MQE~ju9V}B8"cYN|4|X m \e*9nk2b_z&Y\:GTk2=!1\ǷNzqѶ }xg3WfeM%y"k!fJ#RK)~ϟ٪wBv_4u5T SR:+^3QfwSb/@VP~ rBB1gBчڙ/EZ)v*Q0A~ҞtӇ631kk]Kc;xXLjޯ}b +R Du5j`~7H\&u)ez ݏߺ,.zܴ(aM $4$wnҳ8~Z$rBxd Ǒr)1։}_ee%9c #y17LZu,[G-xyп·w8 ;a%Da?R%mx_,7}.HwcѝMoZ1-d 듧@&#;=+ YH0H/v.? P4o&Gdb?Ľ*x9VK,8pq 6b0O'bUϨœ-6sٛbo;$ pTw@=vy8rLW2vEIŰ#?s$֧d+֟)F7bv3<;)*5)iYXŻ%smE~b ܮz 1+$[D:YSl&" +LİHN6k.s6TJ7"\d̓/a۝r*jsb\Km-zhz2#~l <~ O|8 )K@X\5`ZY% u,ۆ݁OD#;D4 -Q7iv&#Lted9_Z9?o̲mԈE8AeE(bǠd1[*+*:> 9]ä8b,;EfR+9D_!{i2Pߍx67&Y)w}qg|Qۍ1$ =aʹz'gٯP?XV p!lWr#s-w{kLqT+}iqo4\a /xQZݤoeNr/yX!b FiҸh}B_=7s,<߽̿(jtJ}')j7_n~*T!)(AR nWC}^K61[1Oċ$y $tD\&KyqJަ[o1smUU_NIoqLOYރI_)kJ5nAB6c,8/A+DyU;BXΫe? 4Ov|(}Wv\An^]6Z7_Ǝx3)$~繹a] ̌H%&pwÿ%r;dV8J-8e@y$FT?k@@lkjߊ1zۻ^g)Z-y;F9L[0]q*9CA"CLukÂk)Y6)ӡJ6󵦶03!JpT]Ig;! rx[yT{5{U9^ٛt£Ca,aw5U!#%^ 4ji\Cudtc4c0(7J396xD1MLx.f]6Z xRpJn%7@{ ?|WDѭq,Pqz:^TD5̲"}Y.荦_w @|#|soqiE2~l1aDlYл"H=s/'}ʾ7ȬsF}-qn.8-1 E*IkDڤn\#s^^k {xK`t!?4IX^43B:v t| 907fCJf[R9gh;mB_z6,;UQܔ^O f5b= )%*zC5t:[/̓uN^&ړIM_0.bP$8XuI$ˁN@dqh}kD8B[wMVS+a:OTA{,a+i+@KfGg%~lܟSEQ1ݍ}/#l!#ΎN6A6qjωB= [cj,[eWC*a-ڰ$AACLe>Hw+4䤸CHH[Q 5}'~60pzĈ"12k￲mQWOLkp)vAp M5, .2,G9vQUzc&iWokZ:ErSK_ƳJ9`7W>qpWD ^4xVYS\Wm4Ciͧo=a)hkn,ꃰezQi:%8dgHkpHؽ_ثS rbI/^`?oe*wr|0w2mֲϞ_zV(2&"ߗ~^3,᪞U}_DtQe8|IC%+?W&_ivV\0YJk d7'wY7 S:y#!b[go!Z[sMkL7sk&Y,kwL$DJl1k'V\nEwt"÷\l  qoЛ[|f?]_0Ql9P.vh=e.d$dQ=R*$YHJA;@spnU@tksd=#0z mm[lb7-U}| B3:o β=ˍJ~:#L?$gAg29\K;3<$ I{Ͳ])L(l9&=5K *:oItIỦ.*',dy @ MPҔ\5,K9Ԙ|vn_N]l +-K)R!g6u+cvGP{)z-$})Bi V rW[A?c=Z-h~BrD -S v-r6ॽ̢w. 3~^lB&ȍJ>dv=I(dgЖ(_zJmHvGˆ18a_J/m8`\^c=\_UW\, @=pF8S ;^xJ'f@,FJ/y4N0ӟo")205A(|qQ3X}N(=ق[ͤMsl쯥ij|" ;UQqxi0j}#>w$nްݵ &ZKBĵO}&dy&c Lpo%4ǚʉ4){_Yn:I-GB,/R `/]]nYn(ԈMAmdhH(8if%~zy trt(!&W.aG - ;Z㵿Łʂb$wQ"iVW{Fi&}ps@;}"gv3*DS wxi(8ƾ 0:! #!vD:ORf$+V\WJQ~ Λ aPjg8g#C H6FЪ_bo2%<27a\<,[+qFF# Cu}ZD8sTgf.:$gM&Sxdhl%-2pmGkBSai.p Rcĭ3LݡmWrfZrh˟oͰWݽEP-l!Dk ~$_%p_tbUa8e5"4:B5Qh,wAj67ήS]m+I!yA0qe}"BBdNdމ4ݚ!\fn<@}hu\N+Б5e-rJ5s?֢sViNE2FHYX&N[(6ឩyBӝ0ΑM֍Gū yiƤs,/.H-^.a^.}UqDZ7yW>8ֽ@!:6_3ОζKW=kȵc I%!bE+~G7?[LҌXۛ8s^5:XC^2J-Yp:# OmsȕΝ<1 l~\%R՗j v@a~\$ےh??mKrJlaPXI*qlc%I!vε'0!P۹wO4ru@|C]dERaHU9bžnz (eq 4h I.: l9 ۹2@:(IHRe!B Dx(сOPfI"*&n"n[m ^VSN:| q6df~W16㭩WIHN-yy&j* j[ ,fյJX}[ U)~ёwdAijY`8,Ňx~c`˒G|J%bĿ!#2>!3_m+~ْ } A 8ߴz Yoª@l: $}݋`]:+,5mo;G}dXyі)ϽGW4|O<$anMAX&TdmYBVG͓U0LS>0/h _T?'qzێC+= V^>V\jZNJ,3+܄rP G^ȹo8Dף-~%/g`2n|p<;Eww6Rx6[/¤ 7!HVs2Js%W_m\9v'HG6Fw1.%}y_1"$&kB<fYDͬ$ r>.Si:n'>u+PV_#5ƙPsnxaQHzT̀\.Ef³9bN0޼1ÌVܮהeeDjݛ0S6&qy_فXz#٧>$Euu `$7քL'.ڙĉ<5nۜnrg/Fĵ^@j'}a=?|ʹ>mj3PVc~0㗐 Fl!+=ќ2Jx!YIYq,7V?=цɸ@ՉMIGY8hsz8}[MO*kr~`N7W=-Mg&[bdJ=0)XX ؽ̴q f/S.B齣4l(yJ8lȫijO7=G3}0,T{&\>=T{P55G4" ~:ڐȿ0dwc$3!J_Zxǁ0yYD@}, xO2l7o_;m _BJ \r |R}q. R]Rj/+%3Tz 9\g_78dtA3Mq0oX?[ ՝w.Ejz"mh6 <-1hO2tcÆ5sa"ŠZ-snbůM5ߜS aT-؍E"3RP޵S5-YR\ kMF#C*r.\ȃHvJr({V ZzzǥF4b`hoā"8MρbK#ÑӊF@+37 8֢c0@cmx,YVє׌4悐f:gFR8clK.q#͐׈V vG/*`uvNgh*%l7zjwO-;Z1m=o/*gDE|Zcuέ9 Ő[G,MEx2Rkf`W)zָdU+u &{4 Ρn5c6?d(@G\Yz nxH&Ho!'~y҈}^q]^&qk)RUcę &d,"Fzܪo [إ^~Sl"4LW6O6lEFS7~m>do?<+=6.yAz=)3Up #Qr,4) R•6ܙ歃NrW,I PQ݈󮐅>ds>'7 'Sa&/c@N+eTS 6@MKϳ;uW%H]?%g8(xt5c~uVxc[#A c-bª{d?&ܻ'Q!2TKڹ?*e#+8"MBGW9(r[J %J8Ey`m TY_7tb|bKɮgH߯M]khf)[U8i v 8Um{XՂxhfs!;ѰM?kʅ;ncB'|Gs@Ktn҄t r;ʼjQov YEcbf 9ږf GO@3,PR_f|^e{A,3TEn:hN>'Hv.|H}YXlS#vLt, hwYc,bYxrct'뵤dWa'uɼ tҨQLlz΅Ac$Q^W3O`g8T}-Jz-0PYz/+CE1$xdlE+& uL꾑hn_S  <q~g. ظ:!k34[J3t^S߉3m $I2Ih!cn9C 5= gj[J־r/YEa Z8#D)acН·XJ$'=JӮ"TYi䮗GbH&j^/A>vx7MSqϿn\Z [&]_=:$Gͮ  Cn.S%/iUo'oS5af:08 q$gƩ?QAlۏyDQ;3mT/7L/\zlPw=bpPʪ\+c@GѓP{r ۬(d@DXǢ̮X!'eV:7xU O^%^[F&OВ?J٠!<$U?tފ"[OmWJij~0Y ?e#'Vvm~՚46X(Zp!M#ۜ÷n-C%`]K2̝ctTB+^mqR*5铗(!a)&:;^zbڟJ=T">{5_j 4šE.\i:C*s =rgʼydg3,ȏ"ٕ%t2і v\ w#Gj }~4 %-|3f(kl!y_5W?/cE+f979ԇH={C*#ɥmo>n@Dgٱce3R$ȟKָ*9p)rqv$dsںUFX[$Ėb $4J>UpF%p^mu rDMvtuSs456W;æc2InUGxvy}]3UAY⨒.8tT8kb[5k,>>9I;Cj:\F4j֕daFKQ4OMyhw"'QHkX5V RChn]|%RԌS|<*uuLudoKI#<ө̚DFԘ,}l0/fo7Y]KSU*.AU*+Jd6(}ZPi%L^ƅa\7q iz>qC9ZwTz'U T *0,6([\ݺk[oR.60J!7@(6i }?DΈtWvO d1;X_Xc)I~ZE!!!jfִh~i[3F_>Z`-1&NtW>}2x#>Qݠ^d"6c+: >%Z~½8Hʧrj'raKωs&aTmItrX0! 'VOi / 3L?B};dzֶFפE/0l.1:4%V@ŁȰ_$ƘQM4PҫnpPϣ?e͹q)l^'oSYY1eLQG9b -KAr,nJU|M\44 vY{tC}yк1*}e<=ȵ%XPa{ftNv݌v,*N53_TOsI%_1栏ޠ#)V=zjRbTP.r`53@s5X 3ש2/;|*Lz~r\D<૔ ?ʒɭ<::l$ǟ+ _}IS肾,TZ'"6,]J[41`5L:2Z%wN bl^[VrNfg.[2ȆvO%,pٳ6 Hv6-˷-Ka`O%`9w=y *XqD 2J.{f>!{abL]GϳaSR[|+\M܎2{fsgMpͩuGA3OA茢 5+εH E?4L@ng8X '+-;;JKջ1>F-rRd(a: )PԹwq"o7r؊[O-vK*J8y[!g(!L i_>>9pMoYՏ0|}X[dPB{hЉX[z=ܭ+2YsmjˏĢ0V]^-<N\<Wd9#P䫪\?k/<>Eټ6Qfi^Waq :HPa/ɿ>N2teMCLugw~2`>|Sr*~`DZ뭏ڦnP~XkQs9%O={t$zu,#~fݵUixdV`0LKb =-|p#\xi /rpg) Z8U-S}SMv"o=e6qn@˨g2F݇ >j;* -"]5L҄[}Cɡ#G=/bӹ<0;ؘlO)'Fc `40b'pF?vgLYzKo4u^Fy +=k9N E'P۞έ DWWacNi?Nk.&V,"Z "+H0.|Ԃh$InluQњ4<n(,׊)D xThv&"3ˆe^ZӓqZ7˯'6q^89'QP Sԍt7wZۡL[TJTVyZMK|Y-D`ݬSJ0 쬓;#cH&fY N5&b*d/3~Wwj|'57-Qs6g(]]3AZSЄ;ux͹%'d'QT#bAWW QX::PX@x)?{9DF"4B L42& }}سtQv=fiN!b"[0^ƺHܗ3#+wj.ur$&xj\\R;^Vp#ɒ'oWQh6h8ق \wZ tEjn1?97KYqBh<2]P(!]5S,z zl9{#hjћ_X B!?1{+'?F#E^Ϋ2l+,jl.j27n"czyOj z0JC>*U?\ه.=Zfz0T9\%} Z1h|Dyܴ*!w>'e%,E$<6/N,66jPfO>xDHq\E>Pʚ`%&#(a<%x-B9?E:&1~a0LMXY(4S޳zD `[&wl]s3` G)|'bEG%-Urׁn6m's,afMxMNXP0LJs[)=鮻؆xxszH^>{HL۸5RoK%Yi~*)&i nVAL )d28Hl6J(,$ILnvʱ*? %U'9+:ћF&.3`tP˶8rZb\xRf-_Kt)_By _hA_*j ɗ6l։Y_#N^)#tU` MO7j%Ғtآ*Ę\wAaL&:v%9]r;1uB͘dc=9>/$g9 ga|\Va+TT St {u1$W.S[yJ?>6?&^Otd״`a=IN$zP&1b,OƠ45*;Z~&-kY"gn-gx|XC\iгLZ'XeBYbK&OΫ5\o^*-vRAV>w.Zd؇ҽzE_*m\5.+3wMdhk/5ۖfDŽ~m\/+h\xAP^ >3 !\(`v-Ij Ό**{fOPǃAt!lsס8I(PMȆMd `]'S~:c!$aHOl;sw ĵ_iNB e&烩?Fv4\47 ؊XGm7,ژa;;ِ''#ȍV lZUԜ!*41C,WH*w?}RVx_ k4Y$8:r?%$jѴs] 5_hEZρe YQ._q,/]u_LDgO7USϧ&eIVH>hRg7 MU3 Ms֓eifmDWbBT*':Rj4֊DBPzA5{S&S)e3Ox_l'i%t:9;(kݹ*TDebf%c0'O~)4=Ss G~ِM wys;Uq$Y]Ru^Ydb{&1`0S:4`$5w"e~?3Tm}Qm BfƨS5RoZO'n)ʔcM 0E᭛;?z7Ѫ;UL2^mGFhu',,'+} pfNEګ=gygc-GOwx!IKpuGd|NCӆUuf`N}\i4[V=(L ҄WrAߛ2?K,?N4 =[ Q`N2 w]8Da_(Tem[s8Y;y:z{% fQf ੨Ť.N2 r2a&@DInY5sw\.ߕ>{E(Y^̮xvoW[58Y gɺ?{ wH¡DT:ٶQ&؄TK>p]ygP}w5Ps={Sj% R@хwPQF( d0NWCގ& AiW4ەD.`^8E`𞯯6gKoN%"cڵ[2tTi OB<Y Ͻ(XcI%&*FL!vnN.9d[Å: "1cO\q."uS% L:DH)3_Wqٸb$ z留k{D!2Xv0/:6 *^Wm T# YŶ[̩Oe3g(]{vspBޟ܄ l0^DOY1'CO?vӿ])~Os+lSDmۨ- P%y,-;_daj)3XA^1t=&$珋KF|^X$ uul޾Mx,r/c(%VM)EDOguD[PTsҎzctpS :ub !&gC z<&=@HsNgK`tcjGW6PzRn;u#E4 |n)j:BG G573>Hd焝MVl~V L)׀}( PN#=PƬ3Ux;\!;KVH e8( P|lcc!=jdl-s&8<#WA1LF彠hrA `o\M~{/?OS0@Zŗ =0~8m8npk_kL_ㆁntDTkYdfxoL`A6D-q 8"m)L #+*97|EIAwNKtM[N(Lh1pn${AM.fRL/X%mA+8_b'V+T~ 9uC 8VwwԷZn%n3DŽ}K9!ݡZX$FKGnseh/G[(A4.#%*v+^ Ra ؖdz6mZrX-Ep$|HkfT>v`'@^M:oMzLլy1~R->R0SEz==H'xauvG=cXwI`wzquA5}8HXm4NUFЃ*'!1F~5_` (_q'ǮZrTЬ8WҚ͂z杝natd{;;Y/)zG:6i#EG&(iDC*Oz XX 380rr22fjvNm- qmoZ΄+v!B쟂UungOgIfEߎROդߥxs;/ W׸˭`VI-왜rNߵU{ n[ BmǏpAC[ Tzzj0D򠠳Nzes{\^n%3+ ޷5]iI鍄2f1L֔ 8AC"rv}˳]'݈23Ό k)"3ku+ް5te&~&&^3wjpnd9Bm}h_ɪ$0 ]oyg. C7U;"etgv;b*Q *5]wO5܅=A9Y;23T/U)zdjc~49lf!vJйȒ[6qZ]S ^0mŌdb)a?ʝik[ hdz/@nU_J/RD:c=< }=I]Pt5ۺa%lI<ji^ [|C]B /[Cys=XZyҫIG)u.ku)vg%}Z\S{R؃UV +; w4?nn8x R4L#lTnAp l eY? mo}yt(b*)2:A쇌G\3 HA{"`Iduֶ}/^j 7>ղ3S^e[8X O&J,2ߘ0M tN# Y}ZwO5)8]Lv3&1 C{paW bibPs0w`LX4IisDEk~w}C4X |٫MKT&S/ZI~ =}q5ȼ'r' XKm:19OYocPYM?woci_SvH}-eU/9cLlkaJ5Ee1m7 k7@9ѥ"nE|T4dCe8ysW 2`-FYLno2 :S_Yq;|h%|ꛩ⩑L״ CN.<6i9H(X QLb ͉z҃Z6>װ rX~wjmv8c&xpMNxJ} ҈C?&ϴ:+T~xDf3j+Ap ȵ\d&IN9eP#4.cMO{n Ӻ'\B۱/Z*/IW>!}ofZ1O'l]ϳr1pz Y9kz %ceәDO/Smݏ-8u+Q·ew`&D ̻>*I\DPQl5CgY<$:TZ2x,'%^kRE?5cEx&7c@rg6**\dcRirI,Xl }f AxrXG|@ f5 ->B5xž-8[U$6 CYsKհ8yZo:+xV> =-nk@F1\^~^';R|>(VǦ*N49Ӱ#ϕc1xtTjVU\8^m+:~C鿪Xw<$Z90p UIۈo Jd9ytSKM=YK1$~yo8FVojnʂ̰y?rJ?'CLUҲm`œ5]U$u1tE {՗dTZ×Q3InUڳs3L/jMO 6Ē^ef]3[Wn]½̱.aBFU`hۭnvOZ-KcOe-o ӆLSM{1p ԝ#Q~Snǎ3 j&neߟ!+J)XY:aFj4eg6z7Uw_l8Mѝ?\񯷋7M1Yϊ'+ݵB z0u^n?l\l=UHkna Y/1 مM}+<MjN|nz:ED/[+}U^QL y4^0=xaL t>u:Vَ%t6O-JBTdE;Tt I+:7)/B :clf@zvj==Da6%QN,v)0!e_~PjץVY;stt(fD!P}9VV=hdCF LNgо|>r~/)yډ.] m3S0,l1pc1AČP2$W[G688v+ ۶B()'G̥;aEDt~X2%}zkʌuG8@jۯn/FT(T RdȻJ{7q5=75y:% vjB2۔$2L n|1{EG@65''U=EmkVp :>jψecO2 E0Riy`v!1) 9YnAĴbRQeU6,D KS},ZCpvл 41.5t'=3V7kD26.'WHLD.z@Mn{{nz4 ci1GM?hXs3A~ypԶA?ٌ} `[#]y6u4_ǗXkf^ N8)nK9ܐ7lB׌&Gcvu~uR0NZ0ZBlq .t ײ6ۛwϤGdDi־/u&v!,/9"t̜)v-,)ary˴} td)a-* =vNbi~3p$1eN- ,nF7iyag{XJQz/q1ywDv%Ji)aD$FW|1"6*K! ns 0O%ZRi$nQz:2kPչ[Vy*.ՐH_T0Vl,s7ǯ`*hȲu = U.nNjN^<$=VnkC;kQAduVv3ne5:&p 哿>/BU9xI.G8.G;m8iISqMk{C !ČL50}}AA)=*:?ѿQN0"hAߊ/U'@/jյZjA팥єWX8حB$$C{hWwOS WT#xĂAHxF;LWxK<p_C;W Q6&Pv).f| ֩('=gEg+\nzb)CYa ѲmջU%9~3~r7}}8'F2zʴ8ksKwZFrvQ\~YSe=zx%1h_/ FU#Y7 ^۴Zs4:\-joxvo#xu^- ti\q#݉(E5h;0Xh=jYP:"6 [RR󌪃*䮙ZrO=Xh /l!]lT&PG ? \ F0} #!0ٹ,&briǷUs fӯA2#qd|>4S'S("ag,m&}%(,S\-.Xh$*k.y6f"xĐ|]ۉfQ9{;3y70 {>'<"ĴHa`bzaPuA]"Ԃ{ocv9uL ĹĞAHYX*i#T86uddҜ$C_2Y;zF-8y}V}U l]^~(o9"|"gvslA`R qR5HGx̄|`˹1@f(>1 ؏ғ˳GfwQŭ~6'lP3i\L"&FkN$&өqri%BRP{""I23x%O}:BN5+ ܔս壏=^œ؈o,ۘ,᠂?vUkZ,\Wnυ.K_;-8x+np .ñ^Y@G?$;s}uԂ#OZ6aUyu4- ">밝! ҵ4(>{庮 yWsJ$eQI&ٽG1h&ẃ7$L|0twkb(U `&MkԽԌj'-t;XMT/Xe 1!5os 't'T2CҼ0$C2Pg~!n'gK7ny.8Wif3o +]3(HIja( 4|{%|^a3FK4̎fp4kLkyxK8KӐ jֵ6NW]bPw) tZ2)6([R5e NN.Г-ٞC_ى`jufyO*_$r`Xq4;3kLHOa$~EvvGgʹ1OJҀ;:+)STz6H(p>-RSuʴFBt\8 W.j+ƹ!'AWH,>9paTopFk8lBjZx[^l {H~֝1!e<ǧ32Æ(BC ³/],a; djKyD_ˍPpI ß1 Ljۢ T͢.<@jFNGټHvV_TޝkhkT 8Ckl!8J*9M6Y#tj+Bݥ@u_]yAb!p!gQL&'36@zJw,G[()f',sI(y pp3'4\4whN&XX^'??FzWP~Ȓ);XdI~'6t;\J_TtXJ# f(]}BEy˭FtZ }Sgm{|/dGjz<ƎkV*O+5@h;g< | ԉ$rooL:;;/~~bGw EȗaMamEktAԟ?.&8mZC(dSIiշs?4Ԯ۸ąsImf9oW)GlZrd?l9 g|YIg ʓo L4ڛ.UԌm¤mhNsuHa9WP"@ia+kC-'"6MZBj(5 iFRd^'(QʊS#2GKI0AK^4>KaKqF*c@;Q 5p$n]6ѐauB}AJb:܅fsa$(۳C̯.8PPRivj^d/tﱂQV0rAVfW-TC!. |e.ߙrڠD`pcy>` V QఄW J)G~me~f#e/d"!0Krq2Zޔ^ӪWCԱ9`0lMҝ+ y31k(P8~%anO=TSJΝOZ:ME(6`j@J= -R5J P<55f!|Z?iҎr ,/u%z  QpΕ/tJ5p i_U(h`~ =}~{ˆ/І QDB[ .!bŤڗ^J~מe MIV4i"Bv-S?5 m(":xicŀ󟦠ۻ|Źߥ4ip* r#IIߟ_DˎU`R;-Q~6٣_?+lYV;,IyVwR)f7VCm n'}U25Zz*j y5v R9gkKLɻfkre A* n.a4RRi*l3-/9æ"$pB$Vk!|ksSZKH ,΂M_~ڞ5!ƝU;(`9̴5SdKV?W+tWRZU[5OY4 ׫ވ,, FO|YkBϚV*T<9c[h8 tT3fSC-z|04Y(y O7\]k#"YlU/!ġ WEr%` n-|;=gǓ&vHan:-= }0{i.U h_R^Zeqm$tPӉFutj λvt5~n9EBRf> 8G5*I[{Ox$g7?pV WS2\jOGMGo?G=9XC!oM/%Wy8V$[vhT}]%a S|,u=rDZ`U5^ru|'8C 2?l lx1`nr>4ȫہnP_I䜭8ZKeS;X 4xr_V)]`9@q,+w`[AoE Z@ʟGAc%dW"@TSku:-!"^|0"\- %_jB?d](Vo'Kĸq_jYibtRLGVdPoB>sGݓsQ͔ns|a-FC-Wtdnġ-D8\=ܘЉgfwn6 {"QKRu4bޟ-$fO1apV)T[^##ԫl3 ~Av^95*a rvlpkn*_-T"p֟'djCA?Ab!ў1Bp[ _/W%?qE(VYZkebxF[C`sq;kcLJ#}ؿ׭2Bڣ=yjLe+k<"(pzyGc֤ S!QT92n-V|chXT(Iɨ7m7.C?A:Y(,52t$:Q cc@ݒ[˛F)#'D8w&Ƭ W^,Nu"` Vmw\Kްn7bBO"v||ZE#tbsCy HEk]H ӊŰV*5hoO,>IoOyv닢OVQGv pi;k|@a"8;Yu-?J@_a`\ 3!zhnn`X:"p*\RNIy.5Y|Ik%o Aɣ_s0QpMۋc Taxx"qD/R!HjPA~1+ k3;9H=fc2BPf(XnIU"MwIX VF;u ^/ntΣҵ.ѣ}.˱ 8lWnD*j~Vyw҇ fc2 4^aΘwWWY"81MON1X'誥ɂ]]|p|#AЂ F O=O:c|VG ;Ųv3nZS]{j^ZZ\$6<BJ*#o_#ép+fhrCzyEJ[}p%p9sxC?tM-E?8O>K*@`MŷN| N d)R'ob@7T>'4~:bS%"Ks-β*#*CԽ̌da]r]C>ԙ`C(9ߙoz/ZCبA`(v.L̚}EiܶԊ [c2\/F7m8JqofƳ7 bp AR:C'Q.#8_A l Ρ&79'#wZ[pHA. '# HiiJ.XF)Q x-@6cg)ck&WR “Ix8j?@U=zRՊ5$ȗ; YF؟ýWĶք s&=wQ2J{b@ͭA, LqOq+ m1y0>S׹=t;26cǨKm/N-a%׽ LoaGN{]K}MI􊙗n'S"@mY̕P2UI=$zll)sx4Y)6k"]AuؤĹt`MECclx`mp=U1 ҝ.tGPt͵qj[ե6!f0oX„d0Ͻwq uBg}RF%2g~)vy#Ɂ=@,UǯтK;98_@f$Z˷h)@,yG?uQ4't*7l\} SO|氯+E@\Ǵ6S‰kPP~90!^~`9Y*,,YK 1Pv#f qN3yMhe4s?͕ jS&Wr_0n4R#Bs֤ݵbPy~Qni4Gkr@^w;S";n< _u0Bl ~}GuʐdBsFɸT%s$4&{A z]KMuV}tbyȍ4mr+lKSjv~W{}C>T;QXFQ>6 "7iNܣp pc=gU]t85LbSV TqTѲoKҠTs;7aË\3T+!o/T<q=-Kup0:W-2c,&AAGâ>7-/FφqG0F)TOa:4E،C~PUH,@"GP0ːDk͑Ӳ8` 4 ~9+ܿ0ŬԵq@S} }I>_uǸ}Y1U+U=] r QEp f33QhgכntzKObhȯ}n^4>iGZXqClGo-E-xSXް/lh츕;%yS0om\hUaݡ{d(-F ǡFq?Y@v˂+``i{ e}F{6IƳ"ǏWŶ=6*;sT\xnKn'c|v!<0_a˧óZI]e]m @45.[ 7b4b5cRFw{ \LT<숢ɀs/&^ Hmw`!$[z R ӟ#U?gq)x.Ij.vvՂ>oS2_;-'*:(]bPJDeheـo*h /bp< |\R#?Nbx.xH3sI<OŪu;so5lk 3  jʡ'7ɩWpd;P6vnH'܋^-,7ͼNzԞ]~tiV¢/=wnQJz`K{uRZyiLz*R8jo_)_wW87xC5\4J,\Dsp1.&g|L`藝R6}TAa'ɔi*˕]$5=[+U^}u7T_ :]}b݃?'&"Y4J @o:lUK"&m*QxT+漣֟>aㄚ$sA"LX-И@7 =JBk7]h&/g )$L=x=%Jft*Lڽ h&΍Zfm<^LEB+Kd$d avtcV"{ F6(oߔzYs4MQLo/#IپsIī6LbW lJQܳ%n%$) :7W"9Ѡ_T-k89e[ <5S:}GyT''mq!:YP}1zK}JZG_썷e{k9~~隊 8Iex֭E HO ZJe,G_o럂CpB@Y.fQW_1/thR5& 5`5N}b >؎PWl7es=E =x` _`rp@J[YSp.H(6uy7MJsOY6L˯SRD0elhM5ʕSUcvMt&RmKal1 :n\3&UnEJo?x8ub~UXCX|ݚK*$=KĶne޵;8r\beIK*Z:q[p^ǫvd !j6q-=?$W.@N]EI&7Lq]mt;^Wafg{ Xבѷq"ˉtCˡXP?S5 ' *98Pp =3j)ʱOI e2HRExuRC6u 1,'70"sgv9fU'/"Acd O^{om-A\㑠UX bD)vY ɾ9ˌ'e|bv^%yiǢDG! =WӷL*`URcF^3uN.|>}ښ.Ű`W1՟,qva5wF{FT\FrC>z l!򼞯bR&,_ӠN} 'ASoMXYOH1"ř8:EE,j~'D&*.DmUĈf/}{FQh-3#W.]t6aV<'Κ5=>n]f^Į8 +r"qGBF-]%0Д*gaR@$(Z+1bXC|ątD7y0kp XKok -XX}zWl7yx0Zz87SE  +K Mz[]O!>ZSvR{]Q 8M \/S8|hZJhJDuihZs_n=PBwrlC9~F(p:b/;]*V#{bm|fE=\:P }dzG4XvC 2KCJS ,4ayu{Įi}itnT3@QGͳcYGdl4sSKa$8GCMڟ؁jDkq5%>*R~Kbt^zV$/A.W08I.f6\FѕG|B%bL;\/jj6&IfB$6hJsrxI$rCᳱ &,wC͇>Õ4zM@WrZ4r^)-Vr;'%MOSm/=.Y](ίU^+it4d4:8x:VT*Μs¸l~$KכV.&eeZB*PV`Xa+~1܃dTR$V*z -:O?1̝rz!zC ԋ."Pex;m|? ־O-ΆJAXP[cM"Si+g7q+)(N@!bbߪͱ=_rB_+NT^1:Q@TAW!VO҆=,[ӱв0Ma(HGh  -~O#!(f DΓ>o@߇U{|[$Vxnꦔ=u gl qαۤ{LN,jn=Z'J. N) )Vy [Qqq.7͊?u}] Yn ?2Xۿv(D^xm\O_"|5}SG M =#FZA|* &%yL1w~ޓ2Йf r+w* FR$R&o݁5Y+aЧƊٝ 3j+T6PϷROA?@RMM8r<ƦH?R'?~潯O% @$o_A~(GVdXJ,Lfb4wvd"s!>X,]7Ęs3zuk+Q*tRcW3~9ȥK߸W {JnC(Oӣh{I=f!x_ʌvɺGak>(2hj7~;|BZ3i˙9cz wJ\@;ۡ+Q]ج'Y<2@'fГu3퐰!H{O]U*yX(yc8BvkƖ1KZFM5D He>]p)FqPm$y$s"XG9vg>4Ԃ4DǴ% z fSOWy>[75,Z_B8H >̦ tUр745Duid4V.5Sbz-,WXfAs;`˙9\e:G˺H mL C\(˲iQ B8%DrbVh0 PSO4Sq) R 2u-+i5:J<6<t%C ?9oNva`q#D$0@?Y$V$4Ϧ,,5Ԟ[ήrY/30P@En˝gk|!V{C*7?WWX]O*w#1Fjg#T6N*e6@iPY%DTՑIĘe!$|GfUz#f5!، "-AqٙSdEutWl@ݪ YҶJ^X#^gW9AyGRlMDZ7c"0.ߗ}gq Q,jzѿhxM+ 7LJUjN*[?w/ˎ71oY^; ߃92?ۋ-Puȫ}'~mO!|(i7XZ%%qZv-V8 ̩I(Hڢ.vWy6 E0:pR#[,K9$Kph[y~>7Af?NOH1ox e행81a6=K5BM sżM.2y%-Xk xj鼖LegcYh'ދ2Hp7we`{1xx$״ɷ__8-\껫7tgc5l\d:|1dp\~1r/ldf.I4Vj7v ^fů*wӫY}Y5afφA9D`PҺwo#쾔<;nfmQ|Ƞ"W3#W {Aݡj(t yI47DkV>bBbw^I_6; _=BcSD7FZDH"3kuw(od( ʙ_,h:?9vNq je4tnQ.dJKBG>Z`߁2`8[/_?Bw"ۺl쩦zsYo)ߕa(<*N=T7F @+:%ЪC׊Пܺ1S[ˀ7&ĠQ!l[Uއ| Ea0r@SCݎB)xO7QRKyw,RCjɐч_30ۛ(0H 'zmpHtp! FugS`;VF¾8Eps46Fݍw0fg{)T.dKkPK9`Yݐry8.N"coEԋxC,+Q#_Qcf4_YG{)u6:9 ȦRQ ĎE*Aw˒м8.o,ޤ.V)p>ģM{Q$-^QEGofms-~lJsHx[vP6`}If b9nEku]^kz犖8b!PQFej{Ht!Hv24,>"ڠa3g ԟHS  6~ZEa>:)Hj̭ BMh h.@\睒lI&b,4/6@p]G<:A_ۉ6Kp:8/mL~{iGe~STZJDy;HHf*Qk>7LLۂs.$"~;"2f͇s* 7=.&O @HQM8ƻHʅi]/+GSnΌ`rը~߶,3N:YTQΡ\>xG̯~1SCPt<=]5aq([PU鑵=Ԍ ~xNUvֆ msM}J%ILZ}s\ e(AJ'a-NfL<7[W>YKQL"?4Rskڪ];rщL"eƇ+?_DP:4GߒWV#/!*EGl[Tr^Hge$NCЭ}Z јmvp L,@3Tp,kD:GɥGʝ5ɯc«咑V —\JOh=Ujo'[4jJU/]2ezg  }u2s3a0˝jnrew s`au"U+*(,@?cF'hAٚ n+0H"/c^Yp5rZ7mae iOj}:FݭD/y-0>hO`a6IwZJw*nϲ2'r֨lۨuh\W/WvAȇRX6Y <εl:4Jn>v\m/kK?׷x{/u75wZō-ݮGsj xz'-*8tCO)&_Hwi@p ((}ڲL{$\B5UX/c|*:_L6O7Ǚ_L?CoL.-~E46 ͸ ٚg{[2DR`J{:iFj_vZ1S")x&sWI47&Wz%y:s6^NCP~g*Ǐ0=vMp7 JQfKQrL<5|pYqϮV43 !?_5*[;Ֆ9 \|(}FP߽A v09'[rD GHl8wLw%I5`.(51S#!VBؤwu˾Y i_~o+T׮xw5HH/S ӱR ^iƟ׭忣g YW;..9Ⱦ=):=D4@3qQվz9f@o,35S+q_\YU,JW0J.)v 䃊/sm'v̵&>Lk*keo+_(|;R"rU !u LՋ.2B$]|m^JjbDe\g5I4պ~&`QJ40AgM{y_{dfˡPOyUxԌõ=Vxr}-O~5m8B5zaȡ̇^a ϝ,_y,%n^Ñi| 6<[X 4tCkkژͬcdvs%QX(#4ht$z%~\Mp4L9,= ١ոgb$ۈ2FdmX, A\jS#zN}/1/t\Qu,Dau!qWX[̊Cy8r lE_fh@O+We1JWaSبc 1ͺ9U3{$W/Q?h L^7R>Oz-]RD{L?#/Aq}"+||hwO4Of>TC>;=3Y65缽Y>u/1l?v-Svd@5èa!a B;+Gb@]gNg`M+<"l$=_bW//oo/]z_Wg v0rm6x7gk UqA͒"`[Fb,k'TUnu*"}eҏ\rٌtNZP*0X[uwQqxefG+BC6bazOVHY3{|B8R 4oXMSUbv0AZY@̔8p* k[,}$UNZ[ ܦ“g+0u<8;KYtV 0 "Fdr_Zk ⧩igp>KN9&vi@L3C +Y8pxf/.[(-XO#a;0:dc<m !Jp+6 Řkif-PȣwY<`X3Drf[% ~^/A]t凒wj1S^wpc ~a"scf3.oM XC08dx)lR퓮XxOf~8}[r{UYIo 5yގ7;-h [/S"Odb/.]c~wx+G<,X_qZtof QD4'%AhS7ꢺ{L86\ 3Ư _g u6X䪩b}~>JW#W,޺HⷸBvIFeB>Q~,n+90S%89Zl?auǮRnGNX|ƐeOclYnc:Y"m˗'y!D&{ƕb=~Z[wy8f I7U+{' G0C5~ Ҭ##jXN粣>T:PUA"$8 E T :z;e E&+x%eUȿLB 9TQ[1X jP>͇bȩA\AcG)FP3eeZ†$H%Q6\޿t^V?(9I3YVlƙ֊& p*վJhzCɖ%q|\F, WSkl%, M'Ջk:;3i~f>DzNJ-l[ڿ_#{ R,2>l/Ǥg ǷA4-?n F["BΫO'f%ۇT|fڷAiW~lPδc'VЪv]]k{XXRT'-TC.^CPO]ЈcxD?QD+U{mT$ax 1W f$ޣoUr<*z8{ˣ}bӕƐ\m/LVx\`t"+JNvMzV7pjpnPL[6@&NwϗdJ+xv{ lZnJo 1ttaKYlhZ1 cz{&G~!8ˈ9]:)d̞߈W&rm7Vo:_X0ٽNy0zSۑGoy A-Ƨt$V[ckdy,!vw$zK4oʕVugYgkY饾~C~B׷-;Ukܮ*nh<zBeY|:lSpX4xnPt#\#q7cŷc'҅ qLJ 7NB`ͽM%6Jk[ Vsȩm&ɀUX Ob%H L4D},sx-ڞ47λ8:LKnUUgoR{r irA4P亍(~gkW,ڟaba*\caCx䏩o2|)C<?+l^Pupw924IM%%ۍ }LT4KvSZq*?U'j-3yEوAhtР?\fx-l_s/0=y_7Վv Nf*X09ځ{`/,hӚZcdr};.]$8D:FU>q"FN٤d 㛽S|&>zڄK0(3<)< 2wNQߢira DgQA%.w2/H\| 6sp#m֠ E^w> Z8+daKJUni2k)虠iR j)TzM9.Q]HH<4|@!bZ h !\!-MWeY9Qa0f^tB/:+&ǣ=9I4{&?;pZkS~LGad Y>BZY;@hhzPPW>})hT@"S'!{3EvnWfYu`cqÚ߈$^Vښem=e5.\TOd +H+ ġ"# 8+Q O&kdȉG3tk:҆;ay=c>8j]LCPע3E=1|pJ]+TH2m|Z˕+6 OYBBܠ.CvWA% <_$58sSGR'~a(XďFwWs9@+j9)/6ʟ[FiU(w`I̗/~_nS"+O3xM -q*p8г+s! p9 w2p >5h/eEmg57NӷmmC+er=E'XxITЏ_4 #dAf'xz0EvZEUo<ZQyQb:䲂[ۍio~cH^CP A6'k۾'fJ*c~W:NϑmT9 wKXխ4ynIRAH7F"ͿH:,@ݝI*'sQ)_`^!U\-e),7ֻ&wz-Fkn6+-+cS]ei3|d$)#i&E!BH?n7@I*͕}ߨLH7 |ep>{>fomBqLSڝk9MV%_>яhc9PҐS2;EIZUl̫4yac8:!Njϟ";TokKĭ kEQWSr4l gpF iB]EeEhqw!%VS..:c3Ņ6h3EvEd}U5"9&;3-n{~DŽ>S~rI iu+`mgذ˛EZ s5{Kz29e<1AyDFk۟ sU~p'^JvdQ4$^U2*+$+a>(2JAT7[ Н1N߉ +4،i?"ÓјrZNK`uJZ3U]Hd!RcW;(8fz33H;bX4v ;E(/QkvOBd'E ؘj}p ;BvaΘӬx2𪡪K1YojH< =1{. lh<.D%Ƚ!~`\k;\ҝSw~M' |/ 7 zJCvo|18n*[M]6#LZ4&qxM7 V!107Oo h&y*YS -7,L˥OOѵ mL?!=W##R9 ёt?MvSo#-AfEnwTYtל>w ϊ.Ib]*d{3l}xNɿFtYtd )̼KFպb>ƒb_o9o$Pxj49˷%q]V;f 1h,l_%g̰Q7gI#8-]#ӤwƤ+JQB^oMՑ;|4_`بj~ OxXT%P茢m d6(Fu4k^K.UM(D^#s)ra*Gn@VJSTתto,ݢ3L8ۃÑNQ8mFWѦAlpv'M3ʱcB:N!<|7aіҚ˻wޖdU-<3Cތv5О({& % F֟#ijlg+D0qG!ʜ 4OX2]ؾ|^MJ5ԂBCKX%SH;^ds7s˂BtFP -'%7Ҙr-g2ΡO]$BM?[h;dHϦGف\!I pJ+G Aݸxne/GW ,M5\hF @;4v훛bZ%J E<~VnZ  ,J(4X$yh7-o,"l°p -yoӰlbښqgų.9R%z(j0Eg^ 97x$%8Px>@N? "AE0m//H;܊7]:4Xő! Yg45J)o[ﺾo{Z""yz]_}hUl$Vډ ]\K,YGlXl#Ĥz +cӇ%e6@C;v9V_ΘA|oډ{Av3Z6t}0TQ /L=cW FIf bU&2Z0oL撶B6ٚMxoR%<0'w%é~6 [g@=Qiωe:o`I3,7;l+G<؞B!){!+.?fГ Lu"i,nk9d@ݬ26ObEF˓?HH良z٥Q{iJp6~(]u"zțA#<2>(<G"'Ԣ +* 3~FwjlTY,^ xdџ P:8̞uzY7)*4&t~<;gm5#Az0;+/0s3h1!]R.4>Pkܣ> jNUtţ=9Цn)]?ã?wSÙjo`Gޭ~O-`;q}W֜!nX-l7y-6D# 2rOdm'n+5Υ KO:75}x))֒*bSp θgdCH5ʱ=?6i.ձ~gp(d tw %Կɻ&Z%tNm.[NP`&ګp &sMZK|Eru1^ȴIE3L~o\.,;4إUqT|Rz5Syf<-td'_"B/wV:t'fw$IyKe%<XclIݟol.1^uy=x&iN2L&ա?`M&h*X*T?bJˢ{P냰,sϋ%6GÅep wZu0ˊMHQ7L 72/V|Hg?.&u~ * .dnۀNnNt&9(2uIB[R^5l7~!LRuZzYխY˜#M3[O`I\AQ>XgN~1 ^Iw ͳO)Q2^a45-`KWP8YqS3XRDrHҰ󏮞w"Va,w%x מsG0g_="ȪbmQZnE Teycq}``tz3(=32~cp`p -9"2&8T+VH^6۰lUP4MWN^'3/u`iPfp^<#V>d5epb7́e!(_#_'uWEE,Atw&ȭ>ߴt-j/USn]ou@GO[VR8ZMO [XrȀE EVsK hKm&!lqe͖;PW=_ )jJGrCҞK}uz3(_D1cF4`m9.m}B[P\u䋹{f#2 ط4Ck{a>uMd.ӀSbn'V*Yh}!1NQ{e﶐n-?&LRo{P }X;(s䔨"Y b2B5lwK[rSL"LgCl̇yH*T@>#V`]voysaZz 'v&qSUdX7N&*N_*EkM${|[L_]4Uױ>t6ȏcm\_3<c{ɜqVSys2=W'Y>0.g\ݰ*>\pkQ}`+:ڛˉL7r1ec?R_tAzf8zO^均m ,i=s|pkcYW_c? HҡQa=yORݐ 6FSguS}\f 1-9\Hױ$~?`1_eTM=WUR/S>c{O& ɪшnEv?";)L4Z"*Blbt`ӣtfNX,dOVeXJ+;ҥTohFiJpU[[ɭCaJ}~PV>[(&<"IV*RLeҲf?~ws ΏrEMAl۽]qB -`{,[Ft..bBn-MyB*, jgN>> Hک!meN͚XɍoO,b+qb hs} (*hi;Š' r:B>{CgHuvF6k#!GA!Zh߁س\hh-`_?1H9BMG),q_ H[unޓ8ط|#;.NG٩Sتuz;Bt)ʞ_QM(Inb3CtZT;3f5hکmDďY䙌Vl7,^tؙS>3Nz?f|xR9QRt8HftGUA{nчq~ 6CT @`V}IܱPV*2]Gbk%ɇ^W=:wag;e `9S>iߘi~g"Ues2iSd.?`$d2j[|*j+X*ƞ(񻍤IϗJnpM9kH֓4Z#R_xA}놟ITT(`G%>%ҧYq2bp(k' FIq:fh-.JɡkknI^i䬌( t`7? qER%,&ぬzFȓb:Ƶjdp ROR_"O UԇXĦ7FȇxfE@~.sKx"U0F o>8؜a:ېHHf5s;#3N\UJ_&(vJi&i 'd9q(DyM˦ !͊ˤ|eHAW47-7k ̦||80%**u3rh%RƦ23sפǣm|ώN,taQGB:8]C'|扽 ):Fy(3Ty3mPHslz.6evhOQ2,ijX~#%O DB"?A'XnN |̿^-XW#g`-w~ 6mWi*R39se מ >ɈcB| =x8ߪ~w2wWr nS wspI&< 5C-44- Fg H:?HE ,Dzw (aȜ{O,(.ֽCzb+k)PmM%O^uó˜/Ճ>V]ZǫMpTwrvbɩ|1߯zG*m>#i 1Х"$峩䰕^ `,LQfIJ5 P0>t@0,čռ+ vx"h 3V%+VB*3Cyy3L_,|gז0,x⢷+߳Z::Ss$ÊYjeP}ھj/okMmG}h~m)zGMW4!K,D"x/!ӛU Ek*!.qTMxiv:9vh(] }` vj,X)uXc FJ7P#c$13&]"/lI%snAx!9(}Cg&\e{{œ$Dncȵkf3$B}!j9lo=fT"NC.P01 ˭푙TJbp~4H}K+*br`c{6#WioGI~E<B=dN,y}u^i^2{Tsh˪" t-l PmA׎Q]--HeAlH~\ v\i JTX;mrn6NPt < IXe1c q+䕕oFVGi~ӜeD'UYh6ϭ[hKzFӓ&?w"h]@bK e=d oկlnʓ*Q-hqy{u@ba݁& ( ѵŀjmP? c#/|i{A֛~Ǘ? jzfM{!1s}'͒}݁o&cf]XC5T[2#^ՊQ`>ϫ1ϋcb@\" % Nٚ%Bj)&j U; 'rOVNRj%r>bt*\o_h'X`}@$G!D.6$LpTv&\ m;Ah9 a0Daկ>;%hޞo F#x@g1bW':-r~)qemY hk ΧR׃ F~hr}VegkR%{cӃP~pI=m !*JIWl8bk[]` GWwPE T`=w4y=_B9M]~bx͝zDÒ罺ݥ< [:b{XdeNc9ze:ߘͧOX"<5k7| oϻo8O~8d9l8_G+P5s~9|m7d6,uSw'# 3d1\Y}m;gb?,i}&}|[njfsojbo^clT6 Ao<a\ãYE9[(q5^x8]M6hx[M "fAN KKkSZg"hTEN^ЎK>ڶ!BNYQ&3a=&6}ՈU]mx;1EYvUTdֹ*e:a)(+Gqj;Hg9-!1 !|yPh붘ZW9SA3Cz%33YFa8N=v̭՚bu 5 7>}TVǧ Ԛ$Vs>7kKc}j|>l֫՞`Pܖ˜'ImJ̈́BK\B鮐}[8ʔ`F@}w?! $ZVebnp4 @lJ0T]\X3= u૽WY*aaKl$`D͑ЂP/1+j@;&W< F|tMV0FG Ӽ)7:SSPd ~ OZ42~r~#`L&4Ry/CVDZ!lU^ͯH_>j*%4|p-ճ|)i_wmՙ ;>ʡ  DZKU)'Lʏ^2t W^YlY$?Ghq`hR!zۆ?Eͬ.(@)|Αb,boYXoHB\53B9r0 բ!i(~՝y䳬­(([] c11AK.P8lv+ jwļJ`-}T F|Djt驡Z5W JI3K~3AtUԝq٦<5|^pHoo:\9ҹaɎSw=Q5̌Fe~F5ꃒfF#s]6]SRͼP%S,&^Izc=e=F݅ld 3i8q;,+lWq@h4'Xt3&πA)Xh#־fQT2GD1/&GL\1A_f`WwS މ-4)yߋT7?\zKs؏</bJ<&ΰcnH, 16a('T|1; ƤڕEѮLOz2cxԒgWOrMI_(7$I!#R@_"w `ϋpg lRxjSjAc)tޅYZK:îLC# ^cyՑ`I+ "'`,4a>Sc*ZCûH~zw'q)}NnSR u(O.R~AǩvZv_8 =ԀMdBJG V ~/o//9F+|FF?NnܔǮ;1%3CNd˜?uQ*Z,72 (uP.Q?UnYEPZj{yEc"+J/4KX4W M!ڂ,'%IO4_<╅Ŧ53D`$#)̟0+%=! c *DϹ>Q* 5԰eTY_~vj}R7 p d)npb#ag=H\:4+3όQ;rabi ] {5;qꟴ-Ti~6 І#DDWax;&3~7gS\uƢi~;&ɿk0T m> QmLmk}y×塵7G P^R_T>-^^ww*>D=#Tm֞ZaUcˉQVGSOρ(/oMhoq.jՔlgnY:mDuٍ^UM`۽+.J>xOkX֥D6EjGɱ<.0Iț 0HF%r|FPtWi ##TuO gbÞ<{c~efP qlQ t+\WF G$WBXv ŹLo]gg_J|m*!.7|"}i͡FWJI3sX5XT}EY3y*=@zeM jzNt` hΎBõ <,6uuɸp nUn%loeWTnaPLW:>8ÓL?]Uh6i܍/M3[PsA3>/l<\09EG~z\8z4(q雪'[IPˌe{ǕJs8&h?"WCJqIT{ i  вmk*ߵHwYP dߚem(>xAD5B=z #D,T1+8fv٨Z[Mx7͞V!nDVZ|, !]'xTl6L =3S984(sj. B`{fиY #[FzWWjR0~GUz1[mjpܟ]#F9Hl/ksKS&`$ͷ;4*`h@6Ef,ʃ_ۓW>C0^@ Pu^ S')x-찦&K<[ rmHbxq7zR{O B yl F3s)oZ~_U?--KٽOv AhiAﵻuIENQ(y?;q4@UD{BU?Â:UztDxʘL~(:0%;(zAV炎-"8,A\ V\tݕ$!h/Ǿ1x"V,:=e 6~:G\Hr |,[_A Z2f?ȍvEQ oJK!t}tL><_<N3boأA+Z|'l\lc L !*'/`_*tXOA䬆2w7B1uPoK 0bK;Rl;(kǁOOfN@j7|%8I lH`?k.t>1Rydhr$v1B{F0}' M;2F7`HF4[Tu4fA2ի~{RL1S9_$i qץpXdhhEAm7bc/>//J_Ƽ"a|z1 = $KA%Px)m.s?/!N'ဒv fiDHc b K` Ĭ& H%YS.Ĭ6͜FgRz2O#kK/\NC:2UUɦT"b5T>=D8aMخn1(z>3n4UxҡWXE%SٿɷTLK{X\Wkw+]og+ZC.R EMeh`Xf ξvDMYmC'ȜF6f VIv6o~4+`A|Gih*?yPG=OL{bw X`텊mr rN@gI%Xq{K2R<=< 6Nڥ^.U'CSI~+H]h%} ߪj8BHAXP1;6k;;m}䷡$ Z_OS4\_+gdKsܓ8햢?>@_Y5VZ{ܮZ=%;)J0HPiK',Zh$3dgLf5~":v6-d^bM\KުrlИ}c0H> ZA.tB) ;_Fy/9 !c1D"E%5a}Ȏg:3ӽr<}*΀@WCS iuz`/aGV,r]?5Sߦ+D2?m2): B<k9M{% % 2,gӞdg>˽s$0AR=(Cɼ-=qPɻ"eVԩP(8!2⩙ޛׁBH1z6e:в弜įBtUa{dǮ LHz"WOz'׆)bw֡Ѿ' :_F.}Ǜf !lު)b$F))Y YRGq#/Tcl)$wCi%^46 x Θ^[#-yu#) (S9B2>A<NGa吪IÃ،+mVxζ)K@0o/[0K܇+=8ܢpA{S bd<2܁e[>f:&, p}UdJi9\Oang/M5ciz(Mdm=k 4(k9 Q ?e1~7 *%= B !՚#}(XW8yv{t[7571Qn/"$AuqPvER#cZ2Y{uԕ膏oK:`:LcD^㚗g^)40 /~EztNFrNaz&S`/\H" EZAӈۄQGsXRHY'ی<^"T?qNp+cyxiIHrU~yI[c ImI3`7I|? 1BFXQ*`|kLw2rWG~" ճ"B7~ݛRFre]0rk9u_rG|C(Ŧ8GKB)E8x3Q^eRB'z1K@H?W9%`wTJt*AFx"OFt CG&?%M׿م)V5t5xDʋ0  y{w#4PGloTI [rV>LtxĖ[城Yo8񣁼HBlh84'!n4"?n1uo2K=>зWr7ilxO/U^KX#bN Vr ħp͏V8?vdz@e- F<+L tf܋6f6Mbb(ۇx^v'[0G<LIHdcyT,Jdf_O^uR(ylvd~ ~!+ͽ\{\ 8u'j@9ݺl.0/2$i^Sko[uf I8z5:c]u:]EТ+A☘?PZO1t7N9ˢ4]&/ y'a\!@Mqo^% IþN@ެB8eؒAl5),si 62B]n9&BN~غY En BwzW:7Xyɻf*,Sj'NeCH+Lp(GBѥMGP V]͇hD$aDl''nBa?skiMvۭ1]UEEz_vL#Ĉe(54o>$]@)exoFeF<5RM /W KJ=;9)n@zt[BnvлkE .1^_'Xp7b%T>wJzЋl Y'틬F )TN*"J E<|} ((gzt s٪x|Pۖb5 >q BxZqZ@HnR$ yEHˆWmH > MĹ>Κ0_[11+Uk4(E3Ћ JoX'=ermSbs,D3e>GP@ԗcƵ|d/ӞM-''ڰ\ X -,?p_ilnku|VU>{F3[J1beAtfHo yYPm L􌦮M@`2Z#@]\2ōc3\2@zj?;Y0"Cһ%)&GKwA(ѰJ#~}>;:pUN_rT 㴈׾z`\k1gbѝs ii@CbYynVk1؜3ϼNr'"<ѷ֟z'HbQGGj"{3[hw,a SɣxgMUTZqzKи8H7y"R#WD/i\}.M}P , )K'|va p#=c=dͷǨ%N8xQπ`!I$"Qr!\GӞ>`̈"[t͡1P;ᵃiL%ơ0הlzU* 3d!YUEEןk.Jb GM+fף ^by>Rr;q6J$GHS^+bfYHDM&섬0VM/ҽ*QUǪ@ >=A 6Ru0l5-5O`~?нBwn$b_@y+2- \,#83ۈfȏC)AZ0KЕ|[]9%4-rch1iޟk” e^nԪ>5$t7>Mg`=d8PY7|+~~oFҋCn;N =ɭcԈn"8̺FP3k ts=G0aC[vC /$ce}&jw/{dN@&[> Q> 0'p$_`;ؾ1]cp NDzvHQ2v 2S <`iٮUBnӭjY1l!vu Jk^+u#^x ^Ҁy]jԨU "OעoSEF[h{,h jE:r$͞?-',G kWͶcKΑ+L6c;#1nUl.`n{%D$Wj]F ڽ XkQ4WwY*Sd;q_-y0"_oM}ߟ8bMCl5rgKHF0 zS|D5X'|rDzOz:c˸*;쵇Qb fʥܿiOѿ@z3Kgzsx]hu߉i/RP\| =`Kֽa1:"P9Y;kS-h g=L)~Qۄ`HMbrH}A"8៻ ,A0;XdB19B\ }yU]nNJ>:原,K*Ar8 m~ g!ME"`!iҼ^>@k(MǮg@yxn=$,B?Uw:{^˯ 5Y@w;Њ24湉.|R3[ɇ9$,[SB/6O7•S4z wMYjM 3 ^TnfE#/[z..p0؄-OҮrqH'5Hhh0*(37DDa.?"ExX_ǐY.SJYQd PD(X˄Ǐ E;J lvSi`0e8ȯìYXőduAqf>S쉭yt@s%u>ZݜVB4&čԱ$1 zfg^< aU`A}1'fLy*M4BBTRPat;p8;)Asn{#k&2I!-߅&;9>*= =؂@Z3[/3Ri{,E+l]'tؖd܂& )\߯rєc\=Y67Υ{A5P4|н1G8oYMB+ 3lLHˑ0j;-G7 { dMq͵77۹DE̺zyR ;=~%#rh✒+;kAWKRӎإ+6v; P=@'JA尡ScNLVW=tDS1v]4\yOyi#|nEnzf^Sr\q!Աzt2g|UFG[ &q0&Yxa<%x9gnI勀|R[]\@WA GrA^51~JDF8 ON=a$v~^'HL؁#'[wAxcD M0,102 v9=ᒅaq j^j\l:2!3Ӟ ="z(oNG>L.EhƎ։f> %yP3!2х wn)T?t(E1%V5=\u_aqǪEi g"̕`kP R^h6)CZJ4KFҵ%@1we$Wc ӠvV*PzY  X;* ؓ6Iѓ^Yu58LpWK|Plbnff, 'Zo?b|RDqY[ld3 "x- U]+od荠e'^ /:ƄuK;L! gmzN_' SrNpGgfEHԓL億VQ'2YAp)E{,sGR_G~ DܟUsKt"}& {p Bl V;F9>\fĢݼ%fJ<)wm#XTBwF)CP\!p5E븈|WFܔmJZYmSHbك Y/]+ J=i|L6ߐm?Z)뫣) Pl{|[QO_uEX^+QҜJ/'O ɦc_^n䩦d\(5fdEJ; MV}2D!G_ʈN_k|O=OݞtkWlY^?JQrp<#mI$T_#ƹFhW3I 8jɘK*|mj9,⺧Mqm)7 [Z2@MCbQ6xQ-\wjq/Ae37 F)Oe\Y{ 3UUbVgjLYwt"0_:`N?N-]B>2C~4*~RQg4 ԔD(pSm)NG>ƀPTPiV7P !{)ƫ!ƟptAِԂU-f et->Y h| 'KƘ[ Z꫆L0HܹD4ڸJoxXH T* / sGI ` mr-QDܿ9K0S2Lx$r'%Of& 4*`99}3\͉0hp.j2B #s&ѱ^FKO|}*4O{;A@=xT9gHN/\)x@s9D S@^ؕ =@!њN arT(jPTnדwlrnh?)ug3p,=@4¡'L`sNޞnخrZLҕ #2x=<"/8)YKg Anc"k+nt &X|"j1>L,>^& gKPB M]i ֎w)(&Y+ @EqxGj#G]&:*>Л-k!e;/2^WelZ-&b'PjC}d5Llh&e,+s捺[CIRpn֧i-5WCO;u0le&fGi7'^xp;: qb$N:qi>pL(Q_|jQ<2!5c*mF]6!j*23, +ȱ>C]Rֽhǹk&XA"?tz+k=Mm4Lymzuu '_/haE忸6N;avp: UWG"?{:_C X^w]]2Λw ?c!+8O"V9oʓ3bw#HˤJ|v*k8۝ѡw~(4ob;Ÿ5Z46|[G\ȶ0 wNv΄5OTN}Kmʬ=4Eoƶ$zaRVv;XI YjwAZY٦hyS9\˘н쁋E3A&& :_d̄|N$}9K͔;3fl|J%Ҧ'w,'j!4ZrnD͞z]@.$zڇU y1E( /r`3lB-k-F3/qƊ%^H"W:#Qwz#dbp.0+CLϼWQ?fN nVKt*<0!пnDuȝ7wm7x܈~C!YәK; rⱇ,-ЪuzB0yR`}c%ݪ+WW3ozsxrK}sDQGLt%YBW⼋$O 9+YgnYvn2aG$jDRuLb9nĹdemDgXO̧>yEF*啙h&IWl  e}5C02g3sUD}!jkjw(ĥldZpVo3ЂMVb;l\;+b'7"Nm뙜 5B[Vp'=ʖE#(yZ[MGvE_8^bfuh/rNM=33${83 s1S 3iTA?̃KI43T]D 0֔2n] 7]Eto+)]u2mӡj{1B~l`%ͣy ŁEMMן>ުٺΙd[i,%6Y1`KHR2`R mpL_XPsjt<=)N.k="> 腘A\NoVg Fƛ`ydq ]Y`{51_j  p~^F>[@y`*6O~"+f~,~ˑH"I[I4.zNyX7yiDl[t7u ]y8EPӚ kH+߭lv:` \1fm=G-*B0dnnxTB;.Eͅ0gFB}1{ A+o{q tJO_}9@uLLhᘗ岎> Z$5 *KJ $e/Gf`WBڽ\{e{nF*4yVzw`;`oM_~?Z/@]FJj=Whq fǪgB5h> F/T|NX Jn5* P-FE_GOI|fޖWjr0~4!x R$%v/CpyGV),0#bD5D߭øF#8v8.F(9)[ou@OgnZ<~}=ķN{3l@͛,3W'5 WO>KP!1>wAyf7}]Q)8ߏv}% NW4o)>~Hcٍp%W$ oǖ'q/Xgp̭MxBi(s]jDp PtXN[A}QV&.fp uپT?`X]뗂cH">2K#az&m:@AԳ`q7SlXG,{nOZLٔ[s y.UCkRS![ͽPȌ6 <݊b֬MeaPIhU1/v |=[PpCĴ cYG3j&{`Z- ۰Ld\l!u%>'"M[ӑh=KCQKBd{2} jyd.V> THҞړ_2YL4{Zso1\3p(XBj̕)Ul<_捣4A"A c:%/G5΃>),h[ToFYE/9SȆSQ[C*Gj9k;jeXh"/ʑh9 #&VUׄ?lQ3Ds}).)v.NT<$o"qd ~uI&ߑATlGQT5NQgD+>~ӂ*9FW D2b=jj.,W>NUq]Ł0FwgcU"2z)VfQ zk5dZ¦4ܥ!ݞ|B~jX׮)Cdʅ:вK:nMYޙ9WCjJquyx`OVdZof*V_(&pDs ӂsپw3f5捤bQ S49!Q(+)6&HNvF p_=ځr9 ŲV#XRhkkQ 0fԨ&\6-P%D_(SZ5j"bB(r0 Q\J4Ak=űW,ϴydE>p]뛛WN AkZySyD1sHQBE'Q#]t(ubiOAmcQRQXX5O!IFMR,fjׁ@![ ՗C9B]FğA%gai-ps=X/m 9NYH+&^Qh*Z 3 ԿG+CnLwP[iWh op7(07Ȉ(*1Jb7 r K w v>ƂnKPʛݣxUuE@S@\wT}ԕgpA@LuުjjU)Lvz*;3A`&ߝ[CU >/D @ǘ+ĝLr.;P["!72S3B,gO8b$\}gc_iP &a6-ȇ-9G.9G,׼򵘶:.))WI(ox:{2C@Ds<>ךKN9J_Z0o5za?Aq`@Ϝ u]@\-u@R}8ցSRMVX*`>jȠ'ϩE&FAݓJdYAD 'õ2 ` CԇC'^EV.o0zdž)DoD]x4?p{2UM{I|ĵ )-X,4Wrը\Oh546u!$ ڿ~c伧C&C$%yåP` Rg@^Z,= /DJ%́|#ʜNC7T㶢7꠵V_Kii m)`S;؍-0mJ}2bmflJG lUi'x+b +ySv[%!dMw">p6M7P9LĂK:y(N>-ZF(hGq`:@/`=5 NO Wr ʌz|.[ $@6 ds.׭$b">;>ZۛOU|ӈp6j i܅E:P+#ئn2UKHጦ' &nE+/{h8FanI)!ৱZo&hJ_PKڕ7;Hw= d>:BM֕zxH=Wf3v2<1lJﬤpyp5cm[mvX]v1sw0hy6%[5MlUuvʿc.h;31$s<*%=@[q=.iqS=nx=jcVTS:ƨt%tP۹G{h <_%j;l%%1;(ݻ|2_,Ψ3gAdkF1C6P8yUܰoF׬K&\aϵS/ˮA#W.f^ >S M XVqpSzorӛ;$CꜲs63V feHKϪ-Y ? 'RJ~ ;cuR>VC5^%*ôBDH(Y4ŋQnq:rvL#G/ýsB5F\s,x<Ln^]G I ^iX͝+m~pl` %4UzGnE"Bc-s­w qa}X4'|9uz.'eG".o鞉m?!F]סI6Cvf_zB*ȝ<Ч9ə2Lfre]e=;owOs z%0i~鬢#V_A=G5SLzT(~p6mw^9.[zK,eBzq/h&B,h$ ?_e&Ѽ%؍'SbI|Ȃ[LA—aL?tl R]dq毵r }m3wgy'F_mZָh2:۵@'a.U X%57 nyWWU&NFq;"#GJnF R-KIINXϵ[{a#BT?dy.tSfqhy:sA\P;%wAa-cF(JSIR൱:H%\s5Rħi0 hoe ^-[{b%R|V_w0hD.|}J_1Nb9)eҩ'XR- z]3RJNUȮ(a 1UY{[r6mx~&>h땜]͡GN͐R!/*LZ%r2;*Ňh/)/X Qޠo:|%Mygy[ u9Vm#ޮF*A{9p ՜au-DPcy&,L~dUu3I3d~/{˛:Fu'觴M[Ir0JG/I3!L:TLiRdP[7^^HjMX~Ne>x&ċ=~~Sr;GN.fRMBW / ޓm@SOjk0{Vj]g x㗷4cdH s!.3p[V[۹BMtvԣmL^7I mӟ,pz elq`} Fff b|i7aĖ8PzuK)<$͇*;0Y-d-Puފwnù^@tȗFxS"֕}m,sKRD\C) U u`Abk ԯ#+"Xa#qoa̜H*ˏU'uشD* r N \'';uҥqXNAR8dZOoN++b?Sx*OKq( 7wC5mċQ2Z.3bpU\׸=sA`2R0cfk{z9\Qk a-\/cqG&t]$[:jcv3J?x?k Vfm!ӥZwYU{U,Zm[?=:w?pgFG{ @HDScXbR_/Ad9Q%+?q|r()h.b{._/*#N~IT/o$#5l~ۯW"D, 4+/$'[lTwpml!dtf[lQ"Ev[`=8 +Gu?@]mX S6EYӣR4̀^4NXp!>䧟 8QD8'1T`ぅ{<Tt9tVE aB+Jasm(څT3;2 cX; !)R,3ӯFm6'_ l 4' =?4K̩AݾIv.ё'0@\ 1PxAӽ=1pz@攙KvxSsi^B-AuhwR; u_`csX8;L?`0pNdl`Mq*GTu[|WT) !8gZW7|̵8=^jp@j'ىV`m>a)P_$Ne`U k&t{CdgJOW@u# L-H3qX'=U0]`i P:ZanϤ䛿W;Ӈ&MH00Q;~NO4 m md}sZ 01o&Ѷ6 eHkMk&nKE-=Xx ~|s"~ ^%ظmQ23أ,Ϫzs|Ԍ&#e$́n~9Sޛ{dO45ԙad-]9avHb][QehaY77^yNƋH\mBm)fHK| . [&WͣhK^Wqͮ{3z8l.Å@~lw!Hr`$R5U Ω&Gi:سt95?Hf :;{sX |L=4 rJD#pً}/L>!b bTJ`N85pbu./G7V6 iIT2%1IYTG{V.6sZWtk )m]Y1]}R6-2u篁W)OT?<αT`3$ ceofӂm5sGql 5 h/(X]3-z8g|tZ`@rˎ–y.:? 2ov7)u=i[lF:?n-ҭ>\drA88?8߉^⸡1bȨg47T r( .Msexc5oOػ`榦G. m i GCFӌ gcƳ'- ?G苼x @2xS F|G.f( PDVEfA1So鯜\83״L7I(vSBEbₖ'eumES0{U8ass:03qՠPJt~luZ('ˉ5:ƴd# nqYuك߸v(]dN \Xώ#Ƒ织6}(S| P.drVYwN& èG<|A>WNP.[|E=@YV JI?xk?iGZ]$C jMa682hxrZqޜ ڽ `Yf#VºΟ ]KpVÔ O:(~tL3>; 3:430nHilgn!Zr <E1)5i̯ch2bGm7*$ Jvێ2{ߪ(R&xC*o HWk ~S. S6~>g* vHVwI:I ?r!9 %-v;wJ[L Ǜ: 3x?P5 \O!Ag{k9*3lrP:o}eůA*i-F֯4z̒m@Qm'ЫQ7^^аbeYEr|cX[QD Q#;(@_5iys'En? \w*Gr '"ȯ۸Ʀ%wf]C%!Lm(mCs9Rx/8}".+]ڝmˢUIv OٛCmX+ -6OkL ˓71!?&27q#ARTkF4t^>;t[Ԗ(t%ɾ߄ug M'bm5 FZr ҝiT+ oP1]ZDIDBx~5< ŋu e#|eοf^;v?;R%;$.ߤ'|b1&\g8"/_A)#$Y: @`̥zK?%i6=fHk+^IS靌 >][\ƿǴ2]*>!"=^6bbt LM3 QJ]q*쉔97%]U O -XȣP@pbvyl>m"]?GoLI*<5&fAf-20X7G]ys-6ʮe@ed{j:@j{p #S NɉA Ce vdmH%7LQ  ͣ/%&]6'D.n7D 3xeE+fA9MM/ȉ䜳Ԭ!M~d&0Yv#++nޙ+u@])."h8 ̵X$rr3^1" Po1K !,2׿5Go!0'~y P ZW\YAeJAӳ] WF ?=lr㼩yZwW; x|_vhMֳbI))9< o QpXS>Y,g,f+֒x,? _D\.tdStrY^gMRr5Fp[W{fUHf O;*ҖDi / uw~vBpZa [7jhjshlQ'>O;ua!.O;:„9)r7V9IG9Edٚle#MCH{8'N6Bq P$o\y-x$Ŝ[\P2DLMyɾ߮θ3:)a`7T~}2kۣ=MVMj\\%AY;Wo +;c=\i-PoTA;@t:dhsz0!`FvÒa@y8ATb&#J֙n/ũDS^p|~ >^|%+@Bo;jP)̉ žǎ\v.y_-^v~Vw1*C;Hg?aXde2JWB#df ֭oAc,KF%SCf~K"׿%'xO'T!P7]1lnZ!W@,uF~@87ɩ9s?a"wLª-KzN|wt<}C_;i ;:H$Kb-t;4251rIe9E0jt?&,wU.l| %mpt\ vфnXy,R;8gc1Tpf,PH^Cٓ6-~2NQC6L[ϱnUK<@I\204N#<Z؍ʴnymg[i8uUM|'2"8bi< ? Ĵ4)%FAcR[ׯשW1ko&þݗ9Ac14o.v xV9of:&GE9oJgo]Dv70nѻv(rr*S >}su*.ɗQ12n6&Nw/׌s/mL+O nߗEG}aXr>?' <-j}j…<۲i3;lݒ[( / B I5?V@Hz|QlDhgV V2 eR^ jmR@d$R~p V;#4VX.KعQ=d6`I̗`ȝѱX+fhJgȞAiNT\7̵P {7D>X[ʴN|6@oc58_IQxor zynmV\`ҟڙ e-^135C7Ԯ鎈7RfoElX8wBL/C|*j<`h+o$ס^FbkFmcc< هN"k=8(AS z_% M>?k72Q&c6HOU[taxJPtրE@UoCQL|B!hzTa"mo_@ýIS.S[PfHV_l\<!@*t# D@4,G'9?x(bC4j:7E $(箽T߯×`@+JZ}k._sӈ9o'tg]lHGy_E+HZ*AO!oqTFᎯg{1D⷟j*kـaTK||7_2=K=@mۗȰkTr( FxhnqX1gsMdl6Uzc d9$EBV#<{]8ܳ;NNTeZ8cҳ! 1]r:'?Ӹh(Lh~g"}& IT!laiҹV_V H^~ѓB**j(bYcpM ~39+yHN*kٔ BY-HP w2 IR)XglJ>ơp脔 PbCIN=prjr`:/mPx'&o֓kRskټ:._5[k:f 4V_n`6OQZڔpp]pa53ZI_or/]Mû+EIjur6|[; HCwHKTILL!Ma+89*m_7~f&~o $g @]dr^ÝJ,YnYq t\sdF<7:1J7 bM!I-x=I*&}j4a4tC $JTtm7d Q, i]~l*#VV 곰'Ԍ}HT&j@`ty* E%JNS&JK8^, Az >Nuߡh9u[6-c* ɴF5i3/!֊zj!|, !:O>D=gv l'vUxfh^<uEさCm.E'4YE_1;t!*40 *F "t 1Kipin#ǨԋwN"Ϋ'$%~''Yَ1K$5Q{g<;|<2ЋKVi~nU`V'M*@NyuLq'L|l]f dSYF15܉a+\|!{.(T PPrB{[Ab1RlZWl:nmY!!c|&C-2x*|potVGsRAe+2%g2],R1H.+?suyyaj$Y%p*l܂="f 0n(@tR%&Y\iwt Wgl23 'ө9*m?54ͯz܂몊4P9J=oiC$rG QtKd } 84gV"͈bǩٸ]$ }WجM}Z, Fms}Gc @[0^ k`aF1`p*Huh}ml6)OkD `+RhjP d ӂN)>D3z<(M!?B16滩֨JI3]O."oڇ~K<QZBd|@Kkۅ@;:}s*[ĻIt͜ ob!Q~sIcS4.h+hmƐ@po@Y4G1b_oRV~+E*];Ez6k،q&JoBfë 'EJ!<ո*?fw4xTz0&:Iݎj9+iOGsRA-XNLm֮J3ȏUס/Ey: sPt-ww-buvE?‹pGn5I|ld6 #lMzp[̦g#܀)S_*ZĥE\A#whІ}Aax7 a!4姫-ɐ Liݧ$_AU0@wZWŻHlH윘Z)I^k^ ,1s?z?X."Q1OQJq?PUy%lt_OS`C4LzR|p.CO!SY)CH/TFpQghS@oLaPF%}^!:n:-BSs/N@9WIph6>|yf//==xu*C+ M͹Q24=f$r6~=Ν\opt/}t/Hn7@ı+F~/ޔrr9L&Xznw1%lV -k1,B[x~MD} &rLD(TshJzMPZM`U׋OTčQ| Q3. Dϴ?8Çő|ܢٲJ/٪IVr|aTM#WɩXYq?InO5闚BgI2$"ŋV&z6t)BFd)/-Rr;@0R?"HtVN*fZYk{>Q@Au/H~:C#᢫<܀aѢtB!V] P-̾L+'pqR}6Cq=3 LKIkW:N45(9^gO@v ޞc/lD @0CӸ_"%-hr<^ m1lm~bK^j;_er_kStb8mkjnqk|H!9n;$NMss2<cFܑ`n߶0TCEe9Xe:c=ܓ}G;H23.x w7-[n,Dc?RmE 2:AhL8&.wVuzdWlfKI 1..ک,k|Q^DG)1C>psݏ%` ಧ%1 b,wUU]Ԕw-6gNNRhXִLI,'"z/%pz_竷/)AHg'㊂/Pu`A]D:V5JM%pEL]]}=RCdK64@h&I tBL9'=f͓AxusYW9R}26HQw'?F mۖ|-ME_Xou]j<3WW_E/m4Qhɻ#oid|$B6^˓ f"a[h - YEb@->ŋ`8jAƼhu粌o-r@dodf4q*W\oVM*m*xºpж,E򖵃=a ICz0e*s7#̽lPWrP .&"/_\jZ:EqN ,>JD}P ~-f7A-1q)vem{V(jL2N3-ϕf&Y ~ſOWgdOA109/?m⶛ _{Iat5JZ7ؚA4,Ѵ{wHY7ՅXݑ:͟49۹/M6ďXtR8(i&¸_ ;9h^)Zpj[I%$؆_ٓ9x!/?Sj|s6+[eѢ-f~0nɽ<ϟzC}5pxI,Jau( u%C+5nu& c+ײٗ%/e7m " m€6aff(b&ӫ*VU~&L$'z>>JPD#3d/R2)hCp?VL@ ?׋8x1T3jvQuxG).o;Z<|Q#INNlrX#TN=٤e-s 𔷄et͛dS QQs/gt=VCPc{=gB*!\1! & wKֿ6!ͫ)<(Kϻp  \Ws#((3pwD|Vhɭ:wx(!&Ǖ=ɡXin5OaAiΙ(Eb<PC~cRWޅ(E2#˽ @b_]51> @|FgG|W`/eqA#cp嵆1!6PWl 'u\&J 雴 w޶h> ^$)ODb-'{boMB8rpi4=&5 oUb ƑkA_rdV3gq7QoPT9RRi$l_B0v~2сu2n:ܼv҈J-ΙP** S]E_roc"91XijJ31]/ *;FJ0ߏDb2C` N w&Y aK mV_9v$k9Gjgеf`#:xFDZH-ּ97cP$F:~4SU@)dRQ s~ӱB  ?y2rwrQ'neWHcnX}~X04 *g#tiL1|p91.ɹRmML$ݪ+-"/hN n )jż,#|0lE$BxI Y = n9mIZXP-U{lhk-GYCRΙy(Fq'0F|:ŕNn3eNNiZ療{߅vJ]$$^hH!nax#hWA_pv(Awь>$$MK:N`~aP13[CrQ00JBI,T6ΝfuԕXs"[(jsj:{dӢfh&@}i_o|pcr$5+=YrV^p(!F#0X3WI7O艄N[S]"`{CmHyYA=yoǏ's Tu6?"MSx&uuE90H%0,͓3 _d_ؾؑNy5IgP dJ[q=Ja㘯g!p<*GaaTGe8' C?g"CN2nk泽E;TIN 0HH ,cIWF*jVfÊUAgyL$GsÝ* -VF;.rar :|K&[c'%Oh,8Ie FB9 ;/t|`7foIK*F,;3;e,XC B9*}E iE. i8 ͦsR)\vKƓQi,ݑ"ȡ;nT&#yP2%-;q}5NjԳLGH9vF:fβ~cI!o6qS`]9?xTw4޾NoVC(-Ov^kRwC :wip6X00  Lw,r+Hlyq.eB.Uv Ą2m d$Ӹ3@x5f7Iɞ_6tvVx~gmF 6ŋ&1*GYyߵMDz%[0}(V; ~/ltS}NT)<>wk\M 9KȬU$[ Y GWw,VZ!ù yf%QϵPY7G]R0MO!6%P [!Zl^3vUM7GVN _԰r]jmˡ-<{Xj욽E:"rph 萾Ece_3*X0ԐEU"!Xf|&Vo8DKyhf i`-׿L<5=L@ľ2#kux oơn4uۥ1h*-._ kת+ۜrHM;9bH-ʬ;,̞ͅ;T/2OX7'$^OEPc);D+@`&;%c/lP c`LHxc>}}hԸѬhBp_=vMMQ?g[4I_YVYV; ?1Qޤbf“*t%s!В` Hg-TcnCfy( FjE?K?>NY Xc@*y9z;P]p{t 1^*%%ѷ+s$ȂET}df_n ,t b9|1:* W+$)s$2YM\R_.[&{TbP嚜(v~9R1P 5W'츤E P㪫)`ށfVf\&Ra;x|%W6U󷠀>J aa nQ8V?W^at臲8!4mwWr_O.7:2oĿH NC U $~!F1aAqMvP'~ZI[$gN}%}а1Y ] hO3Vs2Q~$!gwr<ʂ?ջ;2wc) tوm@ɕz㡌kU;)޻(rb|6bT.|im.NJ$ L@*f$*LWCwk f)1c ,nV0S5]͞Nx;8 7gɅ-_F"*ҷ߅R ^{ ~Y&>zTpz2XCZV9 ᛋV489:f0ĒeKdaM6Y/"GTe^nupB`8Mos+hyB3ޕpO6WT[khuͩK&y-c_X~,4}FbG& " 4tDNHC%&:~q-'j`ގE3]'T=oܙvLԱlĀTFOZA!I& w"ԡy<ȁˁ""4"4C$A 5:X[0")s RɄߔ|:pcn'@[vtJ7"A x3;kbVh֦ESo!7.aq0H97LQEZ`fVU{4Kرk`Xpڥ39Y YZ /uIʲ,!$&+%ټ_^7Pؔ4Y#5Pbabb?BzKcԡYVzᾹqIv-NF8n} tf: B$)e@uyⴖy+{%Ek)$Q.n{_ټA. ,8t;]ŗ9Ֆz7Dt}tl>>:- .k^#OdVT1{& ?sDW/u0'-uĺc(2c1:dñY-,G{(E_Qɷia'-CGkT7?nNr:eECO2Ϣx[F G@R y_"afΠiD錙#BNv+n,JƩ,6!(6#ʵZ.;:¢PMf3g= W^9Ѐji8"hwM1ϞWD"xټLy֩LC(&UZI zɔrjߴ2P >0U,M4q34Ѥ\eZ=O:`Bm.嘜2C UY?0i5^4ԓJvv yUӲ "A֊";T02G؄Q6C6(%8rfӟiuŲK)*cR K]+bj_#8@BxBmFuC KJkѲDM,q(XJ4׍38wĩt*X^*o=_` 61L\͠o X +B ((j.>$D|dZ4|Cӟ@Q8w%箉bQ%z(3!%+}'U4E{Qva<8PWrؐפqLf bV2Ej1coet檂7#ܰB UZ\S猫 >'b ǥcORז3RO TNqƵ~6K'W80[ J%$…m &y3'nVni|#X܀ޥy@Ш| - ?[\ZnG8i iYxP.FoHoLg_~|tNP)Fm.}Ӓ1񒶋F;[V'[^JH*UiªyP_1_^R]I;l,GSNj,wB2pv~Erq$w$\\H$=pm..'yqp˗ ,lq3fs-IgخZO|*7T2b,˧qF}Gj?)dRvԐH12>&j@ؓ mgvjED`!&=,eDC+T8g~8ަZXzh]GЧH d?n7^\8qwT Q.%!dTۼr+廸N縯yش12g Vm]%-Ƭ"-~``?-a'`@TT>R_S0A̠!ZJUE>//:Y~jP,6q`{+ә K+t D,y$ f穯aBܹgߨAgDܜhA Ɖ#)ˊ6=fKG"HO&?`=rϸ M W7wptgCKD~"OM \EnƠ%\-A`OqN\сdw{5L纛p98 .<b8/ݠ̼8@*! ]H'::/?VhN P",SIPN$kgDO_L-{ ׸H @ɑvaVݜm?:_>q%aywEⶆa38'&#zڰ_"0rr3IӄLE+ g5(RMA1*-kxdv:"/Ts7@ۯ5*Z(a^2wsD,iIBF^q$ObwBbO>AjD9С-j,V^UWnhCVӌ7tBAP(s4c8Nla 5 s^k)x|1ޞ-w-ٓMgg:I5.Xq, PI<}]I}EX--â&$ydCҁ%ЫgV GFs617Q+Nru*K 4YkF&c oA]C+ ׍07"|EwF?U~im bܬGCO(6hJqHn'8PS\}dISTp [%C_}YK;2)\ϛ:ᭋ~"ZyorוRI{SoᇐS)~Fo3:&)iDg9GQPV1㴊8CR+W 詴ّo&*0JRBE5𬊴|I1_m P~!F&B5Qfa"IA ki~z58f#^HaA/5LBUZQbEoe.*&_ӟG?<Ua +hI}l kBVY֗e/$X\˶ޠ *qf/t 44M |8|LH# z+@hT誓ŔF39햕B r ω%m.A25ߚRJnI垍tekA/+W9VSFg M!_FIb'Mb\H {.R2 t|T<ʿb,K~:Wo 2XU|<6=1* 9fX9J& AT# ]S@@y5'RZ\?t>DJ0c,N{sMؒc]=G=8B draѣJ~p+i{2is^S56N?3u00a.R;7 M8{g-|q{Rmd崕~_`z6+*p;KȺepP0 kƬ_YRt=^F h`"%ޓmvV_ZxX?6C<AK?h8PF;3 dJbrՅ;|ULrEwBUF#.ؔxc.U?*ڒG,7mZ7BC`]'VUQ5D5m ؝-%褲rxSxOcԿ`Y\@ v3;Q6k2B}. @Z:9QaR\E> P:籘3 2JQ갘wAԇXHp#j/F~!2mޛ&=:?tRηd !)s,ş ܘ@fYQP0rKyXc[n|$?G}*s<)S`8xuBdL?$tynJq0 "s -\ P2p@tm b~~ӀE@ _0BdWɥDn67;C@`\v6eR^eߩyE:H)%؉$i^b3shz-' HP>n۽ZFScJwKaN[q:LBUO%MLҶƕphbH8 W!4~vVuc{Wj!v iiHGíB ?!K MC| bXbvb w6(f^%1q-ӮVӠSxOeWiL -+z3<9gn ~Do? $#>MCB8n}u/ƙkY>$aLЎ*&GAg5HEA7Ϻ@ɕ5~ܿ2*^F(t|h>q@w+"o]2ΚNe73Hqה4(`ݨ1!;frBqvħvlW,,-bSv0!߭y~QEp0dG*f=t+2Hݕgxr Cܜ= UEQ%:GiZ0NSu$7:7TֺJVM`) @,ZE.t>#?GU d3VY)rۆ'=/kDVa&g4@v%Tq=Ǜˢc 9HzT^%'v-ޖJ~FX7zmhU ԇ:(.G}IiQ@fx|~j +7R"b^Cwߴ;a準x sjdw}&Q09$@`E4izޕew,j6toq]0U5;Aԥ&3ӎ?Dsi94&Bok g;Jq J -"eCwS2ӡ*I*1wAn!66r9b&Ƣ8b0kyaBeB_EJ_,5`r5|I]qdUʮ+~edˢ%nGA@Z\IFT/ ֹ0he[8*vP1оGϴ~Q$6wukLUO{dyXխfa>H 7L*JQJ9B^'Fn0lYB/j~T3A%ȰS*RPm1;[ђOU|A =^ÌWEűT\,Nc5_z_%\A&WAReq671@OdܟWxR o.u`O3"^,)3R~`ʡ*0cF15A> rk9.~q6ǿD5+8$e8xfL:3m.$Dl[7):7=;^vւ LH_LYr!߽a*PêtW(rASD#v@\w6E#LCF> dpI"3rѻI 0VG2om5I]SbX *j'9XcrGQ\"gͨ]_ıNSEH,݆?t%[i]D-a H~V>7~qG%>=W;prwlzόW8c86ٓ+abw"%6Wiײ]3fɹ e1es} (<*-bL~{Duj $N} g~MM9&)RB. FP^c ""O!9T)\d":8F>qgo%?^GTۥk4.+jϠf|{S#.i) x`A^ûN> TJ @/@Z=?sY8q+ 0Drt-M[E7XA#AWKQt h"_?>#c2A_ l{/RȀɿOކT_Z.,N=0I2Lh|\ XOQш~??)/]#çn V;1 ݿ/ $MQd1ml^Xa7{ EІ FD=t`5Q9"Q2ӗBY-!\.EfI)7~ \iZY*]Zp#}V)-k ~: zMi5ǿ]PHT\|F[]~,&Kڅ%Ql]jd\ȈfQ8g՝4XU℗Job[J/gRIwH;o\'k72ͬ>}յs"3oU'd{ BoOmM!C@ӊ霴mY*eyV26~!yu Ȯ\)]T cԳ*v=NT\%M~É )U9x>.MSvZ)1d = (FPI.ZUh++8Zipj7igTI@OV%zJ+M$^l,ST9T ,6.h 2R(vs:q^4W|FzIYM܋Oh3K60Tr^"D(X\hYoG-bj5&oo^ne wU௪ ar/]eBpL3`<6HPGVG&LRiNTw.I°OD9Fq'hXUڅĶ4Fd1s7T 52 a26È-PC+-@&[B*zH Ud5xnߺindr&YmnޞMg>RԜbIhX7ЧL}H"@h_i% ivQirέ6Yd`r/_AdhȔ[?wV#T^ˌ嘗sA<@RU$tyr EW+z󵀁t\Kdx$uSƥ:,aE ܭqժi4zi=\w⓭fU,%%<8㛫{w ?+{g Cr*5~Ұx>օ8) 9QD'j˕Qh7|ˮ,p&BG؎0Bٞ|P}(.NEI|of4r [h%:?MPcp,*YԬ;,&Q! 5+|pع9Az(b;(ͼB>MXVۀb+{ bDvĬF[BnfT [g QB˹Cړ2fnߤIZC7$BPΘ̲|rYHɟB#*iۻɚӮ#T//~w򬑌M*f4br#۔ʹg2/9L#6}%Yp-4rwF4ۂ#8N ݌H=f*l7!eb0<:_,;Hɷ`BV h5}Kv]!DĚI myЇ)Lƹ;E_=L5`4i?LZny+`'zۀ+h.f`Kh>Yf:;?+7R0  [IA5 rgB9 |e c;g=Hz)ҝJ{s(4"|rPn%k UT99 2L/ gl&=.Vyj\pL.r+UVҬXk,'a,{s2RksUK(#u# Աp YEWq4졭O6î~SӗYKj;A$NJگ!H>%;R9 ޱT#Ia~#oו"n-@g挧CGב{" a6X 9L)25ɤOۇxNV3v;),F X3XؒQZ_H^r ڼL ?lh˓?A?@DG_)1'5ˤ%CZ!eX}.s\SMw·>BH͙ 8D[%4FKM~~#h6BXKxTqBV&f_'zn&oI0mV;Xi|-0kta'a9S1RAD ^>jNThrc&(<١fmjr.6KۼkI?rKdU& Ň*Xj.a-4+!Ʋg<A!-(j'Zwg<)Yq:c]ewbpيC_]VxW~ 67W^$-[t_V|I'7mY쾄42* $= tZRupcj*!gdPV2VrBd\{T;ē9+[} _!* jQKvD_yެ:o+mxL ?tQqK{Tw[~QJm tIm5c߲;Hk I͐Vꍴ ,t x zWcJoI\ֈOnK+AN گDcGryX_P)7<}j 4Z(`0)eq@H=ܰ3nB{6#} zB&p8YWaM;+)*Wʱ ?)]yy7J\V ɓS#Uy4Z\ NY>cv}A2KvZ׀5縌ڇnHf S0-~r rKgf.a褖+rub0Io97ML. M1]> hi{%xr#jXɳd<3o./|?1b'GVh (.& >Q7 ?Y:N'bB9Co)uj?Y AR2"޾7Ғ}=4l-/=K|oݫ=x0`B%wH;߲FzQ6f,3c-,0:}c3d8fbT{U؝AY9dBHv^N63Y5?NLx~M:ŢKJ.l4ocw*;hא}^y,wB{`xx\ Ǐti L3bV5xUy%%BwƕɬA}b KSy?yѪ>LW07_FG5{XD)\׮.L|:i92֦jˣr``N|D I]:<#rb]ײP6 AH_F?1>b@-\razv耣hJ"B|Cf'6]b%>2Ahn2m:xT{tx\TʞN;3ҍ@0 *V"!&Ȥ:#Ά}Vp)J*l!Px?~~h4gLDͧnO[MCo/q{[SYcV ]rH#@Wȼ>%(GQl")K#>,klMSdJSSL1-FJoc@YnxW2z%HzdL[5Cljh\FdeMcjB]ln}ʅ֐7t<<eG[<:ѻ6p6?>ToK(1FSfKĿCpHFm6b( táMqVLyrӋ*E7χ6:vlmBh>7)i/X4FI,-ghnGr bW3 3 _v9fm[9Pvr8a K}-ϸ˽)|E$ WUI XU7Xg-X>jt ki14 $k[:USr3?5a&}mEKN9 &JwSL՘mIU`oHL%T^&hQ{k+`bA/JffУ̙:pµ&G[K<9IJMnZC۔eanˀw?&eh[%7{(Pe_xjǓb*U?XZwK@D9mI3]NbqP೫qvX& "Y͏aleLb:#é'3GLE#?(q@a:A1NxRb"'H&+EtwLQ cH'Q;k}7+&"tZn Ep( >єYب/'wg0zBoRlNY#]p 4PQʶӺ x bUDϞV%3~ZZSD_\~'A g! `F@(i.5 "lY`p(L9 p妩0T/Eݜ[mݗw͜zF<=M6ޤ({̵ CO1)3(͜wZ FiwsYCo9;t)X֧ʸ}+ý%4ѸA1P )pҖftN9{#8_ ̯I ``r^vvT/_vYI#s2[d}&Kr}- ZBtWؽ~}:L ĸG`]|4[P8搟=]<ܮ,X9 kهWl$&b U-DAgَ36{qYZ4m w@U-&5R Λx ‚7/Ĺ:&q.Ⱦ֤՛$=JC[REBN q}a]u,0W#0-a@3%ˁ6֗)kQT]LIofRCw: 0R썋gO}y-m +P Pk7lcÚ j?n ^.ΙO3A N9UV$>ŋ2y˘Pt7Ng{Lٞi8jo}N_¦JprqY'WL^47§vV8?g~-sł2%/(KƄK}vJ'u[…pԡ#D/t?bx<  [@H )E+8]ST8ymx47ivט~p3le FO}T}ƍ_C-ۇJYy7X[94B4&!`ܶוC$w,Ҟ7`%uSͅ fs@:d t]E|-kO @N˺SRC+Uoڐn5M >zU %e/nG AB{Wmֽ42cfxy`waG<!JJ| |rTFSrèƏ7DӐJ{qc SxMPw>{&Iy5FGf,-[;!vg3%7$JR[JbHgPO \Ъ|߅2 E9fКWqF z'OI@(+ &$+l×kůhZϣ%֣a^g}3dv\k !Y̙0o޺rٱ#I)L܄HsD5 +)$f1{y BXd]ݹ{O<Ѯ[d"x\gz.&G2庿(⣾Lyȹu$:E'Sg_B-:Z 3_F %Ҡ^K%JNei v]kԄGV-ϖxwwQ.qSS"/15cQq3iepgq-vkgDVd(;LU=J%[qȂܢ lSZoELq!_ENe75r˷}@꿩a644Xa&->[ U„nz:!}7V$GyrhD/:UC=rs } B$4jGZB$L],,. ޏNa|^ֽ Y.x`d UufJIJS.sNVA>ZvB\-3g% u{=]Wr^,2Uiw!|t卄WS¨w]/ ;|ĮaX7z{J+nXYx\)šB7 4<&.-Ri!; Њs^گ?P0@p+ .;F7F=6WQMk )9;:E% ,@H/Kh.~ IWm%q a:WY_sc10}k8p&]e7R)z)G̼,ǾEOgҔ]Qvgz%=07(h X2 NC?Y{qɬ2C d>Xt;"ї e4\\?mzDi*Zq/"H+'DIs%ިa'3e4;LR/N,;*0c8./6GNFXQӍ8h#PRA}j7CdJVM=pY |~%ekeT"kvY_voHU߯M{1o9^2x/Úv|Ьr[ۅ+|9}ºj ׹^Y5$ԋ>qF HCrɴu/,z@Y`u&}0k[KȘj=pY/q1rBʋTtlq[MM2X:/;C3fL[d(ӭF ːI+ABAv3s8T9lyޖDJ:R՘D{LTJ<_Z@"X6I0~zeoS REp&Ds4~f*)UUXd@o6/l~Gǒ g6y8l]q9UdT}4mT,M 8Ivݤ"Yy_RS4ǝXO]w%IG[b?ڿΘ 3թr2L=ES̼T%7'-jQ]vZxx7Pl"PPw}KOGfG/aI1\_3B] !$`Ȱaw{n?=ÍڧRz>kPQO2C#[٩l>Qh bjK%c6aƂw@w6ڟ8P֥V@\\E*4 X~x9@r2ai)@BIr=)q'.`8k4-xt[WXo#_ :+ƭө{I Н 0Ms J8tXLaMF}6oDi'bs1]sH[ȝOE&G_ydI< A05  XúDgQ0t`.} zQoW̿n5陯D Wc@K]8vo~O+7+wGU\ jNfЬD?k*&x!)_4z"n* sI m#v`YwUqCtMf,_3:=}XH/^UxŽK>#Eߒ80(#ka-Bl~^Ӿb1:UINWasW2i'6xzk D),{,ɢՖpۦZSdq yEL = (4fKShaxIщѤ-i3?"Q}F2" T`AQpoOW62 })QpZ-PMWBvE5;;&(T^õQMvX ly&-rx|b t% .\L=~3cȬNɸ-ra'c3_0Ѥ tPoՊD`7q8BMBaO^HlWE[S 8oF:}0AE,+![6{~[oB0((JѕNQ]zD*3Vy8Jv&AB\Aړ*N㫀51߬u̼'O#l]3$%_ \c@+Bhy@lx?X^gaj6R<7lr?flwJtŹ jm %xԿ7_;;}E$n\ħAˌfTlE9o ⻉åoո]g@qwY_ AU35pKEȇK VG#?Js:SC  ?3ʸBƻ &r|/.DIv[!pfvϣH_C뿿XG1!e&k݇1Ok=o QC#YB I$;nVU}z4QMUo84n3ӥ`I' Np՗BE =~' sir*=YSg}5Bd󎢑,C(=꘷k # s.Ͻ|ZA\Qokponscg_׶bJN7 ry\t3-, VRAvp(Ѱ#uٽ__ p+9 Vn~O/:~~o~1Wau6;fmt8?Oww؎m_ Xr$լ#ç1V'O'JLPCd_2|Ʉ 4M3m׋xZwΆmOxLkϦG$zfS-ҼXV}f\.gfb Eb,}{ D;H#bs/?rvBgy50SmC{ՙY wc)r^/1B̋ r-@v-t3ʀxV ;Q=nf~gf;0/ E \9~ǡ}" :yt2Zm<%Z/f+q[@MTqp6jd^/DKIR"J;~Ӟ_.>dj,mq_Y'CdmVm9C rlH8]* I9߹boߗm!gj#Ji__<2QsI ;ӉK[Aoa:0e'-ӑ5cӰ4v#~4~?Ȋ{T3SVUtNJQ`$YӎBq8lTpȷsu{a$Ovx?NS.$|>sÿ1Y" XS霴l}C(uSb{^a_M+9Sxv_ʐk9ɑg*^.A* Q*@*{W=ڲ=XH<6d() b( P.q'^kx3;]!MتY'щZr ]'84O[WD^}yP\'`!G[ Y2z ghO`| ~/4Wߩg+[xYXP T֘]oHyIb%7CЎ/640rv)ecz0eh#fo 5ޘ}S=Ø8 ΐFyE. cRKv5Bv(t5qE2S o<QmB[p1KH_V'$n'jMT䥃:9:U\T3 u(jv_z֒"}3g- *nHA=jPSvbtplz\_?K^OP)ʟTbte̗i6M*ek@l[.349m|) 8z]y_n 5{TE}ma{w~;ID<HxiNMcp 6LӍJ0sȧu0(ԗW"mpְY$jyEK\ev %2VYqHp1q,'S=r4 J&AS[(Kbƈ8m%t'Ҷ:R>U0Ɵ2m#>?B) \w|!Rd՘o)̈A/`yx,NNa}{P$&Ȅswp &+5_@*~i} h;j/SOF7 .Y YB* 6Ӹ.QLNW{x_80ԭDA-toJB["nDolv6(d*w"`.EH-N ؾ,O+Z /ǟRXK;b@0}O:v j+Q~ HLJc hp׍-xӡImPn8#R.dBZ}C+$W|vFv֠f`1vZxī>[ y~I-R|B%QV~0W^t#׎2C -RwjX`V?FVžxs0cԈ˲!<_p68ǘ,1Wz$DR*}y7OaFG "05X-Xa4\%z(B ;CP:檶5| 痛oMX)G-!u7H/x ’Vc--G 4?W!;6X,JQ7wuw4#2x<g%hߕ|2!\%'68:Dk1U#4:@-rr]d]藏]( 'tHUIt7pwa@[h!/v>l /L*Q2"t!Y<~%o ZkD} lQ: I@ 5݅[;`!D%@362TՃ>PßZ4>#5x](>VGMaY"i;sU7 XTIXA̭ 9Zh w755N?ւP='N sTz+{>S}m3\D _N .*sA'a=3)RcoV0IkbaU=|D͘#"4Uߎʮ'仚"W6Mzr#uˁBU(!M{Ni& S(媋FY{;:bo+ 봈+Wh(ɇ lsJGR^(.&ypbV 0#a,Q 햍>=%YױY$JCNʹ1x@PYv!}t=>,uGcw%O{l&:γh}dL,π:ϾoB#i\?҅toq;@mȍq1d ސsHC'n|r:rÿ~5/YS.ilHq'Q=s BU=R C0pMy}} *SGt}}н_7fU6k+7oJɿk%WvĪ. ضA`G /ļfw.h!UJr Yk7Q>>|ՐYNoD:p=b~W=}VVo ⌻VV .-quk9Û5$O`,  &IȻ>f;n ̄,AբluJV,4?B慥ՙpj G%$2P- k\ `%^5'3S%0"ڥ` "VQAos(8.Žh-/7den"ϳDg:TJK0|1XFC_ ˳؜MfF6+']XHH"g*"IWO%OK?jnxd޸xYY pֈxAF*uѨBs"f6v ,)Xhn_NubcRgn|]uֲ#јGX̰ !,g Ҹ "iavzn4e?8Yx=-Lަ$jJ],t<.¯Ƞߞ"3Qa}~bMFxvK;FUމоpƯknCI(fm! S 7$4!@fȅΨ۪bH;*oN*=Wʌ ye':In".Sl1Q&}xhLXJ\mrx=X*dODE|%w o}U(BB7E>xhWoKU;ɵ8j .cʉmxu6~b.VUaӖtTONJcvSybT<}/OQʹg)*anus֟ { AݐlP1*C[]^ۼ4q=;I@v\Z1jv0{,yudƥ;J3TF@$Emc2:yrV*ԥm{г){^ʁ$piI5{;/(aGtLec;4c.0ƲYk*Rm+>]F/k }o"k\-lju/MKsRٕx:m 5~}/cQ}] g?36a9=fkLx| ?LQorFMTOVGc~)]q]/NzK(!67_K+ﯵ1?87oHedik[oQTp7@9xQyp.Ks[]"z*n3#v|\6ޣ3$ H *.za8Z^\W!5#^c ;[QV㝠f @!3)&l[(2+ h5RlK/2+-ТG '?8 'Uy N黴`i7j U<DW{v |nqu$cR5z!48B B-rɆQIyr1BJL-'R՘Ej|=V 5][)<99*% [M sjuml 0å92J&1/TX}/|tގOAJҮan ƀTzh0/3RQ$^RA Ztfsט)y(`=)7#iG9U25 c vdKGjzxVg^@h5+J^&a*/q^;kKH<ʇbhMvEOaY >Mot@++\۷׹N*3]eFۥKm~a^DxYg\}PZ6kۊ|HWtD<5RǮ\#׸<gB ٸɘɅlW'w>LB)'0ވwlbpeN-$!8}";'眚:m1xRy o. xss[ /QKP26 K'G G7)-@VG: sUӃ?x >%Vr2#`%l *A"KN*=MB\F=,H|d* Yx+'aR{L"s|%YQ=92I%gn JOw.N4Ksuݮ"WU火;eUٖ S5&>Iؗ;ajHR+s[phQlV@2{n}Qk[#IPTfpd-# 1=aʓy6*s@džJ&N tkZC`%3l<ƗӇSXВ*"+2G ,,`{HWJXXT&"9`1aw`Lo&҆40t,L}_;71.M78iڹ8fH})$HItOkк˔%)&e_ĝҠgɚ뾲г{o>WV4b\+]`l{[S"4h޳JSp=I_-}ӛ~6ۜ/UcFUp3;|6dWK~ _/MLV^?x .˷ t119Q,wLNywr,ڗK!D;\Y@9w阰UeW0(kvݳ;Lu{ykG4Pp=մfEEHa#V1?.Ty1Ē~o:u·J?I-\0M;}$p<˙ pyf^I1?kX/a8X*W^o}K?~k\EvXzا1dAo{[ќ4PV떹~^㨵aSLIq{K#%  ,pA/垾Bа75'ǒ8RAJOG竲H@JTuE;J"tMZRhVbO ^smȖvNA3*\>+DgSCBV$B*w-Nlڈ`AE[:0J2%Fw߈h9|SM4u[k9nc`Mb#vqzQQPAyi3K% chV#v kIG"!sec^.x5 qd/igB#>[C+xn>܌Y̊^a aEUf҃ZƝ)U0#=2Qǰ@XXf4%dyN8Uh˵V7/}SȧV=VO@u]'nBI(q<+xڱdg WǎEݬcR8na:ŨHt>F Zip:Sh*9ž;'il`q? [jJNᘔDI4!⦞fL >l碸߂ % i/gd͈)mĴ[op~ž);v٢[꒺7cTwejdi>m"K,LɢnذZ9>x̫!`!:Ō0vBFs) LRN@xiWkƚ-&VQҫHv8,-M?Y\?~xN#*2/HT ߂4@kDԄ|)KR# 7A犪}x\G:1w!a}A:rN*6o#"$X{v1zz`%Mu|YO7c* 'b]+aC!PIXqVlv^\b~=W`7m0WAmRˁ&_Z-;úbUg$X ޴5ivN8+9 P"n&ڔVJow-q2 nDR, \#JXanq뱒I١D3oOǏK6ݢDH_2(o9=MOO@4G*c\l u~2yt?Fj͙$eܟqJfW (aگis3>^533m%UaP|`XAPoQadKPv<-OZ /S @[}dyPڥTtWntkei) q)pyv]-Nuʤ6!Q.鰂?A3bк c̀Tp4}ܬ_dԎrM컒`R4AEma]=W(A\Y*3s!7{$Pe٦PMY -)庶_W]ٻ![E~0@32E `Xr]X%.Ʈn3.Ȋ6i10π{P0)@P9aHz{ Z|#m=V6952Eמlù `ޖrd=dXC 5h MUTA7`Ջ̹1@{@ uq_͔qQ(J-ySf̯ߛڡ}^[>[A~H )ȺSiH2/68/c^.)Ȱ pOT >B ~.Wx9n#4N՘4+ (n: %xHߩ>>&(vY3H;oV#PeYgǟyQ}k hDm*h Th||)BҟT(kmywLBo9L*$>?,^"NƦ ]v$fERծUđ7ܱv-qmFd\@xFS4|CȅO=D=.Rɼu<6:z-Xh΂O,#c&Nx=Xz^h@ rh[FWz{8;*s?ۆOxj$SQmӮ4H0 5!EURSJvJ%_*eOG5oa#VLЧ(Oびi0ۄBL] bK^Wh9xK>nЙt4{ }ٻmh"N]ĔۖvbB8ԵtʹB`2pm΁:4<76\ msſ|,juְal;>|QVG#_1 < ǰhX=mP~˄ :|\l :AXw8fywSLT1kM<P? a-oSu;,j`D+oD(r;}zBϏgϚweL/<*^ #ei rRE sW0VEH)>K|]̷Wm5N =MMpllZ3aAv͵.@Cq2n )!}0|^Ȗ`G-I{D1f]+MAbzޥD`:󽀱Av%'`;dNõgHRݳ _$pXBs|ć,N:J%2Ϲ05|G|d&Z& `ǒN8ǘ؊0zGf'҅($F< m0Hy&4QAOqLYs:v4c%XZ:$ߝ>́ms8e TY#f#["H)M.,աm=NV\m EJУg߿qT66 蹌Kk]ۿqL|/-6un3z)u\WEbt('M R{7}%?@b}T~[R4&ն뒧5Sw0ҫ?luQH]u:̕Qjm$t\YvƸǎ" ӽv$HLy(9|#'`U?"̶6(R">OP( MO9ukj`_;OAM>=ʅS{c; 弌Q`=lbhHBDccX M4$AO~Y_v裁tTWSraqj\«lNDC-nmZF̳ye*8чf<K t/ SE9 =x||=wD&&zh[4&ڋbȞ Z}k^/n= +2S> ._lR+%?o#\PDŽFYj]ЫHϹ+Թ|_yhbWb(rbp Xc%)&PN> Pg_C,~W֩ eۛ=h5KTV#$Cu%:xx6D\DYm?NLlm-Q jI&܁e4'qB=m|trʴ;969ѹ='s*v$"Yy? y05:R*F˻t=t~_X@K W\K*0bUb܈:N ԭXEMs[>3AX.ћU)R#i_v+:K6,h5돣fVLSxdF{+_8_K*`OM (>55bt0o5*MQ7!s$.G|4 FaԵ/B$j1E=/i#>\U9WJ<Ҳf9 VWz0̞ } ~ nDf8:[rB7zf!̳z% [n؉\.J Y  xZ]]5p"J ’FcGLԈBdXv+>g&1T7'D:\H[(jv'I_&m^W Y$G"Zs`*3<ܢI<|af @o'CpҼ9 X">80bş&c:4*v :Ѧg(oCWaҫ/d:)qʺ<^Ri G?@s6廟lG)'Vp4HP95=tJ [6m'2c1@[dF3]ɨccylTh]L< :נ -r!י ?ezQL7v0*,sl6=O-qXϕנħJ< 7yBpED܋ՍzIoj'/vgoz^w2;F_)z#~Й TByԫ )8^f?:[FNP&>DKўepcأHqX/0|U JM{ p** %_EVKX,2Vl+nFP}0v-QwRl ut+[Bpm4l9?ږSfasw/n8p5K^csPO>e*Մ 3 &7SYG:6" Wiv]aOH{NA_iuFDFH#kBZ2q6PnkT!2C~U^n֭d:~`վPJYD}U %%QȖGk^?.ҏVЫlc*/lͲRL 4 Ͱ̊V,N%-W;Zm<<=l jjQ |OKS3@Eei%l;N_ZA2hIto_U.y^  TpM^5O4By]阫6dc)䧚 =n~(;m2zfut2kgMb骦qmD|#=Ot7H&t&nDnsT,4Y h 5PTo:o0d!xKtAPR߃di20? !M[JlaH%ؐG0ts2`?LeyQ',5ohVJp׸wΪv̡Ny Z%z2Fnr-cȏSYI̜ܦ? *,PUpy0IbE =4=8UX3;a:fhsӑ1=ؤ@9"*% i=z#s*%V3GG]Ov!C`MGo{xkĿSCӛ~kKo} l{AYWItƧb$?՘ =BHaY-WO?)PGG;Y쭺um{wlÙ_t,&_tv|!0P5US) c F<ljЌ oU mWA'BGܒV2W MǍeD@&eNSɄ{bԮ.foR]6.8Hq{9oy5:;O{Nұ]ˮ#-(MKɶ8'᷐;6jiї"?>,LPRT. 4ȵTf`-"@arAr+`psCbEx]F+%Մ3D"/,hr,@Y`w 8{>U:21܋ {qkRpG 4*pFos}5CcX4j(A?IH3H ICZL2{U\|'\htrsat Sk11̏tұ 4ǰyo5Sd_^/WkY.=35IXIJn\nQv3ѐ#.$VVt"dE>iVO#HTY*1g2(꺰,~[6$Y ̅jn)w}Vl{[Hg5a2.޽S.zrkѷ)<8BLb3fړ31(7zt{*?YA Pl[gJڤ:-H#nߨv !Nʬ1Cב_\=<ДK^Eq;8`'jȿ0g*)rU"8lw5'[u)xHh\앍)Q쒽STu> ߭Ȁ)5ܷA=k6 B(XufD`(\uH\l {3j('p35 ,-nH6bRڋ "d˦9ѻlXyѶJiѯ0hsY70ÏYC4tG1x ɤk_yz0̧}GhVC:C/cWObf#maiXi"M_>qt5rKnR^ u`4[R K\p+{w+T-!KN1;m8f@] k+xTs $z,⛩-K`p @8>?7Yx7UghPpr52pb!L>GIq{œE*㘹lU>B]H6}&E歛qun4Aqlל"<(8v3Z@+_uppܠNEչTY0P6"=)9TS<` ΛukyEք )Ğ?0CgH >JPULwM??KE>DO+E=,I ,0T(m:r= t C I4;t),413(nDLC iȽV{qnz[h=Lo)jaܘ6;UuUZVƀ쵈t"\̝Y( m}ɴG>S8"8QZ oQ;-E+ <=@2oU[gQ7Х|TUN['-a˶2=HoNo gffOWy԰xX3J oxz鯍D(OH$Z%P_n-N~IQc~w)BTʃU;`r~k(eBa>AچK-2p"M4<a,4K&`XMzJPoyaWϐX3USf `ƈ@_&i! ,!SC 2hV>BNm=d+*`X8d!l(.%0$&4emDMX ";Kf;)۾ۛ$$=$p,-ɤ@?~Z6}p=!\R |j89erc+Kkf_>M }ő+[=n?/W`gmvǜqzu_b6"Vݜ8]g#M^?qM̢*`YR>5 P<͠m0th:|E/rq|$oM%1Ǫ>*K".t&g#H V~ Bv<w<PyB؁'?$cЦ[JǿYZ ʍjW)EQq%} /|*ٓZYZy[}3aigӢof VvMG4?a$w&#\xMoZLr:ÐuXvѥ "hD2,R($sW=4~tʓJς;`(N 8RhBKM`gyIa;VIPr*DmpN,٭ '~tl~Z ?Ûil8ս~}Kԙa)AԵ1`Dzy4VdlZH,IGEc6J}OAJD:fVhm` JJ Pqn/Bz|v`Ζ2V2 f򟠿|`FZRC0.vi*g)0X%R 9+i;J}d}Ȼ> p;u|PM֬P߸!Y\$] IrZn冠s&DWg%3G~\"wEzs&`zwL>81xE`ճKe=MrhDfO&y|3D||3ѳӳrsނS@{BMĭZ)Z42d tD9DoxHah'DN>,6+D8î6jعpR^$+zWSM--tY] s MNcYIlCWb仯1%@L i!C$\mTl č7n8GyޯCXe,P ,?}aͭ +M5hpE3kF K kD7$u wC"ف &O?MrYRbq]IH,߱mDDSm٢ WtQ7ň֍qʩ%Jۤ$%QeGN>X_8PaK=ҿĦFLw~Z@nRmcE>i-ٽQ2K AyQP+G8 ¿m O $Tt@l̊H7R 4$cv7.3Z rA=}ӻ, yxYk%;4oU`C14_IdCB%Mvހ˻7x+{ K;A4@m py#\.2\:5v>] Ez˛u<nۢJ XASvFNl(?"ľxZ6mzloųܒѻ8?\S&0kLX:>@0qyT?9݀|c:c1ٯYD_mHunw|{<}C2)<o`NgxOmt}iq'o֯^`34 M,ˏʾ$Cz"K^sn V F5 Q̖zJKsNh.U^Jdԣr;ڠ+3FMD4n6._~00ړk{Ef8លS(xn(1Iaoہ-+%$%n[gX(ll8 *,5Mh쒌k"V?uиa}s(:a]\]FG/A`zt]((eXrGГ(sOí Ń!xV*JcS鄲ûP9⥲y-)oM<h_= cT`Rh$e8J?SGPy`~FC}_M^@gJLcD M6|tш!Ն&Su~s3%C?=Tؽp+)2TT=4s*nmƂ( 0n=Ma?}= jpCT~GJPITQ#P\ Y.̥3du1Xf`yHkS>/cT4@_`T36T>13 C̑0MX!ui`[X4FIRFZWUc ֿ苌 q#qw6IW JG"Dhc*RB+:pu":|A]`C%;}!3g6,OP^}DbEg"Ҩ_! ×' ` 8.;?<1L?H ~VS x 1 b⠽ L'lH{{#1!]e!quQd.ɛa`!ߚnj,ħg *m3A84?#]שG _áxyo6}8Gߨe.>T{gޘ.x 4گ/c$v 'h5Zk~pڍ$9Ƨaj] kpdfq5 $ESF;mn%t>;ixxڵ@ܛq*=/JWFa>"' ;gVP_{Ze/P0(`GX8;Pc21hY,]!e6;ga-3h3đ`l/wzXNq ]F#:u攬Q8+M-ha[2TkiٱR{5{ZՋؕz~\(w@=O>Q~wcd#P񻃂EN,#AaВaӋshTo*n49_G^~w-܅^k1bP+q0i49 ::̋Fq}CgPQ_>[4yo+~GIKG=;6c)@xuPg`"UPMS'fГڧsUe6GS|.ܾ]%s[og;3l't S_Uc^jlJOyU5bYmh :Nt) m\x=F1\&njx?rl4xTSe _ryxz规rJ:;{=Tn˭|<قdY}0l׀n'k DGf<@8(wB丼bzPXU(^*,w/Sdvo@.[Y  Gf\#zN#fgYٻLX߁ ;t-q9OdoAk|Q[҈.e_ȥ5m-FBG'GrOg ͦIF8u #uCUFdT:{Mr>HFpfZ1OӽQb+og3EwSFG&yq)0FLKZlGJЭx-7H0˰.E5j$އs>L,!k~iX18 *e9t :>8AK#bϸxqKAcZeeU_>yO+ze!H*MᲞ2dH_ѣN>N"Df8LN$ :_'1SKbʥwĵn|O x^s>wzH\VB)A'CM0U$ΓT` N9aע3\Hɯ>>麛 9U&lo9BA3`Xpk2%y@⺾.:ŜYܩۆy\n]+sBanuB#(aev<$2w6;};Q [m6he-"|RGnbv_B6>G:YhΗ}*QVڋm+Y83=!Ix +kߛS3az0!*|cR Dy<orP/ ]*Z ҏdx(V΅tq)]lB!P(R9D266=.wAx"KW+L,,a vX+:JHjGlPN/ Soa/$jfx/-;yqה `7|Ne)pgDH}velB`.c xbRFXjYaUDa~m>}Db.]i`UQ_ÉϹiJ{ӂ|~ ~Kr|*a7/uv7f!SH[6KhVyzuj#qGs? 鮛 -Tn0ݺ㶸·]7L-Y `" )@~lT\h+!&<.& LYEjeq'$ہ4Wa;DC\d2EnMW}pOK%:rx 6sWdxF?4cIild%y:C|4j@tb$G44H n*'3S!.ǩ` S71/#:M;EzZA]f͈ZଋsR)T"lDcuUnp^@3}4^ !~3 *GNS,VI?N2rSa ߌL 皺§KD?1Vs+@6.ܔJ<孞+01gZՋ"/>ʑ2_pl%q{ U`G#0J$9 V8[_r} 똂@R*>1AV:Xf;O9C/a5 }8MD]> ٴc<7hY%u(!,y}+-&bBrO" v`>B=D3y4غ6l!3ri6}06x݀ \VLԛ` ;lѓɢ!\@o |?Aҫp0T)2!P^ߣ-HTK`K_a%*vjJᵸa }#o`r 'P|gX//pmZ"y)V g񝥸@yõ1(B\c}w`zwi5g<94S alJnz0iCo p֊tY%¨>m${/+W!&K"AAS =]XPa zr kr&h{΅*xTֻb nՒ*V'>|cmF5?QP,'lT FYR:8h^7 VXF/>%؞%:v7m3+}C1 ͦ (Eqa}g#Gԇ KjX Odh嶃ԥ׽~mSNlwڝU1dPi?HފÍ'gu`ߢ`5X b7,D) sfhe am<>lNbhCbl9#[m"x)qe7GB'^G?g $&l|_ȑe␏V`I+2xVI>:!IdkUFQ}3lC ݹ_b0_˶9rY 8ՎT=t)1/>,!G ʱ|K> -o/$l4{>ҲZ|2nf4ugBJ漡o:NC34j)@na읩syozMhU1Lf; ɊQ;+MkҜwsI|l~y(҆$rw qL]: MR˲K\͞T*q%y 8y嘆z |UڵO 4FE@d[HlH0WfK] -+ tr/K?0W(wjG$s\Jhe^"R!3q>%8o'w֤e?N7!bwɳV}3U[D&(5ͨR$)GqI)kJ1s-lɌ"<CaBT815B|:KFAKhr&DϺ ѫg$gܙ0E 1PZpO5>!- Mi}";k&M+c[B߱N[_L?KFRB/f\k?0S'ѱirҥz N6.B݁aO` Sg19.e67S|'y\5NaSO~1Ncʧ6|xxvi\cOruFB??Z,95M c7X&eFmCAnl-dHB3wu4?ޑy*Pe7v([<7(7}#Ï2l~OqH]K3*9 ;@7JfD*D.q32S`0@yґ#!vY+#2sNt\~?7!c~&IO s~3QE1+Xu`>AZ^w% %4dE@7P' Yխt|žNECJK1\ɁoMue"cNI+.+B 9ewe~J&fNI*F>@Z5Gu;(>ws !Nd b]E:rqSYdO,0lV49 7>LģP+1 vn-(qQ;2zS4| ,k}} ;:e J`vħ@;|עaȦOqShUK>]D1Z`'cY0sm[|K r>% 叹b]1A;3[L1ϡԸ[4$dցٷImM Ue(y]: &A {kMI¼;B,* u7c9YJAMnI~ sX}eC/zk$&~_Ӻ`e-=I'5(# 2.9"9r&;OQ܉f_'.V!Xxv¦Ĥ bvԏ Cڂ& D'S兢nw!7`=M燉]L̾-.IwH(:Xpw0&;;uUj:+CۏxƎ ؖò׹:S- g|HyӍ$GvsNc( _v1oႎhC@:̔\pH3RKb1׶54[ЌZA~K)+ pcZ!/]Q'1bPOUYRoގ-w.l novTr?!q ==KnOm 1h2v O= ) QP6E'J2,[ 쯪D+4?{FܝR'z `E A{;rmB>rGVٖhg#ygz` C( MBFU"p2@sM=rt̍}-їS/[Bӧbބ$b\~D~.>U)dy 49/29#֎;A9- " -!-6P/ϲ~ۗ(FtE6 GX,*ݑrfG^%FY6'Wj2D89=o b4#Վ7FGK.Ц^x#-Ն9‚' lv:(Ũ gl,M7͗"{nzA\ Yϑ֕ab[j3/%4tg~+Jp7Y0ԡeQRFI= . IIzF&op~cSqbR-?eA=wNs? ZqfCܑ npRVB 0G6Aw|1@;Ph|#ǂiJli0l `oBrqk;wH;Y/MK;M3`7\i#|A'>(䖺diX"+b6To1YXF߮qfgZG-&'*mܳ審E[MĶкz;N#s2!&d=\!?;w12Ȏ'd"~قm[ ,:52zlxl*⅓0zmt0Dj\i?umpSOCT.T dv~ r~ѥ&5/kY'u0PW=)zSGU}Y9b=Ewz9OcGb+Zve@? ?xDP DLTi.:NLnݷeO gHd;|TN0B>zPVq O.RxU%]N9+(=iB:`SzxDe mlΏ;_zm&{8+"%EN+,ƒ#, ^:%YR[Q (vIkJ(PC2\G^3WJ"G0:$B2%_[A$@"f M9)܂# u Yv@,iyJٍ{^U_JBBŚWT՟ 0=i8rժSc\jp4+l -HK*?GZ{$m&}?TI!\YZ 0{sC!zDڲ0 5D]}+hWY`4ZqQg6M5itEޡc 4J6@Dի@1{M _|l@^#3ȴ%^w7H*S" Ԓ'ɫRrhI+ >l3o3k zmS7K)E+RSsfD1#;F`O_sy;mg$,SIZMh<-.!${霱ǼK%e- <>rpo)l \ )UO)*w&! j%v݊P6.Սp;T- 0 C0MFD) (䑠B mGcpnyK; 4a1s27A*JEc#HLШ? @ =0n$ēHG|0LSYR$98U}Yzo=-_mсIq&#so&SnLLZv-;cޖNBBηV+/X+ ߏb.*d:*T+F^B`-NefvսNRBts8NXO7:KJ(t%.|zi?\P`<&"뫎EGPw[t2D oem \O3~u:K2\;D$ZEU`OF;JEϯrcؼ@N{ 9%Yk`/(e=@? Q vj(}En*Fm|9E/%ѴZD'm5Gge^eً6|v O"!ĥ8&-S\C^͈Ƣ7β}%ߑ/Kx*i.vɃS/6c1Y = NFCΖMTV#v) +mt>ko(NŊWK{Q1mnM[BūT.T.JMt&;hvp։L.k"qd0l-bj"Wg [oK8"#Ny34]ܖ$[Wf47${[1r*@3/bЎ%sJJ`SN4c ᳓k".kʐnKYiQ_Z\BSdB',fǷ;fYTUy?'+?3w-7~umEɻLxX{:B1KzZ,n:$;$և>SLbW̑^x.=Z,M v>%$оp8r-Ρut4Z@}S t7p$ gdbu.d7upo3E꥔hZAQJP&{ Ʉ7#P㸏6?96GYpfJ#0+yp:D'_ w6$ĩ@A ^T 2D]v}hW0a+E;ѲE&~e/aV$]!%~\ni.#LuOɰ=9[׹_9 %?䞁 ZdLoj?;_`wK_qN\m%~RMe!45Xӑ'(K;N>\eZ*El*^pJk(ʡleҡ[*rYD ovΤ58>wa7lP=͘g7큞2 rA=mT^6BTE ;A0:mi![] UGS#ᴌ[9 P0>T0nJ[ ǖ> vυ 56r6.%\MGLM~_D|ya(0 ;ҐR'kY#Ha9Q2p$H*rRI>.H!Gf"fzb ʃȂygߖDl'R٧p&]S+QA3`+~MDɅC2ek_C9, KK˵mNS=ˆ6!0F,FF %^7FTgyܨZNslZ{ ͱդ~O0CTcE.SN2c_'v(,Y0jgn`BRaűYI;N ,[lO4|eU0Z?F5.lI} M wy5q ئåGWY?86X;3J`ƿ/F{tR!QjU`_mOeGg/HMൊ &2=0X?TPv RvS돸Y܍ saMBW ǽ˩mnga{!ESq'$6˩(P)CY5g9{6=nMQGcp;9VAǜnRBY#,*/ubȖB7>=W[z' *NW_{@Wo f̾TٕQHr20ޓ6-3yΗF&Z\ * 4FtA/oU:.VRGh̫9?D<*—Z0 )5ljed <7w,99] KoZ^]dG'k=<(QhӤ뺶NǶS̒l]yE_X;r=]Z08INeDU"B65D9q}(|a)vH\vpýۂ(2+3sʊA}HVJ!iкt,@F-1E04W0!72񛜽/1+D!<%IVb-뎂~U/M#R&g#,O!ȓbw(خe$XZQjFŢ TIR1c/ȇ˄oK4.(_:"x MTDQ؉DI`տbN`Dz+_̩ m^-?xp)[H{t]gB/?][fpaWF d ;+KA+ya~دr]鮴m~'үuy‡"?`WVI_NS#b旟uC)_Y3eS;\HH: 0o]X\}FRǻYUpy'Ӝ(st? ۖi~`uCm\]CΚ$s%UJ\Ksqr'N#~nf(IsZ4I෎Y;p*WT|{ InY+DA*U;pM&Xi)%٪0y)2tvZ6|[/.1=S^AlEaw+X͹JCokC>zk5^dz_5||:ZeD-o-mj S`!͹Ѐj' zcNrE*Wџ#W)4-GK-hDmӊTD\f=7ʑ(*W ۈ1-yD0(J+:9BE:fSPf%PGD>1R7ރ=>0À9!\n[js` g-F _$\TՊд44j r(P8JB7s< *#o RCbsa{)6'pm̒SPu^A7a"zkش({c^IAOwxIH1Z^B߈/)2XbF,pV@L x׋l|?P*aq3l(=DҫwLQxc‰Lk5*\u lK쑵jtM><*C mqؗQu(c܋),<@DwZJjmq`ZFh3ܾsW`7(17OΔCIk p5]d˾|/l78Hzj` & GoQrZ>.f,S0lܪwR3.H*]#)s9O&S|IģL9/qB 26X8Շmk_\ A(3u9YAlc M8 Bbs&ӿ (q^P7|V? s1q[Kb4g%+Gk@ 01BíTtϋe>TEvk9ύFE4h:#Ӊ*1?N3B6_,1ꊾcoA1.)s9.xi-b=AiĪ!A\K妃NoHiXYH#"yr3F%uMjZZSctv*akmm]x&):o6j*% `,JFYhm}d&+!b q!2~K iNaFmuZL)裆@ɀw0Jsqpϱ ؘZ`ӦX"iV>s`BѓU"dHr*Ѧb*s43mnGrw" i#P+e@슂ЮTOed6-1;^Dt!g>hUOAൌl%̗bE2M\yErf>)uDݏ ѷ< -,J*BHxO< q6>n:h:hF ,mSٖLT#&`ƑVAai< ,X!VNwO&swz_h֔:,Rϟ3LE1VZS*ץP ™BǪ#3X/W< س%v00X%d"H\rQS4Gb`G|N9NC TQ:4=,GƬzCGt1e$oj?±L%p}'Ͼ XBzyXoh^қºU(:Xך"X;)RʠQ@v?zf}yەEo2\IEt{xx^,ZqG8 B)<}2( jxsEG|s"+pA2t޺Y_CoJ˅k ,szknؠTپU$K25PۯjRvI;$U$ ARuAZe89 dasTGVrTܿZ N0tIYdŌabb{n{ 5`xKXҊVܬEX} b,B_ƙAzȫl ƵuIsB\}nLb!t֧W4ZҤ~i~bq5:(tnk$a>cMxtP CT;ůt@.' HFZRB׵7=htB W00\9w3w"`(f@=0w+v!U ) 7AkT]&b._Zm7<,j rr;_qVX|hfhO,0"kї(]elFN6=4PBB,{ 0ݲ]J4Ѳ_`PS( Ffz0M\8vn)@;­: {k͡^$޷)Unk uLL*>܇W+.hÙ_|M)6p@sRQH%(_(mmjoƾJH$CR#Ä\,dFW5$.US ~@Q ).1Ow>PXٝ΀-A|8l:,lRo)v݉*\\FO#JC/ ;ܜ//B0>YҹVlwSoq<5> ߹Q\MPu/I rIz cXp[i@"GV ~ZO6!{5nd'8MJ r‹,t _[,2FlC!Cx@3RvW=*KY<ǎUvq$jm#Oܼ÷R:(@pqjg,33zrzsgƹgv߸WՈw$E:ae(߿; 7{]\X׳_BY%)jPI;~F to=pK62h&Z=$1x)amA790>d " }#9z`3|#ÿesgY~X )( T6|m!}[zI~e vSos@rEgW2x̙tKDc_RP烕HJ"-+΋!՝0O8L{?f{`|SHN!ii{M*MҐ y |6!> u}}Ae,\ȓɌfJ't0m^ WsL~ĵ^M*ve|hRkNp@ (7ş)3l 2zru)OHT}+(I > c0=!Ó隗u8o xb38 ں:WQҬՀ ԑ&Ʃ!7 ]O+UfPuY>#+/5bcIWg wEʻCt@`0b<Ɲ5}h?؟|Zy9b`Rmi|Fkڡ!|YU9P/Uj:˧MrRyRڽTQVN! d#K:IY3!!5k@dU76ث NȺJcҕe/Yߩ#,񙰂gɇY;_ 6#R@cP-+fZe fm QdXXX6&ߌbOtK{qUymH! ʏBD߄?bxp@x6iBBGl D(]i9c\KZHŷZCƖe7=16KoCMKIiFT8y`qI.."{fuٱk59_5_N@$<۶&]0=.̈́9| 3qzFz9}8ߺK\__д~>Jqɔ$J +ȼk{@ 2®i-$MYB*aR&V/EOdԳ|Z UX h&i-c1`l|_E'~c䥊W0CTd}%ćo 2BEafΣl`A&.n8}|s9j wC_4ꨪE*z'K>jExƫϐrN-琒Q(q`Is' b̛rPH^k}Ћ7}%9p> \mSNb-Nc^(Y)-;Npr;$ h؜'xp4HAP7K*kل I]55ٕrDL~cC`Qe%Cn|/9uIҴ_-8+`O@Bkg=/VJVF}lLXMj<ۙK%kylyT_LeI+2:.i"nT#{3}W2[}($gA3;;|ɸUggٞt;,BXÍS)h'DBAV$y \[6z[_ gi?gVʛMRt,܀X+E&L4[4'ɠgzxv #VەUHDH ]T^Rk_l)X !U<~?Ⱥq xmjP8$,ukJ]r:Z*daB1w:-:>Iȱl>EGտ2K﷛ꬪ0ܼBP:+Y؞XO"ӗoزs=E5 >N" RG 2Lx#Z#zv6 iBc@^ii˂U]^c/ZkMk2Ds g^fp!('m] Mxd\"sxD@^Xz{2Pm 9Oi#]=rY+|L•>xPKN`O0D6of?=1\* X/#`6yηA}:eƍ'e(SWǸ v0ix1`׃*j|yק$+8 SHw$c07i U[SYQ雪(('ȭXۃ_2?4 `úA- z$[=Fة JNoHS)Zf&Ax}vA n#h>6Zf/ЄUТ`sDIIE^w'vskֿ.|2cQU|zAR!{Tsdw;UȀhNj.1Vғ=YS&y :{YD:Q'”ϐ8pã5cS~:#ێ o uk9 t>~ w;9˩:>=2z$GSŽH0eG=%myyvkS"= {SCB*+Дo4fer k0ބhT$#K@*Kupe0{PU~8<f}h# 5DtB' 4c`z/ZO3 "#uӽr*E(K&A.B cBs q5*A݀{ا:bg#LNLY~! dKfJpQN[ k :vmZނOW|]۷9Yh>M >ĭȿ$+OY}UL8#0fNBW\ 拾!ķOt]m.'8}13vHZ&,͚.ȣC YEqLJ}v"l7\˥C=ƥ|0HӾb[p)h1yGVH0R#IL-[o'G*c߬;4d6T|G\^uc/%0j]!ŋ[yjzMaA$d~8KѨ<_.3ȷJůQSmZuo)65y;y)hR97~3q)q8a˾J |.(]CE׮jbb m/~q]Q^ ˰HCwYppAhv`Vvigy w0ս:wYQ5DR胯a!^)-H@l k"b;{2o׭"{݄KUmbʑ'z] z?I&=ҷ߂$zH% Ua8P T(ROCD+ӏ@#|awUsk IԳ50YiT7jM%c1 i1V^LءQ(q/,`y7ͮ-Q*tgI ȺK`Q Mi'<^}GgN]q;tF8\–{Nrei1gaJonih0d*i9Wfnj[9YaNKҜ"|JJebhe{{Vk.80:4Ypl`51qwE$*?@艰 ԗ%^uY{+NIҾm=%^'48֚E.sm]E~f`jtDRC1J0 ]\..opcnǺTOk4hR,T)妸[TvZ"+Vw^0c |C9xF-?at٪^:;qb}^\fܘ٬^ ~su`t~8Y414)JͰ`o遘2O@Rrs+);he7AL%ai%R/̥b+GX> w5} *̘4SGUE2 stV £12N!TA& J1Q}]3lϩR;3tn aɦS%ossaUv\^W-EKLb-=ڕ)**Ќ-Ŏ>$OPNF~pݧ8@w6^֝EVkV &ZD=Ok.Zt7e)MUl{!q~]ya<Eitj76eaY^#-sÚl.GryT.QT]iR`v5ww>yw3 Q^ԓ'aNBȧWW)B7S+E qi+52_m0zBόjAwj..esY7_?ts#tov'͝_n)sS-14]bمh_aGvRBlpجRk%*]o.E@'Ν*{X1t9CQ1%Ȱ`?'(QgOFeE%&+뜺q :e:K?&=4L{,iSZ ݳG;zr9/' LcΧA"IJv~]6u(j!j1ڐV0XbnGgN je6@$j:)ٺ|6&`U?roVO 3FLoT\ZaqRȳ4u}eUgLHlo":GonX ~j =s>Ga67H؛j\Ev.npJ 钭x ێNzhpnd.K|YN28BK 3%pZOo'ii)L߾e蜁*]|{Gښp.>r2X 2է {<>ۡjG^d^vGRLMPj;ÿ>1ϭ(B`b°̔>Xl1m)}RZ{LER6WﴇT@:/fI(#~x X}HH*ߒg(~EnbA{4Ɏ AWM +BՕ@"PYca]-h}]r4ym0 Pp!ptq,0^+o3^5wαU~>iʘW}4Y Ҍ< ?)N4i^XM$YIu4(L^o5a 7Py-! LJ:93۱ogmo-UGSgCYk+ 8|HشA"^C^MY })uql͂;ʴhF*>uK59[,)<-Bdun0w5"~`}txCWљ삡l Cd5{LDPJ!|ne]\*܎Y5'TM2齆Ne}ߩ&D?8xC` x^B~*VTw 4җ^!M֩:7O3MhsL/> *QcXACJ 9kSj>~K%<^=PF'uĶ =@R'-IT[1hW竲MW+Ep{V?Whbm|/kXP96 C'n(ă3nA65&Sd.D2"afaWsQWxez`:1S .||& w:)UMw1G@94kyNdAʮD?0"QxJVjBuU(4p y)N(72 c צDPE]%f^/TidU4YyZ݊E6¯MkL-=n?nC+&݈՞,oA#EKp:y8ŠqNc/qm水üƖt/ m 4KO \D񳟦ݓۭ-ŝRIPJÓNW[.:lcp2?RԔ5V7p5cna` l:N؟3Q-aQehU ґoz(uxN _`2g)XHnUȠ'%_*>WVGlatwO}:ZQ,&ykC0_Hnsح0|8(4l"+ Yౙǻ!5o9ϧe/A +ݨFYW&F"?/}DE'S Qei{{e7zBXyĻ9*g@ ͘ AHkd<ϡ2C3U W0$q}2g`J_FVj!C3kS /IAQ1&)B1EFէm$7M6ɸrM^XLV&2Wi(;YQ D1L 5XT 軼~tt᫋BXoBA&{Ms@MLIWˈh,fcqF'AtU~E~irRq`#Md&fYvwq =v+/6ۡs_GYvPLBAS&I<05Ffy&EDUά}ipF3{f_f6hɄ=D(g$i7a)VSd6fȓj\ "HGsa?^i w0$Pj'PS8%9sh>Ni_s>OskWOuیI0Rl,@PVk<:JPBb#Mawv!Wk^zSJ6%Љ1OOJ+C2Ƴ01j ;Ke|qRm~Ԧp^0#Yv Ÿ.Zo?B'EJ+O9eR7c>*FֳODž/ɲ% }9\·5:cɤ˯; ͒ye>(vNلO. X*p?!yټ_vf13z wl>#6tdE-LE_qg)WylVt=}YԌj.5l{=͗a7Iv ދArb]wHf&ƌXKˍ>l-O=&g~P)Y;/8DO/@!O.;s?Y YәIYV:Ojt}λ"'CMy;?TKhOhXޕ1qz A5VͿ% ]T+-S}' |@,* 9?K+-K|n7o-G,]$;u3n!qEo ?>3rw<鎺5_ f9ꄊ&#: v[7 QOLK"b2]Qg(Oy@ ">7zݫ.XH32ss 7^1L*G)є>3 x$՛iA'7+:f.# ]h)_*|G x^+Vm@BzR荭#'Zwjq$ѰIR2rN~dmS>Ӆ_K4nPˀtpa.qvMhi݆iTQߚaocuI'/`w:Ss]>U4Lz+鸙H˜^C#[Fgj ]~gbiw|H$_o4~&<#ةx"D#'Bz,6[(E{ 2Q `@|hBFfh] hc@d:RÅ~qB'zqƧߏBa5H]32o:ݸx\-!aOCGM m:8S2>ZC+\ />zzcoؙFXrX0T?fٕᦕA;GH,Yї3?nHw6Pzy$T5j 듂/MS̓>;rߕ;ekDoJekzj)CӁ oBtO>kO^YPFV]R!޲;s[9֗D%&8|n++;Kw{d6 8~"qkxp>^l +! PtbOP4Rm; [Mw4cGpSUS{UNᵙ~ŒA,C *L'IW3O9娃BN M>?Chs^M APT\ h1.J)9RI&cMx1v U!ʞ+-ꂕ* T7O2emo,%q"J %IF> (mlMY:͸P S;ĆUkPETkHkׯ-uO8_㯠R=δ/)%WdBke" ';/M>L[wڥDz2oeP(]ꢤp't$_n2l 7Sȭ+U7R!)jnNO| nxIILffn0-h[Gw QB|ӷW)><1=)<^+ZN Cru㹐%Wo\PowqO~g sMFP_ %P8 , d;^%hE+\M ՜cmwc݁Xg1hmZ[`-CT`\-]E?(k\q1nΜs$?ӑ.1^[?v k2&9{6_  ] fc,ZWkk*T8TKe#!Nvnf6j|gl vEߧ[CߵOr|ط1i")"s 歨g֗KޅttШY7b s@7*D3̐*"GbkdUx,>)B\ w\(ODV=&~C-xN$ [ȁ]Oк*d&haRk|b~W[+e+&nK m͇ KVS ԛ<~ԍ¿@LZ.uG2!'i9 klt^⽨EZw4# B[-L?ߞ&^>P:'pFA( ~J J>$r3fMoZZp7 ]P2_l6x#KƖlƎH!~g)dYXlnj{00'otXz;͋qIm;M=> -»3EdK$/TK;FxП2 :" N( 1TF!K+Q!R脵 u*zum,=݌+!: Y3]A؏A7!yx`.Y=I79s> Ѭ- J!TRxCG$ q %ã=gH8ՃUQaP,ٲ'|v`mإ o7Gm0"\*Z1T\X.b7\Uߦm8|kiXƅ]L_yFs4mnHRmeC&\QwTu39!-N~Ȏpc5b[;Ο8m>ptY'snOd6DlkyeZnz 6i!]tT["ϘT*bĪ>bdf[4Ohs UPQ~"ynGCخ?"s3% 5%(o4V}䁕}| sؽB[<[Q`:rTBzϮ O#9tt]ߠ!(xA4%Vy,}9>1,o{Ǐ>ZGdp#e%i Ӯɤ &Si,|\)_+Zx5[*tcR/֬~? [PPpᅼ &(<$+* 6L=!!^eǏx(#dklwn􉽞0.L,'IįB^ODcps,n@ fit$a*ң%x3֊RPS(GcQ^(F{%Ň:6 L)%39e,9sʾ fBv~T=גٯdpv5DiJs̳X1k7obҖ"&RF|Rr5p5j좊'%Ikh Ix! 1di>qjju?+U£B~X]s_)~0 ,h/)WRm*0P˧n8YfN^JmU5 eUno8=ȸz͋v.2Kd~X8,)D/vڌ p-?ͩ /DPZt3gjMOsId() LY8@x1F{J\ x46|X:# PP=i./c`4 >i)ˆYz A.)<ڽ4VQ8ZD_D fC_ouQ{=Z@>^R@ds?sõ2Yɉ4gu} wc)Wϝ[n9 QEgDqlZ{/&Ġ=-+.MT#fH|AIFg" c> @p(SZ YglRIp{JCnCSgxr;$x$_sEV;֌bѐ9$הbMDG!n:'gdoICM:uV5:wi}R޽U45hNuLwjwC3ZZh' \ޜ%7;Wl Gpc^qw <Mʪ:$ϯhOz$3bL3WX P3L\L$.8][Q;a  Wd4Ñs!K߰T¢:(j r @pz4{־ʶll4ě$6VUQm f7Db96_?̻ZfWIFDXOV(~I_ 1?4 XŦOtH۲RD.9/d P.vzm ֱ/I o)acu@ 3òr @T5OXK)9UX/]'j0cu -~|*rMQ (28/E\{8J 'KƦ>WKO& }RX~Ȟ걵xj]nnyd:cOZN磒{3 ԈYnꗎkCƃrʽ` X&6 F;Vʵ`8VqrTEe-44~F" V ,pݐQ0-0y9CxBr&6=C]9nEC *<6dG Q8+#]dzAůso a4"X\(<r8L*H>8R ZU*_r1 kql :v;z7*dYUX Db @ gXGA$f :QZ;7Lf s8UHΏyـ>d *jU郩PxO8YyQs?s!ܨVY+KӉbuz;,JC\Q#`9jVsT6LWVgvm1&~ԆLqV̨=>NT<*T#S+:{ء$,9H$2(yqZ=Nϙ3BZ0O3yxA 씞v7)PʓːX,6ұ@ <X\o7/ny?(7%Z-dk<|oӦ=I7Uf/_gFap͡En]9ixz]PUcSԋM"7C>HRA?rY쀰n^0 ݚ?kQEtcQ7ي8G<x*_\FvS,jLfm|, OJE[K _.gZkjVrQgv4ub%GbTMxF.*&胘9 yS;*#JPqmo`m"x tEFݚo5/N:S$OkI u"3]x&8nWq"3ʫL? EuiDSۈO;␊Iy*ȤhNOD?z1NBsq2wU{P+( VV L/pVC#UM)U 06*/A؄^ZN ܂r)ߐMs hU23h6ڠ-Dpn09_إ&Xy̦2;7I[^B45kg?Bqn$ C{CDXĤC4􇔵}4f+:4JHsB&`Wr:&B9y\$zT9\),I=18(#p٫谡lV ;{x9nT2u[˃0\ 0Keˆ'!ޢbtBSAIJ!/Q;9Q] Gpo( ggi(Ub@>) #14sȡ1 /%Rzvl=|JCM;8G-"$.jRx=Í I)UyDos)^f=$ o^Bywc-b?bCa;mæ9izDg8GFc[>_A'r==U^ ,EZ)TМ:ݳA"NJa~3Rp]`ϲq="q1xx؍lU]?}k-n[e$#xS~9!xgҢ&zW<4Oɑ yTgapb%\=$z-D"z<@X&((O_wL9.aEŤqۑy6[0t(9PRtc؃~+&;q/YƂN7G_0?Bxf/4 LCu>m=%_P2Kz]bHHo{&ĝukC`  fMY|ߵNX[1"L#%OĹFo6]icO3͑,Yeuv$u*r, W\啙망 R#6\R|>r+{6(׈#EUȁ.}αBv҅3P \V"JG &DgكPu x(1ΌW9chay$m>d_z x{Mea7kZQَ8|W@,m mY^U1̐/vպ / /ܽ}o! &DeӮ5WjG>mf4!:骁E9Q0o~["@h^,op^B^hi^jsU\Iu_e&GJ_[n.*93Jx^F׉{翿 l;+*-g*UyX{$HztM0aQ7]kEEYBkt\z߲p(m(F&(niӞ٭Nxu8ro\0Bo_4!uqmK⌅)k=Dmգ7Қ戟V\[i7-S2  Uݳ WD$Iʔqc2E&I`Y<}zGۏ;S^fܙ &m_v}u8u=,m9r%(kcBM.L ^w UqZNLU͵{*jG+G4"r`oIة}s ^Txe^ݘ N &Yr`5:N1Q{O&^U1M}TJXHBu!%XU)ۭi`Q0w|Q*veS@.T'0j ?XCdĨCKH;%<Ư_oHH)@H'u)Zˢ;u KgƃhmyioSXq@yvYc<[4ɟWCR#" |*G)e~Ћ!BP4ef:Z4 {`^mPd?rOX/+ie77}F=4m<;6B9TiLyp1/`zтhM=PȦjZ>#;QmxCRڪFE~ } 'G;c&ﺈCďSt%F9Qa>3^:pTV]lyn!n)~6L oј_PQkaKjU+%W E>ß-j[4|+> ,e0~zZL- ,/ebeQ x(ևj%.C$C(a=][ZA906GקxU{Dh>'IݝIsR℉kY E=<;멕ieL`-:YXfO5ʤRkN%LO_A>Ղ\z_ヲ>0P0q_-e)dȱY"zB? )GGk,5̼ u2% %9谁A !kLP@hVF3+QLKl62vZr_rw5wT1ǿHp]>(TSXh>m/YW`S5 _! nJLLKE ~ݩݧz"eY)Еbg>"N4h2|]\%~cY&&O3!Ǖ+]t3YM^E&6wo-VCEhm$@Ϩi_"b#&0淲:@2| Am<̳$W20 gM _.xg߼g 8Εl|b)V.q3AX3(,h!>uӻXb2۔ўrC|Djn 好 ًFkr=*c5@U)t+WC4]vmܸy1]K}6ҩ9E%xcT&"cH6#[~^Dcqfr 2넫="K&tm&Gׂ2n8.Vh7"M%"y'HJˣM.?;u9NXhS6:z0ǘ B.I'WBoCT}3ljl;/!aK5 i\μ"\D4ֻfxnûlNThO) I۱YBSKߥ 7t[IPx6rB7y!` ib.8MZ56fa5=M8@Ea bL$pvdl~׷#k&Of,W~88BYF>O0^%}/qAǧDoDL^3AՊZJx0ΏiH;4`ֻlPyz Y(ǐb/[ <~)Z x1ݒNdekw?@HCi'a',$n2"t_9ɗx^fSA/nmb{}AB~WSi :hZ`_w;$R?#*+E@sYnwbT< ؔq&DM Tala ߳\"Tih6ogrǧzޫEE QM!cuY>w̯nֈI.KWV}0(L$#U;-u"jP Mר# _=BK;3A>t3TS ܞFnv;fzaN;S3-5R '2u(дN\/nzPmF7ܽQ ѲGibG?{6f,,V~xYZr&G'~]ZE(UAcQ~Fа^ P~Hbs u433,'  b Ozx۪C|z؞VL 9nc{UN?U”nv5bk]*Gb'~j /bdX"gB\[o_ԶlTj+d |E aVیW+;+'\+F|̭#I]I8T2U~%ert!kӼDV43 Rhp-F48ҨLQ~D'vn*G .E#LKݏw:hp-jwCDY!֨ >L2~b6qѳ臐AKJ{fYiMg4i:JZ fH(cS8_)_tC/e:57#24xJ1%4u&sɋIҁ%x<{l y`(I5b!iǃ@A'Qn{=- 3 &kC>wUw830ޔѶ_ +MoLHi-fzC$Suzd>$9#<|eİ WB#\ذ^}XTM8($/$o T@c_]%2tlc"e  O>@l+s MJ~8`K{FE@O꜀/ f{"E;fM8}0X{EOsRՇ-H0B^$$8Ѵh'@B@|bK|{_FYO[UwHؘ*zLW7Au:={Q9fiSgGL NjCoS Ays4?g\xś_@LFd} d~Z#+%Y5o_O3ֆ NrwЬ邆" $tP 2e[ S拑LZ"lW~/5g. ʛL\0ЩD%T#HLKH Đi'}#ȡqT72< ]!Eɟwq/FNjz8ZP:r1ZZ &>2]_bc56x]ѳ,s_U+awlCOv"~3*9tˇD8bWHK[> e Ԑ<1W;Pj79 @/c2uO{e+<9ryRJ7G*Zp" ~T7t"w'a݈$WUg=:^:33d4h$c9ςEj[ѦKPTA7@E o uNi'Tq6ەOy$u+䷽zX 5G>$R=kmI sJ] #͌J`3lW |\BI ;b:tƲ-AntyZF oE4CAF@0'솢 Y2$KzĜ/CZpOTK n KfL0Y;k%1ޞ{r)J1! zb( ܥf}˙qXt6&~} If A^t-KJa5-?0 eqhcWƆ~6Ͻk`<Ӊ|(63,dKYn6%禍7͒uF=6UB0|؜7b D&r._/|v+dzV~HĀȺ<އ-<%>;LTJy&Ten^y@PF:{hʁ=eN[[v%bN`>wϠZ"\32x1 :-`ń փQqT(*tsoyPIcbxۧ㏀uFw/Ĩ! O8ͧ-|>q䞖Na/;'..F3K$q F]Ojyh*?8:ʌ"}q,_)ż\iTl1?oss@ȇgXZa:#sZ~@qt_ENŪd'HQԋFx#Tvoq~;zsU+痷 5;Tٰ$TNRćyfJa qOa."߯ " vMVlI׿tl r]Ŏ0|/YA%;դbY|0SmHz)S5YGC9&Q4V7~#1Suh" x+"}xJlň;uuLT=)z[ hʩϕ]#+8m/>ZMlƣۘA8YS" NOl*IyV>E${Wr3B@sgF #*Xlyn* &Чvw.Fe(/"6 t v QϚvxI%%GLW~yalݼ_R}!wBy@ 8F,#5~'wL;\ ޸v,ͪ׌)iTtףpW^-|lDF1- Xt;{k8V~I3 TLDbrKl}ubkW nvO''L6z)c5/.':8E waKNV5};+M\Z%[i507gՒ?Nw5b9n*S42q3\t/BI}CK\pdת c sV yJad;6p#ڙ#!Ԋ'/LoVqE==f_2cS6A!)RwfSě G!n}i"&͛Wg*eXLJUw|Fl A!ؘ*mIZ ;$Wwxvkǒ Ny,-Iai1h޲ \]n1nݪj܏.,C>O:Lb0\9<_\o~幵恖8b3bs._q)V.e*K=5D{;@|<^%3H83$ޘwn#Bސ 3C_iU(ǛmU0 E`K۵rV82쒈8Q V5*0'K"w}H}J&^6Gw862;~5 /6ʨP Cߏ,.3}PҩF_\[`[++ajuR:XK9 S_)D¦񋟉ZS@>D9 &WEbTT Tl4%C+@hQ5P gNʙ{I<{DHFJ:/EuvF |!OH?w`b4ֻ̢gZUq`O4صxHL/ȓhGgJvW!{ܜ BgX.,EhuOFnllDG@'] wu:G2L^Y@wYxzqu$0MdKd9XUpɽ߸N?W9 I8wl0&wg=.˷L`thO-ӤT=^S0gZym((Ӥt*xL ͌/ae: ş`B4gSoK݋%N{>˿5Ԋ f*t/rOL P;٘iln57G |轊10kY" eP<&Opi0ꜱZ )$kؑIS ߪŸ!=7Y.<ǘѰFPj04rfh)D B*+(1 S\ kP[\wbfO w[>DMQQλyRM|S {~ pD8(ߣsN-{>$:.+x+͕~읮_BLI+nJĒ77&f-'ki$Epĵ Rp̉t7]w9Dr6MhA 6B-Ф 2d_+/ZQa,Vǫo\MN`Ԗދ0f;Y%і,:ݶat)k^A·`LxTk蕛glG`:=j0/7ٹ >ǓH3Ja^:B蓗3‹RmSdLH1S<={}a($qk1,2YCByߺhC.;Ilޯv0Aߧ4,.ȋ0фMӤ lP‪AC~QA@\Z0^ԌZ ҢK{i]_ބp>$ؓ P7=Zi79LlUm/8짛oEENQPg@Yǣ;>+4;* IG5$3R2K]&JkUj ]bF"qLKNS)(pQ4D8EF㸴^O1h̕)E's )^>,<"qCTcϏs~=a8ƅsE~VͶf^d"ʿ`/Rf} 8#׸zUekSak7'' | !{Dz Rt+z:j35[[_L(.Psʖ=ljRo* D.rWY7ЋxN6+30 MI֎0"'J EMxdOnkdXnm64o)1ywHE'DV|A$piѨCФȽÎ RSğc'ynǧ%dRgihĄ)Hi@Ua6mk0gaed$) *B̭?S4"y.2В!Gb23-J\T|/B#zogݸc' ʘ[Eu00(@nR䡝^};u?'.3X}> g\YyqJE+iN`U-|kk`U_wqBKST:Tǩsgĥ~;:'F<|8(r'%Ӟ ~xǷjqCvϸ>pbfc,)_2)neס E!BuުkU6ZMmP0x@3mt/rEjbɼfz^Zy/3m~l=*$UB!hHkm2eFԩAq˧I-{ YƾN햜wvB*=SRRrRX/p[N:M+ wM\moh\b@%uQgO!_pGdH}n &j, c >stz:=S#sl%^f ,X9;CS$L!-9Q HV;*'6S5uޜ:@R.i0yg &6cRA"h\{ꐑ'_8]cMo0fsdLTe@ d̆VЋKg|{(ah;nyX]7 4#p[t/l2LGt ="_}6bm #]r#4t~ @YQP=; gb~;R`h=H(Rn P:Q7.I$p⹟ 4tuKJg̿ލg_H\]lmjE{Fc6 ,+eaN s{{FӅe?I dHt 92ɓ콆$-lYkv.n[yP6ʌ䩸=[ZuhQ#X{+K}#&(%>hp48Z :5L;t,5 0D ~y' %jy'%$Soop2xS_̓Rl@c]ۧ jG7¹_$9HNCA.m[نg ie:M"Wj4eb{1 ݖ͹ڿƙo_oD"鿭ͪk8|f`|Y4jTC燽:q81\=]W*nwUy3Tx;ZT&2Mu@{#a\JLu"ע?M?"u!{Nhl.6Lbn6\I&N*C$Sέb$Pes-HjZ I% 4DsF( e/ kUZN I>%^J=ik#w?EiEunUMged} FE!S82MW0N>N'}DNleej,]|墉! 7<ȪФQhX d\ '|Ƨ 0Zisΐ^Ew(_[Ln:7X:+~L=jڹ}E:w׆t, AcXA qڋā~ Rl,QZXP&lhDTȊpr p>u3eh!r G,̵_>Op>9}/Ή~Ҡ;Ljtv%_Zp?[t!VڌGwRuìO'=t`Ί^&%C{)ǝҧE_mԊ:!>[?"H@ vmO,W((p3.ƑYGl!T\w{/[b5YVdw " 7V3M=q?}ht+jm:nk |1O "׎p-"<ŏ3N(*QBx Wk2x* d5̀t]&=\8E=&f`C\TR@=1ڮu)pC 1Ⱥ.^_?`|iKiUVU\_J͍)|<&c8-k)tUJ0+7gl/b@=E!bb,cOf~OMѻhqMm?[3. 35VS56A= LoM+c3?,O"r-N,w.~yt{S>Kӫ|?p 8hGs_P MkG.v~xV5HN*ʌq[{OԆ}3?XmtJ]_̿Mo'*p~,cQ'txu]PAK4uUOM˺> +?ϥѧhRGȑo '^UDX.7dl \\^.* 4r֕{O9VI'/<$":BC̦ItM(ze4{>寔xZu+yy 65=e gBգ9!T*}Loe R5Y[F m4Ł$X]]GEB)Mu%ZNɑhdTy=Bɴwn0jY/6?<&0^YZGJ; -q[RNFF!@{&ANjI|_ZvѤ.Uزe0=L9Dt8 Ocӳ( Da5O&N-0sMG\)D$txge'CˮByup+Nqg}ow^!}ޗT->=HƓWΩ0IPsDh8:1{=tΏhidv<7y&a+Y*7p'i3m2MY*o1)2L(+v"ۍgV7`b $\@`fg_2Me:Zf=Mo4DqëI$b3=Ȕ:ec@j[1oYac+Pw-F!Kj㏇3)=-dfᘂDi9Dh >@ml}qNwWeؚyfrYΜ @&z7 ѩUi6D#[7C 0n S-k/Eyjy~e%dQ 2np>Wr' oͷtxca+_:rm/WZ }՚~z1Ȥ.bvK=\fA&d)cK;GYuGE}]lfH0ЛwR.${U¨c;C߼uNC*R^Cl?4$B%I6iPb٧i%Q swϽ"wzamfeZY#RZuJƋ{D=>).yk;É ۷c$!dxZiSNsYCy#u |fb/WUhXAQȸ ~&#c7l0 KVpݲ9a`:۹Mj3]_Ge j8g 쬊M.0ɋvۆ`y2%7Q"abt"/h7)lQ:\F ~E :`%GuN9뇇'k{'$-2X#h1~MN%uW9 n?ٓ4B *`;OZ.CQ~!ǵPһ2g!/1t9JQ3 0~Ꭽ ƨ6Sk)iB~ |YXE?0\Ǐ(iՎ^1H׫QKk R G6itsGS^NEri~C/_.6:|+ZyBB NMg[WAXqG /ˌL|ώc!iD++ef\ {ө?=rn=PXn4ݚ *9޷/*t4[o&O:@X  7?CS%=HrGL1a oq++g7&#5) ǵ|H1L*I*|Bm֏F7>LbԾHvHPvuiOHx܁c|n.-8OP F`ô)+8Q+H|Pu%lҘ(-4{e=Im͸T>VR ,j+/'dr':^wH:h-I# kCG{r諢23P%un!X̮f8U$h_B,?#`^CfiÐG2|*>iTR0%hY1Wn&[k-Z %R)5)!V 51FL|BG\ЖlDp~AIVfL*CbA4#d N\HQ3͔J&Txڀ;ÁБ(vy|ɞL} 0<11^1)/9)6o)7ZcBڀzpv.RsEB;o;{2BxEǼ0N>\kO*BkKJN"fTFb!Ŏ/Ybŕ@}`H9֏y%BSxH_g􊩹 {_Sg"ƫ ]MpWoῼE98ǭt)$@4?[J"GQ?ѽ˧w!a5\X̡3/Ӡa-_l+xЊ@ɉ庿^2W\9Xh왓Ec?k瑛DGcwftySNtY N:ː~kdVIũizX-1E-7* ךmXApXWbP!J4ۼ;HuQ."=`ΛGu!If7vbW:W:3nsRT*XVGdޜn.szhB>\3?ͷʑT8hK`;>OY:r4b'khCJuRTiopw`!yy߅vh "YDe(`K"X ŎFOpnE'(iBٚ:v^;d2qut79F wN؂7iTiR{E4j; ugz^3qZ2N^ %i'^E`?li@!C. ,PKl9dۙ n2*]]J]UDDF>bĂTml#d28( hX`qy^ekŊt2X فF/%:|͑Hq78;Y1xͭQ9TϦSPm<Tj[6=$ U|C|. M1`[3,0Sc,sɖal=^ 2goaV-p;v\ryk70#y;sՀlRc|M_x7C`iXk1CRӓYYpO,uF:FUg(]:5>>9[;r&J A"ԗH\ q dWnG%pF 4w6RpsDmDܴ:*( jfrlی1jR̠1*No _laëDz0ƸDo/m۳%i4lTڞ29Iu'ۢS6fSrtzgi+l&.˔y[S5f_h'Z++3j+%믏+zS0VB%p:xJm<"{ydp'7|/$OSd “,M69ZP34  L[ެj;:Q!s˅O t5קM -髒4qFHrP h?;I"D [&V(ǣ/6Dəp[|+퉱~O}UjV#^?դYvaM @Zʉpa}]&:c SQ'_Q TaRx`1nv+R v0bgBMwC5Yu^́BƵn%Jy}Hg` {?"0Qup HE('{MF:s*V0ntg82קB lD$؛\LjƕTv򉡰42PJ=EDbئܺFmDM0Q/Iq?LY5坥mtܠIu*>:r尬L<ڑwS{-T`f#N.p!O7v5 }lBsuT%Xq#E()مُ {XgYd4ۛ)3BҚy;/L1y5rP{(.en!f& &mhd*\Xb@E^07?Kfbڎl]nhF^/3PK*D3,&dp롢S#w +"C1PR{*,^46 qIFJ;zlZ>hAc"B2cLNZrh%捥̜BcF'6t.Z.eec )iK9RHNlH%}ϤV¬!9Ɔ u Gc4Us9@3[0E1TNH“.F:Iw4G㠭yY\a#RR 䩀M:X!ИLjr$0l+ǦfsP+@n@ysae $:Bd*˼#j;v&l™0sT6"릝.i2*u$P'WatGdjJhn,L"+ %X-JGU8F9wZFa(B; P+yxHyf~$k>@N*ㄹF)k 5s/h 1}Я"rB| ?yGKxd`vP#5fm?~n4W臑>[y[gɳŠx! (0ȼF>3C/-Ytȡ~XERa?S ^ F1n齕tǫ:r;y-0-x ?=C;\V ԈY $~Iq^2&wP%(e rhN*YC ;# ZwCU8#3ǭR{rfxaJ1#_9>Z?AZܥV D09CcŝەRN"rQ'97xE:g]~GViېBTښ +E#{'_k"uH%]b}0>fNtwq׶52 丢{U?U[Mzj;Unٝqk /-=:f-V[$>L^Ԇײ D)́Pm ]Ð$xD-(;!k& (ԓpw))#JHn]{BZ|ͯ7qes XQb:F4u&yfyp=uMsW0짽G .g8Ѡ6<8K q.9лSS߫;wE"Xo3qKȆ7$,^f!rM4ܦ+b4|a_',6ez 2ʯt$207`xE5[qR/qNOPj RPaf@nTDp&v wņً_l[tBk^AkwpZ_HʳY?;P1el: Fn.%Jc0yAL0'/*k׫%e,\aqXD3,w C/ڰCnfK=Jn "@j@ bW}N "D^ LpQ=='$ǎgde`):TOԍnJOrM] 䗩#(چOq_γF:ՄtXՔ$()T(xhg%I%%A=\F!+r|?ԏt-m9*Y&XhY#(d:qS @ v䣁חYEeB! J(KPxH`oPwF3mNHxX6!s!V#4y%g#'nši *LY޳*0MiaNBn,ZkH"Bj+jQZXтU՟ix1[?KtTJ%ް%y/4?mGKN]Z@^ w?PP,/]K(!O0"y7ާ@]rv݁&a4yz%p=C\Mh!fUN)8Nkp7V/#K~]\AET &}GP7[U\Z"S`@wQCGttԸ<qy?m{dsQN,@#b56~W`?4EE0Y߄Vknշ+ iMYf"Ks|#>@e#Ĉ6/'&~VJi R*ڌ .Η9>EeGWE9òOml+)x ̨!'P"{HF5`jp{j͸l=/B~r~ ۱)E:.1Ж>B(9]6 DB  F<<"eq\ NX nfG hSxy,N0;+gЀ;J(O'i^*iL:KeaD/ x_Fx/P}i&XbBqw]hwLb.+=R`t8ߓ?E]9󁆢Ex:3- ǮP$6+B\?arًzol(tx^vǾ Dx't.h@ Mxa =(eFlvg! r=$#ps#%[yHͩ[(@\WgN8Zmd!~.n2?#5@"}Az.@d&`BBi;!i.  OnkPw"6KШApWn~UA›/q)]dTi{MT̟g*] R#>%g0]RhWcʥ_.X6eFd]xH/( #:k.G|AϽ}0Z}DZ,̭m }㆞K8j7eO~]+Rs'F# J 'x/E,p U5(g0onJ+kHJr|Dr;bIΒuoQvXL&qAOMNu5ٰ̖aݯzXsʀ6ـpP{J;!8ե:pui8wt@0կ-X]wfׇ; \'?|r>֫ܲ؃a>@ 4,$h@pn Y@) {ݢBLf:C%|V eآL|YPݜ-@= uץriDZ5 95+&ЅӺE)PG5o)[P`9H/z}=U 3ߴVpl{PxsM5RLXS{*\5-ZoM9TDk Cp)9J"j5*R{C)Lٳ7 4F{Vn-A)۸δ:C„P4Ž'nrϿu*F-H~_'{&l(TZQ$? >`+ ]Tَ|oͣ|f;jhkDd^fcJlh6+x gS3@5ʾO'8pEl^o(/Ayd@4(nג_M`2|Mb%=J9)3to  *1mՂ6B\Qyae+a ÛX =u7B? Lxƴr_-:yt)ԖrS ,o;#^u ~Hװtp 0 cS4օ=Z0&}㲪ri7G+ [0PT./P 'Cg/k7Q?ĤL4 >B2lM݂!3z\sjO]^ C$ RZ;D  d<0*WR?CH2Xyn%H5P k|rٲ!)T1W7ك{`-БΓ@ΝXIJ:Ph돯"[?̱Z ɣhF!{;c}؅1X/ Di7'ܲч_0~CkqLceϳKxըG3kgrFZ4eP E~>^g[ aǟQ|jCpvk]&C%fjtUxOǓ"J=ݘ]y1&΄$1 fcSsh5C"aw(`|[Objy 6%mfvNC E2S'"A^rSBʼnN8' ^[owlEj H0= <ٛ%k1<9soH}p59UWJ62Ï[ qJH$ޟ4,9PdFra- e+zR! _1&Y$ SK 7@Uv4@X AI=SfpJ1#_XpykH8N¨M~/QWY3Z$zy8%GYov,ϗ].|]aNo;VsɣMHrpa _,LbS;%(B{?4*Kb yDj` Lg)|RPטfc%;oyY*-C¹W~fk͸.Ӣ,ח-,3c={t1gD90mvUx@R&K)}@ܾLFSؗYdz/w"\..To- 9X%^8ow(蔌l O r}ڒY$$DZ5E*8$TtH)2J'`F{ӌPtZ LOw&߮@,FbS@.Zwވpѷvm}vC-u% tzݣ` $\˫'-5x|eC\ui۾t[ U 3[LKR=gfvL%0#&b,@aa׹.-UYwI5҈:M j7aq207v Uc )Fw݇+kbȓ.-Eiэ)`X&joV dwӥGl݂NRݔ/6kcό[FDΕ}.jMŏj0]TïFڅ7v(M3N&{Y{D )kI㨎j A*0WRcW$RY e|,r}%_G9[ܶ=CC\Egrg[o:u}2A HuH 5 hRʦeb/ `A`L?I̜`\+ɜ-GpW(TU_ThrDF J2M ϯ*}7:brZ.Z*†>>3(;q;` I8wKlP9T-žNT\Р_1 ,p!T/1/tM(B?f~1 = 2Jj:/ڎ@޴v}1:3J ltl/޳FRE4.*,Iѿ l$e,Lhig6̝H2DFQ 3>x3#M\RAraIJy͂z6yHyZTY1t&tϘ.ޫ/xZq90Ol]];"?,TIX^كc:}]Vkvhj} /Lj. bryIh2$]!ͅ.>N IXͭ93%4,FH6}5yĂmCnl:c1b2'[bl:5!PR2_Et$YM7.e;!d7#}5[M~ ˅X s'ejxWLsr"d8<Da %e:%0u v&S8ʎ7͇m<5oQ#i 4=|?Dlg)$bt> =ؒVJXzRʴ 1y-X!,3fW_9\ 9 Zrv*`+p#PAsmGA$\qA{IAA3%,[aA:PXiޡ%c^´RdcݙCq?[hi~W^❗ q'nyIQ;nK8d-Xg>A\A/ '&5+N_r퇸YF o5T]2#L`t3wMFV8~ pvYY c$겄0X{ԟi4j@F1X 2#{ ;\dbDR<5A8= %de._8:~-(9XY3!0;vhͭ"I|Yr+epߣ]/X|# ԏ4o4:e'LԣU)!ot 0𘖲?ҍB"VO4\+X"[|7~!)ʇ?<WʧӐlEK*DE2?$JC]ۄ碝QOq}*"F\/ }MIr)d绰7)^oKrnhؿ4)an.e1+?D Gɢha ,M"ijʪ!]nAF*;6Oq-"W%*W,f%OrW`v S4|ep7-HGi4]6΢Wn9r<ZAc"fBJq؟\N[j31mHB̷jhiXȄs?(Q-@PmuK-~5wÞVeO7ؽ+[4S&)L_*;W@ \oۆPX# Zvi/8?5EH6 +PP\@mm6W@}"uwɸy:ƭʲ>R-1C| И~xb@{wn:F[7ygi(4~bx@rx0vhv駀8\#܆~W6,gKN,P!/-sN/G)vZ6OO/SIsLH!(?!k8QeCM TT ̲NtM>|TJ}o@~2nq[CM/sdr_lNp_Yy6z"7>@B[xAqj>g^{Y'HtXq MD>v|]T!>[xgCk&xoWJHHQM'M-Z,O"S6ͯ8zԺ! Ȕ ejקy &!#*7+l^"üVVbXV jN:mHOMpy4/^(FQ] ຊl ;pW^NUEa^ɷQftb?MnM l__ sp]RGʚZ]*;&{.c>)8!3I47Uc3?SVZۑ+U#Ԅ U>51ú& ½%oRZvx=ҋ!-ikVb["yͿ4^Ct(9Zhpi k2ۚƠɍe"QJd6j 'kGx6L#]2$ckbV{dhm6us =lyǞ7zT[GmbTMhտ.7׳,6ZsH}#PI0"AY@UsnjMϗʕ_a#ݼcJ4D6R@,q]sR2+h”O+w5ypqS6=fVas[24zhA"RbҶ[L,`tNkJﵮm6FZWYౢ=fHq Odp;C"bb7&n8gY6JBqK _eAoL*YK$xjkk5djrwTZrc1.EmS'jEbA/q;sBW_GQ\\ꂶwyzthb&]xm젬L;vÀ@|\h}7i6aǭdԨmF_m}בozvY$%͹tärJhlO;1p 9KPt5bWiGag Moa+HLuNlݛ $~7vJs`FTOqMh. A"Z La/09 F10 gbMEVB:Ħy胟$MQ-%AӦr %aBm%æ\# uqOFiL.̣8ݔeUr[?1tКXU,0+5- Fj;|EvJ5n*j5ʙe@KB/F>;͔6-* t'u^a\9Dg;̼Ai dJ5|fA|Q݃  n##< {A6!kvKτ)k?r1ZY,Y5L v 77:įy.'yI4ˀ Hz :*t4ܐrZ`FojQLtk9ݜ>\V>v=_ݩ:*=<Jԝ+fo1h:N ,LqU!O.YIʪ12a'͢5tz ͚ $#nE8c؉spVuI S3.[w3'$;gZ V:Ɖ3 CƧLvutZj!![>Ke&*N\&¦:W;״i M4aGMqO9E ?#0‘H?4 l{_h:hLi2 "`$O`T8(qVcGdbV3,nQ=q(Xn=7M6O눷Bڐ#l3}BxX:q3̡4脜LzcNn8}zs=!i?#1v0o7jr]71m3PHz~۳(u( C1 ??_4|Lb,xU_5Bƾt;Jʺ J5\#|n4!>!RrY nR FF%N}(ƐԠڍSkߡ-uq1B#T>ZJ*`z@ ȴ}k=~.T_u}j jtwm>&Llܓ֫i#R-v@AVro2:dkO ϚÆDiyCk.V.^Y<N_)L +r 9x?o~Y/? QE:1&^\&z,`YykXǺ?M{{4,h0TOj<<![Il{ȹnޚ{'X> !1/}*6uG:l{ğ;乌#\OJ,“>hJXfS lsu60%\l ElUQTubQ`OB.j$:Q*xa{8ُM~Mc[AM:s Hyޅs6[4 >OjxpM*H3Jr'rM('_sJ,m(MO3o7No$Ҡ4zoAkWWn\SXWC6TF^Dds6I?re@^o{I&wy q7yCEAnT)״iT]2~ТˉK;Oz;`4 [kk/j 5e]r7ȉ\QК AC~S.<2R!!^|O۵N,%8;lڬD ԀD5qB_ʙEs j,F;Im:i;*'t܇m `KD̕#pyv}j"1Ewt_QTL&ȝ@ܛ!D 0WvE?p_/$׮⇣+l >ό*5y 0D_)|QZ zHBWM|뒐 >,zZ&2w_T,pLfa'"r_{|Jə\b}-$Y!!9y8P?3q?FNt{BϿI>6e0XA/Ltk2rrò۔e"R>WUJ򺄞:[2棇Bl4KJRTm졁Q@mKC 0*KFB?j'x޺4iIȎV`DGnr I[k8WQĿ2W9=qmɠ]Sw  >8ê#^穯лŦ⋕ 3M4=@m;b6K@nZTNy6~ԿcaZJ9*?Tu3˿,ndy Wsd)3dZ < -Nˬг@ܥgxQ, &-t1X Žso}k A #~ m1(]Y<Iׯ0GewC&"nMtPsds "fJiNjXb91)Fp<"lG! xN |67_=}SzFo׹|#"8TJ]M ssմl묽YyŮꄦ'@o:M1kX),41 xQx_3W?JBB4o/Ɲ&¢EFBNm|ԚV|VCo2"h9]mvN ^>ZI:0Ҳ頎Fap \LvF%Z񾡖k*%m>eB?\!1]lܥzȂ *tZ_+G{%1^JJW}YlBe?8.d" Dho O:%3opOMxͥ'g$] 't pPKRf{6[[0C=_FAd-f>4I驁/Y-9<\ذ)Sq}i[f03#p,y3-@$=?0XFse܌]r=kk^EP_\#ףu4u^Mlz`eytm:l>;D"/_䌙6)\ ڌȫn4b33i6yă٬B7aLLٰ:ѝ@3"HPIU.k@x tA+rNxOec nB#i)ilvPBQ,y3oiǥLH{샬#~Yyo'fܡ=s=h^nvQp|9(־ڀ0u6KxQ4~ےVOcRLol T-[VY|ut1e.ɛy4Nc waswz~*bgMksw+70?Y&1sBEzvJh ^rs#1tϓDBzFGH X5־k[ܻEs>J#i7uزm(l6?M`gwˮ\o\-qU΋'7w WaZ?w3_ Ul(WڍlFQsi H_u.1=a B5h;k1dZ801C|Ր3Gp(9 ybKnPtDo )"ÑwOۙ5VGG pӤ]v+.Ro9|H G4gP w2/d?|1؏39yN `{ 3(>W<p o7].$a sy +N @- tmgum"Xߵizqc% ̷H)s KgdZ.9} F֪1:lt¾JJ)(tl l;f}G^ZfGd NKR_Uu)lwLɨw LXN#4z^nɹ|}gX8:qL]W] k{}^mlft/jKT@ _`a?.i jCxQ VdqL]kq@pE]鱹Р's=0RTE &BH>uՐLŮYР3\K\r|w޵;*57S)OW5VP g?ՏqEh$[uU+ǼRq= 6nmwcEPR6 $1&J^?D2ps`IeĈwAb n ) ~sꈫ/1%BnmSɔSu+V~YX9m51=WBÏ&Ge'".h`ߓܷ#84Ӹ" _~ D;3qV-Qhjص0N­r5BI1/P*ȃ b/..QRuQ;mS\rZ-s6txL1]~>Oh!2 GVx{4}hxLG$ixqܬ 9ŵCyfGX_™0+Dm4;-yui@R^b>K#ܙcDBdUsm_=q+\mKLUxKOcR|DQE=T)sPToM3Ni}!&vy_KM3t`VP9Y}$ P`Z˩RQIfQFFg?Wy9%]A6ᾎ;ĉIƝOK_;K8EO-ڕ4"4Z=t!{35LT;m}*`f&6蹽xBP'G@^9R³3#(^." IJӱ'8V'@aΞb"*|r1`e/ë>:ڋF+Vg0I&fP২Pk|:mp# fˬKwQeR/06#ZǯO\v:G( A͖HN˖ ˸YPW>w^Aw2#5I%QŹ͌yv΂(3rx? VA2 2~Ti2I嬌pN,<|yEUn]mVCY}3Ŏ {4eu ~kv.f@b6sLtݟG%=AMGrtV4Lely*| wRƧIڝa(%&'骆L݃c;V=n-kYyÚ)jGϤ|O#]e_m*މGel/稥˄Ffe}qQ%e`/GaCarwDpVUl-#(Rb>hq;w ?6}|ٴe"Mĸ BU%}z g̜m `Yqۡň̊ K[gںǽcA>tG?KAi.8`֕+e܁^ ?Ͽ}[ˋ54`v CyJ58w\TpL|dV4|jxM4zBy B45N$Ƌ$s>.b4ϒOn;N^*+}ס˿ 4}bKqi*5"ga7'{rG| &w"]ŇEeͥMg`Vݹ%nS/'MxD-J+XQ!C1̬ohyA̛-=k5W_\Mp9VkA9wknlĉmPYo}:w H1"Db\_MjKK&kvϞK2 QY"D,/#U(t"@0%G"yF^b&]'~0XDV,o⵽[$;@nļr;UH$Α" ^' vRn{](u0pB&1I.B-ut @'/'y&Rٴ#)D,+5BcA/F{ XF ov#2!c ֕l8AN42Rq|0Y `X_V"Nw%Q> 9ה<vX#TzN̊\2ڱ&֢މNm맼H9<‚bi92줼T%^n|jֻ:{pI ,Yg䂸j+u>N#J,xYb2/  ]Y7"@RcRkk?&L/{OF<mY\ &Me_?-i&8ZRL{ڊ"nʻ fvs g맜 SV%bKz(zNFEGCÔ)M"Mr"#Im]zaz /dT9'_&gL4Bu%2B7Gq+R^7V1kI!ry[Fa2+8 :jq};Dʶg'%:lfy8:%r/Pb8sa ŗ "{YIcŽiêN$RɡH47:wobpHPzTW(;{fI7dRš"0hQ4A˻]l 閱É a;t>;pI Mz!7$3[2 89[T[FZb1m/Sˊw.[vZcI:@_e+DSNwX!m60wgnfZEB3B2|j'KȼgnkLxK˚`8kkD֝aSu\+YŎEdF_O o_Ƀ(9! 0& |/HT@K zjREwXJ|yIS,ِK{")ot  LkM>W^81 ʅcm %DžuD~WP< pX nJCER-`yFuw~lm3L؛MmL&^ZnU z2d qwSOljSr,u{Dͤi.*]&-+|[E0L5?̚?Wбܧ[IFQLYNs| <*UkX8)J"۰+|QYZ;+XEͲL?EJuFG°]8QYG y&HO߄vmuU~^7ߺLlZ^;:dY4rq&k K(:lLC%xֆ`/yP;!5 Ӷ)@K+]dV0OHxW`uڻ:Pfŭ (nUG|-; _62A QEU?}4[!eqHn5:Mw`Q&p'tw,uʟLA;3 _s{dsxXջ*:B\vDxv] S=Ym8gy#"@UwF3M;fWU8l 'E`3o@jק-|YEN8Ӵ}Bч*CI 'K/u '%>NS8]Hn 0 C)_5,'T5X,õW~GvIiw 2&W/h$uF^(.~w g1o D5 򋭂c`[;1b??FM*tJ?ny|߰q4#O`>'D{s5aMpY0P=@1'ˮ 8N z4Hq@S cw[ǁk}} Q1.m4I<,GLtSVb|c+UpwU\IAT 8 ? p/dٷF:lѢMN  7!q.9F}Sn+}YmjxKrk@ShځZp#8oػ.׫iZn"Ul^;B#x@yM!_G^1t"r|!=m=4.k;tB Mr@MUHG'>.@H/3 @ TH/7񘫊zcM3fp]zj,z#+{jw1O\YYr|#̏y: FZp&>H]S =RNt^Y ym|fAGWLl8DZ8rswVQ8t{zQᐝ5c %ͧQ%_&A2B}^bzrldjs74H7`\Yf7N3 ~o膲Z }dNAztzg xJ=8̶1>1 AgBtd~i]_!0N*̾KaQkfZNjpc%]'.6|FAE)Ik1sii3B]؋UV~BЉ|` /L+jsl #yeJW*eT,uJ\5JP'p@쟿=ND2;=ҘmnC%BSj(!?X)?;/P6RrRX6)-ǟܯpknZ8mFa>%凛]]Ʃ%qbP-㖫"IF[#?;/'<b3'\n0}t5pLAGY2,s`1xHr}j z+ ީcġo7|HߖŨt/r߼V30GQj`+*D/x l(ioP?۞܇P*~ĵX.>$숼^H%̷Ȝ!j.lۡ~)Z@[CDUWXX1K*4^20 ݵ22I;Ha/T(5QɑI !/'O;ׁ㧉$yyg74C凪$l#9a#TYkOP)* NLh-- %btK \oyL@I`b6\EhlLtdĠW]@ 'CӳXbR;x_s.](*W(e ( >h~Kԏڜ0'{E YyyIIW9Iq Lq32ʎgnnݯo!dh;@E~,}_YEO*\wC/V=܆T)5s2݁"$ZrDQ 4̊9b.AYV<WGHx(rVWtnnZ؛(rtEK>)#Z>Ut4<9*=`0pTQ/cF, YCGAK9#Cc=p.)ŝ#pM>*H[o: N+'فq ^+/n ;zlʘ-`Θ~f+7縊+GAFe(X ^e 2,u&oy#RZAhlKjku{2$xo47=YH I_9H9T[+d?qWGZ xbƽ+PHQ6M^bdij8BNXYshlDE~.Wf/|y#+8Y[YU pwsBF䃶c?3|"|l$;yU!D.*7^ >0HՑ4R{ ˏhiEAlѢg,>o P'79Fqg:].Oal^M"1>Eay~"nBh#bdt2I2Ԁ]6H''PS&J.KQ]?]Cu ]}Mןt]fm8NZU lPau ; ؚNr3A/"j3e]v ⇵=velʒ-UlCr{j (s K vd u3/GHHIg6ɈF],G>pN.ҜS.ko /Fpb[tdVxz5b&.`\+gʯړRJHj_sf Fw i6+ +ZN>@{|4&N]R/|Umy`\Ae}u]e?{J~}'\6X`cɝD|59F)R9^8^_> Jԍu6h?nC kP8gf5!vQتa2b|=|IN9nK |Б7%WǛ2~"=g r?V!MvM$n9Ix50ף㩑/®\.*؅cP5it-owjdz `R L6D9~# 0Ͷ!t) 6鄷_Iͺl ZKJ_z]l摿Bܔ* lЮ(iR,*/tG)$8vktۮ\-%B:ʽBx.K*țLpk!|M*D?; I *aBxGH5h)[*`#NL-Y-)'Fk b{ GT^Lܭ*qL+mk49yD^^˕'me"'9_]4_B!՟lƫ%+ _1&-nYMTMp`_Z (*;JhWqRqD\W}&Ƨ;o^io-O #($hnq%Z7zJ_qD(WAv0]P:;)ܑ@"<5ÂYx.tn7Dz- dB0?zK \P=J< E6YˡBZY߿a2="؃@ap`VТ듻[UIxBlI,0#ao%>-y川ce)R~nFRJ9w#Pʄd|ݼ\vƱJhVC6<{͋Xo*yt &u;@pQ0Y YIQHz֓m%НߙQ}Ug5"gU XbXUF dbLT*oAE+Z# (0V3zUo/~|2 8!\ tL* VZ ABR_U^R+ JדmyG~Ёu"w﫫Tsd/04p Qwh60i7AIX!-y{qKy<S'{MP7B `X.jV>rOeB&:]ֻE{Hg!_yE&sX-w(ζ!;qÉ=fڸm?}>V ̀eg#k3%Mxwsl0NGz6=أQ- /䪷amgSU- d58^:;/Ҁ482MժI"5|&mWACpdt(hvNݬj #J|ѫ\]/CZ c8nÎ[PYAl ciq,ae(O\Vdb]B1$_NJ;NYeUoq ^O:p)Xx|*!% p r؈ZjvJZ޲`18B`F0|Dփa%5bOQluwt-Ś'B48^JKTQ,5;. @'ڂ"{dZ>n1v^)iDzǽtYhk'eU'&[o:մd ?A6Tl5@Y6 v~|H:h 4,=U _AfucPЏ9v,0:uBۍ kLqB:8ՈyL./ma$zjVo/!yd%ǮZ\+\#,q>]K/g+Bvd6al!:܈gSsv|x(B. }ѡ>.$L58y]ږ8IJ ǨSA%]ȩ~5^ VnlN˛ҿ~(Z9xs{?v=5\lxcr% u^Lk$?,ic˪}&R2(HƷ}y߯ -PmUgCvŊ7ONZ5n|Q/Y鎖[pͥH-4z6=sR{k!l"xp P1 +SI~«%`f]5 }xzH )뛔 VѢϯ09yK?o '\2:,ϗ`w sQu}?V +XOLܖx޽ b(i0IiEWkzI~u|]qq3m|a#R*:JX<;C'ܴA2LD  ɚlZK oĒpѦKDCPiIH^D0O28͈Pc; V, I;q0Cf]jx̜3̋KN2/eY;TMb2bf[ :@a,UE6'cY/.YS[yUYKVwQ< *zS>hdu:qo*IT\ɻ7^ơe&md bECSXsܷBԷ;NzPN]ؙxw~f頻CEqh.uHsXW諔rVD i\ܛ免|vfR S֯О$S# (y|N…,glhȒu&`S>5,U&>N_m3l]ߕ"6)s]5;t^_o s6#Ɓ'GCSDFf:Cm޽hq_:,")m~,gLKyY/.vx 5wH7];p;p# - xj9ً^J5.ul0`dwU]Jd @WC."A\=xoʉ~2dy|@p>YP HlU8_u;7b'FCWh1 sw-O_kh-?B$V9y!tҿ+0s;{m!W_M< txJBBJrKe'c7TfT|V|HXCJ9sFܝPW.zi6 "!8=_>lreλ S-ٱ?Q-FjUťVlUy׷=M#9٬{8橛ՇZX"CO,Y") :HRx[ ;7S7u/ M^gwAl}]‰,p)lBѐ GWH@TSPbNv! L|Le`.|7%^;K. ŸBXMʹ*,8.Ē09Bm8#ycΠ:ՖPD>m"Ap$Z^FqV;`466@ +B _q_)(ԁ5yl&{.:Rxdk -rY'@]ƺ1AOF4qi3Y-v從&c0\j."&+ |*h]pMPa,:^J+xYiz=k0|L/ Ta~ՁW5gH 24hA JnPQy'r<1(Ds#'Q$&D-n8#A3=OC7<E  h؄|L  Hyz*䃿P=kH _6v3#Ș;4G3tEUܱ"YL=Zbo=fgWcODxo}*-`$Vh4^Qж4P7?r0&hc85 ~ m"#OfQӛ"+q鮹)T3ȠU)ֈbgtA%@>l򑶤 4_S@ͫoQIsAwn`[A*6 )de_ߒ!+Z\R叵4s?`>zBuWq$>قڐ0=\r0QhI̼oJ Z<mt4&Ι܋o6M "~ykj oAjgȹ[:>0wW|11l Ehv=5Љ?G@Ix ܹg?t-3MwisG%vo+@c#d-Ep!)zew7TuH$TwՖbwå j!Q% &j$~QJ&6bʟՙ5P- 8_`(~r}ݻaJ# Dl^߸_Necֲ~Vp-iVfM(hd|GK'waA3 "RcYF8cSu)kUdx+R?Շ0hTY< <dpfZUF86OHvT ٵ{Gwttg G3Pey *̎H\'"7vs_J6JTO@?Ί%CDM+YmYcg[cj{g܈ ۦ ͖ǷDN'ubG_(aSi栴8*;\- 4x(7{leڴ9~#0|M|}$Tf$ӖfC6iz}> Nkj U 1yXFguG?. %ڧ ŧ wki̎t| ?P`IP6Цy!cVa 8T&t|!!fy_1(t'3Y-#aȨџZ HJ4,5Tהh\;lԙ*rgW3h 4zXUmw_[x߷!qr;Zc|ׂ?9N , 7~jNr,$] *Uʅsu+L`cigmo7cu7mA08d*X3qz:t%kN!Jn~oIVD:_쑓N' KI۷@!=h+B >[Kj=TS AO/⽻*1>ɒ.AC҅..ɂdtKN&3q]$ĐYԝYSB7-*WE+dn̽CTx++avWz$>Uq~\Yk2De0ȯGWKz;Obq0X|5FRq J 0H_mǒ\5SgkRp.,XUp7Ԯ ,ں.,Z Q-Fm:k/ gz{ICӋt: *<ܽseTJȧOL á!(7ԁ+#=mE W|'(T18) ȋBl05 pY% ^by0/P&EL̯g&qpa--·%;n~$X6BCa IcNKF$I&ueo>{L)KPc^ qrtaS_mTO34jb{m wOԍ\<*jvFCo!b [m~qFnFrO sUP1]ގ)9ZH V3viߓ!2F1nƤmFp:\12D]̲JBg,aMD/p.LCNami GC1jX!?B! Ih+DЦ#FXXg5!Mx>DE#|!9rI_ ,o.cd|9 3SsE$¦!߳sycV rL8t ;4NTHM@m:6x_1.i%fv`oCQ9JW@'ܗ S//,f#!=يi3[єTs™2TߊK*2\/><U2кogO_ͅ)!:XKaWhdV[%"-`;B|=A.:_Εڌa#/P"Z5UR}Ȼ~>[e\GǫS*%r%0@̅~+]fzm4(i2x֦FB! VKrMG}k_25T82\Mrf0,v7$&"wh^4%6b5F+@jEsiF,'uI|XLe)䠪S6ԓ ǡZOw&YqhV:\??fE KͩiȈd쒶R"c$r.!n$SBO7%8b{hZ[%l6Y 0UtC(8PvRDEټf)MSB:]yQ@UI"p`_󫜕n[{x=N/^aRq]8O3e[bb]1$cr' ҳ8ߺ{+`&QUpV: 0_W#-[UpPƤG(KIL~W62yY r>c\QFA~0Ҝ$m״r:(zEկ ɒH.:[ğ.dUXo/ XhתZ& fYd hLJ%il?yTi*bHAj4i Ƕ!r/ e&)98de"'0e )Ĥs;R>&w\ $!L,`w6|b,S_N~DW{haij3޷TMNͶD8 ;wN}`EO`Hr/C/;Th$n/@{7A{NN1 G&OyS}Ilq^xtqz<-+J}_>6qPDIծ!Ɗ4 -}n8+:nWHF/{x7ejAkU]/&î7zHжr Ѕ._oս1c*0ͪ<@իѰ-[ eA/g&' 8X0A mF%/dzy1g[_F<چs`Jo0_?nKqڿMfpw2p) qgahЙ"·x[5b߁m 9ti]s`h= %S4g.4D=%g(\~Bvf D Âj=A#t(mɎ)'iq!؜V|sٵfBdVW Xkƹchct왣rP]e],U<ȥJK`QY+,e>"8W8j-@aJ %-MEºfݎ1 ;Qx: ɐIBy TwbrS˗ʙp Bc=D )d?X":dkaP3ސ8g=>(e^š(,͸^{>YnlXpJ4xA"ڝ"c!h"D>^Iɋݡ&S3kͦQY`% א=Hf!*k)fCw9sh92=jԍX'2#"fKl`r`xsTވgH>6he ~49ґkBEוƸ/X*({Ϧe7?cDydr$tˣBLFNE\hrG ڦ=M y}3I5 b%A{ة;RRP14&clw:Y.d + "C1 ,tEo9(dvI#!w[BVA#HG66~!Ie[jOۘw xU2xH- 1sgk]<^%\X[%&2U!T 1DxEQhFaȆ6 =Ÿ_oi/glF]"bT6&M 3'@"~tw͑jX[QM: g5k#$R,5[횫9P)S 쾍ys]CtO6n0% 6!*30__b WpEad4z##p`3b+s;ZI ?->tH$`RƾTi_|]hyaMC_õ.(߀L /¾NAÒjnФeA +6D9!W&8(^/};mH]!kiepعg] ʽA -A,>:n ^¤ͿY^Lg9\.b]ǰ@6~71C$u$ .q}:I։=8b aH'(QgB-u{Ma~u4ö^a&^U<.$5gbh1Ӻvv<g,#?] AAb]? XKxamyvFu#CyXC6Lv{1a4E /2];MN]c6<~,<^'r8`%upkЎz3]3j96ݐGd/HUaoY }:# /C^7M J"XK{ `NtaQ8JoM;4gCJbgM"4v'wd{,޴'BD$9~DWXl|/b78&gwh`Y>l*Ci=ZkOF-4Pq|M>QjW E啭B^1~}y8 ڣ;`e2E ֨tk/  ͂@oG|qw#yFj&J;\(kIyUm:Fvi!Oy=Ca');:ʦ,gnmxXq:bl}ۓw QDKfl??[Py)r$ :/JlMHb<.3}Kk4VxWIҘ㷵35XcxOU[U;xL$j(l&b뢋K@ f݂gOuI ! )^>*DZL@T,U DEЩk7b|OL"$uv "os-"Vd&2"/ N;Rʒ yہJ- Io.Z͚Qzs**{588&0 %7wUDR&6 t{Q u*辐-<l/6wt>X?΅# =xk͔rxO9sqw.[cƎmŢ% èT~ɶWGgA0ӷR$)TNrKX⁎5$t͉ &de);nro07]-Xl6ROa P Bހ Ev^ͬɏ*`mͤ5:rmc_T!b { ,9HлԬjt0S<*)|q 1Ǻfנݩ>w:Y'0y>ﹾF7ԳuiD?Ak094^p,r UES"Z y Fg _p޶ϪVA󄖋n #xyf vZcQ@FcBC@r²2LZ7x8ʃ@'!oOe S$ Y]( Ix M6p_7ȤB@ J0U#?y dK0*Uy@Esӎ>. hy]}"4jF ֱ*&d؝r$wb+⽖o~)^f̢QSLK+c#!RE%#sl*l4 Y3HOmsO&"n$8GRƭױ%WNj?r:^vu:.EX`T{$% "#{@wtFp3&F+Z,TňBЪ`[;[C Do+,s T{e&Av͝=ܳPmǰ Γ&"GoQt'}o>`7 G)5f&!)gmEЏBn4A*uOM{o=edJ&7^{TuE{y\o_4h&?Gk4YKM\sL4Aj7B!} æea<@B{*8粴Ƃч (_ޔe_i\zl Rf> D(PЇ#y M:gMwW ,']v!c)MSvK1"79OB_ʯSmw'RQQ*f1(Cx68;_UӢkMdCBĚS2zXpEȵn%lĐ&uzKq$r{25“.iJ?)gj@|ZH*%V)g[.E TJLaʛK'G=7~lXㅆrA6^rtrf<\6v=tgI>0"I!GB[sil?~fi7zAкwU>"Ӿ D8/WgQ{zN N ɗg@ӂ29O-,Ɇ\kP.4;fb]𤻉rur$89\RHR5hFn ssLDU`%//|mO$()n_uvT. wMq[y?;p>y`lj'aUDy,t Zd$G#ݐmk4>.VKӯʂD2ceh Zzϼd_f~ ?l dyإX{ ̦T# ,R9V~~ XanTb I xPy66xX6peue5XNQ c~L^4gL!ʯe`-'[;ݡYP#FJ9v\f!8hȥ5^k El0*6%,b`n+4(qr4rf.QD:+i@8S %`VP [B`ےs`a+H0wT5]T3{a) fqG=1uʴ -=:R2H4ހ]nFuY)=Ѣj2.AF=H)V;It<;ggX}陱' !+[f tw OLԂOp/HY?󳠧p82m̎I*V0@)P1fj8}a1.$`_Y姎m$Q}Lls99 GJmor{sT$1Z`C)iL7}^4mlxh34wu q x%q+Hc4u[ +h\ S`PN \j( mB^dbQVأhx,^>m.Q^BFXb˒_A [&+w*ZnN4 GvLLg0'59+&\*z$6li[;uusdj &ƐY,|d %s.he{S:&xHGӊp ou6 AU@V)2zk6!>#, Q[PC1JFD.IelH왑:"M NͲ(m\E`fqC0> H銨/T>CM$@>ۯx#Bσ8< gAe"蝕w%9߽Np@`z:8dT{iPgL>JO}yYcOVS|Ցƕ6~YYOCc_xw=&0I4}^/c;MYJhx| B;5_ɏMffqzpbBVFעD;WN)B.Y9BIOogU2Gqߝ2 Eage՞c4d*'` iOu>b "5fX,5eӼ-_#S}:pBtƁ !Y/QGB$blGGR΀BDpn H [Phws@4L[)o {=?#%J dž PGdJl0j@#;:,qkC)Cw51=d36du= ;B /t W!<$=7k$Z0NtfBz|Ⱥ:/2MT 592ev2fo8W7>޵$ Č/1?#>i-=fʾ0ύqa+:TE1#j!Hr1{$tv-yIqUYNV{Sxe**`@#:+*}1WWK'N*P&:"N*ިBewU,[!JY`SW%a4wgR)hGJȷoWf9/1{AsHjko˓*ohg9‹ㄚj#> vJu_:ázwL YtI=WB?@-z2_YUbԟMr+ҰЮt5 4*$ڦ泻îed JkU}LБ+N!XprZWJYo=|zz>c?HbIUw?![#ƒQoß_l6[/KJ2éS"QL0]8h_?sW,sl1e=[=-SM(w0h5j ">*Bo'kPs] T3q~U tMw _>Fl'5v|{QMb9y]RI~\1Hy5`6a8Q?攘gDt tQ2!O֩  ]-QyaynشޅTp*~ v͆><,>+[=[4;`]||ђm6ZilCz$BJib뙒{?SFl90mi6k؏zP{xhH~*_\c&0L\ i&gŸ~iKB A=2 ׳v34*G_,Mfa\O,x,Ҙ}"x @#rƉ _><6R('AH%L [oܘsǡnqX>Rٵ+}}VI!.anc2~VBȲfN*o!ͤ RuM.-z3z<6Zy3ƚy;r b_c偵pNwtaW '=y dzq߈S7)k݈1!KYZV1ocϥtt&cM z3DOR1g 9ц䌴U-υoq> kkNz]YbꉟuV4ۏB)̡@'^ml&@c,z) Y21Pt,H."IGsOXje{1ܒ~!ȟuq#,ݧz-eyDvO 5h e/K)3]XU}c ̯==?z>V|H$>P4A+A#e&? 4*OX)g9UL䜬ޭ6]Q :zzf|lVQzjqg %"B)`/4T}bB7r%q^n@haŸx<(;㔫.Z8#?}( '{.RM4xc8Y/AQŸ +L1GPN#qVVݱ^n61q^Z|WYyɱ/rR݈ ״6#,))#+Tc3`M=A`^1Cs3[M2Kj3v{;n E<]sTV ˛C-yQw0-U"2x7K6TᜏBc#{N$^+ى Y܋j'г;{qSvQd w-9I]G,ƒ2lo^K1 zj|>ƀ(O|˽e)%< t$2̾)Y(@0eK pNqktYRٽzذ5[*njI0Qܥu!+qb=|D;OR;dĘi@q=pgH/[9VaWM_^`Fz7DȫhfFџ)%hʲw>S|Ֆ!GS hQ1uj:=iePu- gpzj3GpD!E4XBco>+ޮVܙA` .Έ\VQ{ehKLV]-.x`4$bǑ&2W UsT:x9fG*S'|29;_9ѐb+7ôgIn iM#tDΘЇT]AҋMpr;?ئ FVOḚE y=1َ:[1ͯ'{IXȐ&Gr\%DnrS>Ggx.5[j?*ҽ\rgiIeRr{ ON%ƤmyB_bИ@_IO~<äPL \jB)QJxQ8LZά ݺG59auAė_Fb$j ]rnH]c[CUd\:%ۇ/DYYsRm nXS-'l ~f33t ?7w@kE0z])p}>DN-jW 󎆴?`t4Hm<+(fhjmcu3ӊesdLP(p[Wl[WZ>ѫٮ´,m=7᝟P뷊W$8> &(qܱ{aEQiN$޺;0kbDCm *x_1gvj;oqDj3iA5¦JKh @h6=fnh:mepQ\㍌x+vBdjg=\'7C#F7PsOJa-Su$Rm"wԣFfCfd\ H_6Qz&Ħy/rvDC*X ʂsA!w\y;x6 ie쓩lSaV` ]S 4Q-Our0=XzQb:N:Y)&7)Z~Q+Ŵ ||a+'Y2a$$NT(8PA^K!bxb4`Itx`!+,1 t*_ɭ3ÍDf>(@Nҍ$ #OWdTc]5Oz= "D̃voWjj`LeFكPi뾡yS`ΕM;\k}h>!ZzWB]羻B k[4R L[Sci+xzW@▩g콵=#o=7X$Uضfͱ:&*uTyQs$Yͱ];7ZbXRm=0_-9h'ugQY LmGQijO߿wCU& tBlBy[T[.qOZ9:V|XS0. ?}-rTj:#)b4Ma¸+M&~x+Բ̡jK:= MSo~?0BAbn)|E3|H~It\?y_|WYwoZw&zKf>K93X#ԽD&MQEIeC-(O@vW8)۳ 54!AJ fvA^oQQL,0bXtQꗺ(Ι(!I|!EjaE~X}uܽJMo"~n~ܰ-xyIC#7V5+6" |4ذ21+ rhW4#?D?>tD՘=T'/Cc#{ RoS+--n,P+`֚59cǖ_(]6rE{/;ϗKء9-q8o t.%ۭAmᵬ&*, ]c 6d Wgw@f[uR$WmӾ ԰"xF =ڶxMxZ| ԊaS,i>fĊ8;)]*AHq|&;}lf t;hp.kyL#5XuI<ZbJb y7Ʊ)$>GXEY.)Zݓ^JTݠtnS,渿n@ZGE9qfҲC$t%DiInu 8?7 t6dg\Tmp)hH[8S\ǐmjFlo֩Z_CXRg3[^;kw\95[seFz"z8re29A`iP8MϮY/ֱT8Zk?aq_@~j(~+n*=F9I5P`x2?;`&*GEDlu?2ɩ!MCxbab](rrm6u,;}wTjyL'a< ) 6WްF P͊v+Šԃ҂T3Zomw% <UA]oO+z wڳ-tMѝ;XL}>Re.)XvZl'!&*=knY5ʦ|@ǹ*`<Ð_N"IfXVAȻjq7Zp|N s\frԥ)vmqTNRI;#46I*}9߼&:p$5;iͻAWwT NrMl'{Qt1(2& 3i Nަ{pr3֔nj.w,Yrl RTxzj`I9L hO6=l]eMwrU(|n% `%zޢkmtH@r6myT pAMv9qp TZ+s I2Wy/P:~ p2c<%?{@dpE4DӾ;fNG?QŤ@ $&-m&tbmՖ0J'?W@YV~pO| wjɸ͓\DD+Η>"C*ğyu#rj Y y YH}g39Q' S'}/ O(?[a;ԉ^ţbGa_ɅW}s) D]'Nˈ=+#A^jOO f)֑ ;ݑVO*7 ]>ӘL\cR罢4?tZ2[N *mk6XA]^Df 1XFnOЭdܾJt=*dtis=V+b94+˯U,2@ČMe%i8l|iz%#;▋_RN7 $64p7Ck&=/p}W󇃪6=T5]/G&% : +zF{[Jp%LְF(b{0`װc_6i&s6GO^3u_ׯPRQl //W=vyb@I3GWRުAƾrgЂ6#"feEŹ}٪,'Q{^N!FfwFrTZ-lR zx@xz4l9%Rpg`;J2x``/5)˲'Ղ \7sW?-8_%wy0>(I!ϢxN3ȯ៸>"9L@}(> zg,n6?Yď$b.H%t."yk&a M-KJ;שe :h]o#SVݠM>*,G7yHk_.YpO;Y%5ZK9$$gRRD85Y'Aazop䝘Q,6Ā/Q~1<}ZhSw'V1De*@y'B"V4/ "i#ÓG*5uU6iwLnPmJIe۾H+y% ,`3б 4`.*>~܂h5(<>K+<sNtHPL"ʓǂ*W\2Ml '8¯BvQ&Yov些+g4vp92w@/*3Q _[X&"%Wꋕm&uՔT.#-ervlv1:KK9Çʹ@J ?9~:9p&쏔a nfэscDηzL[}˕׉tm}Z}eҙX'H|aS9{ta1_:fXQ-;6FզE*WӔ"9`CRCjX<Xu8$HtXQ9̵XQ~3enD saoΣ! fG}EcвX+`}'lDh; [Nۈ+R *Q<- ǎJjB&Dn | 7Q~u .`h803oJyG;SX&@˹$_&VֆMY)Y"Dehh}p %JJ46 '\~l?##9}4:litKҬ!- D5( >78s 7,F 9dPSr6=H;--A^^GPZ, tLNX>Ggn-l{M@cHn)W&?}Yc0 6UHcӨ< Ce\R 0-nOk8!oGV $yHdl>>GʇK( UZJcuplB8љ;KmX-K&c)gGpRQH[NJc8#)9 pTNK&g+g!}͹+#Fyjn&|R|;һjI+ Z JLe-1_ߎ5'+hjxƇ%mS`o{rXs8Foy ]i~iIXD\ KUwy,vN4jDQ3\ nth:c. `z3gW W8#$zPyX,'SI I$$D/[7@h}Xt`ȏUKh񰹃$7rTp]((4p5y<^h*Elm,P)%x,荲O<ܵ8ҟ'ڊ$>0\ke{Э};c D ykxтBu VB gڞS9)s[F褸[PinOf{=W=2a[T>&*8^hBI9D$j9HAU)|Juv!j*At9GƩÐ8H#F5iovרYܱvU7Ԁ^6Tp(PpΧ셶G ;O  5qsp(Ϗ2>At$UyΥxX!M_i#\yAoL>Ea Ҳ4JhS(y-dPy">.%+q~و eОO%rR{) Vu7mUTYYpy-1́hנ#N&!CoLB=gY/ ?1y]yI'J:D%Z֔B9EӄkuXߍ+[̀t-ͭkl3s{l:=p72cMZU+ڮ_gBMjބ4;++&$g_MƧ5 ר͗pG更,m51!Yt{Ն䷁:+Y &|\mo0G=:4$hciu6 D g@'~]hT8\[*=2Ȥn=jk ~oR;[#| 2IGjՓPMToxaPǿ oHnUPBz4\6gЩdZdTr{13F Nڭ^KmDnzQp[ݭO8^ՠID.\H5A >1 ?DYV P#ˌ{E46@"A`k]Ulؾ<2(e:̃WRΕ׺%V-ێv8ΔhzӁ_DS_"Bf/p4Jͭz<(30P/$2>apZw2ύ[-i֌WHkiTG֥j~Z֍Z{mzA"(?|^> +]~I9T3p>[8pʝH{+B`LbąKۘdŏ=~o)DBsӇ>"oXZGe:иc+ŝ<ӓ(ͳ q fx، $ٶ$?iM:@#B.[!e7O'`,>;Fp J/*dnɻkn/5VJ,}Kj,Ύ]G$TSSH w~<9_MG!VAo7v8~GMb}˔oP/u@gl1q~ w RtJ"\ 7"bGqs`ߕsτN<&epM5o0%rEx)zIr'Ÿ'{ ^qěy9`߱_Вw䕗9h%Q/TVK>wWf Ac3}߼) 3%|uOЃK/4QB-7 zwNqEGly;F)pQ =L)^@:sm w;bi09R\.;J0h1&xɅWQ^VIpoB("݆0fi9"̳&n Qm"Xj?dQ]AU{! atOK d+.X;~_d׷c 7A4Q1WorCN>Ө^͝1im̯髳 ſiĸ[M3Z %Hgr1B0MƇ=@︓\+Hicz#s"0Sxʹt1=mdXy{*s{RQ="̸)Pm ?Kr.4 d\VWKe5s_`PMf?<)ieQr`R ,jYLE-Ȧ HH?`82_Vٶ|PBmгfÓ3Ғ.e`8_8™⮓ʞG#,fg.jJ{Z՘$|s -& Ytx?O*p'r ,n4 v' U+)%a;zc=!̢f!K#8__59C9dFM}f2—J(l`ӞU# Xt3 I8m1ni2/c%-d dyCuYżcf,QX;xἱ^C9G݄o7oX7)fK~҇z=!U;6U^D{ 2[D\knXF[nɣʔA kpmbA25Eѩ&O@vT!/Ĩ qIM{Tw3ooX^=VkG|He~""PY]ꖌ~lvA㵢=υZ`Đn %^f1IW+LތO{LΓ'@Jfڴ0 bӯ.cF,XH^ M6s @UkU,3 k ;!N/Z>} 09KPUKLLnj[Hf:/f$!2B:SQVL9?t-lҘ7"uy++ͅCo-9|^┇W~z'4l,Z5- ,^Jiy<\ߗjurܥ 9:n 4Rظx@[ j'ׇT$5bϒ0aے0C+d5L5wQD|j6Jwf$qLQ5rsAt+߻}SE}# /Y 4̮9ޥ FWK6:-iL ,Rf@ cԒtC;@uK蠙!I'((qMyEN(4]7(t%-j_I'{4ltο :8D>]e0rbvӖ&֒ߥt71L">DJۻ`O9-?`_7nlcXJ /IOza,HFɁ]ZRVڝ+3 Ջ=(YNyfZW+iF_RD49 L{+]<]#;)v<C8N[?Ҳ~`n4. ]#Ϯdpj e.6R|_JȍRzEIԣM#ol h'(ġ7o?KHr$},+CVv2#/W*HP<EOBjʈל3,Rw>dž F"ooWv(zީY,?ZԺD`id糹x#~&7W S5s?\5<~.}B'lޑovյKGtJ7 FːGfS2DZ=RpCbWe3.5I]-w;Yxv(sEv6[MD n1rBJfJ!qSz~\1.%JįdwW X~#31Ú`肝2 x<$%s13@ZYDɻA3 &!#'W .E_w]Vr\k6Ϟ,( l}WL[D'F@ߔBlMaA:Pk v2~ňS7x<&{oJGk-ip"N޼NVxeTy&<X<8cph=$90N4U/'"\yJq]SK"}VBb\ZlA]Y\յ lՔꥲB@>;b)ZњFce%dgc]9 8̜t(P.ߚk'庛R. &*XSDM#߹ @R%ޜCVTN-5S>z+V&4*bܵ}I9L3>l8PXd^5[0¿-e:"hbF, %ℐ`͎V^H{7BKHFCM7֝:Kbnfz ܰZ64E"?]"oD.!ڳo([ \- }(T W-z5]o2Gl=cF1=)㫡7`Vcj).3LldAͽXGvfJ T48joᩇAbPqWg%,9,J0qgDQG!5 "CU͉ZY+si\O9'΂R+~u+8!~%)|F?r T=pPpqXuZFTN;Sa}RB  i7Dѓ DQMhlkm헛[t[nn>Yh15>}7X`JDiHA=z As٣Zօ~DÓۀ ^btyɳ^cnbZq庺/O{98{#1<&ܺ=Mb*It|`@LB6zA* J)m5<ڑڗ+Ix߉Tg?Ŀؑ_fߨ`ў2 H'h-q s(jykV,OC{s* sR3smv0bgopP5 #[ B+ښe؆/ 1xDĪna[QԡfPZdk°+tN.69("+|b;M 'B?-5d7ԽP 2WtlI#(ڥ.z ս%)݈RHn~yP[8?6f ezس6P7!~~LA1զ,?vՑ5DJ߄߼Z`ջhtl'Y ~(@41+Z>jGCə8}ifF"IG<ĘCY`V/l(Tfc{2R•3v6dّxO^"xmU$cBeFBE3 ~ĥ1-C5 :9<їiދڑ*'P 4Gpȡֵ.?Y\bzܓp׽e |yrN܌ЋUg4d6)ޱ8=io !RoYHQu6}+f0TXơS҇ǰ+TjfiAzaW{tDnA]MWD`dpމ+ $6 䖛t-,DD[0/}ЛLô9CS^8xIu"4MQCuy\^Qzwt yi ,^یE 9tiWv4RHk'q:D3>[FGGZ-jA81A-jN)#y\S9˴ CbXbn&ѧ ~eT#v;՗HsCTIۑ7&csU%5Ա!xڱ+٬vLً^pPuX63*" SCsG)!kʈ{%A\x̤s2K m+(5|JcG:ytr;:וvKl_i3 ꕽewf=n`Wr .[pfL/#y $̰":{ zW<\xϹ\c(o,F^*B雱Gv?B/r1FCwyupf8 \.WMu+hfEHYgņYێEr2!i R'0ˆԻUI>t#ǡX ,ti×Od]c,*[ -8I`R1-6pb2^j/bS G+Sh\V^ZY@%DKAu`&kЋi¦. ҆@DYN"o h1bKB^kmF=+W@^2E hF)6nk[ gƄ 7!oxƝUAj`j&FIO@`nlK8Ixb$=be: kC+BW俜^>TAea-cZD2I)0C Cſs916cpTc[%uΑ@Ǎuq1Uc7@$Zr&?HWS!i=RmA Ia -#!z$vi~ɿ*#ײxw$Uʽ@jM#ldmC-'.9Sb;d* Vs!,݋ȉqEW虋~/愢R?8S\)pGױkPP>+_],6d""S {']} [=0FXZz$B>#2?N[҅ND7P)^ QcI ƍ7[q-_J~DèBqq=xPzAQ ~KbsU*N]q΁S~6 Az0Z͛"6E?Ku橃Jbic 螜81l?j˾ggt/(|S[Ũf:BP=Us ;d̪BMj^͢PaCB)ry<\,SI]=`ŝ]GpL~ Zdof$B%g#1?ljS_sԈzIUkh×&xIj|#T,K/F[%31bYx@%Fa(RA'/I l(蒧~.KB&wx]O45D 5NZ&u搐|v tu30D(ಞ'SD *%2e&1-ݱ>QoI;2zТMpZ`,]o4~SͪUuMB"@iyM C;*Z507nY GڳK &9LXRq ⡜ q$A/@pVus|!< U;Edvn@P?ɑE(X;/(/3D@@ꊋjx_Ow))aBZBc0> nNVҸtd5 08r6m`[.5Y( d|!% |ϼ9;Vb7I9ś>=@D>pq)sa. 7jĢuFR7\򁜂ج)}x!-1Qm1f'!Yu%aJ}GwR0Cӊ2rGP(LC))NU;׹ CHSDlfa%?]EriӸJ!AL^W*E呋ץ&G2Xj}#`}!?"?h*6UDx&bk~e͸UB<>劯4-uVEs꿉C߸IK7)$8z!F1%db\g _!vjV28}J\f_0-lIjٽā@9*tFsR*i1D]!󓡈#h/;ǢP.׺MKnʴD^GQ*iX&+"i@4k!|/q3S$M=XC; ?~Y\54^J,0IE /1*G ĥJ jGCic>E/viDAҚC uN=mY<&/؟s܆CSR8ү Ct\vÉߤ">c_nciyWIM5j;[_⬿c%yjjGcŷ¶i-Ya?gioi/On4SKQT1#YnhА'XtD<OlؖX"Vvg.AXwtFL9q$ؿx\^|gy]V?dF u:kE9|%0:_`?Y<Ň@y+jҏ-sW<ގ3eZY:co4i}_1tJ w&,E(Tꯦ S0B,M] ^,ywNIW:UPF1aDy fƫQEGgzFB}PrFoGGc4|A:m):(&'\F'HR f0hEgj`593N1{u:K@fpfz}9NiQRnfϫ9 ښ{'̟XO3xfw'2xd͹Qڥ6.0((+VXF#y702WАmVF`&?yN;OIB_hjxKJ|q:"N.|7ۿýV\-+Fmoβ]^[y yOk5+yW^Y2?t3vܽ6YfyYWv 6K]Vo@L~/HF}4UBN,2^e;R={ygV+p,hJӿ(NtĪPQG~%Xe̯A.M ˣΧ)叚o9=gWv[r9/ !Sb%BHL j&0]_y_JCQb{V~)0>!z ۽."ⴑ-UDo3ef.-Z2kװ_ .ȗn>nٸLf\qL^ajzȻuf*ek6f)yM9%JRebM?>DcF P¡,t2>Y{&rOU\BN8|>BҘU4UYc+dWŭפYa/'/40烌F=` ;-PRJ\: ?'vkxc1mQ ^!t mEZ%, KBllkjۍߔ=dk/f,f(l|lT ԝH00Ie,dJoKt> pSC>>`Ե=j o cGQca(/41vz]ʈ<"vT MGK2Sُb9*Agwu)gĖ}OI|1~+\rG#B^^j\32ܖ]݃霌"Ecqf8d1_,lGA| @ #r8tZ@Sr TtUcZ|տUVs~d"xHv8}z {QZ]YIT*bY͵J3;j/6'3Y2eHn<'>S;:CƼ17i")4CF mSMB|/c%̮iOuW'JB7mc>><pk%rMO4X7O*?>9=آƋsR1h%ì8hjxg8 cB92#E%0RhIudb[aٸVI*oT~p)^1\NJEVncfH Gu3\{aI⪁P׸dL*A.At[sBɅe+G/'$Xf K$ VKe-/ܵ<:gyBϔw@] d eMKi>Py ߧ_I1O؋};En1#[Ny`[6^wPsjqE ,[iߏm" Mg% {f3ɶݡ\Kv`lZjwWZ9TKϛbL?cYo9` Y4Pq赩f]PűiJ :SG,f7@LmsC,x9nzE E8 ?IsPQ<: *?뉍>㽐b%SՔ\.ؖEanrXP{W\W7P=#:a<*:mFE !HLlhx.sn1 =Hkm^B8ds(Ye͊`D7([eET9;eIk2U,?{4byhD2P~ Lљ{yjz4+n.LkoYӛ&7 τ1ywFd۔ѽ{z+kF߄s 7RYYm[C>~\#lWp_+bXTήS߇9ўOѻ5%.VOL=LuAw3AѮ٧/҈"B57"~΃k5~y{t SlŬ5v5K3ɋMAqqQx' M\#Cq"ʡPA__QMT?M8I$QA/]k4zZhFm|6(ǾQf.'3+/'D྇N IfYg=J ow֡;2Ǣ"Ly@ 5`]6n :I}e`l~Zpa~vXxW/FC[ !~Ud)T>ajo^):K`*MZS{F{9ڷW}71L0C|*l)@]e^uq}NCR)}!},;cf8 .P umb?ӣ5X.RCfйῦg)/I3pzr7 ƞ+FMflb|yGNEM,Mwyl 똤{-^,~ 5iu ⨇x,pJp7:,cݰAS1muTs0]1ُc o@76iR3f2;z7}'Vf= RM8vF&{=z qXV=6^;F\(&3nS7;/!95RA< ^½E Y-p`+ɽrl'M%B@I5&QJ1Έ4 K\ufm1\z]fK0wwoPG,7􀗄{ݵRO}E+u =?6|hha0ڡfH=ɲpp:ؚM1w$8RQIܽb0=41 |HP+~~-VBTςV;vBzǬ>^^5)kF.$v.F#RbB|sMp(JC,$6;Q'TBɢ rolɐ).[<ы^2|{f¨c2Qאfcx7VOZ 2ZUQI!h+:mvkuq?$:cizUa(4dG?K8t򏞖`9X;G͜1}i2 ޟwDg|ng<}-iG0kĞbdHv o X?2Qk|a% = n~AKzdY嶻Q{;:AQy2}U n\Gڀ&Wdṟ"9SEXG*90ՒR)t(9-. PtCOid9B+Kn' nJD+G&h%3rYXKۣ; 7i=yl{W}P<)ҧΉ#A^`]YB̥v}H" "):Lsu_όN2Lsȍ- 6݃:u][Ʉx!~WK˸{RK-L~]Q4 %M҆P^X4`,gcæa.qw]wW'P8->d$aNm]܊<$ {mƺtW'#ek+HóKX X])r$g E>1#u rn,Xؚwȶ WnKSKSrIr88iZnv Yf5\TZ, kjvp23kkALvIL&ca1XG ẅ́u#-#oã3}A=zucp `(8* GKzWo1,T"&NnȜ_<%{há|&8N]Y!# 얠DFB) <@oXߍ>k>fj rNlUݎ9Rg8KPZY~8z>a -CRDn-dD(jsl;~"`'dO(ܝBlT>M-^XӝG0jaJplUPD۽^304e-_ Iٚi1lKXxOhASSayfx78ats'Sؿ[|Eܫ-n[Q$tu iS{OSlɡE;w5moZ7~ AF2zJw)\ IL9_is"*&q ;9 ((|Tʞ6"6p?),% JƖj#KDhS'(|+C@xt4]" W Lq/[ǹȢKbhZfUJr"p*=̺8w)Z3Vh~34;M?rP$2Y_$ˋ)h3l(wH '%㙃Yg]3}茤[DȈY#)&8o?-q=B}?▤r UWp})ٲ1V@fmFdwLf`7g]F6]s)NRV(X#!Dyq?4DUKEr쟰6 S^aud+yl e*yګ4MMGyqӹRc2k!*QCҶyQT ѽI#f51|}Z*%Â?_I(d:>pE"Ieڳsba5.!뺕5@)I*0OȄKi-D'3mF7PlbǎJS] k9~`&?v%ϾN',:5GepDg_b-pY5  1pc$p9> ^ cDA,i ne-qOhJĈ!)\p!@_Ź.MG%0kqD ZjyFtlbA`gt  w"BV)gbL#V_,%Šc'T>JSzPZO;fr(ǣYf.G/"'~~NU-,*<)ѡdsj V^$ybA ؚꮇp<`>‘-"|kּ.ZG/ "i<{t_ )Gd"z}+lՕ[A?C҅Iگ/L,1 &G@ba[#Ǯ ]ٜ0.H\r )JԖ@n3e-d*0xsi;:Uob0M+8}8PI?˭D%7kS8'URMwE_}[z̋#r{&8҇ TTLIԿ~\ [4+S~l/yaM[ti˰xٮʽjL= !):]hF \\3H\keHE:ܞ_Oxh 4 JwIY˭UY 4β:[N4+JM_(:1fQAe&84ِ8#7n)z,,89UdWI^h2Njf*EeEgU /?yǖ` Eqndݼwr^50y`X/6v9OJb8:HE,SfN[i@L< e2:wâNڀ7}.~[wvb;<>Uڥ;ɛ͆drS:%F{f!2׳ }tQƏ:enuҐu{WLJ&,spx9*93F4 )z㧁p'Qj]H MepK_)H-;t6vƌUozۈSDVzuIEHL ߎ=oq8ۤ*HbFy:0gL5J^\lmX<"aG]^qد n~IIYeٳ\Aѱ8T]; W_Ns |h\Q54x 5HOAXSsׅLDW骞K҃EW6N4uSjo]>-L_ڂG]))bK<#J!ԳኤIEq! mBWj~}'ڌu %L!]`X0>P$0QԹ\2&!]<}$?$3nf,Uzt.,.X7n&Ah@̺"2<(cnu )0ؒIɏ]M r+ㄧ6:WxЀ6Q7RcKS1xSg&x}Wa${]OR+1ȆVӢV)M0,`=r%GAtZg< "YoUso6ڪ upIjmt=J 3B "0D8/)6@J"(RrAwBۥ$wVh蟇Gf%VORZ+ji^=4O\KH 8w5_k}:71?XRVi },V=ˈ_c= Γ19tB)g/b0|%5 aI/? (?QO+u34&O%#T9 %)B#i>sjۃ.p i-,L&b߂51IaS;ōY. uDk "!6Mo/Z4Bvva9 _ ax@6[1 ]V3'pBCvkd/<~n`4 dT٤Dh 9p .E #/W1KOTz nK#{ѧM[2ˮ|.:y-h{ , R/}ZbJK,X+0Z@FQ9wbā.#3&*[,?q+,zR;q|VUAW& 7xLvKtśH8.8nzT;̛-TEN.)s=ڬhbi,̹gUTU @jG,_x7fDhC_&*K? g42%xɁt 4No eV2r$JȄ=!n,#aI9~~S|Ÿm=fv_O+iM> Maj*M$8G bj<:=~VXRIiN*1?OeC9H0q^e*iwBqԜA  f(T_k1p昜Am@:g{ ǵ-.g)&E:ݩA5Y0z ^W l=S|\_ʆ"Y V \mH} t54D; 55BX16gȇ"DQSyA:1{w֛ 8Ã9 3> 4ŇJqjXǣ Y@w=_=OEnᮢO k rKP MWۢdFł4em]p*~FoQA^ю5X{׻#6c;^μ-oSȞwf O]jZDW[8:qm2@ DP#g yQ >] Β$gD-^QI$yd7QD"KQbXۺjl3'p=K ,VZ)S.?I'Y~#>9`)& !o=JYh%y*L~8[\א7 U%S\T e]L\Sf^LMLbƏނ [Yt[Y'-: ɣaҺ *_B9x. I8{& 2qm'Ւ\55칔MBMG9 =!Xa ]C0΋tUNFLGVYtM;%sT9y Cmr!|Km =1 9aj c;603C!FUrp pK9Ƴ \0<+↓Q73_#?<^>xr5O%-\W;cv!N¥&2J j$v8o֫K"oq QN%gI1%uDCe /o!"&Ib{Ԣk cmc<4?<ٻZ#@$p'0-s&VgXFXL`vA~p\y:s]mdqiӽ>.L;grQqc:RRڄ~aI@2M%idL zy5"%G3hT􄁐M1:rViC|8_8jx*~6:FXCYbS !K_'c4@/1SqыNnC sq`M)b<`V i;~. Я8oC^W '  P %y <1f=9Z᦮/3*J L xB62" 9Df#3]0 0GRгO^d.>k:J)y@YrOi!aSd8cdĐJ0{F T's8 QuT#eԽ!p4YZb_ub"N#Gʗ [u=.dC2 1PmZf>Jq+"=~2\'b`|kRAyӳm+9([^NXC]ct=~Ԗa`jH~\Fgێ4'8zXaQTAc[*\K훋$W)0q)mz{̓;=5lr|d- '" w3:O*p?ug0inG>aQV1(9, 2s o]E%Y%ȼ_a!ʵn`L ?k2)H=rƏf֊还ԋ8kөV=FnKQo}zFSOuߒ2PE8q,o0+Ųs]e.,%uYr<Cq8)RL"/i[_hzᲸwz>Ix.vD $YiԷiWj˓58zܬO(ƏpC:RޕbJ$.QnYq eVz/gDaWx9@< 'B)8+@yIޛ-s΋ɮ,Qٵ̅%KHmߔ 4 5r/-4l9ؓ_H7ʇ ip"\7e;F5A E>9[@ .a FX.WnRd0XܔN8G}ǼqZ5؀'gxAB5XzvާTK+^h)קocbD/a=DM%K-a1@/7Yr$C,P?m} \@k44'j> r:rEh kl+)J8”ΙUFIQ R +ܵUm}6uV(G"fy%nk\dk^naDch7,릗]ΥmilWR1Hu!@LcQ+y=qLpeѿ+e蚉+.-T~LbInۢ0#D#djeXoIJYy; IH3$ʡ~.ө&-G.ԓKzG[/ 5ݵ!ryFu62@Aإ q %?;x$|oSjQ]ދI|)J ҥln{0AfڇrtVcc`,GEcwG+cY*'ZB/,r[`|E<H<]bŀAgq@2==ȴ9>64Ť̼ U[@)&йaɳdS-<`̏&d;.w!>F*/GzYƏiƶj5) KE~qHu EVKc. &\f aR$ه"EwfdfcNd@&ıR콙jZeOB\]],_)VKQ974+p/!";g1\?\x ڴG<(T 4ls(M޶*3^ߨW(hϱ1c/p2,ӈ:MKN,P}_=B7L7x8I DIV#Z&t![ G5q_y EOš3vlc1KarMFU,veeA m`tZ!_xADk +hwCî4M>DtR@+-V"yPR iԦܽsڬ?ų#q[{v9=Sr~RٶI I!x탴LhEo+kVtPT"/gw]$oc>-(x,!{gfZ {w2蹝U#W6-  Zn#;jvEɊl0YP۷ |rR1xDf!]o2 L {`7o1QZ.ήR,W[eO.ϸK;!(N"2~zn6]/%\V*mw>U.OAP NtxGsq.1.vABvijLщ,gd'%AUQc/)AܱM.o6E[KPu!G/R\y(IgD2qd}?cREd84VvCvG vG+]5r04 ӥ#<CGX>pM )«&0bj,E"v#uW$NC8N/(ĵ=֫l[boЗCc n SQ-c89C q쬭R\왘$~VJәt>ƴjDF鸆V@hjttUgj3aFu4[^Bay;'kMD cڙhxJ?-V9QoCX*.xKl] ÞG:la`or F#͠KϿ*n4kp9G)1#݉Tjjb.wA b;%S\4!\FAUF/_`v˜#s|9}y[ @Aw2{xNԺX& GڀY#ŌuD&ӇzOQS]j̨B@4$'=JP=dDר}u\5%|`>PLi*R9iz*3pUkon//͙A7Er (r`|<4Ax Jޤ]HeJ*xam7-q_׽/w'SH$VXJFx }Ǫ5J2? nxEp";Fؗ SOLnnFd9[`1X|JI'(l\bP+ =ڠ7!o6L lJmg#~HҢ̔nj7Qʶ/B 0TL!bN&cXr19?{+EkU]SܭQ!0_Y^Udxm1' ~7RAmxu@Ό65'CN]Be0iC4O>fI #}mcXY\!TF$:sOSҨ93o:N:_ r;];g AH6&X>kgN wM=[ֽjU!9P"K齣e~fd(Zk˭am` j$ h­*~Uޤ6է~4ź\p8f3'\ǙT2jnzl,dύNR d{ ʑہTc:cU)^@< "|Gg8CM|ae )8;."8i>UyKg*鬲 }uV%OuzHUaö _GG> ЏX6> "k`<L5g0U\S+%{tz|gd432Ξ jܩVnIL>\apBM!Kk]/I}eX}‡R,]5B*5eY"+zZKR~Y>xݠLDy?T-& JIM^'b3l*/hTuN ]Qɓ q1<{$O"w +IpPCtVCLw@ōĎa56@:Y9 Da>f:ACq3yQD0EUhgp]n0 N!Al1s L>9Ԓ7)b>5X`p==hd>{'3(D,IY6UJ͋1nRH&])lm(A[Ϋ-~-y8s&c.ĔBAn&_vpOr0gIѝѰTpo)8MPuDm]A3$WanB!_Oi\m'uqF#,?PFjGCb؄i_́C1dqCiao/U_'sۆ zK_bs* 5#_ $fKk`B8f6 >_*OD,ps<+'J[z糺MyoC r{UrW'b6m E ~LmEk|:\%xq ʩ; c?>ZT} (`؃"9[,B*>x4`-K'yV{gJLg,}pUwHЌ 6B2xD ߸?u-- 7Nڕ𒊿ۄb)n-muč<1g!Dð1|^YKݞ&<]S1$;9V:u ;R \ɔG~ e"̯M#/(L:=-js62ޭVe/ٲjӝ")Q@ݮ[ t^̢:]]^d -kt~],^*)Fy+meY,qiR8Δf3|ŌLb NG=5۷ ]71~K[ICЦG/s(Gu8%vJ ğ[BuDڀsZ+u( L:!óL5ZI iv?ÆR&.>?3x8t8Ϛ=̪P%٦;Lk?^(}5& K7znޜ ^u P]Y <x]?7Pvȍ2F,R/VUV(+df^O2fJb)}N<}&-x/V5r}›= p&HYQnFz~yӻcver~ XFZ{et}g?+兴<@d'?Kﻸ Ӯ'"zeb)%Q]rë~ Ę=A':IVމwclKrB1A9^a:{D}H-S=D&lSdf#1ܕbU%(18y'9ٿ>ac 夕iS\ąp.U4w8[!~n\Ix!reLq2B)4<6W´ 溮Ya7}J~My;Fj5tsċ{`ggp􉆃: M}rdᚱnjsɽkm^-H/Av9dX"v5, T.Pibފ= 9(2e*D5`|-DO^)rtDzz$t2kn Z1 S I˧S^_?f#,-z;=6bq 7@ѓ8s']NbM_\_TEZ9 J~}Cqxq~#R3cYhߺv#WoY @ ۀ$( ǎ q_,ku(צ*a`h-F8(U[BZUd9lki˞~X / Sj\Z'|0m8."C5ep';8Ba8i# ErM =k+ZxyfP.>u]S͓oz;E|K4ri+ é{d#o0 {hc;_U&@GNZ3(|<X`O6D˹UtO4[]R^ڻW(j'@W/#{GO{һ&@nôw".#M|sy~Rdǩڞ4V@r U}NQnb%·Q[ŏhx&o[i0UBLimhSTҼ\ojҜs#e3rs cEh^i|y2B#0J4"]v -]ΖeL:f2Ͻ^AU|qt/Ja{sEч`'=G[L, 軜 L LUL,Ļ(Ñ|?'#sYe$/Ҿyܢl!:tݸ{AW!=ݿt8L7 NI NYcKqsK:;ܬH-;`SR؋/2+*NǞRs^&7"8YnJK5C qG}6,gC?WO"1G\˳p$u&db( Aa6ϧ G;@9(Fǔ5\:6fʼVTRů!*m􇫗۔5%k?px zvrj,uHWYXkDR //<|gXmg$vP\9w,1;<E;g,o&SV~I70!Cz˟lBcƒo: Uh[3_޼M]Y(vOv{HKOrL~r۲U5&Bȯ[ZكzKBci~F=z"֋#}۳UѮq(;G]hfՑ3 *V'u?sjIV;~<&ߐ$i^Ʊ%B$W fg=Gd̥?4] vBk : sdw402OҦ ] x\KyhL<>!%T QXPhe>\UH@0lzVVue_td,$mCnw0q .ͩMsHyVg=T7{fG۾?5cQ&y=w*i٬1hC@[rD+âȉ_3_Q.l̢ÊlcmtNP5_ie998<7"UݹYKsh;,^oDtEX 0^XI$F3ol{L4,ړ"ugrjC3޵0r%H-G.R}T,ַ KUGAԛ/Ҡ;w^nUwZ6D?@> Q.!IC_]3#UIoL%$54>-M":nR";V6zKp =HR4@kvR9# `B0=Û/n-QˍlT}`E㱺% CM}Lzh,/7eP|ߖj2(*ktz V_QPeR-=rhCrMc rq#aHnjB(p7] JXDC8ZK :(Vt,vӓ TZke],_a@eaCB쮙vd'`䋝,;t?p|%GTQ @PE`)` O76jE祵Y&/WhvsyjP >-Fpz'7&Lk[L=q`trD?MhhX۟h)G߅/uv~s:9sYHo-6p0Kx2(1`fEԩim9DЌa&5̉{g 2Rݓe7nd^3*vӻ[x\-4a2-\~˒Pe灺Cɰ;]2)OJz_Ml!ŔQa e.CR=6noUvO&Ab]jL"L-D[@e5u +}3Ъtz/x {]^yŧ4(s=҅俨 CNPoy[kfr n]KN7 Ӻ u`&o ^R[A6}u7IX.X/ v*]h_^gK%L2ү@B s%YGv0yQKSdB,ra~1:MU'gzoz0QEO=w|x)1XXDJ`jL>xho] ]ʔQp$|MvhOzT$BnsE*R*Y vGWF=ߚrN O"G&@ldЖ’X>yFsw4+%X6|DV;Wv%~_/]<~0z')v@O~M=_(ZS<CLsz@Iw]JeiK ,[viM guU.?BW0lb:t`tʤr,(<)I`+Ft\' W$g:7E#ʩS PbHr JŽR.xT\";'ܹg Rt8C B,mvĔnչk60Nndyu7$xAGӦ}[jX$ѐs,vXԉ@~ !o ۝r2tx !~뻇Fku|UQOnW/ U k@`C+/hyM75aeR :^VFE?@d-?>:}"93P.̤G9ԍP,yyվg4>\Zۄ~ VZ4M]}`RRIQ$\BE?mʶ=jn/O 8HM{' tihn , PsMl^ n♣u'YZrڙqO[&RZr+Ec4oVηzYѤh2pZ1<ū;o5=#mQyCAM.YZ4좆e#aP }i}o=rzxLVNO;Eҍښ,@]jj/ukܵM--*|dE%mfbEGig?e[^5$8RBΘ6jhz򫅋pfYܜj ;EԧDECr;zZ翋sHP3w# yQV~_r%qKal_HW8e)RҞXs?zӓ~J0;iFNǮYS|D,y>=usccEz@_dD3mY@y#@8OIb\}V6`%|#}x<]eBӜa,%f~ (E3]> /~\}# {fNr)&N% ,+;fͤɩ Z8f v[Ƈd>i{%Nyds`Wb_W6èWyp!:Q1B<ۇۍ /_ )7kl݄f4 )'-f+1nOcV<֥0AR3 |ΫѾ:M;]3sLN ;~mt9UP.wh Msd>cUT}Dȫy_K rs|s@)׌!H &_cB"gkʰ Ctq"hqMrBH\iߓn":K?k87B+ FK Ρ GQp5xèK~%k'+X0%D$sV XrG5tES SbMD{^ޏ}w£>ʒx);)ga"[qk{}O&3F{' 6t+tPIzvkȅ dqwsuhEv~" j|kO_VM8mQ}j}&[sn>N OD-&xCo0jc=@LJD.Sp4) !NۜZSA륞>C4WlGQb2N FSs]arBiDV5!qy t'迠ukPiB)t^ԛ//!n*ZamcD\BZL&Ceb* KrlXWPR?;z7\IEH2(B28E=) Ji,Cd/V{:2H7Ȩ4[vq_^MEFӘ@= *c2)FJPWӷ!- ]EV-;{<,2j9!99 2x} MS".dùJԚvm{ 9q[Xp= jd DVȔr$JT8}IɶB9bqv. }ah0􅫵̚xQgU`;U*p߿#"ޛX\};~% AXrN}8 ċ~JSyeHc0G-KF8$W6r;A-W$Uqla$Lt&Ϩgv`k@;}ATq/\һ|R_vYa!^tTc6P:zBK9;gPIvl6xLZ^f"UV(tĎ?ʈDsWysjͦPjK̅{[9b0N'<.rT#5ʖ/']TLL!Gכ =]_/et-E6! j^CmMybu 櫟s5,C_r0WAֹ}uI11%!_Si(Ex:L}`CNY WMGGxRy&u {|Y.E/*y*Gӳ( VS&sbp`C䞄=p\UO~QWQZiˢ Nk c x=:Q)(mM5|]TQ2MXNb/^[Y7!ʤI+ ?Bp{Zj0˴i5g.Jb%BVqݯg.5G*B8g_`LWQ<,oqHE6+coA:N*%%|1L?K A}Y=fyUx!shv9K ĔA(~8_RC7x4_m5h!J[s7~~^m Jk;Gb&䶮KitU}w CɵTJ)|FMD^4[e=Y;|Gɻ֪^ՍckV `CXDe6Eϯ]0V4P&T9ﲅVXI+4Kgr{":7f&E<$>otW*c_ $x$&h]Է:t]2uz1IB:{pQK^iZЍZi;bS׬BkG=3ZGÿCMNkYӬLxi%)ɚ> z7ycEbG ,aw._6"Zw4m;G׽aaO[Z.c~ &W}x9vN` jI0m>G"T9%gQrC@!z{^y^pg& ) ->HU-=W`H7t#0J\Uy(AӪeud^fK]Sf/=@l7B xXCÍzR5⚁[زd"8&MU8i Νlc&T"3 QWQ쬌J #dG]p[}@{ν|o~m '4kv+6_C :l%y'C5,YKZ5T*V nL;?;H|l,v+hkLp+S (%zÆ%8^Wʉ#߰ lRn%Lx@= hjyX0A8!9,5b8?i/1le2,z(VKt7[/"hw~yrHP[֍q7=Ql I*18F5^w&eǛxkM{MU&hNLN\HZ Ayw!/3rqjjÑls)OEI6D0C> ;a\_JA$na\\5.GbVVC?r=' z!FDyrM,TT7ge g*.2J,[3—iSiU<*1C 9p lsJTv&q|n \yN)xӔO9"ɓL$2*IR&msFŀ@5\p:[CgԷj|.Wd U׭DG#~F۩&G6Jwj/ Z|il!z@˞"OGj7&љn!Ê9vV%фc! xM=(kK~rNwB5,5r8ҸߍڇR[>OUfCj|t{EsҠCtMOY9QOyhU)4AϱE|ausbҶ"SY53gbZ>䁣 ZxAnǔR0>7ڌ0_@َRu`:A#dl{[$?1ur3!( (: BV;@2T:SE˴eu{f\-BA[Wfmw[ yb_ hXۤt_GgnǞfzRB+;ED ʱCwO`S {έQvT+xT`@u~׹-pNB,FZGh졋9o/\A-sw~f< 7oa3݄3! {: .ឬ<.!o=l "LPn ί$crvi[|Yve?ů>WB;UΘiN$ n~>|Dz!\Sb 8Ty;-%0=ON0^|e*Dl3-F/NӱT!moi-'rn^q^D''/|PN蕗yȚdňzSh.cK~&G{>e#x߇!p ~5r9vY(Z*xܼ1(xЦ04転hU~}UbݍBٗeCRWV=àJgQH՗elVeC\X2m(!0"51k/T*tYY ֱothP利x玜;S<>R(0!#/Ijjً#E @nancNcaV 6VfؔB(_Kf1L++`>Mvc$&!j(Ed/maـp}BD%.qw6& =! B6h)8v{{crpC!3Q@9cHVrgKsj Wl\ 陇4, 9<0#v5ĬhAeC`hIdYI^b*:̉j%?L} LMlwf[Ȭ{6(ʹ!"FH[|:1^M]9.ʒX#|71S KиgUPS(S~ e%ړG'$~J7fV)/UaGJI]'g{#0 ?JXV8 LstQ'XL0rKgrdI w`Ijeb󧿟tG 9鷁os|kʖKtp7L1Tk>͇4*gȿ8)Ja†uv4fBZ.;4EŪ%:{!?- rџܻ? 􅢓<۵5nMR0Ry}+~4{'9 DBC=/hmx3/Ғ!@~Ҝ_[M~hɖsC b =CՐwg R gUz}t" xtpV˅7{('M`pBmoÆU&(ha"x.Wѥ+,5!UaHNCa[5ub|8<;ڻS-ɨ_׉qPĚ$UQd⇆_mh.ĎO{2^U\ Y:)\Y!e$dTx{5tȾ QGxԐs S7jQ_?s3 (b`~4 BUcJd=)DwmJ;~ 75Rgh\bmrዘEwj|f[Qъֱ w-1=UA\jxRb<՚|2&Ji_=DqM:ж#7N^J|_,.mThoz3lE@-{eEZdTj%*4=p iQOc "+pFvܘ`(3j'W8ewZpG$sz9pڞ'FS*<xםU"Zh <^_RB $2#kGs?9=23(+>R| CyfkDk?F"¯F rE?Oڠfyx@ۭ(\;Q*ջz3^b44oS8cqa{$hMɵkBf!N*)I <;yJ󫱄 T v.r+dCc׾Mpt7}o(sL~% SP_nVP'FTx> ~ 5_O:V%DS 遶Z[~G7#ZaxHB5өjJ:'eqүq[BH81؎*9|Ġ X/IXn(.\:qqT^uܴ)Zhq'K#~9>S){./5Pk|w2~R񀌣Nkݨ/헞6zqSNQG_I(Zo1[yPlvYzRuuc*鄅hD)"eSyg(0IU>HN@xr֮[օD ;HF2 uG&wlSHqo TI<DIaiPqgvCu* *>!BYcC^v/|A)w65e 6OXoa]@_iqc05] +uehj0Xb)%{'&3u|t4h)'ric%*^Pm],u>m[g1]5w*\~pt>\!K9q%=p9cE2;)_a8ʊ9Y)˫-<| 2þK~zqo Wӡ1rJ>>y}gŏZiDŽGHl PN n'"DWx aoYyn+ 9u-xB~?C"sTލT*r(UmF2L)?N!Ŏz>86Us& ⛣SQTʹa(QmK}\ e3r'f@aBvQxtIBڊByD5{/r6K]^NkGLҔ7ݞWdo Lzm'MkB"GEl=.pƒs}ףkk9$Jܬls]Vߕ# Qb>Aja#K c &WşP;D#CA)je8J˴*w [!a ?)DDa["ITԑGb]6s-D+okhxCyo@r瞃,pS-<&^+ɍաecw΅i30'֭ E9-d7Aux*:? pei!e408d:҅-,FT$v#Ur zE~³½Gz!Zvzv( :  Θ!3W`qɓϺۼ%/GcF)n_^u>XT'PJ er4@} uƪGn?~Yok<]0(kAy͑V,7kc4.,ȡ Cxd s9Eĕ#VslG؛K>0ӿ]4xxR FJyƏ] \,HhK)t55!޺ezYB_VTeG2o&} Z~JD=@Yr8|kD0V@L6dAfbdV$Kτwd90$=z7H~5`؛U|ӴJ;z)J"^&"68wLqU" !z"%=+XLaR<4CUA?ywd3 c3[G`x:T!}{~l,[2)b^;ÂxYR%).aL>VZnLœXwА7e7ν E"y3s$ WqÁG|;S>(ig GcNѯN Pq[ ?Z V-VpI+9\^_Gn56dcj,k.les8hņuKE: oJ:q=RD <`.C)F tmg?p(;i,FU- Cùԡ™zL_4mz۝M^ R׺AsYCB,93햨ةD0G"ZǗGǨ)2y@Zg yan62ecFOSo H|`^t 1Lǀ>֣s&Jt[ {5 A[DZhwR)CsDϜ5 %7YWbܪw`a3Nw6IЪ P1g3) 췭ih"SdO˗C'5TKGT9Q[miQ㊏;̛F&+I:"jDglMn ۴rm|%"3tk'@\&B-w ̨@8M.ۿn}rH4ZMboI#|"b'W9! mZwvF 9 >whW/J"*<۷gc.jh 93o.A!AçIg˔3Nݰd[l'` JRw,"r}TSck1/pUBdGrH.\t &QhP*#ཁV7M2ƾm̸D)MS|VLBtNPڹ65Ǟ=OyP=o/WB􈲘n>jkrZT})C/=b]1~ټwJ>ja5%օxF{p[vYDŽx8ye6(M/` 0$?Ge"o2b¤ʹj!A 14ˆԖX3#5>.h@K';/SE#mƦZiNĻ `MaPwq9d4pϹjwqӒyBz<= **=;mԅ"1N7N 8|y-CiڟPwJvdh2IqWo,1hiuF?y`/Hp\4MH>` V 4wWSdC?f'Cb5—~ J>]޵^{jH~Nʞ9,2N#[5d8Ar,{ȮA8JyR#E`%U2'pEMݟ.Jj.rOE, oh?0.=UU{W&PV\Kq(7Է40jaljn_?cBsrYȽp?e;x(14s-FgeKǺ%NS\ߠm?87[ ,T+Adf >CThQѤ7cc(q^7 e~WcxMz&+l.˕k@eq/!eƏ" {go~p9cTMǗ6Bjfj$c8V?:?jr > _fbQw>h/EWN:HٌT8d\&9U92饖fT'z@&Li8c@X]oS"ڂsĊzW5/qc\}iK68[>Yfv6P K|U8cl1L5+~$;9**s ak--ޅGU* jJyr,[}(+GIrZkjf̬㱎pi0 ,M1m\'}!${ ]1A[DrYeCRϙu3I>p"lI9j+H$i5 ;J %&'C6jɠK{a<}c6UvIGiy?/ϷN]!Rq!ťFjQ]舎7Y+zEon ٧`Ѷ#4ʙo r#mɸX<6|B@_›E0u/LGy<Ҙ22C_˗O& @ZS>!9,F͌N1':QbKۙ34ҁS\ysn't`n^oV* B ^\BHYLsny2~%1, 7# e{#mjΩN[ jOBAag$57U@Zd~At'ki4Wuw&Z&Ae*AgnEDq d)#oPtl:rbj.688[2${6K+$rѸ+~S%7}+ ̀dfd84G]$ 04I~ wa.E?tF9 JWHȤ/mҝ +hUܷНuJ=Wt)ƻP1g*zӽlC_ܚnLLl29O)['[xX}K2+$_)@8RNBy1VaFk uCU*REcv7 3e䌫ב8:cTOj=KY&4wqo(%t\R/pΝvլARP\QdBrmF/"C: Hޣ*O;UiG|܇4?૦ ~|]mwm:\Du$fn}#TyL_e ''9Qmp Dɴ]pJ'Ç ).(Q9b/ .5`^=Li:ko.9U}9fakh6021@8N-Y/&R.8PsKߴ~Wxgy #P,0&09 {^fpd2cVl-hawF@dE_駙oln5p'hnCQP곜 rEYX 7 z\eM<,97n;c> *UpR)E%ר\j\J1QM:+uC}# 5o%ru7c0ߢ3F2`\'0j|UOo?jh#bXb [J8--[T[qUNia/26 ^S]J]:e$(׹gHR 'ӵ=kj{rיM$*W͹Zt34}]yY>Vc4ה./|L6I# %:l<lx͋ i8nڕW#J]lz Dc2I.ά`gBN| pcѮ2f\@`PP&@H,0M`41 ޽1&g'CܭR/ $WP; z -4O1IJeʦpm ' (jecT2LtRtĎ'0)b7 )CۙS 6iz(s|uk3QD`tA$.ʊfi9~岐$waF]Ȏ+<*Cmq`LրDT) EMM1d)/u78֥^1ګ3;nрF# M@Xn б6yy]ICtfrk ,pJ Z: |-?ZEp ]OQ V=PPhJHwƇ{F=:J t!n5! |$kZ,dp ,`%ׂ\ Q|˛DZsX1J̛5UE1nA1I43d4*Qƥu⡲o|R8O8y&)Pj1#84ske,tPD UtǶ79$J;tj ob*,To;vk`ƼɆ.DPv1GތNZ|NpX*/0\].c"Bqvm&1a҃iAmU2,aykD#eSWOUpK"x_Ky,cY[aˆ~B"JmNu NMNgoR*] 1\xX$'w%AoҹJ0W+JuUO9 rC%7v0C`2vI=A ɽ$p@`7Z;D8BEVx2 6| %4>bfo0o뚙w?t-7-t@lϞ|rRQ'7=Q%@˘h!zC6Cl)8/Q$#X2Ơ/ù闟ii2<-3I &afgX?o}karUŠmo5~[σ:lQm$!ak*26_Jz>rKtM5{E bYEGomA]楊IMHZO4nSC]TƺfSk9tbؤLuMxd,H֑j]Ҕ~JJ7_<2DMhM+TkWRWI\Ȭ;pl{jGVK<~;}̉MxX72'ŏKi[a! ߞx Q|哚 *r3.s9K)rGizf^-nCDB9䱓8t49cB؆s7t6l|4~g6ґ}B]`i&dijʤ7/@ﵱ~pC=/~Mq9A,tKҟN 8}mgun.o7Ѿ@uZ;@k@Љzmbl ;c4S(*IFl W;-Z`E@lk__q$`4%iZ6L1q!T\pG{gxK41<wj ˪}_RxzFDc~%c$ԘOTd-Ij=Rg٤MCJҷcOc={d  :?#QHDsq4L (Y R /XMd,`GXMrRՙusΠoL uFOs,&+OcQRƻ} VPf;e5K/}v.UjLs[LfR ƭ14Lh=LN!Eϐ#<$0^lGIlrtLIu.)@~#/{ @Ӂ¾1f _~hl.' ˶B*)Xu@.1ǀV2}ms,(=<N؏C/x )K>\ z|]mܠD(tOH5ʥ+&,}횿`khQ8Uy: |4I [@T0dZ%̸0w|ip]851{ O$]&tV+ WŘ1$y|EF@L^aܢrR [?}ӫlMD7 e6R–MC3E|Y??^D[-t?O #רyx|MPQ,EG2J8ޚ_ʲkE0blqrǾ~qdF7 Ĵy(!TO+> /1uTKx:Uʚ6^h( $4>_m=*SWw9+_R\˻2C0~$jM fn_,}wN yMW՟2H8bS@a>=`.an%m C5#JbUXb8̓*}I%@+о,w'%' ù-!yO⋡[`"<sz8C~Tyh ?^1dTlob6h3s>#%}$L0l81[sueip1Ded2ݲ"O w y&-zna `¶ .@L[%uw&Nª0sUSoie2>7}u;Mn>,#ȃFj 10u7Vj+8yoW Q\Q9E~W C&xbwX[\ §'S~qټ;禴 K͊*K M@=c&3#&j1ca݌XVEϷ)zȻ=Όɝnk%E)_oCl<hWʞb`"8PYM{pj, ;8ƣlے_wIDNA/^E3t8%spR9* Sf:Br2R0ooZiS"![$ʿx|@-7{ؼiH!p+1%@[sn46/( 3`.fr-p"/7!u[!; )r$-^AQ$86N10=+DW'/;]m(%Cfc!8S2/P3 w ]aQzЙFb-;gJ֯#õAuQMꊤƧ?]w$ SV &'gp9ZHjwϮʗn1i%<_w# ]ɛUNLoQ6|QOis8cn/xrѭ,B4B x~9i;./Nfbu0hshh,"H"T?L`qa̿jpl2Ch~m ːFQ]caikZjxrweH {w4:pᕭ:HL9F4L8@Tf'xZ BgV!cw$Js= '#S|omZY]->zӵsD џ*uƃXFoƷ+= nL➶,tN ?.S~xmW7hZZia%b)tkcC#9iG/8~uw{k/zKz"AZ$7R_BMu6RLY %{30/ N%{o%uޞ pu ENdJu!l|z\#tKU~ 菫V͖ Q7M=9[MX%u[xZ?TS1T1'kt #NֆoXY׀7+zUA7tϋq['JLOҡP"Ì (2_yLFM^mOEWBt χ[Ӵd"s+<\&\ )AfiS-}phcx_OyybCVpƄn}YpvHON"Y浽9V@j?c?}.>(n?_j'2)<~-̴:'mԳ݇В=4/a0%EWȡ_ȇ<ق{43!MaLcI\L. t K=d2tɊQ;X5_Z|FC8 pa _+O l2.ukP'W:KMBc}`8KC^/?3UbH"bڇ3ڷTk[bNM-u^)(&8$?L=Sax/[JQ @쯐 jH5b^<\;; es~&m ҐR@d4 nk05]#YE\DB%2V%T26XdA p Jx3涹YCugJGTNӷa\u3K`%5VL)ɣ>x[S᡺@33W݁\`5tx!C.a8֖ C& խxkIBk4܀rqW"3Z6>vCr {*nu.B۳ Ոߚ貗x?r]@Cm[vgЪ̸&Љ[@]‚c#yCs㋜ F 0`iZbRZbn(&i ]}Rstk؍0VGQؑfP 1z녖KѢ7ibAE~)26vjjRQ>xE4qDɳh6h`g_VkU oC3;pz˺ ªRig >5ƢWuݘiM7Cc?me,ȉq.85 $^ߒ[zűRGM (#avVW 9Z0-VO{RT&a@=y1%]el(hYW "7kA5 y[. ի˸Wh!۰q a9*Bv ǯ\ciKW %n_hM ı9rQW{Si)V͂NpF̽|gk;඼wVhdYMMgP)aὮ<>b@9[E0e2dDTz/tv# KsPoU;LHdz*ߏ>ɡylp {VԲhC⁗'5dݻ\Zc$#jcZ4~{ABHO$Ⱦ;pnNeGW+,˹C?vevy(hNQnfvWD_`ADtҼl-x)25Þr2Ճh%R$CLd<}7iHpRՕRbƱ固"e'5#ij]T6Ll\9R|168)`~Hsxg]tD*RK>cER. Ia ]S?+N*O5ےH^@ )vwt2؜:ۺ 2HfCN1k7x˭}Ax $o5^~ mԀڹ}K2Mo։X$O(xMLyv%f9b󚋦 Voy֧[*q ͪANODgjMoWE/Ly/H,Tloju祒6_=mKn͸P2+?uDžYⶱBa%pN\ƆOv3^H[x7y+ĥ!IA%ˣߠs\髴D$TU0oe2aחHfY;EdPe$CKF6i"됶*̸^#; (+?5'n`7_iri2efGz4.tE!O^#BڏC=n(Zn퍋B 勜B:91c׿b9:ii$Otϙ>A   8e`H.'kxG,Ъ>w)؆eE4p2#e0%n\%dch{kK'l$>.oiG\S^7Err蒌zF~#k'LHRb5j%dX`j9BVVZ:3?/=p,kd0u7ZvP5H}. x^ Iujr+ztG[ <729yYXn*O0vEH #N#KֶGɲIJo;93dRV~@ߢ@'/zP/k!\nCtˉKd,/ݕ[u 9EfCn;?.aTRx{l_ٲo݊frJw3 tueqIC;#)xzKK[ғ̱=]YAiL(yY j6b=+$Fϵ'|~=1 gqi>~QL*d  uDdҳJ_59ш]G3?TU3fxZĜ]l7;dba>5]&KCXޢ O~_V]8#:;ok6lJ.i[EsRuaoYl>95]5q7fMNcqr,V;w7X o%ݵe"sw Bƽ;H0SZJ bp$sKx o1 ɄNG] Ø?(e]u?`j8Go8=:&_v_[vH8Zs\h t:/vFl@J`#\=fL?Z>~%V%+H:_*7rl5n%"Xi7|QFH=B39B`khwLN7$dQLsC~?'y~ 6kj8ѧtjSMմ⹦\ɇ* BN"3!%ZGuނ 1.SeX 2GTRB@7Mky$wW/^/,''_LN^Iv4WJP`L3nPĞY%f#$+鲃@ze_0r~Qq&4nT#SfCi=0z,ބvubjEvNp{V)7O/ Bqjm*ihauv gy)Ժj>*JfMm<]2| ÔnW^c ,U9nz1[f !83q8L^ʯ1Whܮ#v/[9 ΄ZʆL=u]H("gEG$O9҇ZҔ:(U/OR,O5Sb(o=嚰i:j#U:\DoI) +"0;9YCDXqnZ?s!9IhQ:BW;5lÿ6Dܥ_#o[Lf7tcvXKTXWԔ.@;2q( x*8Iz{/5t?]Nid g. 44AP/-a@v! ?CI?@~D̖cof /PoVHX9깮sҡE>$2Fޮk~e=q)`v0TZ' X2xۇy8ǧ:|_#"-7=>{'ވ'ƀx)Th( Ȝ26Y:O;꫻t̳H?{T\XQэ@B vcODl4u4L dk[DQI> VV` ŭimR!ɚG jW 6t4xőX_oD[Q°q#+Ac:)MePTvRהb=ibZ]f{kZ_MF%ؙgV\$Jx.Ѭ|@V g_vAHh`n#TadfVER *Qb2ajz`'H5J8</Ce)#{.E|C]/eKmBb)%Q',@zK ,(Pk^ᡓtͶVf~H={/=>T+\/9Pјsɰ ^2,Jrk"|2a42m#=w_<<&iO8Y\PF,(*SO!ˈٜoѥ 9k${(rSYhB٪+$ SmمPڮYgl:nXXŚ;;sśB}08$;Qi6?9T.9_i8m?Ո$04V(Y%2oTȬr';r+bc S1Ba9$`gwp=1 > I-[+g/.7zHV4]۠roQ Q832~ mME;E篴A|/ɊJUc:YƹG2ND$黴"8.%\F&E0mxzz:/|3vu//ДTrA4It~Ɉ((HWO\6囉9j0C?3h DO~r?F{A9Ř}' +O*eݕpU|v Ct@\fc(܃l!d IATLxu0*xVP3yo !:8j5cLPt2z|UxP}͕ղ3>C ̧(ch|V{Z|妶kK,CM7֔7*{@ vIQ Eo w?w3SbO];f;82}kR֋TQh8+2*>H#{.y-4Z{i\GD=L-1=5}b/Om]EG`jXv:P]LaLV55oSM&aR+MoWq8U-kK.PhX1Rbo"ooV׀7> sirlx>۵`#@ x-fCɺsU LqɞVzSnc:542AEamsvVT ̫ $2H*-F:[ԥya/Ƈpe^!xa%aȵBlM#$R *飞 팸R,KZaiPM&ݩn x%9ځ_k勆 kuox{ySjȑ]N>4-gX\@d615TbrJuCc}:/yыf K$RP1G 74βMn" )B~}=գnWnʷvwce[a|M{OY^Zjn,efp"nh:JǢ^x0J#]U&e2\ha|c)4tMz2Xi !f`[ 1]%fC˼iuUv%v'܁1ӱ)c2y1viD6{3/{r@?!VFa"{X6{k|YE!@(v 3}UY1w'>h(Cq-GG8E>V^!MwH0y|*{ 6j/=[%,zc8HgvkwW"QY]]OG4;O$|3L@|8LAu$U4Ҩ&}q:ꊝȫ  Y&6@ +KI!\8QTʑN8tNco\+~r Dy$DuD`;NJ݉"Ԋ&GPxn\׆R2贗O^dyphoPņpŢڿ&K0u~gU8:hx .AKTny"ȹ'0a%|kP1f$p݆Qb֜`Dam7c-ƕs ys!yQFB'Y'/7|*!2qs'Zm͘)ɽ7Q|!{"* gᛷz Z4 \O+ `@f e+ul I ;X*d^-❟_c֧+#iAHKiZCPK`;Q^ ID |NT[yY;g 2ECOF :WuxŸ)4pQ`ū hnP'uNȍh3 M=- "Δm]&rG,~aT?3!k~_:&uYj/Ph+Y0)}(]R1:8)/h[ C@&؋d-=t]T,jaA?= $r+Alo_8m&cN[lI!~6[+;5^-q2 dњ+*dk:Wmv[j ӐDtVh=JW@b`AE.(k~댠GobIQl o)[ZWew+k 񕳚ħZEwv)`H؞8 cq8IV^4]/BPvo|V]PtPRN ݡrG\^\yDSo1<4@$lvy6dV9h|]Lgÿ,qĆջ1E: uAVLKx 9 ղSҪeY9^8=}iH<ѓΧ>lt)f7 x%ܨƖ ;:9+X3ajG)XD Tp&΋{IhAs@0C{*@h 2Ao[y `x$As tq"T\$W/ޤM5HH;}U; IPS?"U1#h33U+Eje)F*1{"LѪhHY(}%Sny*\ R:`_ \0vv3V>uAV?9#e93}п%.Nk(OFbdH}qF4ؚ86HTc#Hl*7FcԏΔ1ٰUo[A( SvyY `F&K/Zj!l&zذKۭ-PF(2c{W (>G7c'i8XWV|"_2* TKqG~-pl)#׳c@')H/8*h#x._ˁѱ'q-Vm#9K)֗&n' _s#*|@103Ԏ5),Y;T!#zX7Q-VfڲR|QBWRR1ua+v~θd&wL})֮R@tS:._Ryv!Òoܻ,@a!xuRaƙnٮpTKxmcBRN?Mc@FGCBI;L_ :*uLhZޚp&\5vuйz)1)H./ǚQ[WKپP QBML:(Ntѣךlbod3vr:x%4k08C7#7\|ctYt\kɤ 3'[&}OAˡHO9X~Qf.AsN.4TF\P뿛۷~/Y)h^ۤR_Iݣޏ$`My qj$f 5ٻ]ooFE5a[Zt۳?1L+{ӆKOsH𫊬1̷" jAa[ A7|ܵ+Y嬰5%GY^njm.95Z;ROcsZ@wl Ж^nnl4D:5)bV}V9^ .olh + )WJ ^,-vYx}מ,.L!aܶYXB:#_h$:u݆]qdqnaY){!xqM{{1u"h3^57` $»W|^F{ g%z?},W)0c 3;P/!e6%G2ë6Q3 $<"$ M _R^i5ipqlH:&ׯ#޷-vJI|IpcUj,H8_7c-!+\xXYbpl˖}jje 8J6(l4lF5$K\fcdw","6fGO&bJUu"J+ U7ZzPEsjygT\`BpݍJvsZ!z!]A(x{cn5m[ nքK{h̼*va܆|qY%\ nTw U~ROd"?NbtA@Tp||4E@tEbHkeBy 17LG .!\`QSh]m{jXGJU jsRH.՛΃RGHd {Xq.{Π䷴lq J+ o>O̓Aoцt.ӷ.aP3ؔV~LӲ„!>HDSS P6IwJ=] ܟa%aOzmځJsFH7ԋQDR/B"Vw?=e-ж]*I/-e88ν",ݰuJXyĠT~2L_t^++6AvyKbsͮv*xZL>L!ݣ%ɹ!7uK'o T{14ǫTv-$fM(a mL-(~_ڛA[!4 TX鿚2-8댓גmhy.ETA2s.cp#FDJ}d]DeO~Rd-4]jj4X,Kz,:`#3 ,GIhufkQ#5U.Qbya>/cR[*İDsokk? !*;#j%Օ-UrMoNspƆ9Rݯ @t"lxz^`ҒibuM$n0&Y׉MAVwtU rY` ~5{ !?4#a)Rt;ClH,($¦mT[Hrɦq}$U̼u 4teUD%/^/Ӫx#${ɴyY'4ǝXȥ!ҠI^E*޺RGsӒ) B]Q,b; U] $m$O[Bgğ5iX1+]   X@ONW -VJZyvF}B7B4^6lgZ0íD[z[ , $ujܪ<;AUnTTSQQKg6!%fy b\縛R-u }i)O,oNCVG;ɜ>zvq)nxޮ}iT9$;F[%&S\K6V i '6t]74&m,11q<SÊdy#)Mro,-wQ?fu;AU#fC8x\uc=9}$ȍ:Yyzg"M;6M2 j,ſk_S9&m^IC%p.,K]lzZۥM2kq[,! `=8ޜmoR5`>G?5e:J^'c]uj=MVxC*׈fޞ>:PEj.{$<_;H,6.~kFTU eלݸg3?4ĶJS` 㟄dau49O5]rn83xG&RߠrR~I8 hk#]kLc2<r PKGEzz"ϖL̾ۖ/| *zkg C] RLC1j}NWI[n|!z!g;ԓJGm$*iҿmV9C[6g#79)c%!U: I5+B;QS,݅7(qGcaˬA S oh #GwE*P>е"kaWx$s7H0Wz{qHtk>k-bQ*]ER Z בlb&F߸;Qf,6 Л0Zk#kBʸt:ѓ=ԯc'&?l T.*lbG|4DvnAWH+ ?u>fUXwy"$5#w?I}ke<1I6X3))#qb戚)~ {Z~]8h/^l?g$>`:07C zz;K8;H`MX)ގ7jj M J&|c4p/"}}o3,_n9.ީ|Kﻂ;p17Pai|pIَ`Td9lVp~È+.]@Ѐ8Ǿ^1ٗں~/aR#&AaJfhꮋ|$E;qҴI:eZRTl$`҈zq;eY[uzyⰤ93ޖx*̒8f,.0"Ye,[=h^SephV}㯭da8:l2д*zgRʠ,avH3뱪wɨ>C_py2r}8*zMXIlwQ"hg\xȉzo3H d"f*DK_a.XhJ P?GP:rKpǀYm akz#p$ =TX0A4qGG* qʐREa3\PQC5 fF9At:Dk'!iz`zWDN]MF 8ڮ@3U }MK6Qz5+dUFה11LU5_aJZw6}<@8 fAV[aWdns R3E77&JOwʌ껽bݟ}ȺΚ75PA]`Ubq3|Tp٠L1?Q#~lssP-Sl|82!T*_M<3鏺 )eTkW~` }8? p7菻 }ӰYGV"TX1?K5F.|8խ\sE@LBjSVWeIj:3G8`FPc4Xf~Z^dV/WLb:5)t Ix8k dmBN #9vZW%gmB}VE b?^R-H\V n}פ9S"?%ĆH厊_us5`ThWOz%s6΀<qqUαx&QW9KKe3h!KY%~)+Ql]C= WК{ԋځ̗cMwcэlql,Рe]u#*@0P5V%1J}SLX+m| {ULJ.J2_P;WQ>^J}dyUu2q/V۰'I x-鷇Zlqg\]\(YT0'} JآPVY5535݈(a@򱗫L2ۇf<͍9Y5\mw,._g2_ul.pE*qWxb75{fܺ{z6 +ƥ`1l9*mL ,q;gf~浥rrUA NC'-dE1eI;ie>-PԽcqC8-`YڷJ7"]R[h2(ꬵL6=A"M6YA{L]U=@>`Od@NDfZ P4x?{LJ IfEw3MdDfL`C7-Goy?ϛ|퍼OQL;"ÿt_\C#dCZ@Pˊ~Wm\ީ#6rY*x3x(kLC ]|! mKÔ3đ8Cפj-y\3*݊!VtR 9Oήǭͦi`^%P"6&~1CQb)*m߼I`S*<AN!vVt~&ԘuBYv~`hFol4 M wXXB]]GچFS9-j,c%a)VwًiB1KZ^` |T!#no}? Hļ [Z|2)քn@lNW=r,rR ;^2\T4&ʹF7n9R8;xp 5/>=I#2Ȉnxi  ]U3xjG'Z:X ! Oe-jf^B,ev@d%oƔ?u1h_b*2 [WjReLe{O% nЂƕ"1Ȳ䷒WYQ%1$G6IGLKZ b@"f^-e %*aB:x~;2떧v}h?c#zZ L0v9(LCLr ΠRY:9URzϾlV(bG!D)Dљ.%@*ȜWIr2 ˚4;#Vug9.V=LPnt/C2s i@bPV=hXꛃ]\ 7O4wopuInx:_ŸK֊ψ\klQJ NGEU-R84-MEW{~Ep¿aXLH!\nQ1"(C_lx"aIvxzy7ƗPzR"G pWݪx>@9̸7Z"i{-6ݰ}se6 us-sy2N75^O t#^vsgP4kjK!^P8U;u!/p%IJC](.+× kP_r G'9q"ўU|e(j7y41Уlsd #+k1X.7Օkrjw? OeF[}Ptt_'dws<"Tf+E}Qp5x\~l܋&zW:dQ/eOzg+uռJt;W;n/n-z2iǩM&C"OU0[xdb;un߳њHՕ_x6Otyw <^ix,9&í ݉;ep#\(MӼl+*wK3P4ĸ3,hiXu!AŢKJ&XZr%h*t0k\'~$]TkH;_5Q,"]: qZMgAiUA)f`D4FƧ 4b#kh'?g9&Nx9æ!6?)3?C)֙e@7g6 bn"~kH;CO@)teV*.1Uʤi΀Cdt-Ӿj d;@sJHhd">@\h)mK…FfW1vIޞ58)"p)Mz sfrIv/>R44! wFͽ1@z]0pAK}@<Xq4mF‹*[#ZsgFp+J^$|Vᩘ UVGJB&-Rt+fkG.}-Зp8zE 0vZ *.2-|4:5臘򇏧Z =>7@Tc ޠ7Ӗ!iأ%^ [ҾIw$NO5ZdsB'вeXIb#.+A{-_ <~>þDd+z_q *t"As% iFRT*Y+RG}C$e"r$dVUEB-UǴg8 Bf|a8hiTlgSN}nZ91KivU0U6vUc aM$Vy܇Ua֖afgUw9kBZIZ/,+!>C 0yOLm"fyI c+W4ׂ +8x$W7 1EM@{&Úml+>sMaN|TxWjvs.utBE<-6;*k%Gp2P/atߗ6Ȧl$z+vC7lKhO՗\:LQF,2Ǒll+#RzIV]j-NYU217'pl r"R.>;i1׽u)nQ,DIB>t릁h=>ʆ?C՛Jea G 7 fV,H&V}5.LE@4=JoƊ+¦,%4>cW=*nєՃQO%RqDfFWODqsrW(Qz,Nt>a6ZQŏ A 5zF?_S=K" 1czݭ4_iXvɻ~#Y|wdf8pt6,!;HֳU x8gEg!pCd:DSYS75=0q EE}pGDzRrl9:-?{P*d˱F5oThkl Z4 L.g&9PALKR hZuM&ue<Hi #{[(;,8\N_jSJi%LDjpyP諳bҖ5È`3yj1JJH㊙ 3WZԇ&L}e>Ka1R"{EDuSڃ{?d-;|d!=m5Dc g :,$6soFU9n,U訽ĵʯNr"İ^UG9[ENlrNehjw 9qfskٯ',_7I{ݷ)(pq(ȁ y-OKN,3;FQb:x|%KYwK>`a |ڡ '\ sN533T\WݸXhOTs;cۤ2;ƪCv!J.땆ɽC{_NYqd;e9v1ׅ0Jk@U_]]et.!ؖl{6qZR\랳Kc^ s^ X3H9կM;6ual^v-ll/\ %xz&KtLVb Gmk~Y+@NgsaHM Zlx}5lQCa ED= m.MI y/i)$`X +';֥*Z҂[{hz[6 ɗx Pe<uZz;JG^O}99:`g|f"n/2&/+}:viKiYݟ]Ei%r2x( ,te~4P1% Tu$% GH /[K.PE:Ԏ4,LdNS9_^u4[?{фi".8w쓐h<&T_Qi>` a.tpۂh҄etpe\(s5k?F #k MDCGfW~-r: i^Dux]Fe&47۞;if0;~z#W0{ a[7SPTƴ3;Ynh"Б<̾_/w%XsݯP%,:5t펥aOՓvqKEʹk= ^gzO?@w2loj姲5H^5҆^ٮN[Jab[U);/j\q֌*-9y =NpȦ9`~Z,|~$xF,yzJ@*JIso9Vum$36.J#pDA]DQSfQğD1\?˼5gr;:3ba'"%2B<ה'7.%HtN"(L *F9'2k;gě^'3u_>܋hh(Ztĉj5nQ%Af ֘^)^bb}S.I߄j%1M-O_z%yoFv6ǐ ⒑])I S3 n2@ȜdkTv MO~  49 4 ):ƥS ipA sWˮx3!0{ɯՎB;n>P#J e./M h 5DUoi$L}X":1}Jaot:|m4rH.)T&HN`=gg~*3'6Ua}T:vËO,*[`@fe69wDCy}V9=T׾y R4a@׊o땇@P8'JeO*i YAg.A-nEEGF홬[U%CntxC)C8rX20vͧ%x=) xC+&>֢H;Lϴ_pP~?jOmŧ?Od rD:$|Co6lV k=D}TbmtDX@稉jLފaO*h4JYz^oec~1=W7ďպ_CL 眱*ADW;04ӌBIpp,H Oc:0YY#^^v|.x}BKr"gOjtV⾷J"qz!}_k&>Rr2QoY7Gu l YZsXzPuZ_Z&Rũ79p y21w:zGY2 _I"RS_|FVg3!:/mLZR^h0ZK`oJ]ēL֮azcHuBh^J8wPIt,deA/cѝmvvXU?""}I |O2OI2٪,Ɇ:7РF%.Yw`w=aM78 :-RQrøW/ Ĩ7iWwn B{^/;s,XP) 2wXϸp.>C~[hˆ4i 'P8Jɽ]U myz"ܣRop0}Nԡ;دPfez;]?ڙc)aki9;Fa17$;熾XY/d FMɷ( c׺ e!7KIFZwM?"Í֡M-85ņB08?(Ϲފl_9b`eMe]md6h}߁5ED?e }Gf*6@yoʦF0\B. th5] 9*vP[]y7G.ۏ$$t;mj]鰻 վt079-smsJkNy;L"Xl!wb߱JswyתfT mnXt.~0AjL1"9^ꤨvN,L*L̟xүD0+pq|N`}3nW8_r0+?!pL_B 9(BqvU 8d1HY_馛5=:։J[P&z{jKK1sL2&LWlqTtM1ICKfghZ]T^gp bEs S /i`TAc7jS_/D |@%%@"88{00XwbBPg VԊC%eTɉr'7kg7?+_3CVI?pۄ0,V܍5Wd} aKh)}L;#ݐX2|UM$vbUfnzZqqEK<]1Q5}tr.`` O|;g/t /+I1ěyP^G NSIGu| ^[$>FBqlҹExK7Y&~%ǔ,9ʧ1>] fѧ mvlQww,fB/ALH(|quM65rޘ~)l"{ 4^hO/Qh<}x~u*]b.rS2p 8 G y}c;J:@iMW1EuV~4mT狗q׺fCߋDUEDZ;bJҏ1l( CMGSq(yVW:<$k\+=Z߲)Z_&^62!ks4PLstN7 (F)d 9Xx`i2M"5.ڂ-wx)ګ\Ⱦ?!eJm}"۴p .\ ޻uMV@x.x-o%UpA]ZaJW-a ӫ}/ӗM4'ϷfT]mWP7zg5ȴ 4T'@umyJ哃l>`,$ʋE-xY+Yjb%F17 db *_u,r$~ȦjuQc|E; H\bÿl*ј(u*e fn0JHPw=qOy%+M0Ja #?-iD Y }|β-U#22VҧL\HM9s-0念\Ba\؆4sS8>_H}YD-ݱ= ڗMd9jUԹ8H|]mDar'NPlv )we5;.<)&dtT QQԱӝtϸ%f^%)%RW}u1>.VnEZ/stIRi9:}R“"sG "QR|Hk.X^*(FR d* O3`$޵`Jx$x;#%rpuXtwt i{}̈)OmY V8e2`+15٠bb@eڅeQP 2f|ĺb \~Efj!.ݹ54":H~=V^h4 ܔJ8;^'x b3§PETXNħGABNgD|LJ^~I @} $-@_Yx]5ˍU񠎲<DK;Jdˍ2[;it- KV|$0sK g7Im&Uo(ΕWbHPW0ZI)@]gv9Dn7Jƨ~ˆ7[kHڄ\"} ҒtHVX;GIW򛧕4ɰ³ƥ^ (F/Io3FDT^da&srٵ1ItR# 6ΐZ[nӈaڠ])H@lZQF≃%JN/o#[ L h2,|؎ s% eZjnx 1[eL\{6A)2\1#R"bR)jf=5ކaۭAd};'1R g(R]h& .tǫ!G?T=冫[ <OیN5nܴO1;+4v?#SQo" >G _mIJ\۴J^;9[|}#;mXL)=Z g%m SXĔ؟:G fA\r+Uk5L)dуy7:kCC`+{w7٪B%> :jGY9Pf6`a? S7nHbC0KDUtX"@hjor5~ qM{_8㔦'=U0ơ`~'3,!KAodgcW^WKM0]0"9]7EWy<Թ !K?;VɞoE]i=qcCP2툝?9)$o  ɠX2L%|-?[Na|=aV+NSsմy[=+ ;{%*{YC5Wbe_+>1qHys2VP5L1RK0xPSDncQm^dY {5l|+մL cL J E^yhuvɽӫLSdz@wy퀊DB[X=yQ;~h[V㝃Ci IjޠPOHfN~6WSdwP.CȜI%.XIHӄU?f2Z_m@qɻN}@t7`P`83lQ6MPÉZrjZq LXɛՍmqZ/RA}*dEH)VXS Gid#TDu #SE 'Xht*9UNdElڨ˃p0N!nf)3%G^X>886䒧agOT`a_\d-r 5.#UvyB/ǸcO8rc7bOmU[)B̀}Q'G"'k2M);`h*!shNS?pF ڂWoucpM LZ6Q7kJ[f%D G2殀:0oVl2 >Φ?eJnbJ&}oۚ*J6@FR.p&;aX>9砗tRƿǢ+L R#QO,x&՛kB"h)}M%ב_8ʝU}DP Z78E+y]Y`Qhp$EvUIz-*3#2I#'Kq򹊆y^?%H/S "΂a9w^)+;PnMѿo<#>ZbEyI.>S.$Lj X߻u۪n0%2]~2[~2IMpR2@UZF}y2@'OגXOfwHU.pD$!B2V;.7Nm $ *>CVN(0+ԞX:.&X)xk{_eg!x}H#ay| "Y(3yZ`(Re =XJո-7Q^.pԦCX^6Cg킣 v vMP^y06{+ )l߫2IDʧU!!|%po?/]{HhC :_Gpj0ZI1Xl u L gI;Jun\wk4x-#"W R}9G3~rq~GIQHK]> vtv:F}F>:.\Fo2 @A{J\hYl`9ȻEd/ٗ|*j) _8^IzȤ8P#2sJ+hU#J-TmuT6ҶɎ]o$T4BƓ==\T4X56%'!߽xMdSHMsTQc}Vp.!xr$~>Ghy}NSy{>qdGI[E~A" i"v9i`R{z, jI5fB9xB3p ^I]QB#@A-@suG^y(,4hsHַ%~?, 2@ڵ*| @m%+ Y/B¬Jcs)pP{J&lꌵC#)Upt& q+?iVO+\|zmOt`Fŋ"JfhJey&;$SAvYH1IDQQaF.%>/5@i{*O9Ch^xZb2/,ZZ7P5Ny k`=AԯL{֯qu'"C_ (ĢujN?Sڔ}5>ɹ?Yh`|^8q|~Z/ΕD;,N1ϰc"`@if)?OkEvn>_]3ې)>& RΌQmŃ4Eh7q N=6ћpy1}_^hE+ Cαnvސ1/O/OM|QWø!:so=M[3E2tRzc6:X XobUM{0>j8_jh&zlwf DF#n wCv߇ .]{U;9_ѦUR (ŜZ8[-~;٣ŗIƑULd@MG!n# U|,=&KPdt҅%2?h{j 0wqU<fTe{ q09V6!+.?i28 Y]cpNm_=Q&=⡝bg8Dq!#^~g _.C'QSr\D dP-=ʇwG3lvVX>-?0Hs c;ߜ@m9J&*$U81Y_Ǒ(Α`(-^) dZ/S1@3?17˼sA./o \I7@YDA8a uP_,ꁢ{7XPxm.ɦp*20MXO}_=iZ'*02yus٤c8qۑǍ'͆)54z;glQyM5><:6He;U.remǁcnJ^ 4Y׿iwע BJ_}GbZp t\(CؘXgG:>+"eo-͞u/A5.2%<( {3{8 `-ݍYL'}]?9  <ӌwj9 l*.۴iiIeAIwۣ}d<5CO{ZڞK7*$ #@f>1hռ=1a5lO{0WpY7fhJ'RDž}a9Xgؔj}Ci%lպEdЂJļ%j+ Kko"ss/ Òt(If.,͙QÉ 6ת pfsk%[on9u<# XٵM*TxPU?FĔNgQ<'kq+TF~BMzoÕZ0+yQ5JYÚBPEQz g] nǎd30lч8dєcHأkcNa?[jKC+`yTI˖-"#6CQH8v/ =9(7Q< 7uMaԶ?n*rc\>md1f?=?JznےRy3=Vh͟^57?b{3Ku} Dch;%ܦIqv3?0J_p촱Gȉey@)D#)FuzvN52 G-~sօZWn5)`]4>(W%pŔ< `yy%g$lFki=K;6@P7j䏐ac'E gފ9ڴs'h#Zz9݇+rcJQUTB(Z HL\v'v6cV9ҜM~i\@FeӶ/8g8;ssy Xa-ؖ0$D ~F l&KDB|(wvd-˰ǟ^zK5kTn2a ~<-XyW$A7|jD\?[]rgJF)57ܼcl -Ec04/g.h78sx>{}l!Ź-sL%ȉe[ f`KQ5>KoJY]9h 5hL|@a]Py}l"@cDvil:a̜ %,(+9 u&?\u:5:^Duiݝ`gZJV;A,$YXm5F a5?}jH*T!$ՉVD2.%8ߊؤbJPy_tߓ7l 0L~9 T^+Q)Cic^fS!ÕO1i qF%gߵ^L7ش;;m͎/5Z}/\? >yB2[gKؔ-zG >:Fڥ;CaΈ2{γˮ%2Z@b3%o~98s6caQb?a/38Oolz/|'w"zUJJ&J{Cv`RVX&2#4:G s?I7P𥛹WO z9H{A=gjF8ן-DϓSr!ri CMݕ΢7u_+ (o]GS/k-.] HJ[ :<7%^(ڬlk K_#?hl>) d8r+=h))?}2 - ұ:"9:W+ĶJzkO<|]j 7%ɥMI̫_1A늨UHOmdcDB!&90.foi4c- z2,w7D?ʚbZ&DDEz P4ME?#3F7AgN-dNI0HNe"r?@q@%Π5mx2˱N (f.t)zz Sygu}[`IJ'C2w?11UO"X; }-mT~E.5|[k2q N€hJ2bFt(MnՋ) NRJ$sߦMWZV@-h-h W# w%q0M,APK²xy#qOb?m}s @E6Q77 "~BikBHsuex2 ?д v7#yH+9]9vK-CzSdd1O/>L@;u1yîa; ^%QGpV|=jdܛK. Ȫ Z4u){6B4 9#h,' {FQk"LnLJK9NE qXxVوp^tMF}>ع0C*W` i3IfhijW r%d@.RD,j"ʞ5B&4-u^<ˏWQ(ÿ  Ζbj}cg[8_ b-뢶TrSWoC e(ﯧJA2i!\3TOs2-rgV^'l Ft2?6( 銗sty3Ouqk=o"26l#~}Ж8qY4vkO ĔB4`R E7|.KA@wSLMKܶTŋLMo# wq 2~2 +bؙWM! ssX9~Ԟר9 ]/qTO8]`~^_vtvH]|c pM 00ߝ[Mژiv s}[ƶG:<ޚFA~JÀB\NT =U Bs>ww)їlB1 =pY[V︉h9TS(H\'W3vt?)z(Kv;W)i %}P:ccӰ rOftO~ |Z =vU(V#Ŧ=Dg%oơx^SCL? +VEӐePt!#y*zou8[a`bRqo҂<'cm1}7l{)bߧ0enpL<;٭k N@<ǂ梳@{KA@$&tzZ̀s(ʔ`2 &:*%,3Kf1]eP@cTOx߶S.%@+.ZƁ M)=f\gEnWzgq#ًs$01֍ <~PèkĚ;'%[Wb@3P "U#a6แ83uQdCZړ1IĀ(c7 T'gD(ƜٖPj.+J@AÓ5ъκge̦yn1 59G/hzҡ%C]%$6Ƹk HPC7/aQ%/??t%6`ʆ 5ҳF'X0Kj6r܉>V91(f#)ANJ䒚hPW EJ{(캃*B EK(,$waMtv`"q+j *q~rJd'݊{2|5h^7t3}k̽Jdgx38?(!frUVvf/u[UP]&s5-Y^FU'\ѳt}Ǐ& H`> M5 mH.G-i!?Ge zS)s(]w[ܕ2]ۺ(*.D~o rQH$ &ƄE&Q);i=ݝFMcƛ &j9hJTLg_z 7( <%|a.|:^KT*6E ^L:; q1ߜޓ Jy] 2g=) _񳹴r)H x RyOK'TIC9(G3kAIIL$i7QV} XRC,ǃ3o0P DVOejNe1chLFQL[e^9O~u%PL"VwE}t #81'ɪ}]TNΜ Țݮ,".l/!!+6,6U&6{IwDH/u8,?U.]PithBf<ŮeȖ5qۢ:%Kg.T&ȵj-}FYKfX?fn$~c]EpXw5N3=S)-6Y6brB/G!@8M-=qrnnyZ^:d(<# +]I ARug{l'.np?!$.'_J  w~ioUoH~.x+EqIa_;" > ~$z(D5Mjox@ :07rMR $I_\ʚw;:TiȵmKc#Ρo{WWPr# @@?=1*j$e[;S˯|'ᶊ-#Nz~,⚹sǓja8K<(i?V:mjIj*tmPZ-+683 )>/A GKo=4-7+E㉐MTpTÉjoPfoO2rA:1(-%zv˯q'qJB~~Q^SG9}9EHkTtlNX%o!'Dx2J`::n &ʴ V &à[@w:e]hn( P ;TkC5j62HjD[Tu-|CRȴ{NJ8}˞$$PpO)tU $ǵK oQ^*퉯;|[ek>ɹu羞ֳ^?/TH=^~3b`Fh#E3F;&%$ԉWV:{\A_g2ʛG[V4 Ր(^ay^X ZDž -!̋0qkO$Ptχ6*E!aŨ[D;qо6' $<[U\ ܡƢA;G؜V hFQ'o] pc8NYz=<[j5F-sCƅ}.oZA0QV~݈+wσm>l}6l'\-> 9*U4b E8xյ`'BWX \k+,ۺO[qK#b2kiz~ f9Ff%?NFxKaEТޘ?qom6}ka]喚Ɉ@Vn=}3';//#a^ͭ^|j^bwا;>ub%Pv*s7 S +c;`Q3$ؤb23ЈY@&QG_HJ9JUp}WW7}2Vd丹=[ͪk\)ķL9@.oK/BZNyz it"|Y.') *u =H,õ3|f@.BF_8[3L3<_*~iQ&p@55%`zcxȎ rBQʍ~?f+5S"c&~啰E^_E萊 (&HS dzh"MÂqE_Ͼex k˛;@/r0f (c{ԇ2GXωSh">%@5.~ .[Li^Oa 딡2N|+>b^zaYΣWR䓕~8ERXbٟǦCG xzMeU-xB P|&dz D*y W0j)s ^\`&Cjod5`TJَXR ǿLWD&%`uSeaxt%fXtUUo,B@ Kx0fP߶R.Hw*NͬN)Lx6GaT}SyT:& o؀ᗋ>o;$G@qe|6?MspFl/džnCD E] Z ]ڱ8ړFg~B클8gqβ7* W4?>}CSGrc.@fuϓC,or!߮y$|3w V  >}k*:tx})ޫye$嗪L0Zf=1q=>ˈӪNHCS칦ӔY<0-َ2km\fqsB0(A#4KSp(oTf SP;CWmCWUm h3 jWHZ-ލO Bc`SϿ#L)M-Ųz6#B%A%H{ /_G5r3߄:WķCCec4PW1:YP 5Ree*yz@E]"'ĎlBH?ZT`(uշTUl5Ym `'f qˢZwAEW}+Fւz!AwSJ;"d5̮!o KV*Z*}m0ڸ\1bK/lHwi""݋\%q\ycEXv u>%--L=|7 $pί$IvkL')K31EEԹjf_#5- 4}X`T-,VZ&KayNߨOxf[*C\hKB_itIEp$a%aŞ%RоŕV4f.Z1H>Wb4rNX9 +aPfC1/mԒ & CaD_+ $(PѹNiKG_Omhke+y?/օYm౉ꆄTis:JBQ8~13sdlNAJ&DzE"ddcT-lh*Ț.ڣxr^w¿%(0׸w_#S|=.АQvȈ%bC:wik Wil[А.:uNhL*:1L v4Lƙe~?ۜM|(' QGSQr16bӆ%UYǺ# ~* >+ c%5rxLjneo[4A-6ZI]׆0v {T?*ii mO*ЃC ?P`yS 5hURW4B4À5MF rrnfmmT=)\|tBul80(L=Ts14Jpspﲱ>O_ӧ!y59E4p[er #Gt|}ҺF+¾~QGIzƆk_s{JynHIobƁn|v +g N+w{s-DsPɹ[:)i2 ]y΄u4 2ԦHUUYJH۰&C&pj딢c;-φ +Ysc< v>ܛ{>kΞ3OI,>@i">'> !dNN5u+s+.?SJ\ࠟܣLMB0ۗ<+|,,tq`0uY>2>-2mJBT D̏%cU O P^5%[n8ɢ5ظng 6F?87 W)/өp`Ybⵉ>; hӏ-F#ZP1Z ?A-^$8-x5g&4_0B5hQz8> `5hle};&EޢVX"ۼ|+An G n2 |3;͓8KϾ<ZYթqvJl*;xIT#3iA+2Rj$yY`/~"1ܛ`=K7Z*1WmQ橢{K>`t񖂹o<0HcuF1ӟPj,MgQ̿OY:~a~u5s.kRԀ'4\)w2IoR zuBHc&?0w$.SYw6EnW;r$wӥϹS#ᘾ2*?W̭_/tfV^8Jv?|abD}}K"X_@ d!!}z9Z2pK [ q"HdN4/@{wy=x04q[lkHerp-9L\;x+OVWWIoqEh ,B^^XҢ Gѐ' yYgjbb@BOWD$c 6D`Y@$~g W95z7I&  Kq/.lyE\5;VPîyD8dt~ I6=:eN<% v&]Q[dګ'OEηJSo"~,!i9Ww(7YķMIqs԰h 9[lvq8Rz!l+Z@*aWwWAed|Y*e9 %8*|E;pBޭqɠhh W|R=Yn7-ksDO7A |Ҫ6ye'fkVZ_De),O=ɥ4yG lB63A>j_T/Z 5{T[`+wA m֋Rd(5:~vdHb|izmCUK D (WqB^+B'5-D;{V((%E{f@Sl%7|hW>Y~] SФv.*_go``mH1R բJwQ7vd]i\O}9C3Wed ;vOvipzkϞGx-uʎ,#^Tw!>ysz&rcIU,Y[e7o¥EQ]_]V3^iWB0sz @Ѯi"z,5tBQtWsI֑ʹbGߤ;sLZ`M4X};i.h:]DyZoܧ;%2ԈܣB{wz8'n;3LPDŽL{XYx1[e +E 8>b;U2$%xE-wؔl\͸ -dR$'zTY/>E^J^-R6aq!^̔nnu: om3OKC'6bM@}ZLFmvC8 >>(+M#{-B)S}9HhLXOaMb` K˹S$=f Hmut(0u݁MK h JJi3ņs&9~ A$[tR(X"/ ŜmR Lۯݏ&1s_]yQA\Ukoo|u8^/im4<5.ZRCXN>>q |?߱rC%3;>>UtrîS|y=5b&i'hΔ&Fcܨ1S>hk~xd.k_ռ[T @.3{eIgogK@#DYQ==ə]F@GT)Dxo?%_C8\ڸBVۢmzp'PbbgW hA4 ^׃gZB9 :n u=a3 +#lAm)nK'\3(/ePSaWP+݉;`f\"ќ/ݟ($5UE`$* yP3 A¾[p[f$i%&g G}].]!  $4XJxS d &;Mx JAVM&)~^̼f-( K{lZXejj-볕n-|+u4K}E'M} dO1s" _JU 9DyA 1BU[$QBwqh5A61T|2{f)жHc2Xxݢe猫%گt&2WW|*yz\ yiif]Rd9gM~@#07BƆXV$~.hXdۻ<>{xBwAS ޴Ww%Ӡ(&hȤir iu#nxl[ūDiKݿ)aƐVKfxc {^\tƗs[S/"]uѬ;s[+q%L$aim'~й7 3mj'XAXQ0.gLX f)g)È[r7%k8CHa>)ߟn^ګHq3vFE!!QC >c. 2-,1Td+jyT@D L|y隭+fa LHuZ2YvlL iP9 TYaiuDxNe\\B9vks1jf @ĉJ?밳r s%  )̋23tLל(e*dPLtX?x6G%Jn @)ՓɪٝԎIMDA+8ߟnH_f Z+[Rc,F Q"@,n~= 0E.b%=bEFfi sbԾ@JR~k8t2n44o`ym0 K'ԏZq\i"ָ rae6xrc)W @8ɑÛGoJ$ao`ifzHuCB%P9P ۞u9|U*&lOjz?,֩,D-Tmг w٠Yˆah,R>b"iǦF֥?(O#N2iT&Qp % P`ooO!Ajt ut1ED x@Va̷ż$ghj7* j7~gTj}w9[Ʒۦ 葯&c7C#ƣ( *rW5 Zy@RSų3mTW -${w޸>) I^ŽBԷ*1CߌZhØzqUdүTK<ϔ+%& ;CW7cMܔ; +%/ЄOLu6b_8+GrWũSC057FfCa$#i ]rj.PsQ lnziEXQiTa3r+[WPGʞ8`G~oS)MKwߴ*28?^ mrB^= Vm%_#RJk,?F գoc,F/ޕ˯:&HwJ#na.o7tBMbƣeѺi.{%5s~%#Y#<.kxN0ov~.<fK*^hEmڝZzè(Q9ϣsF2krjC1+bóJńAifo/A-NH}.X%|wQKG/ ݄`@<זHA~{./k2K/$#YF,FRy4 XNT'k}yuRyS9/=C!~.-#ڥD %UfSL c#HׂT.֡˺ҳ0xps1n [f A ;Y cGiŷXc\VUV"r/z!4az{!%$qFT+!? ΠfVA2Ǚ"܃kO L[IZ\nxۋԎÏ'ouչOcLT M8e:Y!WȾ}!9HЃ$V1F#-,sAE$!\r˗Y n-P1= qWPlT2:GX/ZwCM*ӱ5r> -!3$oYEX 13e -6#řMDkf[@msx juUθ8P̹11ʓMϓS9AcPgA4`Ӑ9/Zm1h(޴IF3 6Q/lH.m[ڵP5&GgyLβ\:R,?i9°s{( aPxrwDim&gt' e]giMdQZ1>a!G,(9WL׎ŧ{yIx4&V"??ԹE(˘mQ]u-!wnW2f4K@I=pDSt 5ecr4(<J9.k/]5HV̂MBpCkmzS\}Pdw6 2_5y@"=vMДt1DLswO7ǖ0<0}AGL]BpҐTL)! 1cmeLX#j w8S\p2?¨&QZ̲:!ppTkmS:: R g@UA$h>B ` b.|"/_]JQI ~n$ ⍃ A+~Odc; RvL r13%j dm^8`vH3Plvxsd!퐋(vrsMS~eKM(HkJԷI>$ rsntW*CˬEM%<(c@[4PsO=dum9Mw0ێraV荍ojbwdtX.7#ـp \Kg-L _B WY gw7S \L@N1iF prd9)ŽW>QNq'^tbK'%-p*N%o|,WIpf_Nb8fĔ5c& @g H1`*VI47:IB /< Lɥ]UhB0|Έ=df ie\ 7Ewb\a3WzYVyej,wwLXiη3Uzt2<_ i^ 'XgFz^du}Czx,'[!FV6c*>AIM(r\![|fPZq!K6 +] p=0OB BV,m /GCP-Հ(|F͌ 㩩eBzV[3FUv-2z٠K,hg.oma^ZLsM\r~DCChSv3{Mh+qc5[K> iҘe׆kXHlJ*"z^+f>MvlEv؍(+F5fKJK]{1ZOu)H] -3NihXx 3E$3z_ёTtf=4.ykRfjU\!ZKԿ0oHmgN^ s3yZv{d/EMiGcaFuh-wIN|Y&؈^&vi Ѻ 7\xq6սa+(1B4ըJ ʵt}ď?%v{?J?z {;)Ûe-Urqos߂4@ yǂ``78宥W(+$V^m=E51>` .Rc&/_zx~\/eh_Vc ~Ҍn+G%v=N ٴ\gƝ_5J[T%(%#pO* p1p d/C(2.}y\d;=~y Y4RkVkTE * zPfY=G^,m9l1}KX2s ͩsvh` {M uh >L6Zz>K(^d}|'θfP&[X'!=0}! lJkQ'1᝱C6mIuL"WN{Mp4'վ~;9Ƹ*[\Ȩ|C:le~~K俇fǟ>#Ż8"eaшqoL>wғ:l;>m 9'WZ#SϸVqo +TUw#kn㽷fE`;1v u\<[B5*o1+#\v;DsWUN6eKތ1*_j,kZo1+vFp8Fpaͮ&k1mKsn[*Uux %IVHnA Ӕ%iƾ=nT//rn'<:s4k`Eu gwž`"Q[_.ZZ^ ze$u83,2G>=X M.:Yj H^b eDiHcoQoqOw-'쫿ecvߧh#βۖ:P j$>_ !t>x\Q¾#B{lNuΐE<*}ĂZ ~BF ; B0S.0(jxGيYV4+?0Ixgv]75lZ}ٱ ;!=X՜< ${J)\y`+8a^A 3%#% \3֐Z x&""8 O]z4W ɰ V#g*I%!]A{G~.* GPe9LydI/}D.صЌi9u"X=i)K Psr3mhs>74LڏZ?g mԬ,1ĹZխSH*'3GZgA35&񶜋 24pOR̚~K*D_bT5Ƒċr#szG 5pȵY褑_ sOp0K63QBϞLc#1ēc&أ෋Qu+%hC}틬n' 6f]f؃"1~ʵ1C'5 #jv!V11MlL*ak[InܺNh&=QJoeDrATдdg+|7LCFv2Hvv 2 #B2^>ÛjO歺YV VMl&%peunt;)Te89s vi%N\Shg,KVX7x5[hgFXyYRܠ*h0c'=+6wuRNGI6w?y*]q/ΖwzSp+]{U)C)1Xx{$a#b=+9zYxxhs(1/Hъ=ccO?Z"YPu m.꧅~\`Fq[.3"0/L|-qO$H[P_IQd!˽q Fe_,=DcS JxƱC8- n?V\c0 gf>åy|f]\St /:F^'y%;#Mfr~iL`hmxzMU5Of Ǖc(0rqsH"? o|ju U{_TlouAily/RuAM7>oͶOIn fk;]wB'dvc@ ITa;>g/#P6O>;PF(ƠF.ӆ9{OO2 [5E/1RGA|5;ǷH?1r)ܨMEG*;Ǣ+F1EZԢGS|k٥dNNQ1 G`b7jh'Xt~t!U̇lZUIݏԠ:?3frIY*fv(sՔhF"TM C+c`df@d&q1_&Wz߱Đy)|zg[t Td[^=RmbCP. W|د3y%'R6)0$,q>(wgy ܢoWvMB,-+L1M_`xU#w#{+XNJ6C"| >MH~uO8ҍ])_4X6O5 $ծ_kTVޘ{DJ? v4x'ˆx]z- > ù=4`"kOm+09Y='DUe:܈4/w] =ZlߗLT_[]LlHc4iսhp&HXCuy>̘PVv6i{݉4{~Ѱ{$xR)ŶV@Z4ǗG+lz,؉(_Wfw,S-LA qަ?f:և˨h,̏ݫKXbԣPzݕTѬYBxeM6)BdP&fF Eh*(t&2o\k( z[}YAQq Wuq,UzY:WU ׷뾉ʹq}7nz&.Q)z)`fu eeR ùe7]g@:X 1ڊ2I?J7RJ*i(bj>?k?.)==IMvZrY5G2],d皣>w:)e* `o`ɔng\8OzǾ.b> y#\+GkV)@QQ~,&ˠt=:~  -YU)hY;嫽<8y=4caʲVS+ċf¦_!a}7Z9h+<"/O.bp^]HUs9mBB )-qT/͌XwBR"LM#.D ߶~lK - zhy_x"bQ &}'} A^6;Vz K:NpN^Ϣ19*ذ7/-=ATh2SUe0cF(}+M7F*Dkhj~6]Ӊ/>`- vףRcYai w?) Rql_֔aU5F536OIqvtTs(ݛbs&tfvW]O^$s+'[(y; je8shu.O2a#\_uVWOH9#7|)KLښvE1?PK[hliOސl-èM""㲋L$#јA(&p~ 1Ѓ'5жbIG"s+H(!Q.ILk 8?B1v 0~hSm5X8Z HdjfP /JWiI7Iޑ`+m˦>Per!iqBTmrÄ5'8!?ڌ~}|a7E^Psi00}LшyC\7Ie-՛m1VxBXM3CKuC(hDC1nș#U_Q{M|q(xL4+*q5n%v[|}NXeuB;4(y(ZEVQ:޲$P>ry*1JkD L {d 5y6p Wq e!%f}}S=ӝ}#9D&Ms&}35Dz9B䰠ER~R% ssł'-/1Br>ىg"UH.o{X{ȗgRkuk qxt&bbWly03_o ;/nFMT-bUpVJb'[ *8o*,nr iZ7ȡV:SWo epsPX;yshm*;ng"pnTH0|#a )õv+Ðڧ>#6Ϸcw]pcќB~8.1ʃY[FrIc.:9C$}&c#ڜZEa8n@-5e@{gXv G$9'ȴZiwgIVdQ̉/[/aixaވ8Lv¤!U413`g\a/~0CO/?e[g7P`t`gFPS( LzDڐN1^>}cPcni/of/I^5@r! Vm3u&_O?YJ*@iіAC[=BpÎyp{LmzsD8Ca P7)9ҏ,]HAq 5)_t%!kdo1@["2f䢫%c?@#^5]ߘ6xVh\ĕT;@gW؝7c?gzjK"-`KV2.uΟ?9LxZ‡_ qcj{E~dJU-+'. B~L$.,0FBK6fX9۷DdDBq0Hds1`2sXEJ0D qR~'$dZ2ԇFO*qvzԒEx  g%N$m -UTSG8?iCTul_sz,#S*>h;ukT/C0Y5b?M ZY]>ea'>u;JuyZ:3\ /%w%yC=m'7@O<o9?S=.!T(, 86`Đs.*UVAv:hb"y]?/ u8׋{Wq+F{΁\`ttSUOgr+"z2{ kX۰46Q]{('5}>IV? yB7YZDVj-B#]xЈDy^hUPy1Q E_µ`z0"%4īBиTǷS"gEq9_>SoܫNu=:g=e&9ܒ>$apk_"K:wKxF8s.E4_bD]P0Y^6 s3X+#O> cB=bMu!5҂a(r`⧂4UD'$5~{]f ]r$䜎SeV#}< FCkoÃѭv8q72  l˒mo~_{2ug|1_6(74`]{OZ2p q@^wn:Y5 )V۽c]D[7&>N1a:g(}YV_rDX:KQkTxkCX6ljjOAvbz@1A=  gcnYB5kz41c.)Gf7!Rr["1- zѡo$F\l(J- /%6)Kgo~ > VY,rU1NoafŻ!Y\"쪤aУP>7^Tl;HE" ǎK}Z3iO6LQ_ Z}:u,Ne 5T>I)q2R H߱W\c+\L0i3Yg̖"[%>kI >gQ!2[l rA>` "TW_Iru`aڄrO}y?`%T<.&VdetxA3ʻ.<5؃B -0 EnoUEW~;nRJU~ ;1EX,wM{Gbc̏(OзG|>_uI~l X'̒W~g&\@޴# KpN_ZK; j< GZy 'U*PEibZ-%hK>^C +nY-sUGcb!+EOՑךi,C  b_2@֖C tt$,?+i!"-Je6@3{=m4=WB1C@G*EJ0[4؛%z#"1~?F_pAJ!,fc`W\n͛X#u Z T9YЦRh6ApEMZ4;<&BݩW$s Ē;He"8I">?Du.>SӥČ,VYIUܤߥnmCQs!a}Fh!"B?pb TTYp< V~OȀEZN6j$'\juhY%W!tfը bP9[-ߗl#pY9R+e]jܣ s`;1偪]05jnN# v gPsi%ta=e9ږҏ ȼScd{NMj9)}$Š΢f4~&p֓T~7+/g?bL |.J.BI2zCci;?I`-g9ڊJ!\iQ2!ׁWeJ.\E^>U./ NՁ+aɻ>S+S-%Mk&Mdʒ%Ͻ‘)8 4[6YMضt1鍑zm lʭѕeUq~H.z 2ȸ =.9SnKPEJhކ0Q-_y$M8u,Xku1Q z7p>UDV5[vhRNҰK]_Ūx\*.iRQka~H){U"68q7O]YexʢIH@*HNqB4[#d9)?d9+5tJ[Ṋpt)msfHKC?fRj(3ds$l=;Td|mr}ի#A.HQa|lsz"4 $|9 cAw𦃟IMt}$8JPeӥJ4B٩gk.EA탹=ob[}=H 5؇Vj눐@~B8aJ}`Z/#{I +qj*pTҜp.@=7UQ"DC[%$5jiW)lCx8eY璏^[PN9gL#A΂rx]akRxu*-mAkeVC8n1*8C4Qpˠ39砈~H.|=c4 boTvi*.x9FYyƢ- ]01q/Qێ%VZKRI1djWZ7r:2Drj S@{4-Ҫ3RQF9&ݬ@5$"i]aK:wq2wbv"b@g!ryg?pJOxgJY]MM|AxP%侗-r#i LPzFF>%uyy䩲T(G8u=Wh. &S2o)n[ kb4M4-xcS޵>UW-2rG@r)zV݀w&7)JJbI"4C×n=I f fL:mm߈(U`촕V65"ߦA+)AP IX&E+~_mm p2-.eCO|5TtF=v/Mrӣ*)g=%=kI(쑧`?wLm&B >kzOx1F JrEuPP'ed7EqİWpעH:Ю:U O K U S̭\bgAW^dh ֺ{lаhtq  waAFh:ɉ-N薵N~&?w~^,C# hʅS :xIC 1N|s&AlIп@A+4![jUvV\]NA8W9%( VQ'#Ëmgm^;]a2,'y32|yDM(d馬'P|7#_%.XZozÏwȓĜǵKiub!Džs!8F{v]w}j+t_Cg/ȸFPl̷w)hU(((oz(fA}aӎ0 (<(z 1 ụ^r hXJGyWn uIFssicz@ˇEB4>tUTi:U,%̠ ޱ$JCA^=On*1+  BLQoEo)i[Iu^mRӈIvQ;U(O$?ZuLiKbmrk-GY꼓F&c蝥U!Ph^דz3Uv[g "KC;gۖ>~IYRf׹2ݪ}z7UF!aHS! >O:G]^*-ľuɊ),yZ%Uev(tO;a8usFG_CA*\JDȚz!΢3R?zH!C׳!L&|+񈍍-C!w)=3q@m&Ζf@cH#sU x"V" U={ša6eKa[}D@?~o̺/Mq߇PT=&5'9Py?yv]8",ׅ s+qjи^VyN|lXޮH`N}}u#==e{K>8M3%h&^JAEuzJywyX_aey J(^+3Ҡctx^[<>Vv.XKcv dǩXDŽT:KԴ@&D!H:*TEz@unq}AcD q=>}|!C/Pcؼc2D`5 )i;: @9/H3-sZQ"@]/+T*zWe KVyYS{naI'Oi1Qe{(,s=`^rmzV8L׸M(5y 8O958=Ʃ~[XUcw&GǡWnU~hL"|k\\)1]n##nyXboh(fe *upynJؗQ8JZAĔ*wWu" 7IkYSS1LhV ;UżosjwSa sXJ.J ]mx~%Lagc(ar <7>}F2TJmYE]JD-zwž3?%HW_ U#.i&q^_ʺ+ +*OǜQdTw 0F&%15D*]vֹ1ۺnQQ\AtaRwq*ua/ӓ;븾J$#b?%Y>=p@VO_`J{g&6cK +PPs 6 6wv 8Gct$lɫ´$/MQ>2(T_~& ]W{2u )b6myH-UT)JEY A9f^j)3[jTr3epw v LIa 7jϲ#G32K:vcY+d=@y'?m_[׳&j θZG]Z*mllYP vұmm2 y vPzxQюv=87~['z-Ҋ(Mnr1[2Jm;5Yp*!W gxM5cRk3ѹΔxx{ 6fnr}! KOeȕGKILsɁ a%w] Jƛ*[#qvfII~+xFpŒl㽾#9acaZ#jm>@\q]6cZ81! lЦt*N孝2S|'C>\ĸT\1)T֋ ׄJ~rF: Z#WAwKcwb<9V_[s&"d޷40ݪd{KPD.&X:#21B"T& 1$Q:Ə)yNǍRW2:"HQ4}v}(fD q$CAլHA[lnrl6gwީ\O|KQfHI\qeZlGz1\c>rKSTJJ,2gLw^G_rTp>! @3Mk*il9&m)[WLBfÄx.@M})_1C_$oa4IEaN;PkX(-3z !z,KqE#_B?qlW&=Lx>V~`OxvmygIݍu=%?"Pj#ɰYt;5KpmVb`qmznث,$tщsCдx}2QKj"dɯ.wkYx$ב]eQJ 2t O@q7`Q&B&ؐO,ep*Oi_l? ۼ> ^Px.P _^Y9 يG$xw|N.?猠#(M S{ϜѸmc;*- kO:P^gD-?[oO~msDuyE>@hBitp?=(D`AeԼTjyicsɱƁD}샪~cㄈULíO8ݟ×$N:QaSrG},O>:fcbeY9`"K AL,oo}<`WױW5<LEP'6wCيH&t8%Aݼv}G2x;";ØC7rkz, 9ëJ >jK oHj7~ }@]59Qõ!WB:?{:*FEI.7{mpv۷7)m clB+:Es1\XMHc.RJ=qV wl@5jfE[Os'O^~myu5®Ĝk aJ!MzR>1SWio+eʌl! E ~"*FvST8Q7jG[&ɗd^mh/6(;\_iV1;ҳY7{1"|@@z~NzPޣu-x dP7@ "LlxO}|ZFhxe*qnܢSq}{QX굣BfY !&t@!H׺\ppa'31ǖ۶UExrH/7/"8+LiNl٭7&о͇ec =bO*]i;Bcˣ ?Bi;AdŨ "ZaAO@QrKu/3z SuPt 2ﮚ `qҸfHz0Ak,eɤ"`Dxx(6=b4VOz )+! NUw!|(Qͥ[g9xQ:Ә!E Bh,ALUwˬ ɟ;DW蔇Q+M㤫1ҘHTM)a)kR2sw"(g<Ҭ^[cm`*($ݣND޲wXnB4:Z$*Yy8+]EdePrxIEEqA-Yem=b|ag7;ÐHDaY_:-ȉ_?270WtɬYzP講ڍf/ u.rHb j̼an0_`Iۓ_#RRnq. L+1SQ ЩھLbfcQLO`euħƴbgAA-S*jˇkU]RUSU[ Z2?]$g6ގUHC?Ctt '̳zhSJy[ۘCfON8\H_(ĎS]7!&~OYa7w2s|+n1 㐊?DAh $h% (Ė0C¤ts'9nMEc2E ,I _MS"W<~ONp@S$K95f*8G[0Jp0ooܵ<ԍtlj*(n+K8'[, ey04r8F ?k`7u w^?:cwA]Ji3LQm>J$doxD5iTݝ2_u%9RK>9M jۄUv3$N0Tڍ땇F1Jde r|}b^inkuX >#~p.4cG/D8*BK~6"_#r'DeziOV=aK0%qU40"ZݎT&WI8#+^RŽAbZWjDkEL;CnDF@1k`ɧa1:2S\liV\7'@{3|r"4^4%^u:L,mUIT%MmͯҨhd6|`~9$ucm>gAehZw<ҌDX:=[SPт; Hh\ig}#"lNƆ@ttS-E0ɳ mѷ)}y`4s FcZx7CQ *깊FPރ<^"Lµm_"Y9PAGkbڃYr6L5ף E5`j&ձSt:[?7968k`%f/'y#Q+[Yhc듖3u^[YqKiJ#sfD=~;㧮¡ZOsTOBf~K@L*s9i`w}gbl_?MsAiWrHPvTL9O"?>ZBpkDaL}~ 1-@C_i&wNvNjǝC7&y9톌{C`݃Lw=m$BcU~oMpDv`0BÞX@±BʖH?vcQ%BOt d` u51ŷm)0!M(QёCPc@g3)Q1;xr+D~_6Trdni8T@A0\%*ԞDdl!y5x9-Hq.D]K¾S2d' 4O%sz|wVz۟XMX8dUnNK]\6yǜ3J7 fbk: -j-kC0ud+Ɵ*_,$/j9 >,LD{GU},.*~` +0ouKi 5߀Ё{({Kj e?@yp_x3V-Qd IF? @3r).}T+ t!h},k~@3IDN`_FȂ$QMi ~J8RY^j5#sd,5-geJ&Uмq' V&d?NĤL\QW_4(| ݞRi@O:hrȩc̼E&nLTד.[OR=W+|14]](%8 |/1nzM2u_Anλ׈nVacDG>CJHUE0-m@Rsϻ99%Z@:OAԋI1@$1Fi25⹼vI ;sn\p|#jfI/-U(ϸL TKSJ4(鯎9[:5]Y^ Bcs260:,K(C4*5X$|> EZqPwdaɂ\iX.7&ۀ2Kf2PyrqTt|"׆ 1j(\cy[)q]\L ,*hTM|qkk =ę1Q˭*Yq7xXDǷBcrueeVqFC!Z/xꨅiwX.8I iOL>EQ,3)i~S8W.tJ$Yt[r1*4,yH Fp6 ^0ہȉI]ٞX􏇙֫\L?5{X 샧q[KȢ{+1ݗrP`4>]*A(7@j6m$ IHuTx۷3ôn51Y(q>X̉ g TH:$B" ė,瘅4 =L1#aDugD yqj8fXć!j$ tRey/Uk,fq1>i-qa#zߏL,\фpm[#sa o*! '{^#M!\\UDixu ةl3dQFI`.LB6oϋ@+ys(Gc>skֺ&:cu7ڊ<6zD->}ssd',-϶(q~~hza[vr-=*.ՋՅMo3t:X#|J=#j,Oɷ,둗Fdxw_A&ѧ$Q+ձ)캶gQ=wWVTglmtHV\)W0lJD{`ښ#! `}|lt y݌>W %h,D'd1DWZ}>c,$.@glSHO ^:t*YCǘHlO Iu0:mk÷w9JQq *nz77,+?fmz|]~;FjA {[ť@xұ\ "Š!/3W3!5` VI4lۺsyU{^ 76-2t٘D&͢\>c=^T ANӳnwU<,U]XT:%,*dw}rP,vnrl*KslLSR 'ls Bl: 7eB0޲ڈA~J_i%E 67XP%I0D-БAq+Np9m]gURI0LjR7˧6q}0 >+TqQW/4Kc )oon9լrm=QysnZV˄>URJoe PhARY4^fGO' 7 0`q{h&c馿{R;PIdc75}y!Y%֠ʤ!][vY$%z=nX#:*yvsC%%s@(!-M9_Hh9jcd0:sք(a)ןBaUuz;ޓH ]IpMMV>o⪞tL2JZe~rGuu2ؑK<hw3ĥl[Y*GC玅F XW{i~W˄S7[~ssߍܧŠ/ _ L*"Ej6ĿH#c2Mj ؒ ېؖFZtE m免p7RcكC *@.4~8Xt䝖U]J"KQ_0(>J(SJqe91| g6G~ք";B=pEhI`@5ȴPACK ؁Ǡ۟Kja>2PU?wΔ:\Yυ½/iᗃ߹_iFPlJ12ȈUNԼPx|t<+zERv*΁>/ o{Q&*'  ytUe+$ 5&8˩VHn#zZ m%]#+9M΃Fd*-sD Bd]t|ILb:FfAnjƝ>=EG1RC$yR%v[88v7PVWpIVQR΁u^JvfT0yyu qHXv#XlS$" =BJvOUJ3>S[@cdBuk΃yClq徯<=ṆAڗ %/ nn)dcR%,I.%wDO%i;X=z8PX,Uwq}oY9߾[#ǨjaJgAl^V/iyQUuVc=xhEz 6Wg2?. qKYłˉc0 r&H ;r^kŸW~亍)vtD+NF1]JD oz2e~vy@Y"Vts-y\e.B6ϰ]U{x٠Ñ2!S*)KLc>{M)Q^J & BdM :.PF IåwN DC,/h"Qx CZ%w*ϞMA퇦`խ3Q!bx7.s7 JlZ}Lx`f'V)u& fKoڙÕ8,NE8@uJQ e:o/ OJ A"Gm@^D`=+/ŋ\N x2}6CPJV8iTOl -8NW$r!BBںcyp _YCD7u-9Pyn\<)@C)1q#Juj-lL=󗎅A,W8jfU8J Hu||xΣ0U\{\.>s[yB˨ z; b],ʍrwdאxۖz/X9tx u|ӈxrTbpdzT ]~@ #-NR*\8||]M(\i-iKQ21:7(XNiS#@O M 3!}ih37,{rk*n -$%0t~_`q)m&q™zj}nj. _b4h7ЙvlDݒ>;Wm˰) J\[Zo ȱ3 az\t6"@`b.-HcjqZ%7Bpgm%ZcArא}G:H\l?mL6g`:X$DqaL"?=9>Ҫ[>o)G2; ӏ0LaJv!X^dk(VEo(N։gyN>-BLEG]m/=]L* ?&%npQNoWZiYdPL{SԜ+;R]  `ݩ< 1s+S bUSȠkh[ݐ6ʌMOfkBGvT]~F ~YKܓ=q.8ܒ@enF&AGEGaùkbg<ֵHa;ZT0@'wMfrq9 ~mrcyc;,"ǂf;=ciԔ]^ybT| K/۸yVF$KnKjơUfl> +ÒK3Eop~cf]TM*Hc-ɮc}"q(*!A|k#/uyE P9 @ML0Or6N N+BUR!>JAB3m2zut@^\#b-uvAR/yTdž˗ B]챜0S)J^]f^_wz6㦆2ŭ= ^=4Zɫ0CF|UCp)'scɠr\+7[ddG6_& wbmn)WO! a4NO8 7ta`E-xT ۰|6W7X8}41yO;ZIDAWWSE 7dbo4h_=i0a{}}Va*;Ll(ziUsFMeQMC\Be&<Ք k8 #: jMT,[yf87mƏ7# Y!.H+-v<p,Ma)1)+.8][O&-8Lܻ3jK!]ovP:@zp2Ֆ>w|JBaiLJ52}3yjWcO{:-0M/ffB=|)Qf#x#RC +՞hDA0e"_ԃnA~h ]6X df׆l.e2m9Z#I; @1lI&)1VreG;raہ"9X9խSvIȑ0E u+s3tƼTGoW{[ ߧ~ x0#xBUjjrgYg-[JnT zwAJc7gCloVWt^3RTIU5 [Y:O*RV0GD:..J8u?P{S`୓2ƒRBH@ YICtQfh3'TO6(,i9Ix`q1  (69IDao)mB~HI^2I=pxz KdʨjxJתRd'a*3ⷼ{b?Z#F,;Uc?`MqemuSe ,w(~mڬ.F'lX""!TjeEG+  Ղ}}N0^ſ813=+,#ui,|NѮ%jv\ 83{5b1(#6I1mתQ-bz`OZf];F :RCS_Qə0 C1HQu/ة]"na6gĥ>[\UhkP\/%0<3EY {r6G2|2RI sSjFVx1^3~n5|o^&Tve%'FtMAZ@F6FᄓČvEg|>9f_2P2l|ZB##К]T^0`I>_R["-)|zG@C;%Fw G*jAYℇ-[]>?Np񺮗<NjV@٬i%Ԇx>fHޞ;LJBWaiQ;ryj#prtsܸ7" [36zS%Lc))ƿw݌P3'fx7q/fq 8Z`yH!\mCwz+F-Gpi:[qe\V3!7]!0p btA)Q]HT3h{};.iZKc/&OWu ]k(>d=_i̘68A8Nb2a1viKUEgC*gdo~;w~*>ɵڧwl]?܌{Zx*MzGN⺄=>4s}zՂc4 @D:fh" 9xP'Cse]ⰁP|:ZcԡHz~oL4Q X:VDzEɎ@1H_IE.(\n!܁岨PzFǛM'ض$ Ba-aa lXY`!abH&$4#B4^bSӌ-(p0l8wuyk*;&P=%:w;A`J?ʬz61V ɾW5rtyb>C/΂&`;!$1Ekj;_-0\O\DX"5L7yx$5EWntv?LySX6N҈C@by+Fޯ(|rr z3I0]<ȢCXL~gbd n Դ4djZɐ4Oi>g ;MLt6r&ZT񼤱SW׻\vVQT$q^l5Os\˄.nYp2nM| $ЂǛ,-Fm|d?*esXx:@`2op@-VM'R۶? Џht_ĵE;%ߗV@ڭNbKz%_A\Z@ѳ/2٫E0c!mqRFsJybW xR(6͂GWӼ@WƮ'ȺAp{ƱC^1jҿqU2cڡvB5^$ ~cȧG9 ߐtil,Iqo.YhsaOD3Bw6#ki8yUHjϢ/VtLģysu'kLJ@}\BY ylrdHYò dMf+@f4v6lIWC@cz7^aUz#:ٞd|ҀUm.sx8oo*:!ף~ɗh.ֽ*󨠱$Xχ`<ۨ5Rr7X u mn1M,Dn33ClgV2eTcwdeGA3 2rRmOmj(v% |X`$9[!(&Tr>ޚ1mkШ8AQfHHOq M9 6ÑvcT"zaPSXJ$=#[#`%tӇt jcҺ;lzqy]nS2@x=nӌ,OUY}0a.LY׭ɸф&᫏'5(zHx2h2gux⻄hwاir#0ll 3sR E ,.n6 YwxEIKQM2׮D>gmnz6D$Z .T4/ueƑL;<EB-c~mճbd# RF3POdG%[ƜvTQ.zkl<|t+{ , @s 6'9j@僣U꒒#gq9mZX&Q9q}qR}¯Yp~hˡ4`^Z`ܜ MLHTwg(WA~JEхRDgi2n5^XՕݓM04c4_o v.Nj6J~޳xۈ mKMESĿ;pGEm{RTi{'dmP!iIlֆW`RwDMa}~ oi#e #JEBBlL(Kc469 n3YSehW<0$n%l0T>Zȓ"\  n֠@b=9\|^`V6WfDRY4+LK9s9eQ\su4HN"vZ!Fzl?H ڒ_)iC|84W5XP~4z٬vC 5w**M@WU=7Z"!LL9*{O5Xjq}Cn%tF;OwCU $fu$@pEGuyENKh4\u|s\lI'Yiʞݒzd'Щw^"X)y/;I]rESBFݕGbZK|ӂp[2I5OGYU@p>-ʻYkNJ/j'mGS&'oIA}APi!},`laYGU1ů9PNa72~vc&rU:c#rx5]fV( pM6G(gư q7{:Wx˘P)LP煔FSyIP]g翌w3'wA(ɸ~}Adq{0h2%xjO,y TѹMJ"w6D{31}2& (WCIh.un@s83ۣ'x4g#e_K[ ,1jH XWN}m9zd";RСSqWV$R=N~-c]vqECOlNcRUAc$mZ|!o揂@kV$WbAv%t:G>a@9}4oQ':XGȸV抳BzpM]j/uU5+9h*!Eȱ~#yL<p|SUxc'q' .g~oϧW##x1/'C;D>[swG}GE# e1=t5$-/hcnZs"qd op~>=a)} F~hz4xBS-ۛrẔ:b& e}Jz_},3a˖ 1882sh"H_%xCahUQQe]p.}309i;H._RրhhSIV}lێԦObu"bkrm~ZJ!ʞ{=.m2ּ3b=\$^Ł ݸPpt>bqf >tLYK]=Ix]SOoG?$|B^Ĕ7T/Təe}5IcPlW 5=i[D AFH.MB.Mވ-+>! Ek`lh"fCixSųw+zm+]2i_J4j׊"̭`.f8MFQRIbZʩg)!v!^χ9qRsS1 /=Yu.ܻ^ {"-Gx gRUsS v` bL% ױM&%OuC.Ġefmjof[%3#9x?=mT裒t%}>*|2j?Q*Kb؄k5ne@RAh†tGm&;6tsCرA%"Ts8rl~-zַ:aU`>&tb J"oeE,u^NIX0ϗ2Bú1XcXmc1OٛΧqu\bH1.J[4aˤx 86]ic\N-_qk j!8S׬!;آe>M~ zJ$CVr3Svڪ?]Bt &Y P!.];)ybӴTV?*) Y,oд5>T“Njٜ욓e &|{kpG.Wb$%C0?6bzy΄]J+Jb`oE5GdIH\-_#Sبta=hv!'50>\, "R)>܁)d =Mc%Ԑ Ya*j4++~\k@UW: ޤW@0*R[KQ= _Lv!\;l$X'Fkju͌}' Bنۚj1 =G?fn)hRSdux rhH@p-P! 8$i6&lV_KXv9@g@7WgYߗjR&Yv HӲIxkKru*)Fc@p"gJ a5d>~Rq[+[\zrCʛ0k-;OqqXGصB!lNJ.sr%;9bqxɠcRB cVp?n,O6蕠^/GvfF7@~ka͟7g \B!_;Li!duBȅcLm+[Ϊ ""%b88EDa.AǏJMk/k;\SwhptLx *Vi|Ũ@7Fa 8bܗOO;h;(y4A ֑Q9JGj}PUͭ)>6fI֗|L&= Tg.AU2ѯռwM WQO0Ԅu$ xS1鵅8DNy.X^qZ>Rʙ-sL)urp/!< <汱QRq%L\FfRP-"EC+M'0{<2dʼn&0;^DIj IkI(Iu&1֠h?!TeqPÀ >|OP9B* -DaI`G58#.rW9ΜZ|Lp\[w)ܤ DO}vhs]ۼMk闧d;ADvd"ըl&\^5]71򢹣 8RyÏX?Zy~V !=]l^Et64%͍kG=:ok$L롂?ڨ%> yBA6gƬ]"i@T?GN XE?~/8fma^7 z PDaa"U!?MV&*&˅sۺ 7+V:i?-rJHxuF96d]N=|kW6$W#N~^`韋c K*pjkbn1Fʖ~A7T^('?JOpL) GZh ӱX$٣-PIʈ䡖uuZmU[w-{fDcPκD>rzLT]5,[X6p/{I6l eJ&ɋqjࢠmeHSiZYAdz@Wls!ԯ]NRN0Dᦵr ~{v@kR[/~Uqb^D5p3?ZgD4e_$/)ZKrF5vtUUy82 Sl q=sEyͣۥnGsE?/2t4\{"AwNC<;oVJk>=Bl-|Eo#Ft S;$`:}٧Rt$kdZf\.!{I3O*DI"ZS\'|j X?>C$ ΆROw';Xk5PbcnW/lUoXo|!r5/<'.)}նA%c Sҡ] lA=;Gd5hX6,$.@Y) /1Žs~n&eS(xh5w?M=GmT9@xof"5{xWr6^e*+ٸQ_G>8)W֝SU QG3n:< 2cyNJ8fb@ÿer[H$-۳i/%ݝ$0v@$5H=~zݎ)vHF\=s9ǘ`l|I^F"arq&EQKU&Fb^6dpO^J[aԻ\ n6@gbZf׏u0x ,z^˫35^%R+aNu*2酿VW̮p~Θ9#ky _AtS4},*!4+f#g)EEy:lJwcnctFѿq7 }`f GGdOhńuAɉr6lBRC^*A?'qbd +d!=*P3?22%x]|P7o[,-Gh?9އXAPC)yzٛ-I˿P8kgkI빴^U,}ȸ2k !{PadW.`A BD^LousǰV5U&;{#ig;bOis.xȒe u7϶b:ev TK5ԁ'ln:6^ ˫[~x(<͵yחv3kINх}WhmE= B[:d}(tĆcH!nԨ2I wв$8zx Ac>, $H18>yqcѿ=AT3ޥNCrY=. ˟՜qɆcJ)k8NRo^x%M?>~&PԾ= ? IygzW[dum],9Sq4xm4WB`!'zc^Jo %N* n;yyp ϶@}jm( K6I 1}NJt`W QJg30.$|O"QbQΝr>?21Kl]Z UqoaF5-CM4IHxoywiݵbi=$GmWIEYhO+bLbhuG6Isr Rǹ!idM !\q]s%7QA# +: U1wA*BPVS3.`|Ui$,Sby2i`h[i2l޸UtJ caSI/Oue-ɍ#T /=r$zv4fQv8mHkM.Nv)ڸWvMԕ] H uzX^M=8LraMC)9h)eL+E^'C؛{~v ZD冫tkG*&=9ricR< HۧHXcyZ0hU/DOrZy x;T-Y-+Ґ)H=]<fD|+HL[}b] J}eO%o$y=mSfk՘AHؑ7$J|r_Ԙ Et%$_4~ؚ$djA%z;E+԰A8ir\hdq.;Q௑kl13oPO 6֑3Qșp4pb]qZsqJs#V]R]a{`7!R *y٠ICH?$ྰ @s%u7^8a?'-rA-NW"(vOErLl ,1ϰ.Q Kĸs^|%d߇i@T5,v1cﵺENL~JىfzRLu٦´6 0BKCs~Fp8.|o/a5 [&2 %L5vɵpVa:x֟u,_үqݶQ Fq[Y:Ow7>Ŀṹ9L#N:,wz/doX'-ۍSh{y?h]Mγ~tfM:> s޸qj<ċp 8# * 'ni\&q;s"CZ7t4VonJ&V\33c<& ?(b̩fBp0pPMfkC,kg d$f)Sz9=6GWIz"maO/7G= #P=kE#-ۭ# "c]oE*Eװ{䔙mUv"; >N>3R^r2g"YD~ݙ8 vʝz7~N2&C|VFVCCIa76+f r=^5.Gb7'JQRrf7o(\TT;MY3Zp&Ϻ_+9䗳AAX"]Eh\9p~'#{wZgٕ7UuMAoxDfT,쥜&UX/w5CG}OO]ᮋ 2OtځFXLL9uSJ$ ]'rwH55\wq8akKĎ?2t}`Jg܍O1@52-@'Qׇ ]x-sPT\DGaP 9R #Kzѕ@L8q7!]M !loBw45t+KuZJ ]F-THiTh~t.U"nrB|7_8`;7 ~m?o3!YVA_HkoϏsB*oᓊV1BR95Bxߓ kp0ιݢͻ0I%=fI[/F~4~0-O=z-cATP[ !E9[&M}dt3<2T(dا*dS3:Kƃ|q3>pyrmkZLIԖv+)Y_ruvBTPs<>ˬ&wth}F--Ե:}F;HA6xx{%1*"\<=#`35 l~tWhXwvWy] Uŝw[̟^=lD^5?|Q)sK7I3Qe&9h5N62˙z) zg@g!##Zy/`\ ݡ 0q0zhUi|wRk,>湊o!7 wʹKQ~`E#zQwIb>,]vt, +vNѨH)+rS1{dVWd.!z /x["ҋ *vJR GA| ."=sp#k$\;k, f9SP*QePߠ"ox2P7~CӞ%bWM{-nD(l}rld KDpJGsyLo] t1zwު.Ih nJٮtJ/AXfsp '1|ټB$/+<+8Fpka}pelwx(C[МD\ dC=]8oEg\ƓgDQfX~$~=(f2,ݐV\6{RPtڡd+d -hf$xE'hqVDSu=8)~>3xRjYy.7G2{w]KDI)p+Dt2F{ҦF&)'jl8:ҐTqTn[vyU=DH5;s1iXylA1<"Vu'wxW]_ o W=]P<6]CVB]PC}}S&Q*%ORT$>tr(,ryQP6@56f!1S/]mnw'HG/I*OLcMcJƝQĸO'kF:𨧷p ]eu`4Ln-b"i/H,8(yX~QoȺ HA)T$u![MԆh߿O%W]۹6qD~yug*@u>jZlBO@wkƽmn=.;c ƣ}WۀCb7 y8pH}$V?=Hz+@Es//e1EXD\ %ɞ$81ކ^=æ$J8*qՉ0W zGC9$8 SAW+6Oܲx|G9Mn^Z\*1tQr{:_2RN7'CDd:μcbwd#*{x^`H c~W:}ШZWۨj|5suJeI!M9½VR~AMeͨ+֓`ߡH6wM',Wr(_ ȥMFSXx籌\w-K\MGzJ3o6gd'ddx9"#:+:FυMD{E;#dFD=Kkz`D1qx.Oo5 !*{{`fp4}ԬAw8ՃE QOQ6aH&_0q 0Z"UkpzXYʞ: =s״fcIQ;+^!y&y5o*c*8[I^|p (ݵυ36zYDɝhQMm+]mZٳQy慰!%F5>!I 3cԺhcd1}@R% Ujz4;U>i*wM^#:'G/rP<|ȅYǩM(1w%@R#@k+~m.S_kFϑ/ճI8T[:w189WaF‘ V4F r\YRKWw GSiYt2ud0,M sv]u ](?B&+^fJ!c mXn Ὥ'b 6r_M Ǭx6-F};Lv0$FNj"%옑pRS!-\mPX%=?}eօK} M@ ZgHKOETF6Zfj2.7"@՘@yF)&Go"`IEL8&{\.%mO*oT7-h#O̭+_-$??WLR|O"a(BWjUW-[[3iF Zށ9NZU L* 2\ILbSCq%b. QNK4n+&&|XAj,y(-lb^ [젤M#-Ԩ)4P-Lj}@Vf#M`Z~N3ÏM 9Ga71kL`jt3;(@JbߙaݰnNkkU(qP'Y&,Y3(29k%%(@éwSiZDpnYSxX odN3§i $aG;z?8S>xKpq cd0( D}_An5L wUv5YT$ثQzak}ou Lk.n]ؓFmq~e7zXyH{tDS8vl1b۱Fcnb9cZd4D]N,u4T gq#oJ(2LD&{)B?9 F=1ˋk[M6\*(':h1_J?H3<ˬ V%:MhllAf0.짋\tpVւ C "=CoЫTeJ[ 7.;D%NI#_6s{.>2!}o.v|sY~iӳx"f =VEtKw#NmQ;]ovg ]{ЂWuz0n_dG<-H u' [ӽU 0MR ''+H;s8gEY7*6P )#sچky `fr#^lgpO~D8`KOl uvF I66uJ{v!v@bbZhñqX?T8Q/&K|#c&==Hd*r5a(_'|)5=CetidY9jz|>}+țIr v7f!A,HAwH@w=RL5Tm4ġu_3i^6η<*/=w *"BfJ~gjN5\В&cT8V~!UBqXh4k|> 4=Si饱Y=f~" :XJI11F1fSS$s$%y 2sK`7TfּُɿжOz/ G@}*7I pGGFi3q|J9 O*52E.o?edvA N{Oͽiۋ9R㵬ϒU!Sȡl C T6cpPvR&Be (TImHBƺ>H3izMω]{դ.2(pZ&=S&J1YOHi-7 ,]yh^Ε*ІFy9S{y$-sC`uٱ~ Rm$Ӵ}UxCL~=ri0Sg1i^6Oԃ%Den}f,\xO5@dv:Y'H a[~YMk0c5~L`vmw*oX]Jwϐx`l8$>ѯvӌX/e' gZ`@1~S c6`>l ܗ"Q3)u<܌ "Hϒ 'ADH)s٨Kϱe*M/Hx[+@ȞGR^%e f ݺȐӒǚ,ø7Yv.g|52hqMWm;kZ:hc׵jkV;kÆHM1ze-s3O 6Iϛz/ոthGb1}"Ȯ.OTQ}Dw'נ8~O \? "sgP|"s@EǛ's1xtP^G?YmOŝ EBHe!Oywm|m 6lާ'!tM"?=)ꫯZ o vv6wmM AѰDl,`Ju ] >t(NUv 'p՜ix.eYuCYI;i5iuTj e%CҏҺY+: "Ns0^OF<\H $큱IS+P+]t^'[e,dYe x%xKJz.ԇ*KrwAȿa[{7hDy+Rxf!P*q!hb|uߤx<{]1ZI`z3no+p;>D{تPB2|q.S :?P6dO`!03OXrZ;W& L]5pث9/,d]9p^!|$%o? R KQAI9"!hD*mm![*,˯t*ewR엟UtuG`k׼Y_r~dg]  I7xiZq f>L~ ܌fEp4iegԕ1D,ꣳbO ?r2S,CuÑ 5L(YVQþ[Ǫ'? S,3vX oR4f]/~V{M!|C*?p5j=?\O4C2#<ɐm3J܋OA^i'Q(ޑ-JPRaLg;|>)X>FɓR}SaTʝ8's(A{)pWUS ַu~{p ZP»g⽰`qɢWg/PԦ;xiPϾD|TmCx`c%H;#0IT{>^2jɰ;(?a O}MYլF/KL oPޅ+͙}og0GhAvwWKa) :5HpSG5OGnsO Ia3S_YnΤZfcU3kptR+TofD)3g%S;@, h& r;ܣg $8 x9.c}p=ρ̪fu``^ D _ssmUS<"9h̙M$@)έj\Zi;\@AOWy 1YG$-V W,8Ġ]Ndޒ҆!+[@9j[S]įJʋ> z)/!p K㼭`^K}IE{U_"EPfÄ {C^!Y/1#ϫ82VPE14Z>W}H\}fC&)6GסZP.|48 q)9 1(]Z.~ ΢~kI O5o\`Ҩ|z`Tv߾u= uvp+JyYr/% /EKTt ̻- @XPI- 8N_~UhVw>"5bkS?m"=rBhEci `#6Zb)T,!~cK*dC^4Ycu2%I"9tM]x~f]u Xx5Zl5P!oTzK?BY7W޴,g J!`Ya/"`76j>GBD(\ 9O;d 0nI4 \EV.G:ι2+t9xÁ~ڣzMPtB8F-&@U/ԼSHO UTI:s~ cuOP# i2R ؁Yd? ό"@*qti4+hkƠs<ʪ5^tXkzv}hCz  Bȋ&cz B)nXM(O.jKKxͥ5ώeCWQGSwȡJED#8kRDgd>Ǐ^lQ%AS z^_BkUhʀxSv,Dhlu2D7RpyOç9V ]/2ΑD5#n]( dT$?ZE&HHYߒC0Qw# \ehYȿ5z¼zbf{1 07)ZRDn .=/@=!HϤ|L|tǦ~e=WkT/E+c"9X-Q*^fV \<o_{yZ<~Gjp:uܷ/$)Z kU`W|Lh#&-7fQdԷw}@݅"@W<i{F,y<;ˏw;.1ReUzJ} OIV&r/?[m)QB@1hN20XqunmĝMGK-K{uO!PD$dV Sϫ/l'am`剗Z3K|# ~%(w}Kacݶ_/cp++:v^- WX|"dDw;'buFʲ}+D DN>GlW. "f>(](AuIO}}>Ufe:?TJ][e*%s]b0fur 2|ϣdP4+}Xi,Zόǥ\B=z 9a;a dх>'q.* J$#70$= yNJä*UR5,:L./zTgy!q`Bȍ 84itn9O | k˭TKq3 %Ѡ j\wcѻ L|˔'esϝ駩O'CHv2OSgy,;BV#:7&W,SV]vrnN`"un;뀔ttaWOlj.(WJr|Dk?BJeo26V}tw4:6SJsKD\gKx铒Y|SDX/]_jn *Dr9'6?D`UkFI p',3%:gEx @B }-J#CZpf\׿%]lJ'xx:1 92}LrGs87A̤z^=3ƿ,? ő:;^8ס_aOA>TN.ݼ' 9ϖ|ot#3 =uxQ7EI e6ZLT) ИNEf SUQ5Ļec.jT8fT V[=dK4=u,}.]qdmd.Eqc( ih̕U{!L3T7ƑXpґ!,{aF*oCbBK]r :1^Rzszަ.ڱ}r}kuH'UWquavLPz "@@~S47~{{%sFQ H$+YAb8,Ǝ)al`zfrVdrHyaMb{x4{8MgGI;0縔P},9@v{ktk9כA/4Q?5q;lo ,i].N[W<5`]Jj85AD/lh>@=Q[Ezs}a9J fXn"eH1 1qUo=aeiJ- 5dxüa^Ze֢)&!`=M5).tmɑgb;*XHvj"k/,)EߗZ9E݆E5s[Cwn%Wc:u蜥˛$ z;'"w6|8 ݪb nDaYaqШ.0*wP-U}."`3sR.xpHA)!\QEzG?N冓͌ndM%R=뿜Z ;3=mrkRf Y;`b\IɵVpN;7fZ8MkGDq;5@аqb!L^yx]fSa o U`]sx$]Th@k{DV3 'Mܕ|Eܖy';nޖzgKf"vJv |~p3Ddn}#DlM؋kGnlCrQE *ni誖c;.%-=Phoix/`+[ 6&mӄ+%B44QfJehp} v-?0(?raýY nt r)>z7[izncU h # cEE=mmP>=XZGáui?R!J k2a[W++5`M|F\p}k}HLw!?_h[<Ղ)3/<v+G;lJ8.Cu(yIW>сLRQs?J0j'>|N;bH nLvD&}`q PYKEip>ƤHEåA5 [ w ZcX7oHz"Hw9B7Q]옕k93Sj@\C_B]EiSnBR SMOk[H)ō_3RTro9ƪH2hlneȘPLn,xr/%3X?:7<(BT7HH=H}l)LnP%%@J.7Cec4imByQdFl"%1Yc'g1:z^9sfY#b֗D6c_.ԟ^䋾s+SL #y "ص |I:n>h54 (]G'C(ܵn !0UNP\P/~Q;h}01J5EBWz&o  pʐ2$Vj>oԊx[]4n,`?RsF?=SDTLW#֞65~C{*=<%, ~xKP׃P,W+ps?)t7:n Iw35L5ТQBXSh37֟0 n, -=h6:֝F;>0'\~Nӟw27仴&l>.֎ TǾ{D>t:ηRE ANY%񃱺vO$skOpguWFC5//~(ǃΐ|TbOm…uF1~>c(H[yLgf4`;~ꯂu}obhdi n` vݬW7IӥE'IL hB/iyrOr#iU&,ŎMfa37^½JgR?:M$ Ov + #jC'?YWYV7O9)*q)p&L[@RBJg0FJ]@K1=hslhKp#2JflrO&!ˬ؛/"OdJd9+ټ^=?n#Ŕa3gߡ. rÍHqF\ؠ+;ky{)&0)lf^mbꄒLU=V]"KII1od ]X!m}̈H:0z<9U )}4GUqq9Lzʦ)^/ <&<:ܫm=%|o /ng! k;xexұ=0ZV3U#lqVd*Sn8ӟ!BӀR&ƭJ8[_Ķ2)<@SۣsXZKֱ2./>t2a2rL`U}ڭ7RԒXMS(7zFMY4޹4f9kx~Pnsd˥UY_: O'<9e>|%I1|XtRq൭0Kƕg #BlAtuEMxDG.Iy`,m˄߃行#PTil#oHUW P ^QzѠ|YS_)S63X/hMּ yhrKe"~1+PdI1|pAKo{uƄ*y'hه-'ņ Sѐ;oI|K/Prv²] ?%an@w¡םTZ |Dڍ#Du.y'hh9k(m>][K}olzᵟo,b)QQ*ܚl=L(ON:dU/@bc,~vrqXJ 9*˳W!~S03O-O #GSB ĺ$ K C279YHx5uaᶕa 2fE@E%<&h >^*wVmu˒ԑP5NMjQ/tH cbOIXeA*d>ƣJLQ( 4)7g3 "N&r׊LowM Z0MK6ڟ|;@D/c8}y0OCd@2H5K1υsҹ&*V+ Y`8 PL|Ə~$S;#XE%!ʥFغ<3$ i\̣Thq %6}aTA&z fK̷H)~wH? 0R( IC Z,$q:n~.xO: H! tÛA p'+#bf,:W̶\ -8nJN^q?#y8M^ML= bp]S8] <BѪGDR?ߥ4mqJQD.ѣ6]c6Li"*UǦĽև (\s=F ox}dپc_)G@OY?\qXL0qR{dRZ#)|~7@ǮI5J-/}*'(~r|Ln3T]v9`J܃3ͣy^wICN>v>u;:O\a C-?H^|19I7u[u@yf Q6J~V7r )2Nfi:^5 HXw%``5&hc2tO įr1Ό2tEaQVCџ <ofKm>7 SS4EH铞~FH+N ǖvReӸd4 R&L: ]MMo%,Oisր4 1l&D:NLj8S_M~tc7SqqH"2/d*=T9ĵ2_OVVXu^.f#U8R1딷k9 mW/or$^kiqQG U!ҋT v$YBT+9f!1vg%=S%|IM5UFؘ#^LK9ѣw (T$I5zQKяar2Zʹbs.Г ? Ðw Q?bawNm羙!1:3W*r,5n `#}C#E%2as(:qοOGdeEKyN^@콞zFxRwy3&F6Jwo,KI9\IadBZ4%KH&e8:aEoAM\2 $5UpH Qmssb |ԐڲBC$ԴCt0\՞niTĜ \]Ay$t#Һ{L,ʰܨwhz Z;AN<h։-hFMSymYH!Qb):#<)rטE:;FMNyZ*den"kƺ+e8v?e ; aocE^!5S`Ncǔ cG翠#8H Dva2̈́ѥN8Eó41K+ ƪID[#oX;j _<.V;o ˀS\"*#3aoU<^,"} HARN+Jq) Z/Fi[r@hڈ eƣ\/ A}K95a2e7tFz @|(K;&mg&l`! Rk1)˘L+o7d$ӋPD-z4㔧~ >S]ˣUHު ?FjV&|-l8&+4dM. EpMO.IK2&K:-Pg2N*/eW+[@}@GUr?Dwe=api }ޚʲe՛-Ywd}wc`O9wY<~F#$\/ﳱ"gEq-Z륖[^gnTq  u[v`f1lFɿu8vHʕ3^bzO[h`RF6 u֣5Kh<& Qێ_ A-@,F?U,vV2aT km:e_ GF"~v 042d̃+MA|i\nvMt{n_njy5DJq@'v1(Xå/z5~Тq^KezY]fJ}Yʒ*gJG1Tey{Sgrh ^c|lO|'%^&r+ܷj[8Ravslfm@IPE8>԰n:&tA( n{_H2Oxx1tE 1H`xx4zW0&q+3T|2Z:F sµn^aymz؎G<  A ɫѽ\rqSjHƙMS|ٰavD9qP>o-]}c>;I[ %%ŅUI8XBE#M?:Ž*3Ix WŁo j SnV!"ˉUK}WMvGxѕ SFk0M1YoF@nAK:*rUm쨺L~?f rQpSμ0eeD<ٹr1+H}-$zX-X%Ł\bgOz ?VhAI]v|sGm翱2vQi1୾!ZX8'PK'{nPe^}L7iՂPƖn;Rhe0nIq_?1(yD֍FМD×Wk<}u\{"t$bL f?&W2A1PsM!{I@)8ҵҢ&H>!G9avU"<~`>x!%d@G.9*8@m ܦehj[tfN꩐n&A 4Y= `T}[9: B[x#1e KNQ&l8T^;.ǭ;XWs0elx\ JpBL_>Ak&Zt )ޡ=^;߂T&z ?ڝj_Z*ۤ\A%"1"}%-4CxnFY=KpJ5L!!9Dǯ[\3ћ{|/CtXFzy(D?r`E/㴮[|+KWx{bN":~, 㖣2Ut%2vTIF׭NזHLӿhgmz t;إ0Ye [r}W0.(`]]fZhog0r2uiٶdE.A_?vśתDt87Z<&9e1 " [)ܡWE<ULgݸpUx|6i 0zgPAZadϢLf5wN|vl+SAt9YR7" #&ENORw.'qv\Z5\4԰n+F?MN-Z$۸Z[c@ogRa:`7ִH,:r0DSN' i]CExͼⓊ-}}jw?ᴑ{g\%?#Qn%ycѡbB+?H&cT< (Ü4\/D+{yѮ7Q͜ioᢰpV&vqu> āDE݅ E2p#-xV nZb)fԲGπY;w4P9jNMVaIrKI=sb!U_G!xSvD Nߝ{9(#U |Le=*JQ*cl8cs?Խ,*V;qKEa&*ړtcTR0$ u8 8f(Su;Nq.e Տ@=8.h̴^dB/ Ȱ\Qy0/%CC׆nZ@js)s| ,c7#waX:`[B|j8\EFWy 'K$ntN`ѢbqEmشGw,Q05xgn|tQt}(xNw.bU.MAkwچjXͬjXDuWDI"DbCґqM9#t~UNAfvPJ\pZ7/ز$ 笑^n'oO(O!< *M+*WTL>sx)WRWz H*͛"PW+Lۜ^QFeŴ^CմMz՟oWjqlŨ s7٪Md'ѐg}j.z15 Rk+?pXVȎ cGPvc?O]ip]ʪj*P;Ջ6!י͢Qm3 =B("(H3^7E^lu.8'Few/ݸT,Fq\I0I!xbKZM4釾Ykp+W<?h(H8A?y Dovpw# *G}b!g|X'0LT99pZ(Vϯ%vOU0xU)0\]7u71UJiߢ|??zTBl_Zq8/Tմ$^ϑ7H_Ix ͫ{O5"׌,Rs 7=̽Y$ ][rթc=&?<[9~^3Dq'g䮊ƂR(#ϙU>%b#JnSм,mC_9^Ly.c2FkEױ^N)6E ح8B)oZ2P\Plda^%BOΊ[{w(<)PE9F,ChZҟ؟oAR<+ky8\FىdҪlRs `D-VRʭGm^"nz(rbV񤥯sY]2OݿRx%o=Z(G6@)iD#Ѓ%fBs2'W:\眊DjSNM`؀s1^ck*Ռ n{:N!z.8 jS0Aj_쎿6iw2 61>-{& oVDp;"vuMI -Dp}rIZ3yᖺgx¦Ґ_5pO*Z $JBJYmX ƵF)kBG۠58 &Pٌ5(0~FV\Ei U Ž)LnNJpGh f F6ͼmcҞW7 :e7P^DLj9V vSiG9b/_\n\?#$ZhԙC'q\5[\T%C dщ+}2&wAzÃkπi-"~{t(ݽfk4"Œ 6ϷLca 3^hWŦ/[ytEV.2\%ͨDfJ<ȯ&ʴ@#mDbytn咉+iVj jPwQAEk~(#;uV; %sc\C U-C"sネK'z: G͝c6&Gi~>7C[xY}*6k=}m*^pSR^ |i0!e4!:a@e}(ʃ: +x%pw:Q ƛ HWOA]=mjۭk6Sa6n棅JAwܰB؟EIP8eƥm[Ƕy.&Dh~21bM0ljcJC'#ve.d͹X-2Ø&Cv26@ mkCO`qrR..̌q{^{hxM^Jpcq. ,3o$Tݠ@Qn`m>C0eSlg{[KÜFn3kk%Lq>yK]k9D殅{ 6_~ot f8|+Bѩǎҳ=Cfe4,R@KܜhROgPÞ?Dr_ICF,'^+'>S|VviS Ot-C8gK P}&Yw#8Q)70פGAYlۊXyXj2/Gs, ݓ.TxზKmX.L OaSJ=l-9p 3 *H]NV͎XyDK_Byo9mdŕL7㹮l}h).%$^XO<1Sʛx^H_(}?Kk.%h Ž7 lje{S j][1iַGF퍤[-BmҲ}>)L=om<a^:: }rI.eH^ "'zI͈";:k^TY{1|܌H^ kg:6jQhs >A"5fIGmq˲b'`qEǠq`uh:L xMWASو@ % :a1]`EO=*HC}g㸡1lFS1! | Rnx(0"$D㈑`I7-tqHE"_9~N&wN#1yWńBp>ֶh2v^|S~!*'ڽSJʅy kh:@FgtJ:sɝAZ`N,8K4poxtҁwIOuf*>J] =b3Q_笫u4>T=J+)hg(?a ^OKH]!^:Rtnwpʧ>(qxsR3BL[Z!K3^uEzS:_vMs/3 q99^Jlku:HCK@lͳ#;~*.˚H 5Ue ~Ru9 1LlȣNtMō ߗAv(7:&AvqWzreuK9>5]yy/0ځol4(K5bˍLoO]=;h}tݟa1#DIxfv5iѠ K(2}ˣo_5;LkA+-ˆRݶCSb.lhmb;f84$9~?ExQ+ 9f c(>ԕm;+:#:Ԓ,1Ӵ$iU@檹~QR/rXP1H>.-P=~~c{Ͽ^ oCin.m?Jfc h`(qqFɅY ¹Bodm-9^MuO@1 hlz15$3e}xD><:C2b`V"ک` m0;\Dn/J\8}0s0%c˧π2T6yL'ח݌̄}UbM>hySM\yi;r)0e M-Ï4 fi>}4ִY< oGĶajLF 9p3m$#;CVMʝΉʝֿZe$U2fSb+_J}SE3R3TjlZ܆sw"8Ioxnfى5xIB>ϫv/B 񼠘Zƚѱl|Jjn[n/ ݻ%}u֩q3;hwJ"q.t >Gօ %&]Xkckpލ=stGQ52 AYN2z`:CxaGP魋'FvJ['f"ȃ1pR$ S1`V "H|Z%(OddjV+γk=4k7G7 l,@a_I#iuu ҴE]bχk}Db|nIع]~ -j8'? zl!rAAxiT!\m%# rPI^0$m,Qh;GrH%G?UN= }/$ ߘ2+s'ME R%1li]ЍUo)ijv+XtXzJ[נY-QHs/s(4kYdL~ʔ]`581ŗ}ŽwvB"]\hx .Z~^k'f7T0TH;BN*;w*G&w_#d\F4VKQNώ͏8@0n2a evnPT6BX|Bў S ab8rMGc%WEY^Rj:mPq?"em=ϳlsKp6R!Uө*?#Rn+>iC 8VNӶ?< SFS˨gԪ= ;f!2}#5kugvwdǷγ?:ʹ|D֘2X5kX\ɑFJGT4ݼVR1u`em:hN\z1Wɷ%]EU5>T">C4_)y:WߞMLQJV.Aa)ZHK$bfa&=RXӭqӰЈ%}\w tM6ml&'g=`bAy:hP]ah{⺍4iڊ'"C/;ѐĚ{=sz4@dB{+ؕTnF L;cL^_W,ۅc9&u. pbs1xq lEM"S)T50I/Bzl2|9~r9 TM!nZ3Qĥ̯ .C&o nͣ0+}roaZr l3XݺAuT+֪Esz!cc( @!SHv!ӇRBP7{W[@SQ2"pE['\Fq^KqQv 2l-KU}*q?ƔQD߸(5[8 FzPh,7E0MKnπaY;)hI95w^$+iTj1ͨlYTs7^0l/B#AmYW3D{a  _}͠CP5ѣLdY璵"p%Bӊmmd 2@iWkTP& :6|w0yyDc1$x%g3pkt?p]&^нߨ/P|+)u܇sFQ "kȴ)9M~yj" 8FI=c4E4Y^ެ\o~co4 39Jc3ˀ98*6'PFYhl=/'Ko yHPmNFnwdgK K\<|$>W;=Ǯsw5u~WFTyp3ޭ+P_ @ MdfI> ;"ELdK&n[jЋ l%( jZw<֨H8C8;UI8 m %Njg$ݘ ]v:srX`&-F$;4Yzi 7/\")7f0\98{kFK'B]p*W bKFpْ0 *>H,жSqnÆ^.XQ~{MVqPΠȔrhe䈂ݰ05H\FfXV4ZrdW^D]z^rܞ qG6br@[#f ȸma),ƟQ CD`JTYdf6ѣ̸.sSYړ i<_-2~K^d cJFV(JR (?o&upQ:{x4Qтb-"*H*ZW:fHƌ;-kN5'! *m ttpCMJ ZS7߮^fI? cR=xW=ms=^@_Bclk3غMO~ F n^$>jSG@㢧JBrkɱP~w1EԜ{dȌ^n #4OCIHgCPZm%\ch \RrTϞ>Cc.;(yi+팽u EXp5(;'|9ݪܶDz&=0~O}їWk0ϳlׁ;1BWTrI ǩ+g:͖7IX*ak[w]95YW]f9k,LJRޱVa{s0Q>"bZ1JXmw\ (tmt3Ȕ'L@=<Dq~]c%iy * _W޹MX_As<vr]x  ؎ְK3:`C e/Pa<3cv&. br{_yqofuC_[_j:[|^,;"¥d]-<^>z3T]@n X )åA^ZnL%A^XBzpiEGfhgf#ot/,ɥuI%X "{j0+ITS.w +]zп-D"hizr 3|]<*_2H.5_L~;kAG5'[ɍI1Jp Oc,s^d Uk<}4g<w~]<)N0!qf$[#% HR++ZV,Xstsԥ[n^޹tˡ.kB-WQH`je)ڨ4hBd\H ~`ۚ姿h7&GeOu^݅LD{ ١YcJKM٥R$,Aěa-l1 ףq>S3m)ls  QuwRߝ{X/oMA/|`_D),ж_%܌n%DQMxȭkT G&P |t778mZ&ousG:1JOVfHlu.9/(K k +RB ?,툛S20_Ѩ!P QN}W.~{B{Wm[zQSg@/X-X2"5Sl 5RK>50-ԫeqj #I1~])0LbU8d Ϩ0!P+Vq-U tScQi ݭ(M(%V;($:ѓ㡓l:s6>EΎk%R(#;SaU{W.a&öS|?޵YfC8gӻ*q/j+nQPyݲjƀgZD3\nw0{Y/|MR %5F³oÉaa]}"6Là]1޲VrSw{UjF0zVHI]F2GהzH/%]6~lSTu JȪfMd5~gCY K jS$D3Ne(d"3Ҡd AGhmq}_a*'m(4sc $; 4H/G ;w.VvO( oF_glN MŪ;@*)mt>QMp0dA+e~EYL?Ǹe.kOfMcF*%j*- eFEL.ro"u͆BtBWvSB I/Z!YC~:u쯞5DhhsMi"c8@5Ef*$"a' M~T [I?5 :KS52_<D!cMh!lEnhm};>uC9H$gqUZo)U؈Xwsw a8{a4* ײ!32 &yE '&;pUθ"qi%v\$<z!M($%1PnLexk!n{eJt3VZ<x:QؤϿW ~mQ-V]Z 首R:'3*`+OQ1 Q~KJK nS?p6IrYfJ{h6oe=F\~mbVˆ2%xmHc!]?u N/*w!S\㭱6hq vu&~PǷZbn쭑m/e|cAA«%Bַ8۲ZJ1OhL4~[cQ2ڔ0d2 a巸DEM4Ta`X]X']KKͧ t7&~Cgʜw>cTx(\;hbjXS4d(9N:L~\\G%˚_ʧ?2ق+L 4M [4!H3~xn(u]Ayտy>WC֌a>R䄱F9%ȔhVX-]IETSxUߦzqTC-Xsۖ:ÉTdǤ4:*zj5r`z qW]#-z $ܿ-8'pIfo'9a.+VaFbkIW){woIMNR >=uQ> ;/g?qxsG_ڛ<$T8?6y3Xg[mbv|ѭK*1͟TE` &Hs҃{ . 6ydZo2b7Fm|~UMrE)ް^Z.6];BԔ  0hQRf 1H&OR93GksX?^3ݲR% "|؜.扙VW0dlѾt&DXɅ D 4̰sUDTd,#.Mi} ͠b@5bBm=Zy;Y8Hw..Y0k')==B;6k+? Q1OtLPɕ!c([1y8qPҚ)3x`L{f&(UuWȸJPOV" wq)1$@tn/<:/Lz'<}~0{a ǣ,/IlN jwkEN_ /zޱ߲ynmѪ%*-\1w r%C"e0/aWS75RQ̠՝{BއcjWL,5~2CRs+>3?[ MTU kİde7˧\hxRnd@N0O=zfaΫaATȿo&#eY&S%kknлB[e+D6ML펍 U<*'|rs 5IH s).igO&ʌT-ʌ1ubIy#P~JSDMx)fзVqau)ey'tK,gNIJuО7gLӧclm~n@gHmmMriNE"q׺J}6O)ۗ!>_iROPF"LP8L=j"ʄJ)|5q' -dW+ƃ.uJUI Pۉ {/CJV.l^uhgߨWL26ΌkZvS-NhSW_:B7>EDo&Lʉu慽+VօEMaץK/V'Vʐyѥ+R) e}P݈3okA \F|3_8TNl!#_~'(0&VlS-y&@M8I hy,W!QLǺ_ۻ\p1uwpwF,O۠u^ÓxH!a n)^`qQ?)v i$e!+7Ncr{ 4YGZ@pVa8;v\bJ);ΈK3o)Sa]EJ.:^}FPЂA$!6zVGDnv-HjzVUY%8EdW{9&\ZhQNy 1*aEGH o+& 5K %ً0jR:K$jje/̶n drX"L}q @xr߭ϭ;(3 kH,cMCp.w <]忺I;ͤ &:ѴK ò/YE5*r)p4 L¹+F[m>FM/hUZcʹ6bzGTrVeQIKky!we^D "ศ /xtcm/~EL,4 Hbr?4}7 Y=2D#cDpH"HݛGm\ɽ|۟t`QEc7{;&#/ϯ8zhaZ 9°xb?]`MЯ6&Tԭl4\[_54"붚oB!ˁ,tK'~B| z ٯEL_CzLi%ǍOV/ ̌fɋ!ةrV=Y@k KbRYl#Sm)%Rﷰyuq, Rm܅+fQ`͓N7O4;Ej*wbσVxh-'&\ճ~,avCC~4l9njnIR!z%:~T_s ]`Z}kuu[Zxs!H bԠ޻ *K|ޞ0"۰[{weq3oyrAqfƴM%0Ok֑i@(fI| `NI]P{ʀ})`m"R܄2QC?4+s`@4 5S+р-RU#BQo:#. j??@4LADqaI\Ǣp[k"5+7W6*HEssrW!yoIHˉI^]Ëm:i͞˰E.y¢h7σj ;K%$W?g2 ~do'R}}()#-wo*-l$@]t w* id &8½YvmUuc$J nmp7>M4aV. J3@ʤbWR~dj7y_IaQy2ig% "hj=;FdL-؊ Ƙl?k1_[gHMT5\)+6pNϊĞS+Qˎ\|}8T#u/]{24/! ucŮ_4ΑgZ3vHh iS+z!*9McIAP{c" 8_;-Iߜ#X1q J zk*yBwvhu1K/y`ѫg1'f5d|tb%Y滫 ))XM@@s{J`sm[%q(BݦJ%І$ϴ1-؏b,hfQV>ŷy?,Oj{j\^*6/Q +lT"vZyrηa3Jϙ'CNpSx}3'E_\2ꂧq|ٷn*5Kx"䟧z÷\vj9O?g)|HR+DiO_3f]y}3_4U+I`GS>s̀(Ѿ@-uPZ q;۪Xp"5 ERj g5a0So-$<{QW|sǔZ1("/@WyZc;?3qo3Є\/S /@j³;^I`YP$Jܓ6s~Lr =v3NLsǰzDdL!<XAFs%t,WJ.M@,MnזIghɷk`fx]~gԱxc_rةXO AzbE! >&?FW%n/"Yxϭ"pd5$[|Vu)!H F H((Ğˍ<(iޑy/2ql(GS[~1=k?DU(3% |cQ#>.2W usAl{ˁ켘qI+_;/՚;׌nQ,5r"l:_3n1\A=CoYd:U4m Kx _Ra$J_-hqGXl>9Yv4E b~b2ػܱ8YF9%>dބw5vtc8IF޲d;xu61pDGVFͽT8_qN fا:e_^r2jrwq"U[wLC6_M.qo:՟r\ F䆑{m_Zo^S^ղ>z0]%=O[.*)nT6L&i6lQ&-ToX؎4χ>زtdd k a^l(y9;xZ&?W᧒$wםNKezR.{l~:k}U7ϊ5,UM@ZnX:Z4foQ4M_E]>!6DN5iг>q _ǞcӹlMIW]N?Wwn ^X x#7\FfJҽ{rF/2=hhNA>]J5!u6{WRFL#/ߗ0 ?8t4pUC ={zR*!i~u5NQG0]]D@|"e kWD~ȉ5vkg]dI6k01|ͺ ^/XU}[8wH9CkW<֮≳#k2T@PdvYx=Dr!>I)Vm\}W4Z/렾 yHdK0#b <,8 ҶΒ!UВi\8:JlE!R͋8>C!K|5ɌgmKm\LcY|*!>\CȞf;%_+kgw>Ll վt&酄$M^.E +ݪ$hړ6 㽯vnex |$=59 > s-\ =ń* x3))9nj~/HSJj9'EMbƞM4{֪`"JCyXfn"8aťKl8`XKeG638"i.sӮ>Su(~ft}8+-2ʉjJv~)>e Z30(2L"26[,!J3DefcNs2=GqvS}ijuyDu Eԗ=IrCE,ATަb*f[}‘w;vg3bY[A*^lv& ]ͳaHCI6Ԁ4#cw+G,\i;,獺8Rz\HKi%%"i'=M"If|"Z^Y!n8ǸuVBifVPX!UDJL>+xuaCD>sךZU1_7Pqz-ZZ\no@Kr(QOUߛ)qp|L2i@l Na]SK@;AhZxF?5h|SSCo6oE鰴lku_cM &@߰e-խVAH0p7Tsj!aOc@ce%3ƿR-$RmWS_Ix8`ڱ&(xq*2 y5}3ef4!AxGR)h _~ HxzbT8@k> X"#[Ld+C/˜+} R_HDq>5r@eVih% 7.U$Yڸ,hcοַq(^.[ئYA+*V] s.3zNh)N21}y`IwʒnlȪk@;X1Lq9tC-lD`m.wX49S=cfXԉ_o,Mޟʤ6zueK$nV0WN_0 g) 8&@l<5tLz6vPu/G]lz)Uת-ʞ `I{z3w0EۈZC'ks堘7Y mиDlsp ˬʒeok'݉>s[X7oe&\=uS\4禬551NJ+(#~MD",03ei ~ه~+FMAbM(qH}VnSo#fYFr_5-Cq&UJAy:qK>ݗ0f* q׌p31'D\6W)7.hWʄjU_޵#%xGPEdOt ᑿE[`YY_ܗ;#50k#uۮ𻯞QW(fqA (;[ =!̀Ϡ,*)2U2_ ;0P܈v?K{c8kp]B'yQb\rU$Y>lEs6}OafKGm Z I[ [0JăMfh oso0>8WQĚ^>bsy~&;% r;MCnp%÷y!2TSKOV#T;㭛mKebƕ,?ؘ-utp鲽ԅm4xRzE'#ܺӼntsy)c<#霦 P*~zTǕ J' YD˸} 7˲|]A:趧G\DCl ,-D4z lƵΰ pM%^|}RZ `~iR~,UL<=S=7P&hKkM\c5Z!xnʩ :ymHOyc@v>U,Knvi$3,ŞՀOUAHYyA"GV:!j:w@ѯ$JrV4~o&RE{gBāF-*H9ҟA5$FbZܟ$󏾆_C0W@ 2S} @b$xf*d%a\ 4jEk+yb SYmE`[1z #Ki=4!rڹj!N5]Dq4 V,d{$(r5~ڊK/D[Qтy/.݄[.OV'˴ ݯRDd%?N v+ɢWö- <*&^ kE܍C\gIDNk `s..v#^ > cHrk9F}=! o'ٴ3!pH?0yA^3U1[,>unPذ{?YHXio <3],zzi){7ZoҾbHYG;wvQV~щ 7w% T6aNUHxմ`V$ҟS!7Wb[@:ZUD@8ek qNtdD ]|E ,$z~Z)Y$G0pނFT'-#3XP ԃ" es*YH)~Zl:ћ_ٺjukS>B_>3Տ̛F>#L3lD$+C$:Y;Ξ:7wk+ZdjdVG9^/e}\ͪ esf*XW@Ei1Bc CV@W vƦ"~u4ޣ% H\'jD,(^{ x(1+lDpu\0>eliw#)жGHGrJUv @{#'l'VG欈C~6aR,Y8K'ET"jh;>XџtB/]Ldӽ@x+"lXq~b*0{ ;Zl6 x'vhG `OI~*k8?>N\0Z=IzSX|{\@'&rQتWVL;_uQ0|>'mVaıTjk-KSSA~K?zO'{o-eo{z*X2%$ZZz -Ba_sCC8̍m3b;Gm+9ߞ&zC:u8ԤR˜iƊ_RqOn\wmo<< oj^.m.U1K,byJR.eC!"zq^ΨrBޙ\ KY8b0ɿ@uNl@};00=z#f(6q4P#HikL;z-zi ꓧY<8,U`O``2ĥ"WeY@JLMC(﶐iBm^Vkh_S5CF ~[FW[ҁ |2jز;Rs nYO3ܵ"{40k1?1p e ln'h)51$Rt/_sySXӥFF1&Z*oV5"{ap?eM#xq$rw?sz@n_pN < DnKRQW3zc%%k{2֎/K/䄄>bUh,,ϢPo) IoE4w kx29[>Pwqƅя28y諒isjM}NhVew2K5gH(n9c9jt:;Vv.[birPʃy@m஖UrF3M OdUzO6jZz7eFzn=@al,bK@O[0I)h$v1Aroq5;+5@=T] QMUܪ*T貽tt}\#Oƺ+wT0ǔ tlji(!Y|BI!17#1q_H`y 銵iz)sKbK%4NȱoJ%VdqK 4Utю+RgKq!i̤<ذ ,Z75W?+;tQSRM.65v0{{EM6X8aJѼ d(FܯY: kJeҲ(^mIG2*XAHܳim*sy@`oI1Q!մ wUlj֭ CT&x3כRx8FFp#vz>֗V7P]{?R_U,Dt[@goG xG 3T֚1DWE"oӐ4dM"Z/ dDf ĨO\W^A9Q͛V8QD" ̺TJ:%䅂)=H>V1ܸ_rS3F̼2Yu];yoBum`4&z| [u9x($)!eh]fU;rHѮRCU˘MY|u ,o-a j^@:H+ɦ}:?B[EUp1}Ļ*N1ad@9+`f*3ʝJ: Tbx&K\PM #Tz%ʁ6D*Va_ [mىY]뛚wueILQȐqFG+* Jq-7ev&¾Ϝݺ0W|&U.ebv59IE#~Mf+ĕn~Q@kLj?t?.VIڝHxJm4[ Xq%r#6.d6 )P3_ K7۷+my7uݬs!Bw;22t:~` jZEIN*kP}7y0c 5߃n)Y#47 5BO=@b񺨼Yw1#[^=\(M#eyJ*FЎxf=m:$ l}e"ީ q3R2T@ְlC=r5dwL*«@a|ffI4i ;J ZSYyxveoPv[1<"dqW0@r86cx*>IsJoA0?}ocF2&n"t99)C6@]D, 9y8 ډqষy+n48ۭ֑NJSlX,ZޡV-.h9l~[29rgl,-8zuGH^jZy&y*@A_5&W"g8F3pO8kȣ?XkRPA߮nӗr#1`JF;͓MpS/g2{ 0 -5[vnMJvV Gaˊ3?Xm.AC$ˑibAz;yJ8MqTů@/s/n74c`6KmRWJQݸXpjg!xybsk-5L?coR*i"qll7up jx)@:qr[֦Zۙe-miaRQ 3^J0udAH(oSLy WИ=wr#\RЗKCIj>"Go/_!' sH "̂R`)E~.{jX"ĸꋸ5Z ym$.C 3+)ۣxκԶT cѡ5Ij0A3DYB\4g*a4:|_=6jJFn1aLenv9R= ]Hƌ6ϛ8Z2 +eݩ@Tumj&Ԝ/(MJw0SqzFD(IH'mc-)9tQ)<|d -3{e+&hqLMJ`1eR+c(?sIa6U y#h`"<^Lr?r0Gl14n@ [CZWޮtWTU f.HZ+>au@"n"mV.o#EaQR]] WT-VFE٤bW َ5{K3qot致Aa^IQ4Io͆ȲS/9FrLV.3f1Te"ĉ*H[7ӏbVbkDۭZL qrG ɀdqGd^Namz5k#f &PSpX:1a9ZʮIRcnJ ?"XЋO/bufbM4Щ:sqk)/7שRոG>"OKDGx>MBZx>)uy+ U]d8j>"ĪE Iw< 4]ʎX";eڰ<>X1F/5},@藨JVe23ej]ɾQH۰Tl% a Ix:m(%A8jמ*>e'װdΟʾد/$NT2u_[A.jxΘ_b#1xX^Ʈ5pC}f,fnzA *Pq4Ev7}-l^QUQtRۨfhݛ Ӽ䟡L K&@4o4Xmy``0> ¾ʹHB=Hjo腹_ ()fUL^aǹwUApr\%Eg)0ѰDb'd ~S&mD ?5d^kB#+щ^z;׆^x"vJ5&V#g⾠@} 4qq/_4$PYoގMRu?MݩC#k0o1ܜCO1u3ܬe1>tÆEW! )|:㬜Wfn]NVsީqr XpJX `Όi0Z+Mƪ/CyPTUruR:G9ԩċ8P oXYùޯK=: sh6bِmܟ70tElQY|yG)R}KRm]2zm0ȷd TF6 g kQEv GJ0t iBnC:3u r7 GyJD1ÝP'\]Nn `b89 cJs2%0xXIr'flМ4EetժF=i>I4/Jj$s#a^VW*C-RCP?a&5QT{|RS0Rs-^֠L{]F2P5x,L-?\C؉~O4Vg+rɽ߯&l6cn' wx0!fFmعDZ#+-#8Nw'@B]L{NμZܯ+tC)q.;myR92Wn0@Ln nSUzXa;Oy* Vm<ǎ-Nym|rww<&ToۅLf IGʸVc/+]X>Ym W͕F>Ę *Q]6\yc:qbI/l*-Q/4u=:!t rEG3A6 q&~`O{sj,M `$![gם7a \~Tiw&6Kِ:IU0~MeTMIE*\[ +x9%j#OI$r=՗c t$zh$a~Oy=)Ͼ+ 1b[CUvi"ᕰi/{̦N~!,9v+yxe cQnx_[-*g~$-evF|:l %Zw}{h'~M, %^Q^>^hB W,> m;c@L"nOk(VQT`ΥrR'͓L+z\9Òsc(/^wb4czZl'֊(ϒ'u[5#ye{-^} QM;-/g,,"~EVK'ր_ruGp/Xj9b$eKxʄSk+CGgzc-eZEzAB@4>|;xM@YD:=3JRnbj fLZ!c:5&?]ЩR{iAܹh;4uΧ1`r8T!)gy|TWa\?TgX뿱5BP34.%n*`ɏqG=)}%\OV۫wp":nuSnIņ{]a)$c3x3.Idf/ k%fu3L($~=(w)ct^+[Ot[YZ+ToFaOE~ IK .Xx+ڴ|e i)KO֬PЪ+5PYg3! XE@Lƪ{PQO/lYBqe^ĥ5YyP~]uejd(EٮϏ,T٥gߖFWTJ|ͺ~"?; lV=ʥy`Y6̦ b9%&͸w. X'} WSB+L%ˀ vQעP k(q9֡1FJ }k'L%Cf3o:I|\5{U ObX"˰N?^J0zSZ.rH(xr5L.+uYxQ7 ˾c!"eEqW5}]rWF<`|2x.k~إ?H971[[ՓEQGAMt'I\680 jJqׂZ2X{;RJ>M$j58C'#my'- >I=ݐcf-7 Ʊo3}4ɶ @-ܪ0.th;:dCx:y_ޅ2yhHk[B(s$,C=w%7p\7精jv{ÌVږ e j؀q U/d %"-h} )h6j12 0˕nfPU|NY  oO"çnū%Rs)O}r)K^9wA6W %ݵcy*~*-DN#>n]gciU}oYZG|׊v~Cb܄t",4M1E[5(gB\ &Y?71mR?5r)!\2(zE^bC3ce7n_`=l=ͦ@pRBRVv̝b'ozb\jPkUO\upZQx+cy]uyOV'R9a@36v)+)V=Y+_N7{>dR+BK\P YiÜ&_J#]ET߯޵VzCŰ8d ~.u.itԂh@%rsH=CaшM6ueF]$m3O2+&hLш;̫e$'yܚ`8:&-mT`''.̢)M%!Hk1 j?Q8AV@۟%_0(8r7YA/W̋9a_?)J)e0qIR':gn 2^K=4I&[MVC8'*r,ur2CS׽Sk$ b'?ˮ@0kDr8q,!hWڙSP/\, LmYAj?|r~e\TSv0eLQSk#qT oކ`QOv9Jj!Y2RokO||?ˉy@<r68b]s4Iĝe]rvAr`VW8/6,&croH` EEghe"'-8$Bb[Nq'֛I# ߫vO^$ ;EQsEFUAܧ0S/$P F+iVR"fAo[sa!6?܀ ^ä- (Eei96@zT'Iȫ fzs Uif@uW 尾G'j{Vb# ?0 ܧ]@t߳^$2Y瘝BBp@!VΣ!joN!KZc/bm&Qv3pDI1)*!*+CgeGIn|ZMd5elMAzKv!*jB;;W%J,02F%*\ׁ"i`)2v9*<^!FmU6[1bW:.Z }YeP5h6SOC[$9~b$ΧWagT1U{`x ַE(FWbX̣@4bǺZrC*}[*v/ 7VbඒP$KYgDPݭ$T"K=])eX q  9>ucΑRYwI5 8Ms&e;lUM jr39*Iix644Nj1&>4)Ve$W$GRW%6 g9WХY,z_rkY?{tm8N C; 3Rᖍ,B< ~J2썎_O? ]oND:6$HXFƊ_ntBJmj]EwޯZ P¶|K^Xr[~r4 LF /2>Q'9v se`W<{O:ޔg^YG.9}n+ +:XLtXOTx`wt+#z6}Y3\QŶ{9 tܛӀ[fZo"͉-& j(L[@bLZ9 py'JOZ{KrB\',:Vco=}Q*T7a=] TRxH|Y Lx"(0SEYRRJ8R(|@$6 =MU̩}'OeGY}rqõF9Ql\'˓|i`]uFpEdVwyDK0ۦlJOrhúnA!J's ΧĿX;+v}ZՂ/N>ɜ!xw, ӤeDYG[~NM.Al m./zp  < &LjVW^X UW:R!ZA͆ Ȭ bE4q{w_O[AddaWoh.`˥:?`erC<ػkf簊nH(c`֣%+:% 29.ݦI:&&)w1#d+X}m)~xLU-''F8' 4!qC44D=lĝx0F_c4%!үlfˈHlIUH/' ?3CwJ$\p?nBiQNnFM?7W>wLzsYv*ree I.,=Ko$rJ*hJ)]LňD$qDn~P1 zUȥ,Ρ4)eJ&Ps跄5hl[mbѓPx:A\tʙ莻=$B5X'ӷP&Njg ϮJ@nùTn sam1i}zunljSEʦ] !T6X+He+ s?`A9mB!0QZdKU*˟i6-cۼO'UF,iwdi7YeKa9B/QTz1nL.VڝEB$l68g.1גFhOG݆RzNfydft5Ap]@O¶>g@E:Ŏ=}{:~+jŴ3CNQp5]2U+ d;#9dQoC{]SȮL|ҽA|!@;yM.n5uoQ_8:+wթJ6ز x}m-1s0ކZpʁٌ# C7rH\I$`q39:YE͋.N7u(|NKDdʆ4vl:z(P V& [ ec0{޹7C[6T&~y%7r{ C,򑋏7|+޷ T͌Nl[lRl%3ʸ!I)򘸁˩ V;zDt#m! h0Ws":.ceü7d c%fya<΢BId+Ĩ{tճP OA)`WjG'rbC|2:f|+p5S&`٤97 >o.O*:jI5,=@DY <\69 I63Kɍ8>g$|3աhg2d-7rS_9-;._1h.PE%27$:j& ,߆^"tֈvUY69C@Hv<4&NxJ0YƓo_

,8%av889"x6ܓi̹1`DǨ>7_⨳t3pffWCP +h ǣ3љՑ\4eMw3>6tGcu<#F >>wy]ɴA'!ٜI%pJW yE"mKT*]i'WK}5H4d]:c5$͍2Õymj~/xW/pm;e;,"^$bDOr@̞[UiEb?GںRU'kn) #:6 "KB3BkĆ3""t/+C {z `79U1 D-O'z(1sju[ƫqB:F=]mTA4Sͦ7Gc_Ȗ;Ra5{C"+WsFa| 9)"F9Nb UE'~dhz ʂ'?R+!Iol]SLE/YRJLtF\~rk`G}uOPq>1xrOjQaDvW}qty.[UTSX]/>7BDd} `8 Lc^3ۄ7q@9 4 +虿p6Y&s=Ȅ{FS>=%s4N%NBFlQ̅pQ@hnVMpK{WHs@ՙu^ኪNk#_Ao`+a{t?N:$r2O<7Hh1(?{Ipu:8YD lV5&_f .&LJ=+t0 ` jLT44Lr"fQjrizvQd7,OWUTaAvqՄyx zYGאwQm\aAXbGm6v\4]׀.ʿD1VtaG59ksk%MP{d:;shư"ˋ'/jb3u7c;Z] @|j3VaXK o^\gԪ ^S-4OCV!aީl)&sF߲NͩፏS|U)_Q)}95=GX$ *FeXAc}V Pg]}-e{4OP HC:. <,յ9ڶUfȋF?2|a? c..X"J4abVz.=$FGbKK!,!,C6]zS>zHv?%yVcޓ CU=!^t>(y=0=£G^f%:-}ɼ0,)|U2 ,|PxU7RB!{ ~r 5*QX*~2mSA C|`T#O(mk&ep_`eGJe!P[\E.L}45/ПcP?']j_q$`ų _ԂG(q3aڈ/(MJ򐨪(19&e5Ƶ7TM{M >)QP͏ "Z6s:i\ZY6 Sd3D0KaSr ܾkv@[BjioR%P;ΉŽ'f@! elVxQ_l0>A["aמogR\kƧ$uĬE+Vy$3ƐToQ~BќM1?\洬7=X|]L` ZHm:̠.t[^PL Y:!J;ѳFke>>ܷO -yK{/F {ˠ]׈v"%OתFMg#`ya^LZ7.+)^b EʢrkifWwqEmó++\UvbGVqvSDJ~cqL^:@.) jA`K-ݩtA9*klgmOcWfrcr9\D";6L/)9v*2D힞x>9[Ӗ $<ZdI^^ǜF&idfc')$X>0)3gTsŷ靫^NR[ tc*)Jƈ s{c: 9=6ؙ6ʔ% SJ81xb;bZ#18=!19k/ۏDE}#}^|bXqJ1OOF9nRz%SQ"7ze|X*c]Wr̥^>J-jHjɚl[F^#Z [޻Gq K)b6CcmwmlD'\e ]7e /0D$)2fжzTK( eB`+N7:9b03d:(uZNTU ҭ"G#~S~zw\ߝbz(LB̵o]ݛ NzIunK= T?0VqƏ-`5u9u^]ˏTːT EͱY󆨓w0ZcaqPp% eMwYhn6HTH=F4/mBǪA¿I)?H)!h)JcdϡP (eabu.:Uq+>SAB;Ap9RNz5RK9I7hKv~gX瘑;buJ-- gSPqUW7#N$M참哟5\HXOJK5XPѵQLAۧN gia=:I=qq4*3MB#}Q]S]DG՘5FۈdĊP΢I7mÂϚM$ɟB^Pu#hWBVtQqhvb`e'[#ePZG&1TP` w~Y/T7eY#AB`'#2;0D'1|yqN0"@"Ï^kmq4Y4Ӄ;ǧr6 m $ju{K)&A89LᱮM=/kD8#o.rvD̚PRS!G^硡1,8i`&Q@f(Ǜh˿6Ą6V]DU&y՘EP_kڀ=ә$A3^Emekkd<.;teJØқfǸ*d(%t[+'{:> %qY}u /G^$1]Qv<͖@- e [ @GyyDgM LՈ̐pf%2xf$^s<+ `bbaIRTyHڇ4>Nt732뿡d.KxJ{u">V(6Xc2zyN{D|a/v'V 1 ]O%7A6[wt8P0`e<BcʟV!E㹥k"YH~WѫeNTAAaNqtl2SCK'Qڜ%mXcOei^h<ɡ05mP]o7Xb},*mS;V; :,4fۮž:X H5콨WXNIt'p7bFjʋ*6酏y*b^j2*n71'XrV^2c EęH-&tD?b@oH`>_wfG<=R  u| l!}}x]VwJ)jh!g-f7MFW<&(:NQSY uPȔ*0?5 bʔ{r6D|-/SP)im3@Z y`r0(Y$N^Җ=/bH4ݾcFGlXpIydu/bX)rC`mTvL+-MpSh5+:xBG n" XUxPG.ԙ\KM3RE{FmInиl1I%tTЋA59hUZ-qQt#0ѝ9+}dWPL-yߎa|>%Lk1Weh28]+tVT7'T(7"8WJiQ.3UKJ-'n$ܕ=uE$b1 רB5dɦ5Boҹ9Nvl4Z~n"G,ߋui`"ŷԁ+uU+y\m;6xptt[̢I5$.qp 2yMvbS2ې)':nwMRM)hh՚ANbVK3a=[P9pocro&>AS7az!WA DRJ܀LF, D6%![8a/=ѹ3n"C"JMZҒʹI76(1fqbUq%vm,U6tkƧ]^ ohzoGxl4ij1IS)36w qƿI-Xt.7>x^ puL ^ ]C'+W%gUJxV<7p6JB #gB6Y*?KMڈ ۩ E0<7YEX39 kQ^Z WOJMqH4TRr ȸa1pwaZ70F~,]Ȕ"9=GE`EnǡYҳoٻ :[֖MG-H#c3]A~ -c zaӭW'Wς~lXVB "?bfy1-POHe6yqlhpTr2us܋~O2k[ֽP]@u58z9@$Ȭfsnlt5+yԸIgÏŲ˶ѿ'KsT-yΆG[wd \(D@UUA i$@lϓ>쏛[ 6xc\/%t?ִ|׵z6"S LK֗C4lִ~rMr oY}/VC!DDEWxK ҧ}1+0\/6LXĽ$z$S pUGxP:x'2Qfm;WvS@KP,kST / U\ey}S@ˉ>5eB}GdF>ШZN!كq]ݙƇi6, 8ڱ)|bCO{&/v܊ `ݛ&} XnԷ>I2l6H8@<ŕ1){݃0,e $,.F Z)xG}(S }jKץDT!& N5- PZr]2Fn άI-*$y>iHhwb$V_zT6A]^ĩV$sՑw Ŕ6e9Wȣ5c܁}[~9f`[V3HZNtnt-j0h)dCDx]XDCձ]]j VnK!A.Zfn@IPפ21l [RulsTvGɯ̗ :7}$F$'ttOI\)27jQ)F{dh$ 8kY9{iK6%} 1 s)Z5tRQckJoFǾ|wG?Q(]P\Tw zC)}eueqr}ZAEIxj5;a& %sCI%fߵĸfh>?~f0V΂`t1-4lGeSI̲274Z kF+X =h۲% ]pTX64)'5I[LruXy{ʢ*G$0z~C;/fn(V$иV휷9 /%c m3?'u`Ȟ|G {^ 6̕qW HZm.+s³>(['[h6M=uJôБ14-ţyY?© ^al%D jDr22Dlap͈8 E ANSzMio5vPoF/wg x^ܴӕ?+ʼźvWo:]e0&>~G uXK7c.ƛ Qv[ۉ=` 1% 7*{L("=QD>Yr- l*qGɐhZ Ȼs" r8)Ø'؉X(PA&"BMDwjȆ-ӯA#jn9LvyW a)<]8P#ڊT $?Cԩ}Z0M,ufP[MyyF'{=_ .X6 XE-kKG 3MSLcLC-/U 9~QK% F3BN?]3-0,{^jOWQYoά 8K |jAW5˻1I<4a>˻HxIZ?!O]wD5jlwNBu cy$P&}3 _ֽUl7xs @K1f7<;IfIZ2߾93|mh;G]nBP`iȲnÅaDzs K|k}z2@=G=od #H'$qHONyv:;ҺՃְ)Tu+a(QrOSFD]3"ﴋ3ykffҫu~ޞp^x%{,6uD557vxU(uLhC75)noe8<iƺ˜JfG1.RmdY/e~㢐CW7˨ 9ҫd=pdPF2MQ\~7=BnMFcUVC's;|fkaI e˺ w?'E_ !<13u~kP3H 5[,oy@k K;'(Pgd rOy.Bx^*}j kc-ǩ:!4!-d(f\H/4 ;"񮮨a9FIvgj3DsܖTAh۪4L5W_j.ɽَ;r~ryA UDz䍧>9,p]5mmJ}gk/ ]`؝L}yȲTqmN/n<، (<,Ax* g<$dh;y<}5%9Q#J1x8Y$4Xk2;Nz H |=3G3&/{t#='*0v m2gLn5H=mE?>Ii4 9 r/:+twO$MnQJWCH@3nwjEĽ\PLφ){lXG'µw[K (,/è2V9k2z{D貛vaiQ],'.GJlZ"k9(w>MK4Ű 3 j>xDM 7ގq;\܀A'\Z[~5p*L([bXP\龜A (CA$ [עMm"7漢]c 0t"(šT J<34,t}MC%Z:v'1b.Sb{>hJΗ8 p*q)^tY(y?qe2-r)iIdn{6x[V7u-L!$&_Y/rM H>?g[s; 5粯Z# -Df%*qY/ȀVg}I&xQ},l'i耊gմrM07ߩxп^+|0rڎP8kn>׵Ẽ\o~7˼IMnӤbFTF!5h(q=:zoZ{j#ɼ[5m9H/ռ?$dKt83 SCې-ٓlH?J.}WL]7[0lܔ*L5#бLm.߷ɅL^n2w/CGJ2nڮ̂.{YkҔF%GpYNL){5A2!=㾄*߾I8Q@>;F)-RMb ^ߞ9jg1+@ȫ*VLNRCȄ qlVޡ&Q=^gCZ mڹd`̯<yNC$mí4LAlhяѝY@QBX*'Wd% ` S'$;~hp"+Ϲ^RHb1VW>})'MHk+WLxi'+y6fvO Nd,"3])Atzxi'^쒎|ҊA%mkZ#h9To4nEqȰG[^PQbFH84Ķ|F,NS!/Z+4tN_&R,黣?KNݕ'W%CWXVJhٚD>fS?B֨uEf4MV`tiZ2ɒȃ eYZ~dI.\/mwxZ lINOɞj`Id6 P",:ψQeR4sta)]Vr:r] XW-ܙ±,lQg6"ȸ,.22s0 &XjTquPe (Yg*"u.dW/m).KnB-0# P|^{sZ+ rc A899p􉸁M*tA<ŭ" ;afŽܩ,t]u"r6 ֢J" ]6M1zknJq7ߥB{0Zom_QXV^P'2N]\? c<7@1udKseܡCEvixf%Y6vc" gGGW>] |BJbTo|OJXr^fdL^wII=F6~ˌ3 P{1mnWWK λib&hH'Q/bTdz^ke)xN!65`v$;q7Bc5"{<%/ _/>]o8j!+7 >sF},4*iI@l*YR@<i2qlMwG0MW֞}0(8\ =N,\o jhu]9ICZQ9+ gqV ]c t!F Med(e RS!+N82U|XTَ0|ELw6emjh˿y?3_84!RCQ. _# Oh)";2ElswV;k2*UZ-j !ǕP=T2/ HE7l9%'*'D^.t785O_I]m jat+M̙kz wuŬwoZ j!5s3Z|U!=l6\Dg0I'^Z{؟ َ՛Bf~ s(͊뎲rOor~0 7!k(&H_[6ua&|,36#9aV7n=t/Ʉ$ế-%߶_hĨa&`Xhr)()kOrF $`S4>־p)vćiҢop3hA8A)an79dEgҳ iU2JKͲfYu"]"q0zI~J4Gl8o y r܆V,qHD2HZPo2Owkc[As߆~yͳ)F)dvx,F7{8Mct wq]~H/zA7D>.eД/<ڪsV; 1]\mOП3p0_Mg=%L;y/V&wyR%xf ljq1Q>'yfД4ApbZGAtIFx F"rc~ĺG3aCR-?'vLWg9\ޮZNuir|e\b EsdKGjdgC?+ D˺3:oEľܙ˫+'_9?qG8Mc/]$j1V(TKDJҍEgd(Q4ۭӲJ_ (3cPJE1{D|tlwpK_'i)cZц꼖RC JCWx/y:1G3+dOјy?0[Il>uay8+NHN^6\b Gy (&dh!ΰ%.w׎Rwѣg&~Adբ]BMH&R3He| :vL]6 9d kR߻"E8˧7)c]AIc=~rRn&!y a 6^0mWԲ)h5gԥk $QnJ, o4Dix~;|#GT(ԼoݜRfW|Znj0ԛNMR>XvXW.y"UlnD(?>P\=6LX i4{jgd(Q 2}߱zɑ ⨜+)#,1s^`E @V7 Sӊf'ZLN!jr#}kP2&C(e.NҲ g y0TJ4-+t񪿁 ʌ-t.^PM~WVtU4-z73Lj: plÇVC\o 85т1켟pYZ Z{GE65<ƏIqGxLaٖBR^JLUJkAu(lR wr`i!d¹CuXi0Z2%K(1=}c7,GlbU*N@,:+o><~ST3ub VB|޳T#--W]{ qt6PLP8?/VZ9ՠeN (xf"N}2!J(w<h:}ԸVe'Z$t?@dʇ%CON&3SS8<2.Tb6-'VIzoSe=2^-2\9?v QG09"-ᤃw=$~C-|M$5|;2Lx)EqtMN Y &ߨƻ'(j/'C!,ݎo󗬸v#~ńr^ b+fC&8[Ԫ=xrW;wHX 鸐'r+a,l,$r7|eiQpP   шe2Ub-^a*nsD6xm3'b8mE7ƾns~mXpc*N\?asݰVfSBtBZHBl "7R;^tfk舯@0Ъ5sQ3% @a0SOz yc 29t^ڎVP`R//xnnZ IQ+h֕iKsոtK!\_WvO$ t 'Nݒ* `FA72(&#o5@ޕ,8[_הW)Cw[Lqp^c\p)&d;D,xսXV0dVAG*b׭#r_p4o>i1':!人<ܨ/wjd3S WKw]o:A=s@_g/JGMl)ĘhFdۙ*'EY0g6fzل8u*7^GRpoNR*|^pf A͝w5Y{w݁uU=5ȂۏM]qCAyDS'PY]#zѐ>Ȫ ,˙ihaUI\LܳsnMR+lAJ+ t|1D9K8N;to'4 JUֲ=[G'!U6.476H4`bqm R[!j#EY %ԑc$ d"&j#}净t'滑^魩c+N"ϡ}`&q=))Pp\IzqL_2S,Om AEO!Hi#Ot]?Zkxdo]4=| jTFޣbnI!mUvLO@'c<vM_IJ)k:#”H%R/N}2r]tH|sQFxl3 2i,`v6R%E:3 pqÁk/=8uU(2@SoUE׽ayyڴ#s%u^)MG;٘ǎkV1 튜?݃"T{/M}Ȟ ?޳qoޅ Y2%ifg=!pA"Aiia6鍒fbNhN'* X6O59s8);Q^rA: >yNtpQ-_ΖWIp 9d10|; ٶy^6 V]OoXZN(Vzj7~ zp>)Ҥ_RLK@ɿʈ[!y@frQ-ow6\[Jc'.އ ޙwrR,1AqE:hHZe3ϰ6g] 87%w}):Y1i4|ѫbB\Z#4aPaGɃdeAeMv z‡϶MQyq053$8e$ŒZ?t6Aқ2'YP~-s_ 6t;^[9Pp2ؖ~ɗЭx]c8xQ L_<]#CQ[j(v:Wn=iņF1HzO" !y3~/N}\D\pϜm' e3L]FyOވk*>jNƙtNƓW:̼cbvo;{4`:0M Mu-T:]Be CuϫPTsoope} }~p[`ȑ=c,muR' 3=*I3JO(G%r3/nFcEvh6"@=RŒ=Ij.s%ܣ#a֐S}{tJπ{duÅ>dZV;^NTb|S;y 1I1-SOI~Ź]`X T1~4uapA'5A$0|s+|x(j[Љjx9 Qw9D?Rl%DC'XV̿Cォn@ iVcTK}l&drQm^Oi'B(7 4 R7ng!hYHEUHxЃoe7`'JBesPi]ne2@VR0Ty>h1'i$'\W|pZ~f|+ڈjD4j[Emٱ>2e̛q&wET_z.!ĕȄRsbӢ=A[ls`Da%=WozִS{,ՙO0.0R-JLcUDC1HS9q{yjRrI4@UdW!D(|嗧 Y~ڶR3Z27[өGSzSVټZDމO+d9>(AMd≯ 2,R-a_3eOqS >UWurb^Y<*Igs*w1`pxK(#D\<}"N`u{)%'sJk+drx7@Bdqo#(bU+}"y]d-ΜAY?#!twR7 rJI4O+ٮߘD K9"$7ΣϖE/{ț%ư${ǧ=L`TgiY=}Pi W$?DJZ܇_*bH벿vNM7qw)KJ&9q',zy&SiP`="~nb8@:}7V^Xk,evڧ, ]9dv˕ȷ{9ghyThwO%a=s]J9=5Ithr{qU{%s #}1yNk@>ګwz^U[t%![e S*ҎDT~neߢ}a$):ET9E[uFjA/ Wb$uK$V(mm8#-+cPԝ >ɡDsؾP݂Z:eRՔ\tZP2@0qHd]QGcߣbﱸ(J>7E 'r $(')"pHFCwKsiN_F'#vhxCwOδhۛ_Xv]=17y{ڑkp!oi=:,0 bF~H|Я}QK6|z CGR]y@LEG{<2֚3. I1R33" .*Azq*Kزv%ӢCB<#`w`nO6=ZxaɂS{ouu*YŻw'{*tl\{BdGrT/qW\T)/xv5oYq 9uvNVB|י$THcB\E̠4p`D\TMFR"!QP 0`E8:xY昉M(;w֠ci&"/N]+XQM_@X,$$A LGx"'vHCcsy}91N{ h3 ь~+!"17dN|ZCM88J~Nh(H2n$`x$uxxtY$(4>3 h0\=aC)tjr̖#D⧖ YB,3^ZL&<[JU\!Ʌ45C1 ؐu6[Z&S:8Gzs %m;4R`E2Cb/SCIB@»)Tɽ;pläBywo8Cb݁k* &(hR(gV f%Q5}ԋȼ>9Wu>n<]HQ)*X\Qi/~=\4T1յk}kA;Òk}oGM9[0WsAtOA]S:kQb~Qf&q 4%+m=S _:]3AZ 9E,>qjorD$MIsr6gOfAVJ&+0g+*ߎJGh$c[-ƳR5Yjkq- .3CSq1S_IHi{)ΘYR~2 KN[ۮGbetߑ* sE|ΒkaE5͔d%nb}#_4W';VA/ =`ݔLOn? $1\إ<8ߕɓk$koX\՘K>#OԘ>5C#㲿wAJcY#xO>L)sKK%V!3Vhx{"Ui‹mBiSa4DJU6orV91fv/?s'ӡcL|Eze 0cPx {M(6E rKϸZ9 ngp|X $ѰnxłD鍒!892 嘟Y_33D. RRT8I\-i?# *Dg]ᬸV]yKUK,ýKd'(E3ZNaXhrGhZi欞 եP0M c v=c=v){+gJ@Gk@UB{c7Koggr -1^ĦTG,~BkW4#8&xUr}50_cڞ"% [0@V俛 OatDJ5tt tOu "V'FvA$m˛|"mM߶JB]Zi,IFC !F޸{Tucro'[ƒ;mR8\ͬRV\nD?c'TD0{!Ӽi{C3tIOna~"{澍`?AC{ l:;{ծ{!'dRBs!*}UbV 8HgB#T4Dx~f5E1)tRL$FXjzۛc58tF(ReֲmLiphNx"/ B琏!5Fܚ:j3EEARV .X*s^B(Vʝ1lu$ҺÀ"x_IqG_w }ƟRP WB1"=(,K/.Ϗyus#O*ca5jd\P7; Ru}%sL}}M%a-LV)RS!du )n.oMRkA[nL/-? oe[G鬡y[$qRӺEᇯ:z,9ʄ2~϶D ?||KibXz%rE|XuS5'1 ~eF(a x1e?)7- ~egSeEotnV}zrzF P0D 7_*/\,M&W\huܿ&#뢞eg7BFd&,e$f0`\GW!WJ1!Cqo L-0Iz-uvG!O+[1;# P_z黕JP Lerh-lh 63>W%[<͸FYdOuWb_a]S{gK6}HV0 r$c`6SD#%E`$ -? 0T%x>4_z6qi緆L{g&.M`g7< eU~A|4|E ~WH_}9&)Fzၝ+- eH!i⃸z <6wQ6:{ZGRKuҦ禣N1߷h|""\7@;L%k&Ouܬ]& rW]{޺+/BzfѱDn@mL 4`@5 h>.("}t;/l4;:!bl=U }*@K zu'e0֌Lؤ{lֈZm- ) X-yMy֤+gS%2>P8]趖t_R t(D A׋xٯ|o[$GFvcɝdWMEs^e7grr0N ľ=|LD` [EAu޼s IΓ4㮤5NK\pu Sy6du#VJW83&ѡ5' ;z-Y!BQe#K (aT+Mt *%ĵj mPEh8Xet&Xm Rʰ+CYmqD4G[h%d"pȫpZWr߹Z,kW3.Sw᡽Q\t OC~~1Uٚ?>aUV4(C͊wT|*5 !͠٣2Cػ;~yCsonPpi촟Zd&l.)[ OI=U8o 9ՕOPX/37$nH(YеHTMA ܻ~5]F8RjSٙ2iխenbtUaQgCHk2{sP%e;7'J9(LmM\}Tv=2lB\&EY45qH"bX$IŐh/} 2!zrtN{,WW}2h_DŽxYd )R:ظb 46Ava9HpǸ{ CQ W.M[x|HYH1rm:?qLH HήMJn᪚cZ}L 'xr *5-;=)W`D sﻁO 1@/fj'mGiX}'+|)C1OO +_{3E%WX 3GG۽"˪{[tA"ixiѷ&4q"Ģ No$tm'ZM7gcsC)` 窠V(boPٚU;D8Abq=߰R,+N{4ͽh-n V㬊++ƎEо: RV- vP2v)xEB;װ'.3e Bq (Ͷh 'Gyw/zȍrKEjք(9mu?-1X)\9ãu+ ]"gS-NYU)VFj>*@}eT|C'JF{kw$7hZ|W&n0֓+g* uo%ȉc K¦}>m 蔰xDȵC31L2i+)Z a#yVj} ~ݣݤjE(i:XYd_E'n~HU@&3dЉѻy*h"WRau4ßGK[O O'TZ`6;is yn2TK߃y/5893j8 ,JeK$B*8Hq(\/PR}5 IR?u$eO1`hx;0mz~ZéA![-BM)gu$6;d;,whWY;tfSh+ꩣq'&i>aD!7qdؚ$v}ÏA{ :S?f N* W҇"X|zu%^j_!04I`XpyWBQu ž!A;+[TjCow1 [8fV%$V۩.2yi{1ܣF ,FTj!~]SqsG)-PK^`qi@\cI1H鐌XŤ+gtk1nj>9"?@HmK | Gnڂ(rF-wOуP&SrVWhQt:[!gւ ~0[pcSHkͫl;'ǧaXfN䒾qN{1Da2I6'nFdYR$-Y }~<>GFͮF#` [Zf|4Pa{A@) }Ū>* s6g |NCz"o]_y>M> ҟw!&; \wE,/Sd8_<n!vl+̾od!'E]),]m.4NΙ7v}!*(7u"i`l- h _L.q6P_ TSMJ FM<"g0gVlfUϒxBLv,{4KgU<\8qlfzV("˩L[*]0G!arޘ4 ׼qx(n,?tr U )C:!M<, Euv.RO_h0$2D+Π? \ 9d{b3ߡI )b<">R)F nO*~?B73N|K1ڶLؚҦ 1aΝKCnzHQv#I'A|۰X֞wIeB0sS+_T۟vnD A8Qk1g{٨#°k83 9v^97q ꮀ mIDuv&~ F)gxuhZH;tpYbظZ]IV}]ʕ!:z-"{H*ŇO)H@76]wk`zr 6 .Aa~-G:(Y,0$z:*淃 k'-點`0J@TIG5|Ɔ3눃뚠^<NBO-WKF%._csA~8+Q6֟Qqkh)*hR.b^3AFxxXf^*M|CA{rS/<AͅC2Ĥ!IpWN j u Je6sҶV(aӜB0Or&g2m^Չ4xٕG 1U@6܆TY:ÏO0rH׌ccp{Ps2Dۅ2~ `s2GL=Ĕ W6QoM(_ocE{B$u-IW:<HظFnكaj!`߰1{=#[;?31eV_m}ϔ1BCF+%nqoøy*ķgjsJMPo:MdD&4G[fP`PeV{vq[=TP RiDo\,R -I-%Dth[ҠJ-ӽlt}nI- %ܿ@4 a:h`ћs˾6_@?{$d1'&YdNcI!gZh7!ZVX1KKgz6 m&xL Y^sݘ:\_v>XZ2L1\5` cSpf|Seqr]΄;ʾ .'j[Qdzc$Ƒ~[)>4ɥRu߼u")U3*=>"d#sT4QCy=x4=j)|l6 )21핸eˡ/n3LCTOiX QwNFi}1~'l F b֢lX;T{yy[hJԮ쭉ՖO<"1ˤƾsN[5ZZ(ݬ hJL RS_(p~񔊂:,].KеqUӁ*v~l&A`$%ALfĀ8vJ3tRF~5.;q_\*Sru.0>9@mtaXUf85xYqI&C|,9,#NŢB]$as!M@ֿ0]?/qOK@=RWKZ<In 鯲"x`(-sB}coE&]QHC1l>< ܥ/b pb[M~frSp!8N:N ٫ 2O"ѭEU6'm0>gSNPqRu0jN2ļӑ U@C5D>"wK>ž*8E?k:f]A5Fs5s{ZJKp.R,xuLB&MJ{$ÎD5Ue-_o۾Jw>w1nHAx)ذ|)  _cnC7Du૨JM0C"6 #c+(W55ZjvrCiVU,u`̜j~$n%Ї`Sߦ 17+yS26șx堯q 6[Ẇ Z-~CK?~(D[Ԧ)7>Y9J֋sNbˈ.-ńw1T&Hj]Qo>>Vؔڲ B.r;y6[ӥ")ptX,Jsܴ#U-Nd,ހ+McAML"7IwW`ڃhyɡҬ<wg1}:Zm'vP[I;\18ZXB7wWq<>PygMX'9.~]k^gv>Ra s| UJ*jpK}!| (;`b!liq bЩL8δӊR y+;O,fۑ8_䣻gsR@w'yD~INfLzMܼ+cxc喵s16f*:q6 J ]{ @ڦMKQ8kyPvrGL5ێMtEf{::p'%_څ#t\=ZW6o>a~i~W< ;)VlM2K=[= ޙ |j~1qɍK2W87ül{Ψg|z٤F1CA ;h3iYpuЅ]keVԳ/XsDz@g2m1Q1DXtԝy%RZkNGOaHCr,}|YH:#.+(TJ0 /d`,E3d .&BթS Jڢy ODygr1qu6AZ ljBt]Y9[f x{1iUkYߔU!?m;EU2K PS=ߚ e}b:i;rTI9=U=Żay_]7(`\(ql>@K&ن5WhO~P_LhbgHL&&|qnD/eɢ={J5y+MqO,%&i&F:5SbA]p"&93w'A׾xd9*Ctd_m.#:ljT?!тO 6 !&.{׫?Xhav̞=ec]8#ا%z!' \'6DIKb(,1, t0D6T'Ad>t3Qn%|NEUՇTw) a%%a,0Xo^Iɚ(@D$MMŕcHаnK,`4(vt>ޔf$ 6}n$T E/cxoC,4UHl`K1q۫ 耟AZ9Ɍ(^bP^`Q} n,^ Ƨy7N\}bNo0bU)xIo*[xNY=qh,&qא5 0"9ƒǔ| rr(Iv6b1vLYO)  V .i#OEU@+J<&j/v٨/C/SyVm[@pg.:kz$%QȫI]YJ ]#T~<$c;ζڌjB3tQdmOf& M0`&邖2vϳa* 2)#cjt"HX7YʌTC%2͒<[ \ȩT"(ƥME8@3Fs b>31ְZ>f́sfkڂtVPsfG)^#nWoyRšnIUXd(+uRٗȂqX$-RD]:Siyx p ?[T wcSbe鑅(ʏ4i*(اzHq"+fKyxaG܆i ymF_5R7%8t({[Akxm dŜBf+,L@ Tֵ%>9{h*];mcSdU<7=r^+ZׂΊK1O4w-YބM`߈64nWV||4lqg8x F+l^:+n [*7q?&Ì6[b 2|H/C ,x_1xnt)6dirՀXUQJ{{7Ӹ6=Ĩ<2VnMVH(D$tEH>6[ \,"i_31ZAȕqL +2vڑE(frm}KJEJY$&rϛ#5bRxF*Gfɱm뽶/ut`({(F{%/[sq1c 2(l:.leN𾴕<+o].ŠJ1텗t=hMrް$acX7F9:`XgF,jbGb"vBś4M O]ƻ^xQ qʯ*+K}}.Z5Oר 0`RiQui&)G`o?LArhM DPWxpII ]9`/PĒt$ײl"Bɴ7SA~,P>[ngc@+l&b3oP7FU\]<h~1 ~D ?a kpGV{a䛷-Rwй{A։uJǓ&(?R2FgINj.ځݕ}.>%yL=@FN$i/QG-ȪT @ϚwR-^s=M/y~Akge0$G An R$Ze6G֣ %S*o)+Y ic ՞G6g˞%/ڦ>$#3*([CMX .v?mxiۏRiZ5V*q|~\#mzs@X֭\U YjiD']0Nr!.:g|0ܢ%MbE2"*`-,NE[WPd17;/=19s#٣' вE/yvx F61.4O>|A1O *Z[2c tm~[lXZY.e67DLcBya '1'ź9=E:.7mbb6U FDL܄7WMb趘$}{7iZtK(APh3LR#) hz~._>Ieء"i_-Ȃ ޱE Wr JjfѲ l'^}|)6s\^r>>xYi`l#Z/I2ZeAڽ'wct,^V-V&ԫ9K?$A׏Oh߼<Ϯ a[h$,2)yIl讋Aⅆid97Y=ueN 㰔'@cP 4Fm)ΐ[%r.^šì԰},FȕJe4=K[ި,&!f ,QkFwI2s;A yBt0JGe=vSʜ"hAU+QESIk(|r@ex%&Y5e?j,>iAOrEš{bՔt7 w'?pFk~8Ψx/Ӽ낁w$F0*hqp_~PeNc]zϏBTGڂՁjбpnNxTcwcWԴ[J $ ,#Fݫ/ڴ݂ȗ1OEDRmW~/8:53S&-6|5wk+4nE|pbblm&M,`9wf)H!% -;GhX8ӉdoU=E\ f TM6^_Y)`J6ҭ5{XOTG8@9vէsqgzDr`Ž@];; 1=4:g`o ClO Q^qND{s4",jZoδ HʩnP]etY 3pHwLsǓqq'c9yΡ}OgzGzOWk33 cŨ؋T0a$m54ɋ$'_E Hտ4D[]:?fԖ`UHZ]}-Ƨubh\l HJ 8'd+dw&GTU<+A 4[ә9  @e:5mQ] tr& YxW-7b &*%<ǹ94[ĔUq`TOݥ^דx9ԆV(zpm.}L^E]E227ֲ(PfC& hdSGUAmv ֮SO6\)gQ_ZvcK> v5MV/$]3,^qCEYctl" zc)O6HBSTk~-/$zDګ'2ܜ#8 wBB'!?\ؖ +7([sclA ZvF}>gMI;6tpġ n>#1g!M@$|$v*]6bKlNfvhL@ƕU!v:+b}"pn6NhW͙QI{FSϖX|YhI騫l_gy(STGHwWۓ)u9ӝO0Wpcc^}I &pdžr N%İlYί؉v^ytP,4(M8}wU=V| \Ue3I%"ysϋM5my c0e'a$(ö^}r לv(B+f48֬R $Bk*G<I4su1[ˬp/m/ِ)j| &w2gﺮzys[1ovMVbTg"iW]~)Iȝ @AnkX`ULۨC0t Rh2bH!mDBeK, Xü`iRR MbVNy-)RJ$I5SnR{i؉îb.Ce-xkեp0I}26^eac3Dv&$ 4V_OheMȝMwJGirm"t42BVnؗy> Wm]! S myjkn˪tJMDvS%>uʪl80jcN)be GE$*U h YGo0#§16;~ak\Yp|æw[ JϬkJC\qH- 2[ìI穨`7 \zwU@$BiW&YZ) or^hΟ{.ݖ$#"a\Ӆ"._͖f`Lwz \h8pZje$e l[K9,ۋ.,0$CO5 [VOe@t uz处!kYWrf/$BH3b9dRxr*%8c;5EN)`'k4-Q}]oxre| kmk1:t r͡g7fvxh1iت ԣr!ɷd@#*n|*&[ G0>׃ꑯC&:o|}_vZ=GCA}Y5{W Xr0uo iz2zyM\m@3S*N+ ܈<'' XG3r ՞UN=%>Si0˔$l9bxm5y媳DM3o\;F JQ [GѺ'vj%ٍ _[;PUgҩ"sX\Qyǩ&[ fJ Aص"-#%AgRC֮x]X\M75h|(cbKyww3K1GI8Oe3nGNh_уk3g9}A݌>f\*98'*59`PIiءDȍzVCQ"|YAL|*H naZ݆ڧR=Rdf - 9Qcg?QLnu`s da I@l`H톐0B#< Av$Nz1ն'4eZ ͭ( S@w_Q3aHsEQo6?B\ i.%0ޘ7 _秸NRVe_ȷD>fdpLa2!l:ݹBza7ihuRүnĵMB 8۫[Ɯx\aƲg-IB_ 4Wx_j3,}r;ޘ)`xsrvzC;}mCm]8A~!)(Ӵŷ\5Ɩ:.6["FN#~Τƨd]_?<9JJP)GgQ? m!x[Pɚ*p7rr!4rBgŘJ AR!z 셊k踉w'(b o*KQ۞MN7Ҫox,AN\K*sHpF[J+QJR50vӐJ-WY }ZǢlP@%~Pת7,tzċ`ƠL b&F (nOdϭRU]"yj_e'O7_Sd{']wYV[ T3Of| ?.kSR&GY8t Eq7EX*$u۟Ѩ ๋j6'zح߱ub]""sM֊=9`6G8ӨBqAoz(on G3vz۪>z+ѵ MunSPw$=n_w~t lb#Ff?+$tVS|D3ySA1E޾MZ^`j\/r]ho#3i wkq>q#"i uFPqӣbKL#%Z/eM'͟ApZ$n{\t<IQ ^qPK$c79*x- )QUl%7c0'N1~@54[I}#HkA<Y!u,' $9'C€ >P90jSdlN=RS"nCk LJ=T:ΎoQ7u?וeEr ۭ,('@8uNú8 e }D"O,NWRAGc nC_ӄvEW2 4R5} 2J]BvxxVo52ION4SX@jx'T06ȷ%` ,W:Q6c?; Ǹ&??:&Q+P)J߄4ZМhC!`G͵Gs@E+OW%?CZYeܖNyL2|Vv ]BHfr뒡8l9]'lEd#(>9뗼3jƺO;D|X8bvv ~DOͬJn6& RF#f|;hM,闠Tl}>F`:@>w3_\t٩C"IMiYmfxx1q+%n@57hw$/ږce.0PBqJ:f.*ۓ=0$wv}6+:ٷGyxBR|ڀlzũ$Ez (K8( 97("yeN0T">87^ńXPv2$>ף|8̉zRQza+\? 7䱂ǒTOuGz1ɥtȶ8 1$nrާ<:ݻ%=o82Gic‰ћFʟ*c #v0MEbvV+dj8=H=(T$>Dn2na?6oI>ЃQ!{"StɖAM:([OVTjICJ \9!A@|"̊G|˱rL"E{T4C؅D#PPYy^?0:roTܚf}my=X9+5@t0osr7_0ȉIy_9 =z넄cq|0ƒ"$H>w}+̮R![/Ndka& a{PïDcPRj>J)AkaZDL׈|ˣhcM<q3wZO UA2SCCWR`u`PĆb%d)bC̛Ҹ*Le;$3*@P#.uEN}Nq&yAdǏ3Kyaw =z슛em9b$g>M1,^} fm@ƳVe;#Ivq="fz@CV xHqK 32.a}Mيw4) i$@`%XK]GOHtRwhlacUyu Z!a^^TRS,Z3E. u6m.P2G6_*%Ԗ dY N-,,xT٩HbR?cХp[G5֑ 6wt[B)*Ma_Г>N BPu'Jp2ɐc|f$ /J=*ZfĀn$M% !Z+V+mFeԝʖ.=] Gg ȵicn+up-}LE=nId=6-Z-:8:}:/S'}G*s?Avt3VѠQ`tZ-FNkewyðaLF~oHX-uEGoٺ EBȥf fQ@([(,Iy, Rq MElB0E#PjxN{4%)jZ)tu%ip٣VXqn/6椉Cn5vR]f2p-91b vNePЪ"gO-!)ΈHrIoACtZjY?ZS D|,%&(Ӊ5:EXbM52um[芛 Έ^mJU|Zn~]LJV蹩o ;q'籰u sxMf)L]΃V oyd^bd,˃*EыI eƯ|x< [)tي =-p7׫| ! ߩSMH-&x%7!u!UIqm/(^m=dD[Lw1O` dNa. p@q-{ װAS>8wP/O!dQ]%ÏD)(K/]" #iI1|qҒh1pv(WLk}rBhSF7WVS,҂bWu9-K=a}o){u!K2:G1o4M QMbt5ᑮ9`}DvI\˸EKsx{ \w0!L%yc`޶]H'Lp8FrVjA??Xns jq SyLB^ P~_{^=' s.<.#eN|Uo؋+$# e]kxZyx.Ū/DdQxw,m]j| 5YPd*ɟ}Y6% *{pMN85<#(C.Nٴ}(fRbǷD[ROZ1z/@-/(Ԍi@IG%/ĨP{6px5KR#r[AD/CKE&vw 8{>2iv8UC`j$w]U=Pwf' gCMm$G8L/)qA'I)>.Aj$Ճ!1uS(t5n\h& `nƂ+dĔ\}y.xS#Fn ydR?pykOycx3CB/MԏwQ|9m\qt'; @|tHg+o2ܢwIDHOK@{Zݗ?sn*nY1'v~}er#NP޵)(z:FYWJ-@tJ>괎Voxa|lPQ޻B) }ԳѷUP7$XUR!y xw0w Ѻ8Q1FH} BTuzʰ>-+&2T/bjFs'CV? .KBu'- DrGevڂmc|㖃:Ub<H{4TCV??>h@[hЄ-yZKCM7aiMjU*4zQ#Б,! Gs2x=eml0u$]˒ht@pw*8rR`+4^4<6 [J]گ{DW.{woBD^7 YQİAc^S, fArB@:;F?=V38Ꞇ0]>cV͙B@}ڲ Kh׳":X ݑʷr߱:.>~˕$ 'q'^H{+in,f)?ք݈|X{P\<$hSR*qkij/L,1ZP55gl|uOF^ bAvuPtU֨ê.^`p[B߷nNi![PJR#Ri> lt >XcKS53,|"e{2]aўvIrݰU@vh4ʼnv57o&]'9G -vf,`f p3-7B-l*XyZQ0E}7J &&AIiFm-ݞNcע ~&!^!*홸JFcؐ3I @Si+r/`ޖU K N}SQ)#׬i_\6P@Ɇ{wC<#ZW*̈"3'v r%4ܡ[Q+?5۠!lkЇ=aKNĕ^F ޜ_C%\$2zK 2smoya4dd42pkh"cf@dλ|fBlm@tӶ!A=5cPME&jR7$ s4*f[/e]xط&{i=X#H$FEb&[_.^)ۇ$tBmb}ED[r9,wNĔ7u#FikhɏWc7#Xw,s u3к=Ef+'L}ìxNy|yJ>+ #YDjw -cpM1+J}uY4S $:9 b:gZIJ-F,-cqW'A?1̮aO^6J&l|`T`.WD򿘜Hm12iVChҰ Gb Ϗ6=>{a)K _9 |Z4;^͖a?`BEL- m+b:{;:(R@_V)9{&Ó :g 1QoSL(u'"\htp/ wه}{8c 'P3c P=[{ M54\mIh?͙RV, tZ?הے)1^ͮϴU*He%Ε7(: =.֜ގ~ѮjZ}?|çAwQn_| [<CPv7'G|Rς(03cf1,鹦—ȩaVV4AO$'liĒP~BQb*Za 5ˌDjeNR=Ok VG!ͦTl)Pl4.׉(ݰs5M~<ScL[8l?ۚ ޓɺ0 L'FBJ[Ǝ@`#pv=E&#0`p*ڛeCY?C D"R C(;~kU8X@k|$8r@ ѽ .9ւ6I13i?ZЂCZ,heCP!G(Meg5}ґu8N' :x԰2tƹ:* E@JES_=eo`xԒ/V6'ېQX"̈[fZ۬)0;)%Dv_J+B];NKL3(d?Ю<."0S(|Zu|y׀Fȵ~hmľhJX#n/UVݒ#; Αz?*N'aLI W֔լǍo=+"olQ;]D@!pNTK$~ y!I~R59 ~U UuOX^uL2s9;Շ)] X ⎢8u3x}8\ٚ@q~ȹ^B y|~7@ ycK/>E1` !Z3<)=M60sT{#f*_| Q$nӦ~7=(a((ćj %zj98uլ!5F"3ğ%1^P p 9pXZԧ]W~k+wH{X%҉Gx&,go9|EF  `F)oe(@_Z"q-'U6APɰ `ǮI'QIT#˭\vʤB=`)I+H3㊉"^Ύ@fm10*8MDNMl?oOHtmˮ1~ iO]Ire˩=!Ҙm?9d;3"gO4\"i+#z;v̥A_ )V s(/1)z/78O5TDZbX :yzSMM^t tZT7Om "'PT#m}Cy-S˖-7ixMx-]%4UXCw*e?fpn?1yv0G-=XȥmѾy2A`RmiH@AyUH~V|o˙GD7z==G:&+d2_wRD!^ 'ӹ^f2꿣 ~gK.9=1~TVؕd2 uej02_a+ftKF>_ׁȕM2Ko| d\N[ olڝYmKs..1OshI[b.69BBBܥgjƔ~AQfئ w8_E+F(I~D&+vLEy']\5cE]-Deg` k R+u5I$:D^IAf>#^>h0ψj;H1Y<ǹ2^es[WG"oUvt 0uߓܸ>lHh7$?]9/Mx"8AHZG&W'luMnǢzxdnso#P93W f[ňb`/ ~5^@t67[Xuj/ͮ-6O͑Z߁:kh9"^vG5z:N D0A$ B4CiƖ "Lv,adFʇ4goCCtS 8К᣸wkS?@^ԏO-LX_,uMuh(a4NASIpx1i%{==iR4%[eK'﬷Ya=(5<+eb!pUUk_9x~Ur' F`l%U]|+ .^aU cۘͣh@k/Xɰ* 6/{ɢ;0 y mTB>Kb@ qFuwiU hrպj v^ٕ 5 4D^cAPAVakrp4 Ek4xC$W2} j1n[aÍV<#I~fe@?JH~Ǽ@nIG?Sx`7l6U.~ py@ T8#*pCfD/4h,/=_,ёVbaIGd!pny=H7!R}pm6e{1\/v_{ ?姁aV M쓤Gi- >#biZrhlSD*KFDcS#8nGi H.y^KsBxb>3"wYhz4az+cuۉcbgK0!ՏqD v;vHs1ό0:i?7q{>[ .eP:"՛eB#OIC6Y+O,|L}oM:0Nb?]Sc}J;\CK4LA8m(Qd4c )_,q|Zi#WNcR^g^z̑iq3`$Q9ɑp9-Z:q!{opXDldh*?W$|lt oY]i)gVE(yH:$_gl²v`ܱlMtŃ6\ct|0fzb6]ɶ\B+lj reWf҉e D<mJnF)<ҿLX@BT(7@? ,{'Njˤ߰+@!wN'+V\rDUZr:/kB]]Y`aݍib |eA "W'a!4,ST4;Zȯ΄P ;_X=M%, )X]3L)affjuն?EHJ MfedM3V?#2E s͝1f$9}ZѫqV'6Cy*뢵ێ bezVd"JvcKB)X;UR'Cv >&ob0os\3}'u^<s UAxvx|H;KA~! kɝ!9T)QDdmu[Je{ WLT(LF#:0h'EX!׺S T!՛z^]NJΡW@T@iA (PI)cΣg[1S0Zj:{'KuYڪJEUFgU Ӄ^s:"Cûmļ*WN\eOR6fu-VSMu>Q~-3[]=s~kqW7MDLP|cʹgDU ״F{[z`As[,ңTWMtnf:W/ C5?JPg=wNj%dșD^w0X,5-3ìoed8[P\ї8ig2ˇle2oF a(0ymЉ,Il+*EBWbKiؖ/^6tM5b8\gvYekyWUECzbS:P\rfFA -xE!B;݄`w$_Z퀮isK"XHX-ePWpZEnG8,BUIdQ bq}Ƭ2Yf^@~@p6?%2S9f3g~lщ2n``byx"EoTGI"K+o4ݗK\>MoUi-onA[>djt (BM"悴|H pIC;I[(k~:dNbX6{Ch|l{jj_VZY=r_̹p^Nn 0MSB{=;$*n*'F{ŢJ4]Em;3Ѻ)lܤYȐ.Q$z6PkHE?sb6ȒdfvwiW?ElY CG4<6vE87V>d"׷ ?EƒwZ;rj&ur2ÐJT`f@b(``'…mNBQk^bSrqP!H&4^v;gEp" LF<铜Ema+WB6`BB֢{shO^P5+ KƯ , i/J<`f]WNvԒaa_m28!{?Yx8q&>p8嶐"_*_8!Cg$Pkcͅ ř{O>#3IYX0:NYc#W9cFFc27g6\nU+A/cke0.Ws&?{!N je 2 ?!leimGe50G~o4}Y- "Bx/)YUY+~%V֚WL-$@,:Q?Pq ߫~I6%;WnkW5 S8vW<yw {QJp CTM3n:@ ᮳89s>TuE읏L+? ;g,U.Pc5"ae^=ct{ZY<|/ 9F41I`T~.ɘ 1ZKzVh;m ,nK#<S'timǃ+,5+ڪ0vQNU90]kjhPp90cB V6b`%^.SOE#;2Z[6=xi7aooɁEz<5|diËQUiV2.IEG VIhM+>pzT܄::D֚L;nv~ kSJwO>*@]HW&zP4D*!.)d, =Lv BJhQWr @]l6r$ZEv#l^\6?UQ8icPCF1Sv2FԔjk3tVטž ;ec p*ZDĮFW̵Č#`lӬ+y[{;K|T邗jYyMoDEܹ !_^Xs1xQz eK)"IpTg. 5+ʉ2#Zณs7΢ NuSQ*ec.5$KB % r\mm,Pylkq=,2׎b[iGcWi\,ȺF.+qm ta޷b/+fQsmʮU%x{2VL68m6 ^R6Mc]6DʽZ10_Yg9bޠ7@B'繀"#a(/})*gj.ѲpPwsǓHJ-{ՏmvaQ_%uQyn\(X t?>\=tjmܡWc:`OɾDeID(t8^vQ2]bØ߇ i3|q D?>%B"œ1_u^мg{4Ze=fN5V{ac# Z_vC.R3*Lf3rWrm￰g莬xQ+]A-pFW3d㋍.H#ݴ8xwF#v6hTRb9~vػ.ې9I.Z 'Xy!YpX~q}Aőz Wi959ajՎP}Qg-yaqy-=ht 8{ }DzrSOsy&C00uG+l;c%P9YO] O'd,yOLT\/`R&эcAII7 L7Wcڑhy!0RpDNhS{6:*.kY&F1&1hF){-yg4Ƀ9=o|pnW8[Vd$Kd3giC4JŻwUW8iXVo3ړ )&;`Apޱ^*|l&gϣ&?$ô]Y%IBi0|mn]L:= )Ÿ"ܵZ{*)2 geh8q-+4yhUp7qy|gMW`y6Oc+ љyW_5P"q~Q[qPT~':: oWۘqS/":ycӜKw=$`1Le7z6H"cƃq TË@Mr3O4n= ёSl{QM߉N9멝s3sꉸkeóꖯ* UqP%tvk# p_3&!~섌Ko(b) (x sڨ \ج{wZSDŽ#rA0AtaP/̨b U"'"f0|A¯86 Hdv$vlz~\UxO]< N%fI(I @1h)pRWFᴂЀr6r9p'ZX+8|䵴+/A !adGe;?Tt]ڕ>_߄J``)w`zRA BcpZXhmk0g\?Pp(MY!,O ʚ Ju fFl* p:fCyJa;YUkgB}oM~X{EDhK=Ұ4QfoQJ*2?Z{p`$g,p>kfQz[de|`4 (`-l-6&j ˹}y09Rӭ4E2KtډKtyu+p{3`PxI R'jX3~t2ɷ4Oz8垙g?₎aqrpGIΓCaPsq- n HZut{_|c%$>sjxoz]nʌIˎu4,@k7L^qwJ]pgxBAK2Fjm;ƚ|,3jǼ8+f2"[Z=9!]>SvActz؞qLpGKFn_lkm"O. qg8;äzAY~K$Z[ζaޮEm$iJHKuT2ۂ/YܪM'w"<7GC7w6en8!gWP  췠xMҡpQ[NCy㼁{go$^o St>p(6ܬAʣçAQ_> ]AP5Mz ͬ49vPrm ԗ1QMcML [JҨjiF`Ci&a&/0=iSrS2b(E] G.`.`H35kXVgxZ J;HUE+ ՏgQzPi/Pa7BR͆R>X ˰0%)4L6IF[>q=Vbn3<,8:j0ߒ@GKF}Ѿ4:.ӉDC1x <~\?~(C֙'QlKќ9Ad~!މ:lgdp|!}?@O QʍO?-2dRypCn>9naTVr9 J;1}fxOpxvl6'gjz^F9j UR}\ZD(r5s<槀VA=U 5m6\@KQ\< Z|H 'AJ&*TN hލl}т܊h rQNfq_s?~2-'Af@BCC`tW %ܚPUҲ)=g|[N:2wz),Jd(Y l I/f#`g4bMlU-PyXP܄rU7 @\[ ;bWֈvioG]-C'IM b} z8e$b'Fq-5P<@}sY;"ncEZĮ{DPؐ+UsCFdyƦ_g^S\~q4{d]!uUeY3ٳ<QCcl0ҴD"NZX~dIXomsL o?b"-n[lJfׇ ,ֈIvm'742h1m^_g1(K69ΙkeBD)vxnEś%җ6Ӥ.ݠOb|LwZ鰋[ݗF¤)9"MDuJrD8t (SJ>2o7!@2 3ju+.`J$Ȯ rTf=?k|KCTdI$ gb_ .膠݇?1G9D*S & UZѬ- 2*p/{CA׹?`۶cp{.Dxa)D[|ЌU,GXt/X`  9q>0:idK.@͇l1}u (]z—vHʈ'BN+q)b,Z-5ق)g B8<.&haR&E ssPvWXi>Ҹ5GRqCu(9u'д?r:6ȈS"w,aF>w/B>*,?mm'xמJ^tF5ߠb2d!2`G\ niOG<~GY4Om%H  ̌~LgKB潒xҮ=:0Cn)Tgգ{W+z a%Nü>{r{^IXD]P;2iQ~4b/$F'y ^ ;;eM5Q,2]$X`͊xNϴ2 H){}M>ftoX{2\rv"6#ᅈjېĦW& <z=0%аz|-o%ITy0kEV!Gi6tbPsq#eYNxPg}Zr]@3>4V0K}2GE^VzXo)UTuJI0)|o&_2sD~^Xc_1dq2]1i؉7m:n;ìլ habIe\Tk)ɢd{cy-nWFl1єȠ 2媏v$==rͳ28L0^h+vx90~xӯ_%4$*p <*xXqNz:-Z[ >(pbv.kN&ME6߃9zpgIԓ}\#ńMZRJ訳 R)lDV {X59*z=SY&֯ԿW=_$t/vY;CN{Mr' qJkLД;jyL/ھҞRcIܐuo.A c$?P'pK 9\Ϋ/m8>o\/_NFrLY0]m#-j9D?|"Cs1΄xcR~(.SZۊZD&f#^U ).r!F69~Êu5z:Xԇt>8zXVl3J^ڍq#U_nmk橠q;W!y19GS:|ʦXKۧ4G.Jꥍ!h6l&F"ڡdR%*6=v5 @HDY0/#2浥r4-!(10<'@ ?G|\}FV8,7k5J"jtegF'`;ֈz16vkJC8W=rK2jN4|kdC !鸞@)N3?x^t;B֨hItZDc`k$f5XUr[An5=\-&Jw,g=?2!^&X H9!k^W)~ :e@‰U/yR%ro]9U!o):ָӠ =Oݪems~Z=kt()&qoRXDQ3#>YuLqD7?u~d5z՚ktξX>+e"H^|Y[P~5dђ\hurk>wn5q[oH2E^MPcrƕe1kxgTc:yp"NwuzXzK;IAy>RusHsMwu<6*iwqo*B~%߷2R!J+"hͷꞍzWL=qŒ7 'm}=v9aWGaF&VLևp N5Ħ@G*`a2ZA~$@G R79eք?&* tZn pt !Åi]v;Ƭ[%یmndZ"+> Oyt$Fi&]X?H8`wx|[`T!O$SY8H^#`6ZT+7?yJ~J @wə.螱[Nb_iTJ_B b:pMDKm0YUA9γ"vLݻ| (5հ2Cj{:GԐ*L%Ȩ"plE(N7LG'_ԨݿuK6x,yiC)BYS-ݜLW `=}aQcϫZ<~INP+Wٿ&f5;mZW(ʢ.|FA+upGc5QM Ls}؀8n>bx}n h!n58iAl=ZT}iN,!I.G^p/'A5L O;NZw|7Go5ga"Cx|ooL٩DuVfw#fl$9w;2Lmޅ[iAMҾ.wH9P# G P. @$BL3«ukBY0r )C1Iaaj_u~Qԩ:=r8@\v޵=WQQP!?i$4Fk($n7CvΥ|J~? .#3kE`__6 uT[?0[⁌qF]z.?NWA2x,d #f'z$ VK~4B^t@ԣ1yk9ʱG=0CX{MqV8ۼ0$ *RobL+>ԉ6 ExD޶7r;O=`y/A[[bop#gCi4mt5Sy'κD@' (P檯P=Ә xyZU4 _7d dȥ8hm:R-}f6w4= kᝓRG!0Oi:e21PM/#q DmtdKhekKD }daNW~{]XOEed(WG^EU|Z!0ȋ65:rkbukf7[Vϩ`}}0tN-2>U2 fҒ̈́/da^F*sއL Z\,B@15UY`BGln6( )xp)qN^{gg 3OYUJ"<+L\s,(ˇM-]NV'8̵l'vK_Ⱥ&gHIfmpƕ =6Pdy0cy]B=շoٖpXڪ?3׳76k[0*<#M&D6XcVyE7嵙 ES[Y|.8HJ zn4ۨPR-QՒr.Nu=ix1{hQ^=)RŜk)/`q9<$KW 6jphz"}3FcVuV +pi/࿅g<)g(@v3ס.uUּw`+HتmB8b?ţK{7li=|͈ ';dI~A-?scB*3*> qW`Rw~a۾~XfuI6P9 h-m\7C((?Y5ޜ`RRB.?q4~ChYN:cԜQ?l]G+*|:耼,۾.ې)L#+cL;);h*OǤ) 0 ?/ 6*sq"?0"ehEΉD8m񳀬J nDjAFFr}cT \i;ץOw:$?TSلd5<Չfi gg.AӁ9`; VDܭwޖba#L ʪ>W{G>nR\0\CrևuqU۝!ߔ8c,PLq3 M'icpM c>1/?%n!f^rUˎ811N O'YH,u$2CL`ɈVMlCp96B#XY^z:sJ1l%ٷs [<2鲂ΑQ=s#DH1"3´׷ #n[:B9X߻0|tѻU6XUbnHPYE~}軬e{]ر޹*+p~OTuYd!'>ٮD߷WuE U$%>uL񱩴'<9к=D'[x|vjROJp}Q h1^Qޅt"*N(g0J~ \xBJ۴Ϊ[_]*qM}hXI/M:ßG.;U-O;Czp>FQ IQ}&0QTx}a; r,A ^glp׸3t폢ޤFkw/p fQR~Oarl!wnJqbD&Tfbq@<V; m; SzY9^c?oX?{o*WrYw jҷb%=2~4_ 3òb}[yYS_^]9ϫy-B[ DU6ԧS!&/q}y_.{r$M[G_ܠSd驏ܔs0%}(5v닧;h4K ߄ C6o8 BmvE/D%f(pډ`;sr/b`jWr(IX?H_5$VF.ٺ._' q|IfNj_OI8^@)DT]?w=%XoZ!]Pd/kd^gy-;gn!bqi#F^`YvS^f|×&oꔷ` ٻb1¤ytYcU8L@=n1R΁W9K<}YHu,6[蠸{>eEd5TT:8¬<}d81߂i"JXgrp͒P8w^yG^n[ѐ0G[Ux 77(YͶyY{#h˩v-YIX/SFI7ogI&I!RzɈoL;[_4B L^AgH+t#{ | R~ Tk\DI( 9 ̝\R9|lVTǚִIw[> 1P!sM csvԼc5XYJ[<uS)ZfLԁZ<9JfɣGWlٝIq0':?FKOCcyyƻl*HH7۶1YC~b>;ӘpVp~CDrUj1 Q$Z? RYe%KwuNA[MɅ },Әٮw8.sAK^ ${%:)QOߛ%9WJd3Α;D/$-" I{fMJ'Z|ߢk6#ӄ Z a̽E-4W{,;70R9CȄmPS.!9Jxs1d*KG<{V;Ie-1|qw[g7Kl(AbإM!7:'&Guخ?|J' Gepet%}jt(y;j?'|@m=ߥYQMɜdu]g~  }UM(|QR7WH)Q^_ m&FE$\ܺ`RC,}Ԁ˫̸~7dՋ|BVZx2eZ0;4y6AS&랯gRn\1Y-ZQ[OcX[8nRfLVmCnEFu)+GFj*'Ls̓ʞ(RU㬫}ƥ>1~!U5a> jh#v+dyZ!4K QMUd-q`|1o_NIuIf- M.1pea}[Zz=|JYÄQ^h@UP?co2]x. `z"XG5I~XdTY%B玀r" aܲOyBsf GZ|:Y9NQc5?+mX IԓҪH $؏. 85y\Atws`/KoǴ3h=X(!v#Wax;zHbUҭy HxpXe4#~}2}8 +<6*H%wC0'zxMl$qt|P JEɵa-:\ge.3RY%R`|]!C=VZͿBM Q2:idpTfZ0L;AA5ya{~ 0zZ/oQ̧;(*#ɽh)XP(h5Í+Q 3es TU$9"V{P܄!/X|2.RdDf~>9u:6 eF6 P'YKS MU191/o;c;[R"ZC=K C?0fg@{Aڦ۵;%J}?EIã04vH"sb"jвU_'HA,e==i"}(֬z$tn;ފ. t6r@E,qv8ҩgL*an6O{$5b%R++:u~+hj,G<-K MSj[^D>N:Cwao"x0T g=]?͢HV@M[j1&՝eYZvƙT:tJob1Wоbq{Amoܮ}m 4 yuIhsf=Oɥ)yr NY\eE4tO`7jtktB^%t 01F|s>|EƇ_bNA _kd{??[l0OtSfb%hFLLzU}(.N| &ᐾ< 4WcA]6w뺮 LIm4ƄK1@Uʥ4M <]īc&\`'ɗ\mƓ҈_A7V"/{ %xf$w8Nppq)k5K_]몫pZfe,}`<%je5.03Bh&;I]C1nDflGaN+yi hkh [ !ppČ- Iݞ3@M} !\9?*OH-6s{^X"$ȣ$<[)W)In3>~Nfқq<1@7 4(qK6t$~oN"xI䮖Wk~}Y?3mo٤4){ϊw 4W ʯ>{Rnp֠f]&71L[Pb#p8Bɯ!VcpHZ">C+?#組jh++9>T'Sq[qYOk?\g0TB8׭0ƅ0/RGSQq~5 (TnofVO[]PHp;{ pQ$'WJ^=c ..; }H7eUF^Qjpż㤁PM83 "@/ c{Mk/8\v8Q\>y g{黕L!xj0)\M"!עM֞9^t&<,p",YCP 9t { <4$g[qڻ8Բ( ` N/&=xD'd:Q$`r]zB89` w9 (Gr7ף.)]5ùv$t#et]-_''cC 2ʌ.ɢwSns_Ct.Ecajv J/=sj=^1 s܀7}N~e"AOO1p>0R-ԴGE\$ӱ.oD \Hꁾ!2.J13ggs35ۢn*wS ZOge҃zm$-Œ<&+fQކi%[] #ĉCL޴W]usA.)f%='"^Z1xu}3CL\.ZEb"N$`G!3aW⃛O&BE"BFbPv ˳sMG5*P0K,?")Eʽ]>Xh&$X|,vRo:$2yD2QyTBCZM|_YnQ^*s­%ѽlI'`_^hJhe4<>e 1TAc6b#~%DkBgLc;]H!i#s~]?$ܡX2H iH6>3X[f${.B Ϗ!6.M:4lUn-|xq1cic_`<@}TmrӛrAԜ焥>_4& Wb(_申1~upƬ6HKRYܠ ydbەs+ Rʩ4$"~K/u.޵kؒJDDfMfƣ2A~ĽP]>j79ȝ(j|0o#* /0 -Ova5 B4N\J#,!t9&ɳ"m٣hKg>Lk8bj\ZE8q5W]dZ $x.wV&ӖLQWHQ h?Ө89ӠN~'iT6~iLZfi`Ï4s*>" U.LeHxsvE}oUÈZ5m*ʈI؋Z irȒۏw|4EY ͓q]1,I) rQL;GꇰNg[w0#AXtZMqƇ' 0ݒ 39C 8zA燒I<2Z8o|xg%) jKngerc)]V|l.oQL$pHeBKTkz|W&!,UXcY6Ƌ` wTP}'{+;3 lƐ)H}\Δrp^x;6rBC}sEjb@|@p`Sz`;x2/M0ֺ" kMw$R}fv ǃ+BO>vv92 )%s.g^:Ċ!L9"g5\({b[{}UYÒWӃ#$ vi1֒X8Թ%3_ b'potZH,_G%`{n5&0:IlT`tZCFS9Ў XﲚAvy;Rv1cXU4e#g/C D/H5+i|]J70Hvoke. K~0V=|YhT].$# "y~۷Zf!wы+ycoמ BF`EB'kYjcŲ;Ce!&8nd%mJ?Y[Zѷyb*nYLeĔ 3y-˧&9IDF+DAoԬ2bgr|>tXS4z7>5i|NU&\Y_S0\'t$n$(mec0&李&dD 4ؤkU+/vhj2$q h%5`-D1?"8^ɳ|^N@5+y o-94G[(E|{a[3NoQ8m<1)LrZ`Qbn{ :SI, 04vS^Y$9Eu&_з wLwL R-cOr_Y4q`tzΠ318sAswgYcN˔Zq>!9bF-llP2eMMD1ek%sjv|bKPH#/ T5;#~* 油 #g?u3ɸ~ DB\2*6!h:="r(151vCK[-?٤}3Ր'Ǫ/U&oTtYxF!Ox BKNAl~ W(-!fEM׌z+rF2$йppKt{SٽԒrbJLRQV YH̉f:}2)Ȗ/[JcALN.b<&D!l6{a k_A勞+zf fۍ:HS(p70 2KedVsR>Å+)Ry.sTmkW>&!A͉HKZ0b ёA xGz):`tW2 !˻5wW8xT猀Vp|Fc<*3$`$i<)T+X"asE mXkgC_"PV-n7:/\Ιaʹ%2҅ffJ0IseNTDslZ=7\~(Bu-#=5iI l<anpEύ]wn~:)j>=???6=Т}IWWQX\qz #mT Va<:fh VhyN8i#uZ@2QVRVKUIhɥ.IcOUfq:қKb#aqo_n^.ԢӫQ(Ms@'@Ԙ!& :]Jt^S3?֯5 5bζV&XQEǢtnb(2{[@:d (ZKw!_'N04Ls;*`r<0 VA.]Y[z.g`9l6daG6.l<_O0|T2(K֓,X1`M9 |#`JzFY'yC0wU浆 =<& }kcb' S6+#(L95$ Bj=Nu۫Y"5ďki*ꡠ +NӼnaUX^{JVkxhX됈ھhCRmX% rR8ɈYX>x'dO55JG ?6+ %9aK3L&P =}x4sW֊Nsm-n$MA<: >ybRo0#5kTօQ R[yP⃗!h~cO _Ǖ,(I>EY21^3`qš҅~P_H,kk<"NK(شo`-\2$ l@~Q"5Zc"JğR,P9K/z Y ٛdƉoź V@$w;,Ū;v%'vd} [6&RNu G)͍> ע?nn_L].s=ӈ֕SЁ^mBUcȗj荰mejG25b *y?ԲrXi_9d>SN#cBヿeݬG5X͐Q0(?5<"wSÏ:뎇ydZI6Bf5I=X-񤶳4>%?gb`En꺨M;jX7*8&ޢm?O`IUt҅%Pǜ^mM=W82S.[Q_vPy|e@XZvr hQ 8l>J^o(g&s;KjsTrtV"q@G"d2`p'~hy¯1"t%:e7&O#P;tB46|G25I'"GLfcl TrϚj~]{˰GBDa$c5`)k,lt!|]qwhR 1b#@8[DBܟZB{ &-xc˛"׭GA gxKq$;}=> hm|az;jNaN@ b{s;]- Yu*߇O(ݪJyu5כS1/sfQ4FWKDZYntv%`lgDHx%{MĠr2P, `> Kbz ],cBo }BfgJM~Ip4^6's tio݋P0k"dA綊1 OPvӋC'n.Μ/D27"Tq"K0F ;XD;m)k;ގv~ا"I_b\,rtWImI| x4rFubj`j|!"诖WH]iV*Ҏy g|'xSk,DoO6RݐQa g ъQix@ݼ瀣8ru'q5V4]ȨC~񻢠M>T`:ƒzΓϰW;Aª;jJ/$+UHHbzR& q WA.h| F&W3H|&%V0!pRE$W%^@g6zJSLį*pV|+ꠑMGP *X، tηsr[r+x&Ƒ|r4Gv) PV,%ҋM)(Cz݌vKLd7Gt1K9׺pW+| $MN`,- qω`8i~:%C\Z3n9+8uHg*8xWto@u=ڪYcH/ Y #PshG)$Ȯ\l`LwDa8BgE׫XM[V&R7ȳ5_*0[Ei_Cjk}c=/Φ`x?تNaEE$܉] P״r݅I$.<DsJȗڈ f^ 0Q>)G '*bO `8)dؕ!fd8T$٭?ɿGgj"w^{B}O٩73(h#\ʗ} U~# ?s T j_Ƭ-JO;CBAyӳ'G&_!PA&ܑΌIՕo^C# ^H e$w|GV"Q2hxd}!lD o`l5_|2>(N &WXe!1VGVά^qs%r'=o3;N5Y;2;)mqqy'oF;lҦFkqܺav@OX&=r!߶1֎ۅIxʷ@o^{-] [sDvae>w36OY0I]mpDG^(#HBo ZkB!^;E]MoB{;\}6: C*`PW}i`ϭ&P3nV`F'w#M:Nq쀠3H])u>69 r՚"N30`RW+*I##XH8X玳W c2u7~T{.#]{,-RJ7}LWJ'֤ hI?J*qPsdɥk3)T0p}Zh)̾K0&NY,:Tsҡ]ٴ1%Kg^T|0]I\L-,2s7?MjU][O3gUo/b)Zu$9N\+3ǃ٭rS] XHS<8G@.92 ,7~LOɮ.SNT*1KFFa :Q0r|BM_bnq˿4"0gDdP}NLlIr 9 pwy5?*^CȉuYˑ 7UB)lش,GH}&] 5rۉ{ͩ,HtX,#^ %P[VOUsvkiV[Gcðo )w"#kJ y$%}fv;R`6R+rHq#qDXy&t=}=Mn:3gk,sʝO*0.+R6p8Z}ʼnnK/_陏x$_ܳQk8XrAsayyZCf\h7r5V'1WLˤ.ѓ9X_pU*EI 'BQ^A|P8†a~29G:vx *$@]kR[ ".,1R$T<ɘ_zvI~i#0/ϝ1`+EF,0;~~|n7SPRe%Kc8CHoV sKp8`U,vҌ4^eؘjY~*)0ޔzÛeOwSw4e<`| .6IBtUإyZu9"Y?V'kO8F$0HF^7<( :j eQ3ҧu raH7p{&ƆI,>EW )µ؞((咾a7#ܣ`X# [eyp}.t(OI3)>$x\?ZeSYavs'鼆ݬeȻ"09Z}%ёm+3 CNPSKI ih (8"lzq޶) |!J4n24]n>}DR~L(ἶ8Ed'z bWfЕ%cD$okfqӇ5S))LJO_5Lk^QnA@r BFm6.(ms #` Jg%xRB8]FC^~/?_ӹ#$EDh6LʯkD,xgW3'ڌW!dn-^.HZ2ב}enK>k!|-QWn3U@ 0޺Lƍeı=lTficUjE=³B3xWIkspMPtfrH;=3(&{ X˅ac(KoDɽHW Yv^7}ܑNlF32dt_>4< $xMZEK3R휅9S-W˙M_:i^)u\5P=c ZV֯IMצXOe`ms3,QgcsRK(ԖpZ}9`aܓ\)J _,nb/u1e{P0XjV((MSck?(l#s1 Y6~m SТ9 ׈xѽKs ҕW7iA]jKM&mh^Jf9Ii0cxegVa9NceEYjdhv7ˆNai6&ۧ0ם=r& 33jݸ(3c.DB qEux'hqTYdKCsfP(xґ֫9ZΝE*r(K5\Z72!U.9$l3f{cR5pw 3O*D Vn I;-ߵȝͨBL鸑~*oޚ:KQ'˚mv$zW{ՑߘAp=^tGu&%8 p y"/لK S\f 2mcm1o\[\ݰw5-ݝ|0 ۓO<0y!6@@Vg"Gx" Q,"$&ē)?]G|Ljcrx/}ʤc߳n[1\-Mҫ`` ?SVmyRAصrz񛄌9&y4[M0 Z~倝_HE9]~EF#ף"fi gd>n/R)*T!f oBaf'! }JDH908v`Ti.;w0qJVMRgwZ8߳DݣnQ9˿(,CF 3,1S8DI{psoGRȦpBOv)M[}3RS}h[s1IDP# t8V"%hc]ϼq)*TJ=&Tf#Jo͛Xoz@w)}z3)+E DZڱ`T3%"C@A z=}.Ħ="&TZZ4wZH7_ qU3̯GD7vb-Vd M!/p_\S `$@5|$w"_|ATxv1EVeшto','~V~W13yI$B{ hkE)!|+odY+^< bДF2#y4SQE%]./._e?bxpcό#5 ^bh,z!`ΪIT_5eFQ ~ؖ4VY}:B~N?L*fɣgڄ%Q\򧪉;څ^Fov-N*;w V#:cLDT\aNf@yOѽ),^·;": |*[śtg$H V/!4F~^q L~aFS>S_$Dǔku|H5 E~X g p;eG>%q1C@a0KQ;mxe%)w#IVE@gwtx=PCyR.^B<Ϟ{O~BxpFu퟾"K0ju{[6DN?`sGГflc CAtF7QWs:?eZV>փy[DXNM!z%.,2ݷ_L7cF<$`%E_^ zs=KxIbM /\v U% хYs$*BL8(֎GrvIVͿ zo?$[V87QFCk1` ,^j{*JgSWSCwG [MYw^ir3yۘX$lF nQq{K Dzxр@;uw(M>@ÁCX˿簰N˸ {t\16urh57?4T.SqmYvDI {m` S =LE-X`47Axo< @ybqb4ydewW-yJ ?9T`v}Xa}'d!TS9 f7|d RNtzHqXfpD56PY <*s֯зQsMڈC%<;QȜSaVlGQ Y:˕96%1WgGc3 q0oljTǿaV{Fp '`p#]b{'naFTi2lSQ|eS&&Q2~g 1DD*7G {.mX+=iԎ }@屦{B>/"9(psZdp*gAAO,o]^H.? Gp=4bR#h<ȵ`!oAtc=xYTCѐHd>\#;Մ~|Px.O,{v$xj~3KސGY7޼\Qn+b`{aV,;_G2{0stT>3.UI*\qf/ 1xΆժ PR3撺<(*hܙ黹ZPKK NKM|U#5S_mgH.l?c}>h@ x{OoQJ䑍w89!qg.㬾uzuf漎(ίx a ǐ@%hG݆FeX _XX^h H D$2=rTNZd4:T %w+ar.BZp!TH)/z#D&H.<Pů 0>pOq4H *i~Q݅FA͈E!b6*#- ^N7ݥ٣T x!oY~y.jcMo,\Vj^- ld?ۮ2nIM4$d0_KY8HFA{'t_=5÷"6g#V W|DIy%vâpjSdrX7oTRiO:p>K;&%us'cЁ%>/ܱ!)`/QZ07NAд'I2myCi{ tޚ!ڨ+5lEKx+$Ld 12ž !3 lÑS$z"dvGY[v]>o^h8/YSBċ< ?9‚\Ԑ\`J91M ,7G ;f˷,8c"1/V;L<#c\%S&дHКA] F@Z<'K3|]6ád+eqA2yf;,A,;a`ۿ׵ި(pչqل|^9FPv{?S[+HĆPP~~z*l5v&$k6rS֭AQPv}5cZ;cϾctNˌMÁ|Xp%?ŪS&G! $^<h5 M!byKE%Qwo[렆O^65w,I)7b<\вIA%F_ZZ{.UiXDZzGJ'~qn-,#{w>4I[,uԵ {[e4tW[9 Ym=L{wl9ZPBᔓ>pSW|'I Y +yxǼ#1@F:Hu?vb}4&d>-cΡ@W7?8r6Hzx͔If ,&Y0<[Ƞ;Ptޤ<^7 b{h4ǠܝG/G3O> {n =$@b?e~ޣws41.&(08f/?cTk^Eܻ=fk.Lzn_4 'v.vW"Ww30A{:^(.3fxvx_rM`K/~}hXQԴ85ڄeyJRUK~GefqaYE,x'YrG!z.DHmZYщM/rglW"}7v`eBl'Ӄ]lr!9yկ۾tzJJv2~ 33#n@ cO5j#w_F ){nP˾G$_ Oc16CDTѣeaWXooJISjWg.FlA^VEȹ3xs9Bt ў#u)L>a%O7Jڰ%p *q [Q|? \iu.zgS@{(߉ u>0A0/ߎ]kK&'0^ :MnAXSr5,IĜwX`̐WFd8tv[o0P$ cQ9IہU)\r#P%Ur2׬mZI6ZM=kۜ=-%òYm2W|1kfW)] ~U;/y([$Մ$`mB m)f6.7i 蚘!t} hQ Ko##XJ@h+{ >萐`M\xpC,ߴn9qSctd@(e| K`=n3liHr!Y Db}a,+'{[jQ:mܬdl7f!s,dt>d79P@igRQЂ: D߶Bt﹋fq |M 7A3apYa+0ب u*ǭUXN?, ˏ5VO"ąWAH=WTI&{`+9[[Kp4 F"2; T1'A 4H*_$3wh&4fK.π qϜ_ں{dӉzɌvMs24g~jWӷeS zĿdBBi`nWSpR0$ߡǃ|DՏD/7# ZЮ,dFhToUÃ( ?a9+vx>~ ݆FvVZVy!:[vQ_P-/#3ٰLdVt9}HuT͢+ QtSGT.&~5m LL\'Cuɘ rϱS5"H-D]܏p[VaJQ&v,PWukVӘg]nO'v:$~.EDL = (ݺ@ߕG|?k6Sϧl{X6F}Y"S"i72,;ƼR&n 'WwpLa 6(S Kdj\g R)tKT2]EgK}Q+w&n ^@8U ;cMc-ۭ8$0ۥWoK[F͉' U%@0^ SP2!]cCkjetT/ց!ΌEx}1&ZHWAbSŮeGiP7'K `VC,"5ff7\N,_̀X'k#|-|P.eIV]2܊ Ϭ~V#c9nKnHҹ(}! rl[Gl 5ab.JՍ I8^YTe;&myvdC&P&H !KQ{Ua$arZA ޅB "sfh2 eW^&HD[>gxAIROh>` kΈGQճc6-!ܙ 讅L^8ํɣ[c(1%sAEC2ļ}9LMzVʹ`1mBm`2:Oisg+Zڦps'oM|A[xC O(h-榫aF"έ/|U92y,BblP?M;o):s,9M`ʘʨDiVIVkdƃP\Aw.) u8xQ3Hk!蘰+O6CnvJ1Ǖ_BC"oݧ'pfo mAW֙ԮgPOGw'SbCt HBI2(t& ;Y{?uhø";96}jNհK &ƭ|L; |fD/\s3zS]N/pJ8ؾVb~~ 4S:t QNTD JT|8pNNO6ZDg@郏mI"KǔA}jHfs˭>]\A zoZ. 0.1Iez/c|H <b~DtLk#wԌHܭ$7N2|TS|a[A՚|%TC1@vɿemlh,mJ"AMKU{crpg$]Ъ\EݡiEHRڗg`kt WG[$4Ӡ>R+rZ|A6VNrvf(GYsgaiI#o?燁,K/n]J6pS&W7a9WR@SJ-)蠋""d_7U݃,qLxc;TLnW겶;Vv%P'ͨ܈c}Ws&fs*Os<ú{ʰT-Tl=]M"I&a`HHiKؽkG5~:+^XmNhyj##ܷXkI> M{+Z|N:ݝb%uL ՚fYa.MQmO.-Qufq;*.Rr bޓJ۪(e-,M]u2uUe#!3C̑&mb;>2 !(#!̢4z>-cԍ:A[u bYQ*d=E!Hh]OH)$0YL(2}3;!OrXcqYmbxtJ3첥)OM#H!@҄ -<`uH3@ge):|dBMs6uOНA*06ڳun0߻[{2#:WQ'D@yV;p}۞b}}.Q?Z7+`&eT쑴 yݜkT9d2;'!%"ѾfTs59`P XYMZ6Xojr)$CYa٢FЭwIANH^!o":%`|{ߗA*tU4cV`N"-YoZ5"`S4l|듭65Eq=uR[qqYjuL*AL76NYsa>C"ntta&:{ w$fhcL$;JfcLhRME;B;BaQW&?Hv⍚WY vft]ktH܅r<;Y|a#7r~od֒& fɡj0JR`/L0UR'а sN8%²>bk^?K3 d'e&-:,P2/ش*oM:N6TnDO%JԸj$ſԼ%= 5fO攓*gw'S.)ˌihƃ% ب쳐Eii Mķq1(8W1/ g <3Y" qwhh0:YcstVOK t҃|%JC.!q.HHq/ȷ[s rRXߒSЈClQ-Ԗְ)6=4Ogm>Y.I0vOAɊ88e8 ` Ăf_ueĦ?rqs*pU/d1(1i7 d.phwemõRf[A*?4KN5Ӯ(h~I ]4cEcaCRv*~+ k4 +a1 F`0G"OW$1&Wp[dPj6kU!TckgBFFh k/)Vݬ(Ν'JrNtc .e]FqEK2c} o#fJRnT!΂VȽ̌$a*^(_ju>p9k#YRe/Va/7?nn?k|\As| Sp@Ԉa5.Y3W_f,NkEI 'h*-,)[Y=Vӆ7qyYkrK-VTL*jcMOLJc=R)sɘEvOM`v?X12h{$ @&*RGzoPz",.:m)j;+^SL8ka\QURk Vyx@28'|ATO=^tiԦaL;!k\G倕ǝH_s9:/xLa LbtQaB PBù!*T_`a]HYoy6$Z(0} 5XO̭ N|~2)>cϋ [N'lu K C[g1T Վ]!XqشcӡUL8)b! GGj 9.&.B9< 4et!d07>22ԧObGx.Ϭ ,9`2" {I>b4!*}5 g;Z*&\u|/$FNhiJ+9kd,~Xt)hvbOg _xz+VtS_(vjAd%KyGhgWS4bNYz\r0#e5{H Kgxat]o!=0Wolx[:@ɧ&X+w'jԈPmZl0y0 L tY}?M'A@.LȍV|~6!ZT^sO:R::~+b \3a enz9:5iL3+Sn##jPbKy3mXva dU~\junYED4+U>wiqYpLYnae/PysCݸs4iyk%.Is -}hŀʑM͉]ejqVY<,βG* 4%Zq.FCi(gj/:e;ԅ;xaF_P)0}昢}SnVQc0J͵Ų*xH(yI?4_`s%ѣ?Na ၪCdHPtDZ&.i7L-Q89:I>ÍIp4KK*(ۂE0oe;JKe":ύ;ܯ5` JOK<2wC2m`UA:fSZ3.Ivޅ v'Tڔ4wS8+{م\&n'Q ߚަ#AYo|1^*0Po&H ԎU +JoCzS5nffw򰺶 3ud$S90bddN.Vxo.TUFC O1*2Q{BKGu!v)8mb-:]y1"NݓX3He4 #?؇2J84bj 󧮜xqAJդtlx`dc3DUG I1mnb-sv^|^1R"kKI[|pO&qvLޜbk]h}1w^R,FYґ-q(T$[ G=zo/oK{*v5ph1u8z9qdtOX&ScC MЈ~ 01XH<ZI.%v4=Έ*f q!~LھB2gvijͣ_0Ml1:I'"[3A1k)@UѨRL ۵fNj@j(XWcwh8,hK0IW.VA7,F36b[*6>TY6 sb1~Yn&]Kl[X'uAI=eiDj"A;1%em"xQ Kݲu=49M|`\aot6,Cޞ򃡽@(\|X SKߤXl "ʛiWpUT"vjB!?ƴ_ZRȸQ[|aGxJ;2/՜kێ0Kpk^Nbgo2%/#\$,~Q4qHVrw =|M dI~ )$**>$'.p=EY.ͯ0^On[./5fFT v|$R_$i2W`D[Mk`hm! LO@8'oCo5 kguFND*KE S|[<zevs@Z·9x9NjkFɟ, rBEE:O&1neczԽKQX5wHPW<*qAhͱOBy `F[y>{PC,)ez}@Ƕav#w'Q izHӉT}1ݙ{L5pqN!i= <17yNd'e}>s? 65zậżU-)J{x'Lu˞6Ā]tNϨ6{Yˏއd/뒒^-q["ꑍvMw`[1`p-H\{-$d.bUB +0Y{hceT&#K!p?VX`&M贲 Co6u]oZ<=@`]=xGG Ϳ ]۫|E=h5ޮ<oI^U@!e f55tvg!n1 ZƐj8v>Jv!ٷU8;\F}~QcRWÃب( I9QSN(zZOX y[~~G}hb/Ցـ g֏jZVrƟkP[S%eu ަ%A)P`IXUƑ"w e2\,%;ɓaZ2l"LK<9.z(v)#Ź.b &b ^]oeGKYő76AY~R ,(JBUX}2ݰKWq?BA}cۆ9낋n׃||^1pU|sSk;ԭ|ӡz+ɇ)G+2۞2%:-e@3> V% pN`vPiT},{`u߿rq Q]mo_nI膔v0mFe<ߖ̽gk5Ä@LM7X6dJ֐~bp}:eUIDOƣdzwKӄs|*m)M0Sl "iAJ~~e@]-oQpїѠa!BaM;/AYI;KK(`A83d=(8No Rlw'$̾29֓!1L.p"'x3f}zS|Ź[֬1G. ǟ!<;I%ѳGɉVSܓssQIq9Bhy9MN9@aGOYR&$&#aV>ZwYO1BjuICVn){MaE!7CƖ5Y)b&!#\Y4(M6,TC7x/e ZoQ- *]$F\@D 05@Z{'x:%;:IFC҂)4RH_It 6@á=zn+ax0.qQ% o2+@U$ҍ#IR ,TqL ;^Oʊ}u4OvOcn[[Ge.EY23!u6 7L4#rmǹ)ϱ#ÐyF)W:@<有fՏ:g5Acs =rqEHա9PV|'Qڌao%bZ`#SǺuTEpQEq!j^zB`!g7~aD5pyznHL3Wy#"KFM߽m$SIO=L,Xu/hj78ApocYuP+@\~IHe?R6cD/28)':~+lѩWO6 N+u1^)ML܈}Fςqe@ !>;4) Sɋ|Ka O7?Av7S#pjyiщ?@`hj\uu>-/lQ [;^a@$ /FᗭP[h]BHzvNc+.i;V4SS4 qݴ8~xÛ5`Hl) G_w$ɝb8tۄqTnGw§`xZ  ^N$~񹋛5Y~Yn%}'A^ oSjnL?}x/s8r'ɹU jtesBS62@Gߛ>ϯll)3%f+^ibhciIA1}BYK݀Y:CZ_`:2;ke=D\SԵYo2Ȁ 'vSEpW >egBij&q煓N͏tYun5g]TNehm/}+| =@B*Un_ 7tqu/o` (55]ެrZl xy"M؝Q̨%RD쥖Dĵa_{6_eQy7l+/nlʼn |/2eOηsX[mBS %2iHA{/:/xŠjnwV#k98]],7}Z?f3܅wyn-W~BZGxNW k[-*Po"g.5B&y gUP:a]ǥ|'Sf3| #K$a|Hi1hŤ.P `<|XұB"[J7 [KJNRE-iv8E\NKVqN]=6yºǩwi.Amx8J/$ [?77t}f>~XmYShPTӿTA~7!u RK/<]{_g뇮Vd'PeǺ62[#va)%v}o.b\W*UxpޢB:b")*1H 2GDݞ٥p';96uJ,myJT×oC(;58NQCVk=UJPՃCePIg¿4MnB4B|ђ34}_Jj}HR/{׿P9^c+87Ukas0nƵ_Bv0,UJid$1sPaqwK,jxVYAe5&ƙw'؜2cm/)}njS]9%HY×CoRNuu:c2}#"2ਁTPþZު{&#!_7ic>Kwe=Y,>aK'WOUn5"Ewh3̓a[6laa35Yii2k(5u?aϵY %"fE4^0?;.س) No[mY!``njRPXIJQB7Fiz l\PzB7Jg]:"&SwNmy$4xhDGnSOz>>E8znktqJW6d}E 6u ZQIDΆCyD'V}1,u n"[k߫i )}$͊Ofk\d`ova9DVs\lx:f?B/wfD߯Ns)l?@R53Kv.Oil0?B,`#[díETŰ aD)4~J_+nA \ÌjÜ׽[Z$,kJnv8RM ۳nsd6yVk JQ9Kv*Ƴ[ܭ*Ҿ ;Pbk)uQ9?`lmtbd\h6U[~Vc@ܿ'$l+{ezO UQ!_3r䢖Gl}(b4Ԃ;DG HɌ-u!7.1s?WB#[BZ TfZ/a@A2=QF>5P1},B^9!ľc^'L'ؼԄ& 4!TMx(>Y4VcТ)G7g _xW]c]lxkw6j+oDBtaIdOQƋqqKD p@}`m-^%J@zCrČVE ]CBC*Q~&K^3+Hr o FJYOZk3 ("Gp@ķ# yx^2ޓtyL JP!` uPSgg-vl䏜$iR\=fPvq_y "jA~hOs{ x๭gN +@u#vDeg$m@: # 5-d> CP "y[ *PR z,f*#FDfQ@hȣ$JV̓X]ůI?#@[cWMلJz(ϼ% VqI¢O:f§N?>hCP_ռCH*O9rؓ|1Iw!@>e''6 \}‹reBUu/@#}U]ٶ0e<3%6zIy@|R'LL QUf~q;/͈RoB,?(` F[C;im ?)]댜T{95}Y]TҖLA'-腭i!dZ `Rj* {\!pETpb.z0쉏waD)F!Tjs]gvO ؜(J ezԆvU0;" kX\r Tߧlhp JPI`.U2Gkgz!*(Q < ̨lSni!L_Sxh|=pX52V{d NK]} li1Ƀ͗k~B9+NψL)2_?1go@CծK\-ԛ*>rhsi2E/r떧m jp ;XF\8(w|l!uV{ZeKX«\ցwCNѭ~;4]&ӵk9sߤOl㙉j57[@l 2 L!Ik7Nҏ)[V)U׍QM+3ZJSs]C]<z ;Fy_ S+!sҎle$& 7CK^LcenQ70 bn`*S# {h9jEx )-\} %U q$ɋLP;Kh[Ɏm̑muE:bRo7 [ %es=%Ӱ>*C/tvSBe΋q3w}홝}WX+Y]g3V+MJHbvy$mE;|+ڝZеXFz2 )\ݟUjpmnmt)8b ~U /\G"A7-hm$ Hc֧7V!zLdo(c#H y*]&udL(G (\qUEKZSr'EF`k:NA6arƊ"SN!!fƌ+0e'S~?IFKC#S~yyNZHr`VAi]LN:dm}Gd$mX|9W":>.]1$p@ؖ ߊ0|;gJݢ(Y С avcBbwi%bޙeG>3VwFqwK/bH" _S,Y*z"qxq ihlw' .w-ğuhm3\`+D/?iOv/~}H T f"[6gzbUWs@ETPC'gpBH%2w1K[3 }d4T.ٍ~ z渢Y)m`SS>0hiR.Drڵv,K돠El_J/#D,07XBU\G<|279dpIF[HRç'lA.E!MEe(։?f(哱ӟ I(#p6\Q!. I LXcT(Gt;7-Sa21n+{{ ڭu;*` 38]z%Df*=ꌬ\ 3'CZu>Rա"&CZ:'u9~tPwC$95GF IV!}7֪~5;r6fiDݞ:~kڞ[=<\7> .ei0/P*  ^2PTDZJ(v>GI|`O>R=v9_*R ` @yevmt;bۣ(\~kwaux{nKJJ+ 4ւjk'V>$٦uEd#j@N@(߯J̓oۅxWLƉS++R>G4"_ͶJy?4HhQlf0Պ6*9Mrq ᒏLX0XΙ_Q-qh~{f^N4}8ًƿEq,">YErbQY: s7,22{\Y<5{>}5mթpY|`SsK^%#ֈ^@>F~6=٨}e?W8_%P-F_);YK€^0H/*Es '<(i8鶗Ir؛X4>:6y,0g⩕Ƨ]umENʩc5UʣHו~u.Z8!rȋ6Ы=Mlzx m\UDwE{͹n-Z4/CHKk,U憰oz>fwy>C_?&V샦a-CZ-WmmBIG~q7C>i fF@?KTlҲ<ޒJ34gW>AD.%֘SƭEj.` MC\<ED:+wr,?PaR{P?>Lz" f DzKJRim$ W},%4oH`eosJs%@*?גqEOE&\5;KocH?RF4q~K}+mO ~|]̾SRl$Z6B0AB*BKt3˲ 8fji,p|9ŕ,~z3^rtu<Jaߚ+:ωR+=S;*T72c/.+vT) VE3՛h6ϵ_848Ҩ:Syzm|8 U&4'j&V\`jʐY/HܭNϹՄ ;3}BwlR !1IA3H{afGζ{L ˳`z$ԝR;:w.sZ2No6?S>h_=]ɒظ\L"ۇaFߌ_2|A@:s/FsMn/=+O~VbH-0obLFg9wcGb C9Yx7g_K &b PZ\SL}ܯQ b:tc$Qsfam ApH\in^zW1H`BB,2HF.ן [ӡu "aԪm9# dKp1`Yhe-Lp,nJGR:(')Lumoh[nmN#Ƀێh't/fR_E`.q#/-W ՁI8W' dQdiĢ1%`1tݱZQ!Ms O3}$T`!1tci֨T^J/9Ґzh-46K);x`x 1jg1|3YQ(r"KKY&

Q? y[ExBmd }F\4vѕKQS-r$ITWN} +}o2qlF^59,c[Pmål< ABm_jXw9. h#/b1W_@~; }?òUa2]f17xkQ(sWU2/=*#WjANb8,yWpvLAgnRJ?ٱ-q?ylH` J`h"ԄWچ 1ʳWdUdA?Ji7ܯD R5;!d1m ||W Db^}Bԁux YrFtȫ+A|m9pm!#Xp5I;=6~B& hu!>q\<;tūv,}QWuIFqNXp+h-'t`|_<`_:3I^.Ap _W/J~[%H(Ƥ1$Ŕ(~'(V#(y^tfЍakKvѲӖ"*d;*naObqN?XnYtB!C0]SݞO߮:`I¤ęqPivI7ǜ ֏_W-%KWJ uBE CnWk)D ,FZ%Nn\+m.Ӎ$Am6 eoEp!n:v>wTxl@l qϳ,}c:%#s5[qPB7/G7HcC咨-9Z+7͕$M2֡+.ayzwtE|?SuN9h34=%o+A\5~^m; .^N[q22d2>,PRSGZmCrw%]]bDݠf/}yVK7d4.9 RhEﰋfHS}O6*R@{\h^ߧ4N c&/pUoY6W(ŸzteydG{%M@]DrfN aL:@:1_ |KEl0˓o_lOC 4x)s{/<, Eᑞ|&*,˖IF5̾%8ʳ! T࢚ٶn)>|?2u!k\W_ NmgD\xHkJCW&Mf9\N H;bP9GiPT]W0v]xRuc颎lR9b{^?Hw̼A rb'l,o|,`nB E  j"dMH`dX&x]Ֆ h0&%)1$M']`Th~7w,_.A{{#FR ^.UsV@|N P*yf@g*? {ʻqʘv1_)bޥМ1 /Sn(Q%]qA)aQ^`PeHn)l>d, ~ٚPs%JD0> YDhw 0mՙbFwQ>ʱkhm&MFݤ//\pYoo/vDKz!WeZ(L OqdǗZ\'RT,݄{hLFYzkmbk2rzSD0psiM#A/[$q)tRx 3MB* (x4Pz339fǒbi ;6/ޅaJ^#ZNdN< ah}9QZc^.ߝ[ ; ٺD&sz"ב#U D(s"~'ݍO|Mz2UHHJF%S/z5h-5R ptXXB*G "CPE5v2a9&eަҵC0ڵa~]C(;M7,0}pNcwdm:2ZD w WX$ޤў^s<;l~2X?L`w]^g.Cq2 w?q\e}->?thtY \0eE+5׿ ~m_7kӿm'$u8<'Nqs 3 k0DWvF!re,亨Hy[WIDmJ=tNGi`=25yb6e>"'\\ %C8ƞ'@nwpB:5u}Fh;\ lE0@kNhm`\-#Ӗ)FHy[F!.uyWl:W)0[-P RFM6[M`ܢխjEzrUil4 kԚs흑$O@?1 GG *x*ľ௘SΧ$#)Bځ # ءS=ൄ5' uZȅ3~/{Hָ+B;*ͩ[k]}q^@#v}X1E=?m5)BA.*~ ٔmj>(|ilkJ@<9} ]y8[6DlU!P-`&BB8řOH܂xۮ$YQͭ["9ӷǶXOsQڙj!-PAϨ}31BG8X>3A3"J/_KA1gHd4&gg0/ 6iyNcfr*,mB@;ƈ`Ra;%ވ/GfCZ=儡] EM,_ ElVS~x1A▘1f{?1J#Fb5`pfTį^9sڞ#u%uƠ}&qKxnNЉM]6аb .94>9!RW|JibaՆ;7Sv.~:ZQ9oxiI[`sn.w's'Q>[/t1VeglM(וEv,Rlk؎ld.NȩAsQbFUSEB(7xI:o xV_yDž/<}%EW鞺ir W񥔰Q3hH4}> 8#-/$ 60n }2YܢdSBo_aCJP Y2^L~n©fQi'dMU3kTL Xsk hWN|a/&`N?8@Yi d|$q[FP{AGc@D?nRfq/VPe*nm;< 1_3T9Kb SrǫtCo 263V7ѵW٦% Le{4v4yϭH0%6#y }Xfл*^p,yǺ,94v jRf"&B%P\Cea7 1E ҩsbG,.wN*EQFbW7%Q` ,L{) G,p_0//1oz'L{&I`JO i`V +_2lfYɹ@{-ZɦVwΖt.k5RZ"R+I*rË#%dթ} x+?*!R/eК pߑ4Jkmdb|+x!ħS *9hX[8PJǮS4jcfunE*xK&?꒲L5x(%=ٟ.~ nkYכXmf;38@勏26.Η.+.ʩTiMŎDžLLۼ+F:K/Rdv[_\_9Rw^1K$vNcss% m 0MxXyH+`\5^?V¢)ӵ4XWvauځjծ7qXLx*6 6p*>rhVmSIg:a| $=x49u'K6cAR1xn,wEC9w5F[=sLG/|,A[V-D kI+p Jh"ϯc;_"PBujYu0p%ѮRV$n-r(U+xA!wn]CGyZ``mȺV,P{ nB{W0~qoAI\ 7ܔH{JCUf1d(/r.6 j1Nq~|=뉒g*1f5;!JjN}x+k yR!uFxlZrSBh1A'Oѣ^"z?=ȡ{Qƫ&â/g+HCqd5#OdsǏ ڢkB/M+\˘ dh WOwSXS*ϫcs3ölةc}oVVN"W3,?3Udj2dѤ78Ha_!*V5*H"f [ٻ#6r򻹽PtS; @p^>]l4 q5^*ӧ;_TC gtz?-ªl ㏲d E&q4wř"CxYJw!j֘oV(?b F*皓Db ٤+!g}OY,O!kqqrOIo"%5. /AAsN?utqO(¬N }H9|jl=|{;T( y#(Z/k}}J"Ei.˫VR&7Oz$"qR. [/(OӮfIICIQ`P$; !yT^/Ɓ+ c wpCsM'pv)b3Y 6SdIi`%h!YH\gye$&̠~UxͬaM ;!ìSawY6EOv~R[#sY8\;֧AwWnhn;+;rtGW8C, H $@TD' |Bk%y~ ss+jg"/^4c'lL,W@rYTGpgfG5{C;FЋ/=ܸ)CjG8"*u+Z tp fw->xb̴ВC94wPZ3v$g. ORC®vi{ c@%7q~"3֘:&}sgB*'mi7񦣁;H9z)cMٗRC526gU4U r~lrMUg"V1_]W#ҫ8Gt^x|%1,Bdl?~φ AC[Sur [' Tb-`>}lGnYG5d mL\C͘'2P.w^iru@SjkIuҫS{[~| 8ܒ!;φ'zTp"合obh$O65嫴bK_^yWr>2HqEhZj,SI:Sw)KnLŕ欼PǩǰW#-]屟v d&F 4W5_ xUD#%B ~(f8MdߙnAr{`,"^9G<'@I7I/V4~F3avs[jX3Ϡ0byHʚ8u01bGU]LwCۼ`Ǫ/^}%i`EFaҊ6;Igt2> +-i08cU0Ưf )(hb6r9b V3j-L- RV~\z-B<]^.a"'R2UY1 ~,#!p4[SmKGSzWЊ<~T8IŬc*$}ZB9O w)Mk!ݩ|ıHA8 @$NS'S/ԔFa A) 'yQpFMz0_&L(h#&P;}x/[Ԝ*ˉKF5$^ػQ&^1}מ%++&e6cN(݅nbĀ-!ReR?#ORr%J-Bnn_K˻68,`(Pzut >~c7fT2kWF7Pi$X 9:pwf> `}Do,@Tnݵ7uSz3M$ IĚo(?OOȚKSnJ\f/׭.XJX+KH '?%wdU)y/|KԚ*;Kx-ꆵJwk(K?D;5stjTvVo07ⷺ%&>ra}(V`KXZP UYUO~wZ~QFюq%FX+5V-̷zdvTsҏ4pl aE?#$>aֻ+WUSuQ?;N[E9E\<<17Nx_z)cOj={Y#NbRGx PS?K?FJLZpQ/?BbBbIM歋`xٯұ`y[,9Q^bzv:FRwbK{18bfqͪ]ߐDqpug2C9+8|@ z{ b Wfayyh5LP2!j5VPX:(wK>\mJB5)ZJ d~s<|XW4O5j͉AXNNB0v2&:=QB: a3$240j{ s~mz|UHk!p%Gtk6?fj i2ԡGc2bmS#`}At5=:׃޸E?[<ˍq9+;=n^=Z}ɋZ^ɌЧ%f<^N>b>@l_~ 0qV{T:16hQB)^OcԵ12 <*ӱM+5D].}J0ӏe2&3vjXT& j$C&0`yJ1m]z >|Ӹ7F\3/F KIq6aj{N-@ۋpuj_%u܆e͠Z[@=\e xH+f> Tښbl0hE+4訖] }3X*!0d1)jw"7"(ݘ6ʭ ^t@UGb.F?/|k rp<h]v:/Y,JQך&/v̘9٥ʻDbĺ:Ýs~ߩ !j<*Jۓ6$TA%H0`:Su ?e=K> b=qc(An%-aTӟra[fa?{t 5,(?_ ~4Z搏Bؖ떠ܫ*'1./EL~nȨi2roe^k&Y@O?ّ$_y  dzpn_ĦЧecYRs"Dvj y(2 ~VAF~Pn4hWp4fXӲ:C;F>C#Pǽ>)w+wϝbAVZ=]&!C1@T\er}LSyYYTîbR!.feUxnDE*W9g-*M,cI}SJ9k;}zDP~O>Oa}cp}*dp*ׄsr3N,WI>6̻wvh%Uw,#Ɏ=,L}Bʁ+ hh:iqh JV*ճ+Tx8\]"uc/&}TGlNM14W=l!WNW:~- ̀؊x TfNfÍpbZ9.E^ml[Z4ˁ?}{‘WᏈ! wd{xٻ/R87a*YvA|Y$~̗ T,އnVQU4uR80&O\—FuM:I}.s>ogfH<*@Sn/%l 6:(q140#ZrHTGHªtBuVk =Q*t+71cqƵBjl-2gMm+ndRClöW"fx˼'#wW+bQc&jvҍ/g#餮Kͩ~HE n!v2)Dģi)YM7u.jB^ru ߛZLz#\-[bozI_$O!fB!$j`N@gyw FOxjo#q_ǹ;t!O&mQ}ȅYbѣ^~(S]}Ū`譩ƏqƧfM;Gqal|@ 2l3&p[a%DgmKA4-:%̣bz{*rS[*pG%iess 4.w P#&y=>$2y և!&z,.7jIVZaN6NV5C誵{E$cL?Qۣ`Do˾ \ @ۡ==&; Ei Zltࢯ*KEςnѮ@f6`͹݀S4I#"˘Iea9TR]j9ʘkBYvc!dlA^2i95pYoi]P&;YFf'F_Wǻ6Q) kϽI>H4PN6a8Z-AP++ fvaJËQ|uzaK5;aU ̞)Wگ,3XNIa()b='/s8$jb%|5}QpZUAP>bVcbc,VIL Q_#e\*m[ [r\!My9Lg2VLV(zH%ׇ]AvF2ߦ$hx5unRAĚ.WZi{ki^!^Ns`˲%tx}BEEߎE)vULmrӯ_8.s@W$ڰ[⭡B7uFFS=CRզҮPϺd*!@ ?60ʚ蚎[/KzXrw%mHV@lә}8a2]иUW bs }"bzg"e%cZ0|*C X'/_5X:YՐJ$b4ך1vƬ6jdW^?\jse-22|@pv@ BKpj, HÔ^|eSD0TgqdXۣč}SU{6>baTNeϹ{IɅy խ\!tZf+ ȢkmB8@3=✅4q z$wjkթ1>\ ˁ0 5y`0o"r+DOqn[3`nG7u d.Og%}V[UM?M*l~d\R>X8IWœf.ؔ$a:Xa7aB4CU*S}$2BѴb KfZ,Abb߰’BI 1}b5IK4^<:Ewھ=d^cMll|YV*/(Cm>0L'iEjEY80ԨZ;:(㼶`Wmp A|* jDPlNdVF̣mC$DsR,8}dг蕃0˖TD?|H+HF^i>D:m_0n].Q p`.GE/[`)cv e驳fh><>u TR\[CuMX5+,ʹ[9;/Q,HYCP7b"٧@IyU y 7]s1dojx.7bYSB|{4<%WYb̂z5_ނeg jцdB~Lq[kc,K ({oƯj21vsT,Y(ۼtAw6!lִF (t(Nf-F^:0Qcad)G=I?AfkWb_ ^I ZvGwF``Nx %6 mH+M<7"5}5nśaCs1) mdL-<2ZQ_ԗ$=^He(^ȶzr7JNGop)g-3-瓃 s)/|y8Nr %_7&upho=xꕉ,loerU2 \^}Z&YS<&oWA!7 24^t,`֚Ø?Ȥ,GXJ}ȄO~ *ԃﮞiF?S9(<{}xEt&E0 { j~@v )(ra6esUpĺKa^kG gҳk #)$qp ]jTW?t^1Pqk*<Z%2ajko*%&ˆRN bemċl~1;:W1Ic`SS!8P3N  i"hMnrm~FK*PTAjf{ (ֈP_!߿&8UOEmès~Q )@'G4f9߇#m?η۶:=(.97_(q:o/ɇ#d CV,/Wz֌>j9p0AD~⌊ghic% Tge/fn3+Vx{B] 6;] <=O4yw}]WLecj :Z. ۦ$T [jCv-9g Fj}EҧoӔyx?iiriN=|f6D244NK&6 M@",Gl넗T_ ~#ˎ8ǠN]+x mOgM|8*%(,~ *A5iD8d9-qQ4%]*N(ٹ50+2Ruԩ-Ao] j\p?HC&Ľ) 0}r_{h+zy2GkzA츞mzrӆ7S%GBp6UCF@O!?Nыw2-CH0oq xU JErS<(+{ᘩS!ep6_&Zh96!UM=#R=}zAQ Dgš Dճ@lӈ Jd"o:96 GYjP+xm!Gй9:!coW,{Gű@^ObqளJ19<RoZӭfUjiJ_&z:[)[>48DBX&q-͐+4"赛 e#ǛVȊ4|"Ml氄vqF܋Ma. 4)%8#O%˿Td>9 J]GT=-ރag'm1a-|?rh舰a_iKne ޻P|AJw|?4p}CʡxY6˗xber)kx ]!-q׺=7cX˕ }'k:sr }Ꮹ,T%cn_O4ޮo{Yܛ8\2p|U25^2%U{|v;T[Ɍ))AvY-לOR@>+-DU"Fu δx# l|q-wrN/ms.G!YRMٻXrjqX/葲 H+>:KTwq>իC0&_2TVV! {`7+,\cRCgW> Ze/8'Mkd:YzJg޵Q/wu'E"X}ErO*HqFu(XJ2g!`Sǧ" \{ T:Sf<4#gmE.u2XGad#FwhXv}8vě&=+gE.{6M+Xԕres-)zJw`/B=?t$I6`GYblY= ̒;JvVIS xb;a͔`wEP.<~ DnEF]rWߢx;Eȴ$Q&^C"-66[Ag) !V-D+ZqDCoYGu&.:,Ui@*"gOn8'~֏k*\B5.5\QXI#yח/)ZGG*fD=:㩯G H@5/DBlÈb : fLф sigRpر S˘ZV]!r)OaFlj#_,O:˲,#$z'>x]~*Ӊ<{,Gm'DJ]l:"@rұ:dV:]joNyZ*_C>R@ݰDCI5v9yBweJXDDer|pfj5ni SU>|D3BvaTa2/܆id4:6BiXB>8jPai:LyWfހLjΟ -6„:P8VdԼIpۿՈ50^r`d} J#Ugmt&;@#F>Rd̼p^jAT 9&e0w\vZbeKGb00j @sbC;*>3UQ=]%ܒόM#Qwrȟ>h1J?Bvw־rvKsW4:l36ZLz'ϫ `>ަpGNO>\'<^ʌ[۝Pt$J%1ѩAxͅ0X6Pփ&Gmӡ[TD-vC"u~(~= lT2WF+w<97V䔣&l]Z^0l2 WsR?#;1t,!WB޽+Mdr cޮWzgwM=C㭦k;0î ٵn9rGr嶫kZaer mPzfܱ((my"ْ샅ث:a]5 GI s> ӫٲV3Ȭc4s/gpj#@o E}XGZÞPtGp8@^WèاFH,0#J8E*+CQ߱g!qٽbܡ񴮮b8+vUYfPZ Yd𣗗1{2onSdnkh1nvp+{']d2c#h7`'~bHLK^e' qx5P\> {yݟ^jj)t:繡A[4KON1eiEp7;k6{Z +1%dsש:ӊ=ωBreOe{j'gml͛Y'z듇h,M75ׄ~ss[R(rxYwE'&CMQeYTzZca(cqdUT ‡8 `ݫ<:䨅[k9o5 ۱NNk{Ɏ, }xPԁ<Vn -R8pDH !Ҍ/>XJ-Ĺo{ɷA8u%D Pi B-fH@kF}e[!U$zcMlrL W J;n-y_h>SK5 uH7&[WG 3{CF)^"+Cι%| IVNt(m5H\zd˪Ap|b02mOO=2jV3B5;B(jG$*U> L Y.th6)u>9禛+_ĮzH?{9E 4Y[*Z!59yƍԄh 6tӄ<y `VK\C- Xt8K>{FIt]uj5eW/ ض"Sx6%zL -rVp% %\;ȾjYWzR{xPnWRkq/]QQjZf)Ѿ>vAx7:OT r 'Mux _U"l|tL5'[() GeB iţY/HHI(f笀Ds5.nȌw$<-|FD5RzLw|gI-M^(llhXD;9bjWc:V2P*;dSf(юIjZfȤBV"[Q>Hշ xd;Xam=]>~ e*0LQ8㨾B_q56_f!82 P]–$y^iV8:#y0OKKL'3x"Rw(tv"ct50FV ګqi.FfW[u(*6oWʠvg#]ھ7kK@榕?\Rͳ߹&^nEM/^M> x`3 XUWȻ+e>,xq{Z0k5XuDs=)'ˑ o \#  z\ L|=RHJf GS,/U%sZ I_xj!)w*2FT;[Ge( '6!@97  ̾\pyg&ɠ 'vXkr/oIkNN&X1-ډca :EBPρ| AF{34U;Ba$d@7R|GL~'"qs2\fseg%&{JiŒKWdsJUXCvsY h|%e1$7y66@Vb9˜`_&{cW?+BdҞPC>ep 0om&f(D,$K~?H]hvQ*7wk!pAA闊* CZn 7H ѝL>ZSys:[4 Ǵ_ 틸̕In g`pûG%sqh`<)(e7+aXr^:8n&ortDǠ0/fIS0'J${<~錉3"B?RPwi.lvUCNZ-E7/_IyW{3!|ey\$ZfHW++Sl䮆F%jythi}8Q2\6-&;6'2\r?A ,LC 'd;l-@d:#.$Lp͜hj=*ʫٹ%9VBR.3n6޹[;KA~tu,FL-MC>~E]> fՆ"GS6 (\8T i+$@0f}9UA@/f0} dDPpG,X煈Xf+K D `V5%Ni#WXx<8tˡ;$/PLD$ Yķwv^:In9{,LMv1 qs7*Rok=&%>zYma .U핖gcXqEp[#I.4"`wfTi?V4%H OV~F"JJܺj)7CTWS-my`&՟y8 0 QO5~p-st`].+rcߪu޶!:cb*5M%ߨCIԠK-_݇B㕯s0]#[Vϋ[,p%\pFBAKvriա?-埽AP̘_'qb8{.25C;տm*GG=4EcNxIk; #Qì0$o@h/B6Wζ . BL'O:.I:e,%҃H_xʅP?[>}هiDy_ܰg0}3;f*r]Α4v:ݽwPM7FwQ(jM(4\-Rs@B`)YrGN!(V5 zpe[>2mÌip n$d(QCД5IΞxC\DgNEBk:?78{.+F:!\-!TQ~V1x)a!yV]= =h|N%zIEKv .a >$0k @[gAY3n|v_~rG4cyZKHյx:{N\;LAXXHQi--7hJhr.M$nP-/\ l$7`7>EO#i.lv_!flk:DV-O;WWP$1(i /:~4d5Wʮ=Ѥ+I4n8ARi?9&E_Kj*|fꞀ1A\'|!yv$uTvQu6uq+Yh- p;ELܝ~2F|a6#W}ToY>U~vҔ(!IB"QDU‚ uf &o _E`8} ؼC@YҠfU%/w V^B %$Z[#WMo,p P?^ϹɊe rp9Ȟi_ ].~'-{ԑ_F7h|`L }C2Ƴt҈|J8WԈGG_Q[W dKU bVH6抽Co$bwMo!| eKn`zͩn_AYM&z86`.G4 t mY|ZgpŖ4ouz@굤5`3:Q&)8!oc=a6/VG~܋lb`봭8{լ|}~kc 9jͭ>8"2grAKdj#[ d~]հ%GʘGNo2z[Y8Z}o:;K0rS||{r?D̏tũ4U n/VdCrX&)Hc|woƛgņ 6 ~)Xn5Tu]9tg!|{K$cG%ZAkvTHp2-;dӰc_ǭ~^O _2:+B 1!/ -C2j:ꂐ2,Mjmj{Yw&;T\7WNgAX /ZNeUEJ軚{N\y˥yG]j|;/){C,sB\|G() =1T*CuYwRd0:uoI-J'4a`֍Yiq{G&dNc'XivZɘ&!lvL!W/P- Yb#*͆s6 w_OUI$AH}r QұFFDt):4:t1sa勉!2"8i5*Pض"Z1H*֘c臧 W:uB?/ 4PvxtFDdP8uBҟ$g|y%ӕ<ޮ~&1e1i՟~T}}i7 ]b IJ+PF@Vf&гjk?Pecd ''%q"Oo~|lݺ'w] 8[m33i6yĽ}ccq-F uHyj_ u\0)&js[(vi>y~"ςmM\eMW-x~j "ʒT% .vDʄe)iB]C`<t$@VowG\ |c$/GƝ O@UO!("+x >;Υ4"p^mqG0i1MU zP87R ả%)$MnZܣe\ff[V +LyjOF$n*ۮe]Y53cp@TdLڎ{V|°jI+W%)^n~Q;ľs"ջ&U[@7𳁳H<fRSM_?з x#W ֳU'e]@E-l̵I|6 H_:蠼*%x*fEֿvȗ[a|ҕƻK5FY|('-k#}>Vk-3RjgjkVgG<X9Ar8J>^֛?=@ZJ"tNZ#:TRk}'! :?(nWh#) ʌ =zeTX~d+|&0E.=> @c_`'+hkhy{Zw#GYI=0ھ+KW$=>e0u"݊-S!'q(U`4Rhw>^Q^XB)k |O(I#_ԦbB_Ʒaqτco]@wTMNDwOœk[- A*&DMHTqQY1l'L9A)+?kDcE6 nU-u :[ xVpW*$r~Q:\uѽU{뉕S6~L,5Awst#taԻ"D7?)<KhVW.?P-bb~dj&BCzGA bYge'[֖Քm{)yCM*x3Ab@-TP/eח$X1hZ*A(l?_a曃i :\AeqE d{qm{I$uoTunxr7[G^tvDTMRAt$HTk}yFv8Y {0KU-%|lߐFtx9hk5eyЁ q/}R_UDR.NFW*ϪƣT)Ъ1qaUS󲯵=Q~\#=m=*Qg'EVK-DYބ*oϙX?ˁrx4Sx4DF=6`*FUАJ7 tM8),ИԾ }̅;"Rj|z|u 'ƧWm0=̟|tŊa5 (m6vr+, ~&igaw=SҘ< *S32D}Tus2*] TdhwNd^imFAimOҖyh"?[::'M5!k-)ȧnwgaF9z(y UF߉>kp1ِM-JY$o1G*9A/ӭA0pc e bG JېnpPMܭ|Cvk"A\s|1玖ݫ#Oj!,6L~lϠ]},x@a';Xտw*b!_*Rp&qLx 7|Weډ`7V졃2Ё4i(!PU$QLIG\N'K͇`xMhtQu6 sC`D:孧fo:_=ZTps÷\fԉ:t2~/Rjtr![hcO;x1hq94S]N]oؑ Wea1an*zK[nUf0=v.A5QS [C{p|7Qͤ' Wu[z$|/\ߞ>D(0(\{h1GbMd߀ZKI1T.PoW/߽0a4ib'4m1{»|†&8N4UAܞax?U$ IRrOCǎZfIu8} I~}&ʘ=H@c1•F;_=l9z]ZpfVl-%:?$ˤ.#9=(LP*rTiϲk(nw:$| dg0cHF%#S5:ՄB }DHi3VS1f}&8 &x F <'ƋobȣP@dנfLU#5ĠlءBkYr54WfCFt?/fg-N;A6e~478G4|³X7%vA9̯69.fGz*!]%lW(+q~$?cg;q'E~8c1ILA ?2n tdcwԘܽܥȮғ!W9 "Ay,Q c}cI+);W~,c%oAwRZ-8Gg(s,+“XI3QnTMcwk}9 B, {!'WIE"j!Ȼ1q0 2:~a_ pb$KEN{C]>N^ e;Q}~ӔxaH4DvuK竉k$wGW3݄}r]I)/yD 8\-t %SR^p"3B_Id4sh]_ 6jĄj}JJg#r!28)(MǗ։=`hOFHjio餺`w*\@b<ׯ\S*H^#LRU):P q"n1CiD$ 29{TfEs"$}B%P iˁ&ʹ*L?dETߒ_V%{U{rAEwiue)tu1&f拾;~TdrKV){W.9[?hIL+Cb{,wϵ!KCx Wel H 5d+(˃31!}A=&~l|giGt^A6*v}Fԡ#ʹr&9vȻ`A]QvqsF8i$ZFbםd[;>vuAm5$wt)ћ {% q-<+tް>0ոeuAd֪k `Pys ]OL^$;k=LoI#87I;+k0^^3P;A|X!;g&U,Єjs'c=0Ehf%iRd9&aB<ҵy3/jwǎXɻc)3QCziLt w"Rl rLV>Tx0 {aY>Tޜy',};ͅkaX+A[?q|ϼ|%iIpk d,e݆8t?}Y%S{zm˜!-]f{88&K.\&y#sX2V!l\X>#º۩ V8%kVɠhDw>' ɟ!e5-7}>PA>W"WU pۜ+j=uXKD : v|LZNŮTSL5;1h`O$vwj(iܩ.ۦᷠ{}@/ḿބx]O"ľk(|yLÊen~`.C'vxJyЬ~1s`sXEE  >0A`tuc7 t7p:% ۤEئWYez&F,H7 >-;:=ZT.+J@邫 AϹ*nЃ9ؽ獃Cp:1y֧_4daԸdʕu Ǐm<ѷ0Φ#vf1rZ )`2vyiGS@(2:ge)"_SxmPbd'aoF[A~CIɂ 6N+m z f*h ?7@WJ&8}N:?MV@`ڟmkw}}ŌyXdi ǮLE1j||.WQ/WԊ\K&JBY AdƍȹR8T kԼvY}1#^ F3=ּ`%JeZw] {ND_3Ha\r^סoK4ZMBQBE+էZplD _8ߴ1Eh*#Eɭ&{)< &vD|-悤n:+d]BZ5ç?œ)lf_д3|&Ҷ\R/HzN!ni=gyqz7j~ioxIKeeqsp"Q[v!(x( 'ٳ[?ksPf^M|f .E"S|ۜpWO 2%|0&Mrs@~A?ĝd8K՟{Z*|@3T,eq1gwuj 9Ӓ'YŔZ\qժ7I5yp| Ck7#.-@0G z-wɈn|x@Pu}S&7&:hS~/wLY\xs{贔kK|լTE,v?5iX=!,`Go[ "!3+T,}A;5Xc`B1ϧ+`|۹c]D}nE>mx#t ].j†6'q XL iv*>XaC;l'|%`-0!]Jovmh3(o*5q. d8؃џOGJazye_O]-E+K#&aC^-RQ Fehk@EAHcȞ7i#WdѤO,/FUSU#Ӣ&zt Djs:ARiIvxo!z& !F`!-)!5@9t&c pPDZd pj}u@B'r}̫փ#2AvҽNJW^ ɥȵ&Hj(RM P(*n&(Q\ċeQ{}`co:>nGhiZٻnoKR0s*kWbt,FOHY޲h zru9#2_z)HuT |#g"a#YKw[,0MBI2[&B$/Ɯ͐ [ѵ#RYa x46a.2g],}8ޙqT:TAL>dxd95'jf"; 絭Y- , Zi7b:cr\` .SNVKܺ6zxHvcwҜLu /[j'FE&v MpiQxDaA#{>tUzKPnr:H#7 PtYpϋ:WX݁X$,\2EVgVWS&2JFv\Wfڇ3=t5) "jEle=yn`ζw36eU,dP۫:O9&gZ]N[1z= aT@tc ZJ.TKj |nB#tB> h``? 1"]Ef,޺ӍSp*4lX~fqݧCP{ Wa^!BI_Kza(ij ih?mNƦ3LI FneIY5;2q>rvA>#. +B0~͞1Kvh G^LιUC1RO1~+-qpS4UM&g}a!E^+=7̒/BPu܋ [N1VB/M]+ c ;5sr1̯}` $ԗ{t\@1OQڒKq\tH@:TFvlS.<> yG BnћYx NZ@0HSwqgmx:[Rco'y3Z,I}OfQʊ~֏x V d c6-j!R:_O5C`5}?KK ':#dC>URl&R YD+ǟ|S@[r>ȁѨ7ɗIErZtm xx93O} !˂}$.Y/Okx <;_{2Y~n2#| J46̍ l[W?$ƨ*ڋǒUMdAʮ9PgJЗĬ@xbĕɆ6?/U~߷w$gHgn 7{J,0fFI$h"CQ[u&fǖxac~]ňj2gci$JzqVS4=~";#^R.4 `mņUN9NSwa4 \:HOo('D  f+ P0Q-:T_Ԇӫ!"٪E*Q* aqM n*d>w<056߲% ;9?EҖzQ95. 9.WPCGmjCơ1M!)n9# m.@rVj@kc%9pJ0ͱE}o-ZxZ2pMq^F s̊aG)cYV$&&WI/wGHfS29c7ŶJTjÛQ3NJz.F+dC9ˇnI^QV&Q8}5A yp4zI,ip"~^g~;^EI h+<؂yOD)(ߋ?*MFwb@hq ޳>w@!6z\5|c~u+;Ne# wÄsyٓ_iCaIMk3W_]GpSHqBQcJٛ8bqׅy$pjq[^o,k1P/*a퇫jI['дrf ~c3z v L`(? \qK?\WN $ u9>4r`QLn$CudR&ԒgJ d[٧OcfmgO֩-p,ߣůsHzWw#^Cb)]W2*3[N$m2)|+sW\R<&et;Sm\4,W-z' U VsGHM@̒V^ڋEժ`ʠ *r 0"a ]])R/9[Scp(JzZ+}*/އKX|>\'eI_q3q}Hާۚqz_f2 icCRuUe=Ox% c9M EXp# =@ ,Zw`IZDx Rf[>E>Gig@BZ'>zfN :ks<XHgOʎ臎O Bh:] 蔜Zw&Lh&x $~ a5Vyy U/OʝA$qFerƆ&n};Cf3js#萫X7oڼOāOӟ52tϖJP-ҵ_ …p)甧F@XpQ<r}3:Z;Bh<'xt2XW&NQ4"ZSZČo6$U|Ƙ(Ȱ*hż 9/8ۥ);v[}xCg<k~A oԪ_2'MЛ|oei8()ewI',x68G%<-/N2G˞p1 uD3ahSUv6̌tA 'ǿaCp .^$!|P}ivߖF,*$Y1skZg|Y _IpzybW$WfE60`ъ=N/X@:4 fB1|@O w&S̩5-pWCsY2(RV?ģ6WgNt86J K6,_\TŪ?\ (:>BO:hrO 5`Ah&Ixs(DS?Zv]ڢāf"/(HWcn-vkI K~cX0(.K="xY6ɪsNNϧ%xor)Oӿhg 1w^q?/ߔ{p~@$~M<)@}aUlGΠ:߂ EC^כ)­Vk HL={n+_dxw5aIWnduՃ/SDX>pn jHQFXlYH=/POU޵n-f]^3H|8uѼ$.9M:Z?FF4B|xvi3r W,0~s;6 HGs 5|esMlC͕&B3>#%WOˆ]r󫌶 ݏ֘:XXcܛ_Q^d1iEM`9GSY|).rRBwMZ+0vEyrS?7C#RiIK0՝GD@ڙ SѦ.PV_z s!M95kGrˎtA|B8oz0Y(pL_}2LAv? ?)f=z  ΜHęSCSq_`ʑ_DZ'"xR{d84[].k?qP?| iMҧFPIvTgNĨ] 9 “kt^RQPFZx (ex{+$#tr,ͻZ0׺L[_*sp}53];[2şC,.3Oh'V#&9ܘHЎF>WT`W,][(]gձǵGg^s)dI"PE \3ʕ?_x"Εƒ͞^S]//NQl[SP3ĔY莴QH4 `g4n7Y*?lAsBC ? S*/U:)G!Uɱ5ApFB)DfP &KZ;TQޔ88b'2桨,G'fʨс()7>Ϥ͎ sQ@ThNbd[qǥqɹ~ /V)}ɘ jpK YX>&1!Yǡ۷42&:]gݱ/r O  JG# nPϸEJu!JbbwD5khqa)5+ 8*4' үQI*޲$oVr4xkB=/WHi8.s>,/B, ./&D5dE҃GhyIeoG E~J8\^%j@h a\(8?n_#5 i)k2(=e>]G㜃Vuҋ,aΚ+@(Kn)mJ'{ A>@}S|yqtcNPl aSƷCws֘xkIs2'\{Or \zűx>RB,] C;u`f6;fR?HmzT Ds"W <3B;$-]>-]J]5.m&y7Ď $ ʤ~Y \b.4R^Ǣ|qmJ)E8`IsDZPL_GB*]J:,o}*)=Իԫos?&+zAm9$h?*.&!<fXe2 ꍞދ>ojzX.kQRg5I R+@kJ,l^=6ݵF5@tOFMeH']w͑X(F bK waFÃ5$ПVس=2?p8KN&myQZ-biTzHib`^|ImrGju0YrǺ*h=l\LzgUq-SY@ k[Ԅ@|_oƦg8=dj耵z`jJ=,?%!U Ӆ.CL̐@@il@s (檳+L `BLvhMf_5{î[:I|OOJxr~FwöN"4bRYb߂7 8VnD]g|: vqɞ394/\]TD-/u۵Q]$[/gB0IgL@k>đ*.4>+؟2Q92KoH\Pop,&Xʴea|ⓌpAe&w/rkڜO+ƛBx:X}_q$]j&4⑓+3[<]wczJ}{n! I-6B-筈x8IV6YXcpADUu^EW uOr[7.6A:/]r͓0Rn95#]ȇFTi/X$ zu[%2bGUFr5;svOry. C:%wy-w7J+MSGX!a6kvT?T~gD{N]>y]3FB^ƮA:3L;O㦍n&Y.HCFtNəq.p"NB_ mW|"LrqZkqʐ*A^Cu7miE]/ !lGʓQJ D hdh'Rt f?e粘{i&d?ǚOAg،>9k7y/eDlߌ#gƵ@6 &`4m{Xjy⸲Dvi2$`6{\Žyl-svv1;c j^F*6{b!н:%Q'm1hAirUn-}%qPEI0 MommbS׌f*0QdSEfu:*/kLe`m8Nr=HJy^ߏˢtQ=4.;ND#s= f%ir[5B1brOt+VAۓ%VN S*t2W$laS/niw*ىe #t2*3E6o|p&5%R~`GN"3,yu1ឈ@a ` [ a/:٢tf~ng})| l!<_⋁R Lo:y$D/ԢiƢxF< ?{!AJH * ³xjTi/2@{sd^fnxMO.m< ~дpwԷ?ߦng] Sگvup행ފ}7*秇#wT CZ Ʋ8@.W9:؁pijL/HZp:)v"MR0Aݟٱ2)\C8m9HNY h;df{hU|YM(3n\>kvsP)3Oh2E 7X1IH,D$MZ aR^~UuNNN%:zC6~-m JpжE'i?އkWb)-@zg%- ,K@dOA'vOa3捕;X5'#fjn)67єTnGjjι4dA6eőWv-:x l4 N ;V*/QZ|-5 ֪`Uxnnbffw;*9K#vL0y ކdySL /oo~LDfﮫc}B1}ܧ>4LjSZz F>hW<Ҵk+O%7'eY|6Gd?y[3oV@t2n4:i& *e/O:&inydڬ 2D߉-z}Ɂ/}>Vrb;n&C<XI!5>D='BaO@'lFz 5#`>؝\\j8=J ç2]Cכ!WD XRs>kgzCtO2A!-e $8ʕp#`#II IC3nUdg텷fݛY1ZJ혧S8!O{k"PPѯ~ŕ-ۇk@gkC Y^:3zUCcM+[,2YHPW4fJP!%jy@|0miDCh5#D\S,`8r>ֱtYcp =O/2ݤLY}ÃQD|lO` f1ɕ!C6/ u R4OS:5ixLABS|?|#^C( v~xyھ@v%P;yO84m(YrZ0SEH[RՏ9Y]bK>|'1{b)$ @v >9?3 >*鷫$n,G)_ͱ< &"E&)Oi{n9$OB^o|u4C)T]U#H# :p-Rz~9zSDX:(Rc[HAxJH@֝ ux".vg6Pب%)T˶;%ǁjwt *NR*OC"b8̖ͯ(*Kw+ N!$e5I[8o Rr5+ -J"@ xmB3Iy2r{\dSM6T{h)]qf-c/V&V66!YԐ{~# 4ff 7|boȝKiV+nCߕW6NĉgP7)Xt/9T:qwƯ5i/kpw1_[P.Fz!z݉ľs[Cb4VLg>*{y Ap .zp01!{w2AA3KQS5Kb&.D?)[-ޠATohn^On^0,G[+%Z^JȴZcsU@JP,L`*&? w~ډdZQln+5v^aPy*nQh?РoYn=>95NMM$;!]{5B6yzjrTQ~SjdIfKi22 Zp%/SK_XI}TCPR\)cRi}aaSۈݡ9C󹪷@~}daE3XIa'()g`]znAۇ\3nU'f8+Rג{M+df9~ ԍP7Yɼ- A?49QrS,Doj~aj;xUhb xQ]`UUn#ZrLJd3J@ . b5H9B ]hU$Зkg`9]*"*{m,3CYS(Sr6C؅gLG$ےD ·{N$Q(!qړˀ KY23lWBWO6fASJfwqS4fwd Ah`525Lq9go2Zej@~s,H_16>bc 0 bEQm)ow/BF8] |,7KRh'xy- T>Dwi`ȫaL;-:Xʨ-ʼqH-N7 d:<Ч32벒%]Ǥ۰K_qAW=(2}}"gkJ!sg)4tKB4x_)HB\79K'_ vS\l1TZr#kN7^B 3}w Sv>_'Lm0쯈1'};$QTLFZ˗Iriͯf9ٴ)"2=⡜yss/2IPk"9='k{ 3TC@$JeYFRVYnw -JGUm<0(P*A|T~ɣ`ơe'еMbz5 zOܜDϲ[FH.%b-ME󋘡'^٭^8bŮ0+fk(ĢP㶟杢鍪EE1%elzAI-OkT54wۛB{9++,e[[eOۙi.u6T׶#g!f$TUu_.3x: mV9\Ǜsvե\9qRp>gB(ӍZ['h7FhrmW#+v ^ >Q=O\mf sei@M$%^|l?I_ma&7JI_xh?9٭oK|OW 5+*ԑ\P(_jp9lejk\ sHl-,[5r *L+_'00uN(V8$HYp̞Z 2Ŗ3ߝs2{#{q"KzSc? TG7}/I_n LElP9лf9 󕡙;Zފ%.`E5s;+SJiջHZ:Q)!'&ƿr=&yi[\׏ba&8ߋ9)k?8i<13:~"{@begYX{>foTzVzV$nVRƎ,S8YPt6#[UA;v/ %4M7ǖ.CtSQ&HU&E {^֗>=«Y y + \}tG5A$pHLBxa)l:vW JOo5ugަ"3eҤ'3T=yq֦iKgO?(: f:~ʟcC9ЅϼfkzA ߌC>cj7V8T7yv: yO٬rN)0Աh:!h!P ]9G]f VmEI2r_ %GE]diy$x m C<b~a\Z{sEVA:;e JdmwO G3O>agrVPaM9lg3Sc3Z6~Aݯ|z/koei"1s3C+1̄ [|$oٙ9[Mpyi7an$ρ!u&QClcR0~Y;'7M'&p;-0)&lM!ψqPN&ӍB ahldf CUo({i Ju(-[r [=>HvIJL<4Wn`lzQ(s/(}ڭyN4lժ -o +j5dNx1 IZ=G'c4C:/V@ yݢ:k^7orUY7!2 `E5zRԢEG_ڽpNmOE" c9g#db2 x+͖wҝcǡPe hS}'RQ?nt/(-II~MΥ ?㍸"ݸ#j r//EҏxSbNVIMPr,}\:x{(B4EwGzy):~e)\\79U2QfB o`z4YqaY\\9*\4^w*5 2z2bIX҅HG;2x5( gSڵl1"uzaº<_'<Q ,]un b4^ff + ќ,ؒ}niQl.$3ƕ!ė=,%S%;4MPo Ɨqgi%AQf:kSQ@ƍ3Dbl`A^V<5 (ϬhV?o2]uw{;h.;*/B/T|Y\uЇX*E Q?#o/"^оT5G@T.gR$U;L9+}qF .|6.-gb\iGZE9/A)!>zh0LiODokrc" oĜR?&'>[ oa>ު1ut*|Z.4WScK%п``d^n_2p>QS>m+[Dޣ<3, {\^rhԓ?\oO7\UA]2 $)iŅPfLM-:F]kA16bw O*|sE?pq]Tdyv[ -۲w., fمC'}4A L"H-f1+֑_!*6Jþ (O9[͞ ?Qq/xfm!ڂU]J݊HA258Gg%G< Ԋ8qh2#;jcgBX[nK gC`\edՎP2⦔Ę\.KmPg[:_lKjNM6k(VRtf**yxxq]M^ѶTPxYTm@DHRW杬'A-g{:}vG5=BxUz#eN0S@qN3KjZ.̙3[]Jq[`y4{hIF4 JrZ+; &% DT#=rRYF U TS}M qs2IK/X[,RJ\4J 2|}T=Ӭ K?U@c"=\3OaAM^e.{D s.f[ Ԇ0ͱ$E!0KnB &4QAN'zsBndL!$䬋N )&{3ucaH;cT7c1Sudp!=':$%;Lx{[=@Z/^â?]?@X4^Z"䑹[ ZDO 7^/G`~ ==ڜI}rYJB`/1x/;&ΣrGUΑ!rO i?Zu;>߇;lg2@fY*?f]Zq-?ZD]XV0HYbm{ϪwQ1DŽinwi&da3k*\.[4vbBBTqiONG @OظۜqE W,5Uo6X)" ]̌#= 퉉vF8p:]2Y%XRZQ/íI#uV'*?܄`.$PICDNա@W^*D' Ļx+RQx4V$ "_|u}/?S۱`$̀``K)#~c8 #SV;mcޢ:"n戱(u(*KjP*K9Yo'9Ls:I6Q{cZC֭n;wU ~-R֨$|㭳& Rܺ(]F<._j=Xt_iF:z[sܻ1!/ 1~iHFz t0 tt[q7(W;匎>C{6{`)&SQŔڗFJ{c!r~%>mzjkH*-ݘ_u3AO0CeWԞQYL:@ϵ lJ*; 6HxQ&c˼z7QspˬƳ p~6 ݨ&wƌmF;m:$i:9Kpk*2H-!҄\(Rg}g%] LVouughXQo"6$ 1qt |/ E!"3Pհ\TvjlpP<Nna1>T4dz;_yS=[72UKHqT)\%2vQjb!cdVvݩ 6LPL4d!J'lH!^ :*.3uF% @o3aW%</Kl]"y_ε_,:%9~rn2n hZSXVIsPq/\h; zohWRa.t.H8 dr{(f勹$dIC #Fh|K?{uZ*;9٧߂IkΈ Td/{Z_kDX̗6. lچ4ySQWTJ:ߜTO~|$ {Gn+&n5V KT\O250yB '<&y,[sטʙ7HM{-O@ǡ?O7?t0lEW28 Nuc]"؁X-|KvĘPȱf|q:^1)ǻ݀ߒfV`[CؒHEN~*=>/2w&|Df> C(o ?'p_%}dGjdxuQݧهZ@zPX7?ψA.3y31NR#<+F2,8^phV;{漂a'&I\#iB5?eQVd>N.u/=n S $ck-Y*0?X:a)*} Q`r zEYz^>.(l3x`ː۾WliZUic.).Jhk=({ޖPNbxwY 5X]ڇ[+5>OBF ܰBVLZ,P\B3J2bR`} eTb! s`1d'*X|T32*eCsgU羔]b976'// ZK1c}ladN6 bV^3ߓ$De1zN9DTzbe]+'K1T cSc^(|\8,#^ЩI(*rdIghEަ$\=r]67؋`M-x7P`1|P=֛N-3L&O?˜|Eymkf"ЂOx-T]Ôp8;e&肛1#H/I}3=/'~_2QVfcNڔ7$E^.e:Sl\o)SxIyWv+1~4'8tdlPNeME 컷3E(0Ղ5!}%^nOshCԌaub0E:TlFv$Sgo|6D [9ŵ!"c.IL׺61xwCqZEFR${l y6!w!Gd+$A&()y)X!39q1eA߷\< ll?fG $d”$Q| ݧxk݃0>ݨoEfHZbiuDON%E(;*~ s GJ8~@mz/ȍTlV<Ѓ|g +᷌ze@{hP;b$Ë/ЀqUxkiM-|h]x>jލih;E 2:3wVoolS !ITC*`m5{ܬ@c1ȊOjL/=Π3ĭw/<0&}|%t"P"3X]UY`4]C؍n`,`nrcPkkgMWH{l/2Ȑte{jD)p]\k.fI|5KڠO*Y;2w(d\y:mX#u{ר9q tS'U=ZL9,{u~F;1^,h2ӒA9GD.)LN_@us%Ev=AHMbp)H*Pҍ@HъmPɒbWSy_ZT"{`fgty@8+dU5׏"wupq %x7YSi+@Bx0PP(QG8PcR,|*1FГ)$䐸řPx兵7Kh{w#G;T#tpCi8!(-\[ݻms qrh2wへ/:C{ C;! 1+7?(Ft%E-oԆ ;΅L9VtVE' Ef=j!|NjWoO@a?Ms~1L[o3[Ig"?,bfhXQ#3|05|y0qbۃ,}80FKuL쉩:@b% 32 /V^%eTj=Hv6$]煀{D|Y+/R7/agqF<9s$zSD4+ ~h*M<׺AmSL6 G af9$̞׳ƥ:B]&)Y粓%XqhmnjHZB#;t0 5K9Qxhkv?gjƕi;TX]2WG%sa x );2kB(ະC2EPJH!ʝ}7 w÷ "GS0"O 0MhyNh0o4pH]rVtYqگ0& ҉vȦ3:]VUrj% sTvRɼKw$֝b͂jbABXŸouHM4;[J9GKDwT WLWA^Zz pͭ3Bkӝe6o#<,EV mЏzrO&Hk0^t(iN۝6c&KfG19ؐr̽৉AZ<-d& TAp@GD7 PKuC{g4PwB8 dX1KøM#8X2ۤ9(O+}Ȩ$#D@3/-3柏5&nԀ܃ <#:rC(jn'x 4Tn0)}\ypsE?K9uJ{o }7}ovT|ˋa3 y4BPdIoC0gj3-..D5 b5>&2 j2 .` R'+Clŷ~_s"ӸpA:jn9%k(~UB=_ܛ%&  $S>SH͔"ŜP0ʕr=򠷖賢D z8׳Quw3W}7 B ^ʧaDB} P6KoH=='\J qi!eXy|Eu!N8`\%^ғ~P|kWpIGyt1٢[]|zK7̬ʛimyR&@/$^^Zse41B :pc3f V1N4x3US͆>OYL/Ԫ_[/|ʐ6;Q9٪z*>At#s #r&f$:lq)47}^Zr 8c װ3B.V(1` t 0Orp(.n)-j~W5C_FDhr BӑnI-'|9CP ҡ182)'A_rмcLsO]`781yXNg]B[2* dk`7IHeҍFxzdh)rmˍN=єilF_~byoϬ: gGza]}ɜ7!?KfW_ќb; yy *R|ˎ"6ͷ(HE=*܇INѽ`W&뻸vϚI =-9K?{F> ZŰ&zWB"S:1.=b4?zu[}ГmTc&nmEߧJ^OjsMbMh[b@ a[p f8 ΈffK:54lvkpk :B[X1_m8i6ɍ;6m .Н߹/xSṳbrHMJdŋdw`<>ݫlkbG9>=aY*{T`뎔wU부~O$\&RFJk4fsS[WG(tȜD`u|[Jm'<(D9UBfƹ׃ɞ_3xǁm#ue@tEjuUyF/48ei2wIinr qL64razW4f)vBc'RLۍy#׹sd VJ![;FMB;擽S+ 4zifa@*1]I=ȼ~"؜SQTrUe Edk]ĘOϲG.%Y( VK{>L,!m65e)OozDƑS$.7WQyWET -Q28K{VG=[Q}}Ʈ?1(Lz{<]'uJ`6 `K<'Hsp֔C䥂O%rH 1"G#;]k<.N3va@x:1sqJFG[ 1N oPWl 2C%i">Jh..1n3e ^8U5|I:0xWa܇Um10d"4b{erL2P tI"ԫհ>钠PKS?CFc/ҵMÜE _q(H5VpsVjyv!l$m0&c)*?l̲6@O2!\g%f<wKML5ܦ?;hs55W%-o`DNyW?X̪JfCpO+/;# h`B¦?6Pv73֓.h8? |!١Witk ~ W n7l2Q 2OeutTR8iȱ+Ԇ4͛+u~)VB߀on4L},fb臮Y&I1J ~57Z ӿu4&_M`dd'ReMW ̩F}&Lv6Zɠd\88Ǯ?%R$oShZLi , f. #{f#ǦEG8w7P8j ѐ^\Em r@wNo{א8z9쨤FP;0q\xԌj8}p(^Vni媰xCJbFf3s ?UZ:M(`Κ E*-%_e1y߳PO'BPðeظ' CN#1Wojd\<`#k$Fy{ [~]IO1O:H1}G]҃] abډa]ЫN@>8Qח3)GQ  HWHFcV%!B4iMmOVvF79^8G17TWEB31Sᵄ[o~ !^X ZY{)[{`nրj}j썹 Rתv9.֞QbHYBp|S7AD17cʇ)O +U#Z*iWҬjXDye)SG Li0@C-1e-H1/V_ 0kdV*gwf+6p@U"tGÌv 4m+=Vߥia 1: ;wT؄)qB6-?c`kQUY-gwSO55糑&=)1pc3FGEB lFP y)TZ @ $;sw?~洷ÜGqI~YY" @[?9jTaېi*K>8Ƶяz/xd.)C α? "Qt\G\97н{ԑ"";4]cT 1F#<N~O,SƘ?JӆG?!B$iս`FΥAɵ@NBZW0GvEze, w9 r bޤ71+mT].a]?Z}[tU?8fSS}\yegoEgVqcҩ%5 AykMf6Cр'u\GDbJn+#tnR@ .U ce @JR鹝l?NK)&ѻ+V<&[ UQ$rKEEѳLd`B>`V$ZNڇWiʶg`!c(?)+U(^aKuX>ƵFi?[ $1}Yݰ$1BMKRy)hěX9͸uy=6z:qvK8Ủ@Jy[" j$R;d9(YI ,qy :90Ra'F+>|$zN"A9s"h{RߔIK%V!#u8t<~ƹm7r%ϽuO`K8=+&y@L!W `%&znjV3D /zmy[Dz#;ݜlN7cTd?lLϸcucOtIOz<݂{<{G֔3Ơ$۔PP Y&]%nxq3 H& A}t8u叧wn!j>|Z] uW pV׮/.f_q pz6"'SD0cD֝zx D^RbҀ DOpd8kOݸɔWE6 bn9'8'Yh34j "qG%bP[ P# 2J~:w|^ZKC=yH鋴l63MYuB}<~Rl,,yP0 3ɥ ïK"¾h'񯟒U*,OMé Z@}1DG?/PW]-,bSC'n!H40evr'ʂv(p HsƧn,UiFPuSҚvRi :_W$ ysmCY'߰rhW}@*5WٕQ)Bcr>]sA0豦K%3zz|EdP(|m!'jfڎ8һY"\b#aS\4 wo _LguEz>Uɏ-^Ziga 2i%,=KEiJ8j3Gwqc%Th]!-Js5[Um9㈱͏K,b zݤ j_6kz]$؅v JĚ쮛n{ߐM tdܼ|j /0Q9ڏ_{ "Wgǎ{tx]R&dX/n 3RDr.PZ)kEș@T͉/&>@# >af㪴Tϰyq>ý&ױX>S\L/zH2JY2~t^ M71DO:{zndfsb-]r{Abe/5}yr-ZG>pIQRVƭ3~_AoLn^@Ww]p/Iq ܮ]3[|*pn¦=.M(h聶QoCotlkV.vkH?N, ǔB`cB 7/lNHSɞEw0.KuoŬQ%\3J 1}ӯg0wev{]W#S$n3BOثM碸3g=ArLa!SgM!ge?y-LҒT&Q=hiz"a?SGSajMŶLnѻ)IظL"Q H闎'}_ǁG&WBD9=IPX8oX=؅mZy=5{Vr3\6$tKm 0_" {R?A'|GwsL۪I.oKH{#y CSCg̈́$HfvZe=PORmנ"Գs mGwchhzg;Aq8`Qz:Ɂ" )D-~'AɉSH;} Q7Bvt6<Eeg%b-Ǽ0 nGՓ܂3^S ,n@jhvnE*SnIqkTb aj)Z kgT%XJ">_\-̛j(qFDP3ΛlA=kaԬ<%/@aX[^5}`h|RVőv4}ϕ߁b.=ǃ oS>% ѹ g"Ms/ \QCy:?w˼m1zoTR$86IE[1g̶|a^oz 2$-ktE ]BsBYdVWxF[%*OW[)t%MڴZp:: ;h/Z|!UCdh*F>ߦe8T!'=+2C$9o㵘[9FeIr'"kZ̦5pfd:32qI8B/.w*Mqu7] G„ ơ+`L=qK}HIIb 9kkdHv_ؽz~U$bPӊqލzNﱜ7 K>Q*Jj(KgѤIU,^ּRI}/ϿA4nsH7Q ,Sڜ^A*4:TK"4~@F ?AޝCۂ#Yj!sO`x[BUǥ;}u>^!y^*T/$Tm?*rw9Gu<}95 'aFɚUjT-uؙfzw"z`F6 @{ݐd|s[*6mF+X\ʼnN|QSUD(o\rhytPP]rR"!_ص3x姆 sLXA'ʹ*qN Ur^-yӑ{<>Qct^K`*8?Gi46_%U9S"j X:qџIQ&h΃B-o/+4m{t|M̵ecd/s&oMPq_aKH0Viܩ8Ũ7z朌k,/ڵla~[%f{Kla6Al*H]1_ F D$˦Y˙Li?R9y)qoͱkz׈f :u$am+41m ]j^jX$2X/qo@ 95X7tfA4yB,M}7=CFd$Wr ^oa|1loI[>=5:_7Nd&#_XoNnn|'bY #R?4.2c{YMx )8)t;Hf۳e1F&եPxlAjT*zg @=7ы}T D uhd!HN@!p7Td$e)b)I7Akvl5xAV@#t`T]9~KA)}ڭ*3*oZw0DFˍ=EC;P~gKGx9~wGv'*`6ט7|?r"Lf$"bH{]g "|A揧 !:+/ψy%-U6M,0 :U:mAFh.ONTgXu6?@%Ak:L irS uR$q+k61ٻozo| [BB(^ Y* H,Ԡ5!n!\N׺#Qrܰ%T 2r"NfFx@~Qre6aO!w. 0/%=qd GRveAׁzw ] 2gY;6Ft"N bZ QN1\k /'s/:/Ai҂Q)=fw5hm#u(wYJ&D)58op--}AOYx%bb"@ ͨwNo Dg;ƇSx:}%^$R_otF$-Ԃ~38*d.ʋ?} A+m% lGI؇൦w#neXd֘x\͕,A.d-&)gG#id;TUULa^e( !^)!7uCsHRֳ'>("7js"D2(FpVe9=Z|nn:.ڂ-큍Qj5M72wu=˂:s!`·P3ݑI;%H-]ÈfR0ICw~R]2 }uq$P6 sZ!æµL3Ny\efow./l FȰz+}]3p"}a!`}Xs)b )k \yj6@-};cJ4o}R.GV)rd w!a|ZͤiI1Jba_2Ht6ZFچ(;5X,>!k|AzkK7rPiIj |s"=NȪ+ i ʼ_fܟքy\Dz!pzT+ }ظ;yGE"ُf(~.'(HT]ye(< e6>i gv n͞P?EfL Em(3sau# >:qfVɝA3х)i -Wjq8>zZjuxr /{gP ^``?h[]c hKk2KD ٨4? 4s3#Zp0ZIdזg/`xSͥC܈r:>|b<)X\*ly >]5=k>\Z}٥=QO}V#%2ㄆNR$|@/$3cU'/rw~+3s6~Y1H:#;b<,^n>3Jdh6Mx]9>sʅBG~fyb-v-<%#7>S">8cHMiKChW3vݶ<:6DZ [k[دlvr䴲>NЍ|D s,{dj.(ƭWlIA.^x2A>[^;2,i8xP*gdp'pۂUJBUED&əG~t %3DSpJFe2[4DEUwjv?Zzv`ꐦ)&IZ+mVU7Sj]/-SD nt:4-:Y3Q1$"Cx\[޽ [|5v!5b H0oIݤUŮ:XzKY>[ۼHh^Vre.%43&&/< aeGOΜh|r@g\A+1KQ"E9v?a8DSv)a#Ňt ZyG~ wQ14}/{ԓ&#U]|$f_0B^Zn`B@ >7L`A{H^{!JaLnW 5f;)a9W'? =Ui,0N # tZWT i%(/0OMhrgB/;lKPM֭g'ɬ.B.tV14[`b+<6?}h3: tB͕C &42NnMh*LIDlu-5p>j;(b7ΏXNBcU(KX>b`v*P$2 ||%bKt16;9yys ^YWKY"AtH{s,|dJfŲl"!#t`}?>PnW^}d&vv:?v9^hXt?haGEa>bJqS'"=VeEMɿ` F_-N3mgR +)ԷǞAZ:%-|.%-޼Z?Z&ʎuwI9Դ> R}胡v+"Y7r9"nSv䊇ڔYÀoϋ—?J+"~ kkWu`_ܺq4+Ly`0UiNM?8A/ *&]oU ݓ1ig;Qdvbs:W x) wh |"aSB̉rn}ѰuhHMTXd[]kᠡ5J-wO+ٿ.N}x?g]ҼR,"JIdiuCeb]!]cDj8M '=ifi!ƶg[8=!\Nagb؉-*څ֭a2 lpd,HvlaH#K]Mϰ?4zϺxH'=%Ҵw"I Ws *PSے0)/QT6 p#akBe0!": r 4!U uxjUHȋX 1CjrR~a/a(spʏTVps{AEF7L_, :-] Q I &ǽDG-.E,*r([/T 3*"] $HqSM-8 gEBoo0yhG%:"Q"(v3Bʽi *xcC{cu]݀ȹ;Dոvo_vpR#[N߄8X Yv?SWNT:?]TpYP?{[|K|emU+N{#`:,N$]dz*$zʃ >ԵvC4ObȽNYJ gB"ӹO[։?I{1|p^R:_ @G CFڡ@SR ArznNSt8ArR>$;<]!XlQ_~ bUvlQLyۘZcSF ER|!ohlh}- )ls+\S2uݞ6ZqetWUS`ݿmd$~LkjGrn=:p8cVoe[7a$sgos K/18}0kиB3)@ ^}\'*0 { `$/ Vϸ@1w&`{"B!*#w)4oem$ԾthyAWuHJvNzCF @ƖQ̰2ApC  Z9qWK-1h {iH@{Wvsh 8<X'k'oZ^",dj~AOZKDe=SKGOn&iBYhٴ0qH뮃]+u f[b;UC/`%놦7?7nRjhC}f#g 򣼊G(w= WRl'N-wR  ejI7$8s_^sRې]sEwGy\5g- 8JFX~"L8r -=D[dTy?7oV4EGCA;C m7T+ioXPKnzBf`rU-"^:eKhR#t }D4~d3xw;Pmf#z=not{l3\ȑJiXBڡXnOB4b6; k2{:Rǘ3Z '~}8Uk׫'*~ dQ&!aȑ~ DZ jLs׍+>VҦܪbcmefAAEz5_ 6!f0-]ޚYmww mMD8 mfG.!OW4ktF`)Eg]6s~э/ ($g9t#Ī߹!;Y Xs? 45z.yOv5rw&s?Ix}񐈁Q b0N냑 v |g7Be㜺䰭@aNB~OkI Xߛň"2,kչ &gbQx ;\,?!Zv&2խ~+W 2}w.v#l:9u=^^ V|Yiw'wc-{bq0g xrƢ(Ѳ_\uD#1j 턝枻 :op`w'V6ưdqUi}: E&,@>gnt sW%2@QX1/!{Y@n~c ޶:n,$w1qRe{3b =Qd[ xFhb<ܙ $Sj?G6c|4V3>DRc+hf2 Es[,ytIt'‘] o EnkUR>ѼTK4סt KeƦ2|'6R=UDôzÔg/eSj\X"K5F43;J"!Ö \WZ#/{7 7}%"gZBUZ0a4s_L|^kw\r3\&8q XIΡ~EF8KYm23eAXaE=j8 el0?ͨbE;0LGo$Mclj4L m 9!%JސZ`X8)7}@$DOT7AJYQw}S#DS7ڸ -NSPi"NȋhO.$*,",4~n\8.Q'ju>;A~Lߤf+:P}S{j _@Es(IRCARf)3@zC[ߋNtAdovar ! F` 6X(mBkϽDmޢceW0YK%SnRRW/_HL3t%#ll@O|m~=e=: PNFBYWvI #RyjQ X(Yw<1V}Wmxhc|n*".+]'H#,XV.%y!;9{F.jg)IZdgai#N{20%#OJ݌UFQ<iI9C+ yrv,\oT[杻| 6wu^)L EZ`Dlv=r2ۉ;1c<-b73SU. BS'ȼGMЀ<ǪU`HJYbDP <, v%3ҹK#K _O ?̜Sh!UZ>IlZضLBc:~y[ͭ N:כ)1؝ӡLpU Pp֓=MNDPehon ?A$Wp; C'PlarE̍zc{#`KEͲ@X` cTӾteO=`'a zq[&L 2&5oz!T9kH+Zcne%^Lo˓V P w @HLp(% 2P`v'Kz q]vR82FIEnFm\"Ѡc{̦oS ܏/'Bv}1<͊TwE9r`,fn;wVD ,&_'xNHewB@.QӴ,ݝ9;1,! k35|:NOƭ옶gM?}]i7o&)PC_~yq= On+pPr[vvyW;Fj͘}K#eE{+΄$xO5GWYA)6:AQ]oZ8q>jy{0%k\n8ߖ[b/Z3ȓZzUd()8wpuvY )r)[&A,Ï4-ca/NGc›p?_!q:*} O B߰pj~IetjtY\.TWn K?64JS| $fV\'* g12(l`rY[`~0 91Mwx x+pAΒ⽖?vV(F=֝")8]=i)>--f)-j }O~9Z99VL}Iכ5Lr#'U`;oaӊ_-wo~FPU#|(2̵ӦyĭE X `CL뿤2hA.h6/詮/XUKEw$B@بٷ\j_+u^_N/"䛰ۻieMJs^=dŸEl(h"q& &L l^{dry-ǧWBzl,;/o~{G9c|է~lg gIDHz+R:Mp ˰fPwbe_)3u;ծ9EÞ b(ջӋvI)c=8k%#}[ V@.ICJJy+#Z\`)ܞÅ (HkJ{/E4Xsaꗿ7OBȡcl޺3\%puxe{w> S>?zGIGT4r~N0$P%d e(9Il!ZIӟcsn ДyWH >`=@O{Y*"^Ÿ v@vsO˫@}%1⼒ʵ_Y*$2%zMm 1`|Gzd+U;^1$R6'ߦZ'Ӊ q1*aT4-G(n{k%́7Vݖ.NP bHҸcSL"CY8`0&2 6<절I;$zͶF7V]GdkJAu6'kPI}6ļtyF>Mk$#=FY` ;o&iXP?]7\q W^>̡߲Q m#4F*@҇[\0?7T!='帻r,vFdw3goYWC֙^@?t?4C|H1%ցynJE0 &8m+(r C_5**/q*(b)=@"nQʿжh| ߟ~=C:oZT*DȻB~Ť1󫂼'&z9(2Kݲ gj 0"#W;ع P ov4qEpwx"9~:֨P(aVixDK1/A$ BIui% aHIlUD2Dtkc _L\Ts" |_7X)" ||ʆopHwKuK"|غԼTjwPyJYi3 \ d AQ)2i4 ,&5:$XGp\g2{[AۛnOrD&Ol֔KB%FҺt@&oR!:m ƁjUUG\Tܺ֊Tu%5|[B!fG- 5faM "!c_+l-XMTkK+DF(= `'nbwo67#EW9a#佭RnA4R:%Ra@|(Z|ۨT 3',Fb~ "3N@ҸheĝZjkťϭ&Au+Zva(6 \mUva73_(" iPd aBe&-IFNd3]:3o =+X*lUp9Qlܾ- fkJ*ِb Ж#$7W\Ľ1,ٌeza~CxLK`:=lkDb!$t~7`xwVMBnc&ig 8\ a+ed3P 7ĴwC5 \4PA>¥p|:jr,7GlR>= ((05,C1P_v# 0!+tP Lxp_xؒmq;:{MqNrwXkq-*1qD+|\whxoXtI6}5I.}-܍ 9C_&ěhoJ\xS;2k&>Jkf{H강bFDf D";J Q2^4@8<܎*JzNg_9S^EOB$!QZK C֛ؐ ̫'WU vH;i*qV;YnrSqLѬ\ă/' YdM}=C6Do2;]M  GZo+% Me++!ֵb6n,2X%V9W2bO2Sc Ce<ǛZǗ^[ F ޸oxt=%:sdON"@}:#1t ^la衘d_O"BxVUK}P@<8jsRz^5k)u&r^ӥ@X SM50EY`6f,/+_k8mиOaĈ!g,ZTj(Rdy_y;ye Δy9Ny[{Ԓ6,Ā_ 茣K=cjhleBj5,戕yRқgcOHknk [U%M@ŎؾTaWc܆Elډ^M 8dY+\6d ZBT 1NXL냝J߅Z<5jeԉWo' *F(ѣ=iErKĨ%_*3Rp{MxJY O$KH*UrBckD{ZnZu!bWl3j(ek*^(O7'\T0}r%V@@4 I?#kH6|! d= eJ88GkAE dj}n fw  wqI.(׹[ݟsCl91:iSjcԕ̵,4'>ű}U(j*]"ŴjvU\T]aOdv[kBn!PJU)sFzm"v#sGdѽF(/(Zcz*Oquʡ ;=HhDg8S5 qaՁ*Kb{VJps5tи!:hWbIC0Q47> e_i_/Ehs3$.hVʙ#[=t1bèď.4^qӍ43 S=˵_̊>32y*.DlʠJ0榞h6`@—._! 5v=/*%VRIJ3jC&)XJd[ru$e-Wc,*i>-IC# (7عQ}TA(_ ;;)R\h hN`~L@GN[l כU7Ʋe~"!Ԇ?֫:QáԶK ݯ)7&-Vˬn_ODQNt{Ӡ(%6L푷F0 u=jt+AH}T*4Eod܇}lHF3*Lu+`Sh^/'7T4y+SA|%<rHt =+-eg |lЩx^gV=&NLU gW邛f״nZ&:3SjPl=电5dv{˖ ڭST `9>xHjZ!eއ{9yLҖrovs FkiX]V>4Oώ^d}WcFq.BEģ?vV"n?ZefΖ?p B[]6bj6SӓSHpSo/vBzmEbiV*3&~/)o#b3j޾MC hhÃcL5&PJڷ-׿̩&6"RhڕUs=1O*o}iBWk :솿2qXgqbv87, W+rvPI WgX79npV?"6I [D_ <*8d<6grǗ9")2nXÉӍN #)GkRޒ3AmZݡb~H]@7ݾ/L .M lE`?63@Gx={o4'_bJ?uÞnieUf~7Y3\y)6 h0Q \\,[H[6m{}j?Gj+L 92$aP:{iJ'ebs aXHCWdKC눅4}CToA { eLua~8PoWHZmFĄ _HC} `N+`a`]]%rk"_x+dI:[c y"ߑ/$sڽ.ysL˧ zr6).73t5xqE83bLkkh@}av D;u9Ҭ“ԵDž۰InNQZtWR'R.شhjg,vVX>e9-" u$>UIr@'y{uI<SRV=JFl"B&&P*-T/SG ]gҤ0:HGJԌZ9ln(&bH(Q+=J6o7w_Qcb?oWRlӘ%"E8fEgCsHct;[^P MKdB{uQGNlgRT1m(cqU͇VVt(Q5!1.~Y'ZH?,8CZ{"`o]t\n~73yJ6S ٔ>sF`O p5Rk%)oܞUVc%rn+~rn8ץ&;ʝњ/B=<]yr-/A;>?_1@x쉣 aQ2>N7kn2::ΰ/'@7Q!"117t̸-/<`- ?q.?I`p6UդH3d ôI#ztD5Y7ʹH{%h.TM秪;ү+ʨ^#Ъ[e1 @Y9Jە#kZuZWv" DXb"tZEvC iloXo 0cl͕z6nc-۝9bІ_QS _pKy7+֊K} |Wg+BXGׁ=-LRzE^y E i6'R5?hbmߊFo k*3R{Vgc d[:9$'p#y5 NGoZjEq78=6b9ci21OûOM%Wf^K߯yТ~hD3wQ>WIvùu& ʰ[ w-}c|izdN2^Z5ga &l>~&%{Zw)vwjfQ()4՛E i,ETEMe|7NG5Z ~ 2]?Mziì б#kZԻleq3<ؽyM!~xNM,Ǯ~}8吏2Յ9k:^G{I7wX:xѨ[Oc}bEoֈG0zV7)WAHo~;Ѡ|[$ vxo f7^n53OjunSnbE2q>|oc&Tox`~DSp6rR1/`sMF7i>{'7IYOB e f]5J0|bΆ_H׀!0k诡M d::ueS*e81d_Z$ds7#;'y_U!\WG%/A4T|zL%֬LT Ɍu$8e[Ebeϛc=V quὣ#Qp^Sٺ8\/f|o&n$\dXJo92!}B|Y\VD P5w}TD׼P&ffXt)N/f:1"]m(!T/KhgwX/K؈ 8.#E :iLFy9*Rj0-"ʯN!k1`rug)YZf1\;Vd_ ?m* eے1|XM*[59 EQ }H-Mۑi^ B+I *׆YKrJ'K/#YdGޕޏR_h*-v>w>8%WO?``F&_↺|ΘHs4-_U$™24E<>moI;&~vh2@,r_&ߜ/zWv3xP;{k3k8/BJC^@k Nm7 &26bրiHF402UTV ǾiĔg Ӭ Oi*j:o`сzLrq*D7bWj"CQ`I8cm78|_͡‘WI< &h(OzF%(PPN4Pb C!Q=q uk]Sˀb:Sjs{L}KYfh_Kz{ _WVWlB߳؈4IMi%t}bu/JFAXgN>¢X'zϫ"W Y"qz 8T_={4{@QUKa򷧚'(p쟫o44mғ{q$^ f -X՝E*InY ^0Z!uw=D __[p-\&tU1Uxk{ `=t_Ȍ^8~Uf~>vJ(\"q_f+jM>a+Yz )҂NL:![֍/#ri=j: _iB̿U\U-wF OjOԕ m/8+0"%A5=M!}g|V-0a47Eip7SZ'rLn!y=|,n$ÄWК'>0!2*`}b"dmjY9A* ~vG=ƭj$7tPi[-U* -gu Z:?~ܝUHtYEyj[M,R^̧irC]E갧fGfFpfxXEs!a:ecL[2xcDr1UF($!IZçRؕ+jJLM[3&U]o8zFj* ^O d ՠ$KLa؇=ɑaXj<~āMaJ1V3w6!jh?޾/S5H15]dlޅ['JFiʝk^y T ]q"r eOOi;Mi]_U3\$wb\Oev3QF%kwg¯)2jrB@}Pr|LD֛렺-'A"V#l7n}1nk;gT2Qgb|ոF6fY90|1/wR3 # bs]AAMcp^Z6Wa9B iY<:W],''|;q?_3@[--8OjtFSLx&riNtR=]Ng2puP%1ՂyG(~SQ/TPepߗ\)spqߴſdQ-QCfu1-)V5!wnctЫ/_)E@p%E2ƙmV~< 5i/f{{Jȕ|D>k>B%o]6[Hs f5bJ(0 ~+Z5^*=偨n*d]nކlaF!CR-/^47qgĆnDJ,æ\QmwD撨P2Tc݂}ikxW"Y/{;ͩ@X>l?Qwr ZY0jYzoQ єQ2B2Fp #8B"޳2H_aG,9P8kMn,Ƙ6VA];Y2G2){#j?'=fTPY 8T Ҿ4T٤ʌM~`\) rQtpNrYld/9b13KP ,A=g%gqM4$8j:s֗eRA2Wy0#r W:E?\腝 ~tF^\S yYB5e~2i۱/SnyIr{]N=Q瓋yJn1 ƌa]JYt }1NTw ^LBz T0EL{%s:uHF'8`2t $rnjCwID,dYF3AG"'Xy@ca{}bl?i *s2*C@K:rKlvk2xp^ze²`d`rJ< n=죇x}7΂b&8Ui."HW!cP- ]kLX߻O=޲Ge5Kh1k= xr%FNֶ}d9Yp''v4;YPvQ[{k0%fitdkII;'DMڬeLb\%[ҏfI9bզ>~ZLTVwD&*O2HBHzX̥q[ w~X}Zw*9@i0nA?Q"h_P;M;Hѳ͙_*&=@zeVx [PJ¦fy!quK1ų/SõPa?}/ү'ҕ!E{`$Y%h4*W,t熜˨p.Q@kv$mɌcm*ZR2Uh ɺ 4ٵjD=!K\R <.$3^ZU^a} `` H<-\ zU:\TțcF-wk&qZuou"+hIKZbH` ;UA b|owcQ +ʢ!oߍ=&D*<蕻wJO3V3^(Y494k~zטtϚ떇Yr>0cJk>$ɮ)#'t1!CwC\5h86)x:0o5REҋCuET%#'n)_r#he.O3BizU%(F|_9*=͝ R9*RH.\Kx-$/Vl:X< 84$#.Y\uRX0u 4W*xV(^+ExoYI$zvr+x:m)O{af"zg2SiM{ꈰ å,*| ZYږ Y-<) .g[w+b/Hg~Wݸ|/mH*q:HRn /nߚCH(Z"wLу݈{̍46, |4O#9,w滓jXKP2%yNz;x.5 1Zd/XJ؀^eAH1nt-bVÒGq{͜6~މc@S%.*քGhB?[y1TDcR !>Qz|H80SI|C,9̪tC7 4$+=h(gJ{ed#0jH@`k!.QEI@ie`|(`J {vH0/F"Lz1fH5W{˒t"hYKpF$kƐ7" vۈBidY4쀞Rf.7e3RN0$v&$WG 1$~6S-K؇2? S`ҍ oV{ԃׂs}l{hJʨ{Lh | 5J @AKaU^DmxMMXռtyMM߂?mwgi |qS_3aqlƼ- b),<ߟtzf!so匭xh(c;J$iE *_ 09qV'\TG::ݻoBO:6tzfދ,Lm~f}[=g_ʵ|J^-KJR8)ȇ)b*u-LMEٚ>Y@ :920أrW~> PvwJDWbG:22ha5Xe,:ydZq܌e'jQ6Yռ2eK9Xp^o:yr?icrZʪQ#4`k+s>v[3i3qMZ9(Ekf.)yY'_q2/HJ&+^b8ek<ޗc^En̅6EZ1[<{t diN Iqz2P j5f kWp-\wzwz@W^ m{1MەW;a/(>I&=`Ji=)Q_5d/%ؓ5a3|ڥlґ~ѿScޛI`քLG@U'엟 0MqqR6zyt_63'Z}R~sD”3-[pjW4yRP%ao$~vz'$c/%$? > z/釟*W m9R(@9F7iG0-.v%}ŀޅ$E,_nI-$!L Dli\ &~X;R避!lC|u@?L6a  ΄gvրIC1&-9K"^NϿ. 9`TU{6PR"Z1MS(!1Q,$\2<-Z5N }*,sl$`U%Qv+CƁAC2BW8Kka+}O_B]K`Ԍ[jO]*n /{&xVӔGM/ԈW˲`>ثeG jԍjt K%‚b09_;}%>ymT\cg" I#*qs4 (OCXwFuAU^رN,u )Ay)KG1l+V$SqQQbC9i?t+e}|7W*wԇfx؉g0jc#;Z:q? (o#B/VmR?/q3[v^%N4+o 9Dyе!v&F!:uԘ"rB]zHRUAIC,u?+( v'Ͼ [T7U3K&S؛:-Ij)h}nɊ#}|x"cɔhdKXye$E GBe ǁR!z{zri>G8O5 .z|Rt Sp[0Algxv\|]HO\0NY(4$1.r|U+&CQWǖoIm"^G֔`za~nXhfm+,e c |~kyxs[$ D?ے}ml?+ ֺx!hLzzE9$V^PRjcE p X)z/hE/v`x⿠46KiaSBB3ӡVvvS^J0~r4q5P锥*A{/+LP~ȓ_:Wrv YI+'1E\۲#8y/Pb:uU}C*.yFw<a2 6He!!W\*˃d_[K'3KĨJ6uTrV){-/͔"1 ]rXxvT~[JDe>F CYy]X6NYEGzco~f5~Vn4BLQkdbSގzS 4Ξv,iyvS7RFL4^y T_ 5V.n'^"ViT9GmX|y$7M}G*f}׼”5BWR>ufA;Jc ќ\Î~\%"٠]Gž#w#X1-M}.lfdT[D6TzB5O'~-zymb %g?69?MUfגzl  W:d 3I >n_ 5гZ*ƞIufB(fp'4'Z l&HėzEIRj@++*==mFW¨6%sM'6Z?̵-q]VJ}b M fqn9!6"cȅc Qb̿õre{C#f$1i_IABt /Fd~ Nۡwv#xz"S=5$WBZ"/- ׽؝L<8߀bͷd8w *E#CS|P.]d^Vr1O 2aNr}"frg0EͶ.VJZ͈q~SeS)seڗW@ FU!d00Y-Z7^`Zw9/Tw7#52.?:kJPЄjrĞg?adx/;۾!Q*# >\cp&CE)aхgI4pϕgbAhżxf+&ab]kQʐtGiu o_Ϧ9ɋjmRZ|Or>o ~O~me3vz͔h G*nx ؍S~ dh I#v7撐 >^n8̀ydfpV f `wӀ‘2 XMF,i7R,?b8i&Ug *ugqÆ(gd#PѾ0c3a=wK?Yg㷝~NS'1ṽ;(Xv>va8+a6*`@%h@8ƩĹ6 ž"ܦ8\%vΛ ]+`T2SQZ{ȱq:|ͩVYZe _ .H1+"{FEl1;{yhkxTbѣ6h,MÃaA3Fi;ݡ#S_8&(" ]lVeɿU#pv7.@yL]1!0sW}i#V:d*~9#xu/Ӡ\<ރ]6;0Y >:Ǎ$q]IH!9t*NV+ V\$۬ ݂Ϳu m_zO+b|6=A_gTuY|MVd]&qMa ,A>/A;FY'K/^z@h9:Fy̡)hj#U{m:@:Y{|w>b|sbfo6.z3( '_2Km61G}G`xLN(֎_(;hɼ *J2H ZdJقjްs!?7Ƚ5 N4"b08F}smՔI{1< PeҖuA=87ԡ\(0Y4ǡ 돉歮oCT.ZۘR9GJT0d#BɭM{D鎴_/ۅI|+[qTR&`l!I!?햓= FPC[@ɫn<%9<#X\ :f2j=xtߎ;}{yؠ^FX!%dvR} #?%rvR)7U-ɘdv1b}BP߯xcŅL!+; F2L gXLaܲ͸>_h} BecHS܉>x'>V m4ilKlO OǾ]Y@&/r珊޷œ-Yf3&K~Ep{f-r7 =œwˌ)Bw_^H%fEK٭,c>]6gxL%nT:zMX9*{v :9$$ 1Bi CI=#mv*ۄW9AWJ߻?F_#2B8E&ݺUyt^nKH'؛Ti4mX:B|ENBpA!S \w~;q,=EIK) sT.w22pz81W'endRT'mlㅬ%BZD}!Q&Dl//_o -`|z_ :yɉ(,>XA)L*)93&9A) xk~u1?|U!|엦OZ<_EQ[CWdoK`\]<c?GmjG]\j3b0-P.`]%}4A\uPYAzfñֵ |Lld^t—^+wPnHMqq|b&$S2#vֱ(Z^NLMا$4?l[j<. ʣmZsm>CCOi/>t5TxnH}! EF3*#Z]JI veL&Iu=WH8Հ*kM~+܌ fN:76ښT`q"cȡ#s诟!Y.l ::kQ[.2[r+tr2_2h~1޵׵qz3Lj<y:G^,5C-\5^48iV1Yt4ewldZU_F .)@$jDzq@S%zs82>(@p^nك^{20wlSJKxA똕2%tdA;k;gWy ,SC H>XY le2.TWqX⢰RwčՎ }Nw;Hmʰ[ j (C0[HbNoz3ylUM`xӼ"zJ7U)M'(32!n $vIP ١7T kÊ=c ᧜SZ:QQE^[x!/.^K8fN 땜y7 rVqׄ#)EV/5r¤\L1'/adeUT& &9o[9 rnEi&*".enC FRgRnjbN7"8W?+ TpȞ+ĚŪ֧}D,ޢ{QRfELBվ:R'PWWp֕?57x>'L\Eߛ"LKyh<.vzJG8 EcPvsf&]/5M1AN)~ҷj>=,$6tI.e*JjෛdIv$X+2_5vSbTEkA%-A*牘@A3cEe !ʆY`j{=pW֪џ 3tݚ,*A'@pUtUx~J\̖0x< ѝJ7gn_('W<|KjTeS ;#@j-śf]A@1K!֔BM[31VC ,(wdTHp;RMKv쏧"Ìt1 ԔdM`d[4;]$UFD7S7NUP."X8m'{U=ON!K˷L& |i A;֚ٓ@bWX/m^'_N>65o Ϻ{ ,CU>wYcr, 7{Heo+#d}1*:Z͏768]Ib?tՖYFnKTM73(BoWA"S}srաZ'"hpy TD'"t@8z4ۗ?T4uob&IwR13#^w0DqO{x俈A2oPwb`.lvs L+QGh(kD]5Ӧ |)3OPe9\V$Ȝk4f6fx8"ng{4ҊG](cXB ߅Ѝ7SdiPc4of\3c_-aŬp5UHh|H8:EK`e3Q& 3+ wZާ4P&,a‚y;m C\BG߉Jϸfth'm11n=\Q1|}9W `S|Wju$Vw ̓%EwxtN@}g SGii|]s1V5p_ T-ik=a\m#iM34O2ɝV}r~pOn,80:3ar\l.DHH!|Ls(v|P'W6(LV1L'is'l;=u2hNIWO"6Ow{N\.V%]Yp#/(sh!cq!0~ % ʠ1Y9V,[L4Y݂B xnɎ x^vGX@<< 4=QwN|$DgKa:ܐ%,<5%&9?-~\Cbj W6@$/ؑ 2GNآd^vVWX ! [muF7Nz~8OyWE$nʀs>L`>BFܘ|vik~ҕp &Dlu{LYek Rʮ{KabYw %̓U 3EīP%bƝwH`ZE-"s|8,Q.x}]g՟h6 fVUzcD{óQwASi^a|y$<9{3_Z}Z1-dfzS*Qدmұ~4 k42eg G c)XIYѼ˧ݓCbg"s5R-xڝc:|HB~vŀgf8Q2 ɸsɖAQ fFfȹãfs /*7nT5y@tz疦#G?إiTwS|Q'#L0ɨ5GlKue@D<8E1>U( EXWupN)WZ9ti iP #0"l{(Έ"^d̖<(C41HW ny]4!Kݬ>I4M%HY()+Dգy}=&,kB3DgĩU+ݿo\..l[D4QHҿ ʃs]cʿdW}n9LD0Të+DrQVYt_qոB(ޟ_>%ʗETMЁXQHt<=b&,䵈0aDc.C\w$$,t[0b8:Ī|#!"V9F*| @νqo[4 !Z#ؕc&r@)_S"fkAϢ`kr=Ѯ0^U_3NC,PdP&Ih >1݊X۟=&!|Q W7НB81oZ]Ft`m%f>|BEj!ZMgDȭ&_V60ZU۟珫uWIw}$&9iCrw闓̀?QQ$MZZ:-Lrdj iZոXLs +tʊfhuB3[KkD / /ժӱ01}֤z6q_qV1p9[#, ,`8FuI\l2)tcF_3V.0m FGՎ`q*{z$Fxi7Jil|aeZb|"&W-mCJV=2XEђ`u]`]"Dy(iP/84P̓0x#`OjW}Mp&DK{/D "4>9ciL&8Z:?m39M=8TdJU/Yg>FvmqL*ޟJۏZE8Z]S~FJެ_9 0%6AN/_;cԎ>7%>s[$XʼW@JKwz ,ġjc}_P? ܡbb1Ytk٣ ب]`p"HJ7=A@&WMD136-wIΘwxiCKB~Qx o:ż@=+b GWTw3¿-!誃́2@q)g6HDRЅoÜF@ʛ3b9@,\_مFU}QsQ9V ;ֺݷÂ6)/}!n%7. ͐c%}!%zr=z8,_ U?{/-r5Vճ>/Wg_m?HO#|Y(§`m]&5pW(I7X7yt5VuHÌ&OG y\dIOxl&$10Y_ᱴvEceaYq'WZP"'lNhP*H3ӨA OVyMAqo)Z9s$2uU|m䘳釛5mj0y_%hT ={?JC 8:*QsIÆ pM1-1/JODzS>=\&d_q-3pg6ix9~#1x+2$B#` j-=t|̭Cc1ǩJ@xdojtd;3]Fg <i,V] [1 #)VkAy>D nm=պOaXL c?'c7IPl}u.[ H[Xu.b R֡3XYax'aZ[({R 3~Apg3H)g+d[I; XVu(6z[^UIN>M?y&àVl  i=qdX`4 􌜑Ӂ{j,r4" Z5@WkȨC8S},=d4'c6n8k9X{e\]70!gYSKd\4` 2Rbt}yw呶$xo ^L8m # ?u'f} 94QD ȕn-FT63l%u_VԾ),c^mğȰVx,{7g* _7X305_7Ӣ&Bp@J~c‘gѷe%jh1va /y}[ z@H`2YBUD^VIP@EF >G1,}*nD;;}5 Caf:P,Kec^/n8p,uB[0T:99x 84CW["+G׿*ĺ]3ࡘ|P)7%žh intO0ֱ#;bC\A%n[*n=֝ZR$ 1: OaiD=b4Dznx(C. ]"by,&!"ȪuzR+?c[-/@F)ɸ}%6QG\)+Zr۹C&D]v<۬JGD2I2fH/ &j[f5%#V}e F̰",8s,^IW/ֱU +|a8@@fh- r}\˥Az2#?3?[ZrqO20rBu%t}0n#  haY աGm-aJfzH.Ayl$wξE i5.{p@V1w ˀA0x'q 2X!,;)w j"&x0Mtw0蒵9yE>;xbF9߻]4L3(meJ%DH`[ʇT*ɖ[*@i{\A9ߜ0R 8|,v>S\x !ҜRS=SPBwRl'fLxybb=2}D(a X?:f WM}%‍42ی+;4xl)y%WA7mý@(dT LYv*45hm\)zrMAv'}̴2v(} D УR3>%Ȳx~V"&9~dF Fo;]Ou3ODQ3$nA&p5p[٫ }0@v5Rk˗|iC3f!rKQ$ŒvOOd6v#q;5R:yMKS3h1#}I${Z?{qJJ4&3@Jܴ0u eJ4DHIa["~ml8fl+lB$HEq8@0ڴmb6lfCEW$Le#<3-|?}>¶.FPBp~T)bb#Kaȗ@qi_+с[Fq*e, +_QȽ0kz#dK{9\ߩ TF!Ju1 G9ƗG>7 ,u},%j[HdL[I.@6RqsT\(z:@i[m73 WxE1\+y`sEzYe7d$BLͶjfSc]GhSR35:qAǁ請"qkhC7sK>`ՙA7y4Ramm7;~Hި}ެzEKޖ*Ӛ}fnOy݋.[-gXeIa Oϲ&p&h{6.Z3bMʈ:EE4Wv,p}"RH7*\$k/ajqQKI8ռ;fU7m,Ҧ"O&DBPoL?a)(|?Ya5&ZS Ws͕װVl/{}ȡT[GXW󅚷_ûPVȺ6W~)pÎch[ v`twHvi"1,^3$Fj#-'f}f 3^'bjD9 :L1$qk{Gg%: =p9oI,h; <ÚVI RK %!N9?< |;#\t:^W1{| ZID ՟gV&-Tq#@8G=;BzUmaКIx,\ads]ko |%FNEK`p V?SjrD,"Hm$i&!nP+Th1+ 9C -ARl~HpCW /6|0%8w$&r$`VԊ$я\`5X(ygfRs?9_-Y*F_9R=~4$IrRӂ?"3Uv@ܹ-.L0Y:XbwnϘWs; wqK_+z2u llPN#:QVd=%LQ!GH|uev@:7+V޺z%1bqpΩ\7e MZN a{g 2 ([@Q],z;fPzR|pzmWέ(QT BڀFAɷEt3MNN(rt{WEI#4bt77$ (5˞LJ}M0" & -@/(<CQ]C >Kd_yE2u zYֹ5hSJp6W&ݲFsM1 ̄j1~rϏlÂqU@ڵxnQ$:~1klě \KZyzh-7LȶCL.^[hrHqW Y/ g;GUxH4mg>OisJH):C }jΆ@:I}h} OPʴv3l7c?`{=;$)Y={ #I!`(-N0e%0#fKr|eJΫ <[U)Vc!Ht;CӬmsnN"XPO кd ;xEc^2QyޚvKXY.p}h5|Bq)['ZN-Xuo2LH_Iw@ p&;y(!r5rNG1h-Bx6lNQV\J FrC#yۦZpd*}UCc"BȊrfA 4PMv%)`Yʯ3x%&rL.H|z*}=qv鉶Sf_6896 +eC">\^oQ!16^| KVsOD' A70Ax1'\ &-rڤF mn)݁2^G遈ytո31Pњ͙ГYp%[;ӡp-2 >Qg==jjUk Ԯs>};V8]`\Sx^`؜ytB$tRmvB weSdx-|#E @bC`8 fyifņv_1K?z~'JҼTc|zF44Mzi)**I9< мi2[V$ q3:\Mc"3[/VuzѤR6\` u.y冈+2&uL9;$# iO&3#6%fj芣A tg`au k_cl &.kMC?^9`'wZ411>wK3}0J +KbI-  9J0GN0VƃURBꙌmݼ:ꮪ]#E6*?!D<]hfn:G$5~UvSB;*y\%J(pW|$M<=GHvRc_>>c < +^"HtOf?X (Obf*ጱCݓast@kT1O[Œ/sZ G6Ғ!_p /ӶGil*.-Gy>{߬'\J FG[Bx:,ˊoCgMnh_5t'GY&΀PkԈ侯`+^M,oHs ~bQ"ٝ.` ym*v7 dǶMW$ܳS {q4jjd~7> _ Jbk)-m|hͤ7^Bv"HZob:OzR߳W*eQ(H˽;mZp &A͝n5aiΠiҨmI&w"cq8A;AŏtC‚ʡ)["%_=o ki_{mBTQCe볌9![&TUܪ6 t!4].zto~pM:AxqR-L1}% ʉòd YBq"܌Ol)d;D*\67Q:kV2:R3ei <)Lja; D>a'e#ݴ1oSv=uk ƶ=ou<w\ Z}|+"tWnk̝PvL}'[FO;/I1bj A>~`+cEs@sH< G|I>y)cYԭ_kb &as9!ѧAqֱ8q=8DxsSPaFjLV-_Wm!)(KQ$Uٗk}Lov+.W7a!d R0G-l8 Z ]lSqJrsw1/SMiGTMX4oDc'Fp7b46 w5r:'-BDl:Yhf E R V2sR}tCį@D]ΟBiiC0/ %r&Л~Y)5^ (LmD0m6 h QpQbG ]IO=(I*rS^1T<&eцg"Ey b1G&SF2`FhyXڣ}&[mFڢ,Ie]%ha̜|u5WC|$sXL+y'= p-!)M˟2l|4L0{EѤG%rh8;D &2-zTۣfZpA=^F¾s5HU!p2ks6aTJ-%ሁE8-17tYmu sE8yDpigBqi Lt+#*S".73ga*P?HRY3TXYxQӸhAqd{ƾi4 rD.5HA)~֦Z/"ϥ FU7VT4,ꆻվyn<箶 ON4О9翱\H Cvuib,|Gm*/>f? d Hܣ$ܒ8<= J "`w-> M}hSJSwiRp+VXxD9԰,gȢn-rNbׁG#Ib=NߣRs;z֐ 0Q߬@B$4P 2=Ѫz&%.;xoBU'rZ6ԫ鉥ޭ"Xw qY`z,P#^|t:^QD`=Tی|`#;Aq,A&f,PTdy}x2e>秣h*c8ejԒv;EiK97VSAkxJOivԸ!n") ξ%w!.9X+IԿQm+GWI*Ts^36ۆ=k;\4H *LV8q-!/d)7Wc_XvcXYujv ̞+rpjf?:yŢ}ǦC{N:L&i؟GBczA@B_jv_la'QXiZޭkUhVh Y5 -yk6USg냆,jd(n*t&q7TzPZԶאM;$XR'WWHϜU`r>7rmmZ \Ɯ_n9*/3@Α@ږ$nSc~DFm૶XR4SNjh炖: і!I_e u8af8*S^% Eqآї2%:S\  Q;sE75g"ZD3ō 'q~F#]NYorn~/ 䀂n9D}/ ^RsqR+(RWD/EB|6ePnrۑ]b۸`ΤF x*̣濻w^/Ъ F(aNTb"aL  ̗y[f 9#mVVVwBVq}N;[ͼ53I͊+ >kLƝC>7[xsNpF[bJE_9)#d\T>89'iƑ#[I_p^'Eգ6ũ7nh#~ #9牘b .hT,#XVtbf[U.B`b?rvGUzz˳Ev_f_B Y9Cr<:+B'i_ZC 2$F-VONy~fU|{M]k:Ci]OaR{:ڍ`DRc36Ж}tiW>f+={xTX^X`!@F^Elhbۚan˫+g-ղĞۚVڶ2#tۼki}OUl *q9^A=5K,>rzdmo8#Q>ocp3{' լ4mFd~Pfi :HHhi(֥ jo]1ۂZsZJc~BK'qQadWn/D@5}vo*$,Ӱy_m>{yvV? ]37`Nz&.-bur HO(xN''ZW_2ƒNo5T;#phts}ƾChop>(ܺqϹ\kJuu^P*pBepE ۛ ?HM=[T֣pQz8=E5̃\{mSdN-_/t'qxx޲ƶ@ixWlU f dlXhabhYCt 3tn&/9,Qѻy;й Jjxf|n٤m n BwuG`mhyFU-6WM@.N.Jԓ}#A3*hqOQc w?x53 9w1uKU5Pg`сhmd3[@q}siY[2ؘ|T6 tlt nLWGP(K5&@)=/2l+ᕂj4䧪%o$VmnmCPvo!cmZ?c5O~A]< aȊ?%'>k0}8^o2VFՌ=c@ZJ)rHHi$Z{e e9">~x3841NBBzV d6>tT+ybVVvp s%+ Gnb? ku!jQy] 2ä{~S Q\^Ýthx%ڡP5[֟[wsfŮ)6 RgarY O` Rі[$87KGnl3x:e+b"]mEh2ѮԐY0V4.T|2ED`3BhLro@#KGXUrYhvV''-)gn2(Iʥ_"%|n̮ _:WPN :PoR\j5f9nR|C4sͳ˅ugyϷ=žweLt/H~~XW B" Q(̴G 8*`@?Ŋ{I#o(n>ձgC._FLF!֘6^7Fy ndUAZe|$8Y<٠*gOb#]wĒxe}K¤ |~_Szg_7-5{2{YYi!z렃Y*D&qz2bEmw}&έӟCpBo ^*$KRJXԖp&h(3⫄(m {BeBHqb^Y&.W69llB$=-(6Hy>ǪH?9.hSƞdaL!fg;u`St :():[C>1W4x>Hטᰪ,f~2#v7}8 2 q>^!<(#Dɪ[f/KxɍUʹ(rU(&PjDzcg] > ̞ &83]s<3$+[4+~YpR<AޒtRL~H*xwC8V38@屮^մjSsj f%Q3('q+#P s ߔ+ѱcf֨stU; X&Z26k֛O 0 C+ "O廗2<\ $E wUswxJf>J36+ő,^b5[#!Mfx*i#{P|qM.Aι-'lŗ!N ջY2y}iW:Y)?L91E6 n&Ud<&:N8aUë9J[kkGkt.AnW]m *Wm/h^=3ȢM/X)AsB\ h =t 8Fib.QWE}ӑk2o^U`Uh0{eabhE! YO·\Ly;xj?hCv=XS7, -IN,m`4Jz춢=ax2%;ڣ>W\ڴYac2Q+9[1NTS}&DA'(Y1xfop+#DbiQ[s} MZNԘrs5k=- t)>KX*l:Uw, 6nXjheyg7zr,ɔP;x&rwH-aBMf>~io񽳘.*3)l1~f]b]62+{~f7#,N>7g;imu9p GQЧ<@-xkgqn8a$vc && q2Xy~*ᕮiC+Zf?xȦ p>:-+܉ኈ'9,6,|Xe2̨QzkbFAyx/#WbJ cMC89gYMV~:91|Bh@ђʗ$8D4 <@xTFܽ{5s~ř~: 0%|}2\>H^ǠX E>YaGO}Ҋ^gI]n̮]{TF&ߣ2-=) ,P%T`[)C D2U^}wcQ7w5sj}*l)(<0ػa+rXP6~]h?eޡ8|b(&h 1G{܄eXʩj&>f޽PYVs,ȠpGE~V$B]Zr\Cm/A^Nik>m<|fE|e3 6 rg_違FX]es> r?{d$cs63Ī_ڝmۻQ84΀\K3sʙ5@IxbN$vs]! $;qW^N7oX/_gZevp%gL:hH KÝl|j̋#$[auUz?oMXpu-XlDe"b` -CifzX.2 qN@avq*dVeE}܌|gIFn% 4sh$z^ h5 ?.&%?5@)6zB[=CX yEW02p̢ eߥcU0;NuEJ@OD+5Mdn87Za̴ a vy{2[(/|ہ{"?[~0 <nQyإzҋS Ie,?cN##_~g­ٯb]zya/TkiBbvN;H۶/fuo'XacަS"95ۏw?Kͽ [V;E*Ь+DiaܳK oRi4y# R`)gt"^i*YvzGb$"_4WW#<\.+cǢflV-pIY˨tGl)Zt.tsߢK:f6!N]2]}pmb=NYSVŮR6+>[\׵jߦ|ʸɄ|?B:orgcвe.a~h/Fpt7H2j~ ۛwtDH9}g$Eg1TIO"!JJYDuY~=VA`<"MlcEJ~Vs D)R9*;fڐov IGjrP 33J_O4."wia.rF!KgHvY{C62 5֑ C!\^R7f򖞝 y=:(h>ٶ<]Guj_Up&Oߐ\\9d$Yb9+Eo#%3.~CO\cmLø"`ϧnSg}w:‹2AmJA`dؒR%G(u]:8s1|y&)GCWadG~D]dq&աU,굵3 %6Y5tqч^D[]J7EeR=Wٗ\j%n%6uJbVƍo؎5.~,f?Q?A :UI_v37F78"+ShLHl|xP ^|Yv>Ǥ\1⨛|x) 1QzbZVYSJSOw/xYlAR!]RgZ!sr[B~l`y3yO tC4 7:VG!m~S^cn/Hp#6Znor\G^ҧYVh LIw!|mJiib4;~|V埙JmV"xaB}W]Q&6In,6A%V!6\0BȄgM<a+\OTLF;nΨ:>KJA,h$[>p$ |7L6F0VQAi秌#^= ] iS͚(#Yf{U7YFk֌aY};M[ g^C ::U,imy6 :z3u 4š~]c|(fX.)9}Vx:#O z+jrEk)[nM\h`Gsp~[I^V`J tvG8##; |Q:&otq &TI%Ƅ.&n[CovBSDA{i=d*/Zd4]C*rd~iI 魳\Im_85TC_^~1TVF٤FsG12|Q4N55Q؜eYi Gag1Wy1W4IZ1'WnᛥLoVyk-oGv$%8?A?>{IƮ 5B sr3Bhed`ƊE#ȳc*pAְGRoSͮnBDZpu$Z04S~8 VӀЖ{'[;A !/HuI_8!vSr7xjGrdKWOn} a7qP8 Vʽ,wH=(M9k.#$ҏ06!P^^"}_ԏgyIAC"Y)xv!0´燸RȹeE9WPD JWU-No,XR t-dMBb.g¢>tSY! yuR(u{+?{fPٱu?uJ̏x,%~AdaN-S!2~oEû'/Q5`x,9a1HYbNb!^p'CghOv˾ɾQ%Žm5H]64`-J4srpOU]Ӝ-/ t y caEĮ|O>OPl#.,VKL$ K|!)pLX1ȫC_l0 m"q9_u<ԏa]6@ ڹzk\ hT_ͱԡ5"iQq⯯`v-6bŰ:(qa"֞n2$]\_V'KP}枬W{Rؠp1Fmo]DTQ>5=A$) +/eÍ"֚ꉺl:LzTkdncZeX<`@W+acMv\һ/GGLZme`䂔l:S0+B{Z-E _Vs \/NNuV+܇u@*lޡ unrv܆3?]e '~_D ;D& j51D=O,'i}&R+r.(vi2 rv+ZJ'ĿI |eɡ kC?kE3A)E+[u%{d]PGE* *g (\$\e{_Q{03BW=} RcXDbDS#%Q"o\/7%8SNׇ̚ưGEP꩐ [f7eFy#+([V\Gb.BB E S'aAX az޿ A4rY(>7.Jx@7ޚv.ҴUtuJ;~ Kw6GT-Y.9 NK6ź/vH}ty >IկNZ o9Q5w=BZG,=o!ʊ(@"X A05OǴ~SIY0@ [ lw7!k0uZCN`A)яc/.Rc.h\0JN5ܾFSC&Alj=y(5&?mw"+E+zs<~f4plbqoqQk[/VDT.X0Pˈ'e.^Mt 5wxߡlj֟*ͣ*=G@v@^ 鐳wwu,9 IbaTw#C>hX}8ֹCX\FLQ QjFH-%rֽtrR1tdf/*7r=HBOubׯgm*:ancHU/njz>ۊ>ㅶtKй_v,*(ZiŖI[&u\IqYUOims5^D5w*t5^4䜵^=;lAW σNqtvx7щ9oNB ^}&_N$/]hdsȡ`ɉ(/wWs~!6m (eì#N3NO!m%;qYBۀͯ'B˥V9;=%װEtH.aM$}i&)~GE J- 5]z%ܳ8Cfv{hkڲ^~%7S4 Eվgi%t7ؐhWfv%kzMb6.Ûk8P~e uG5ot<4°dQNG.7w$| m˦w<oc5C1=qX#Y~#1▣@;-$xR؋~TԉŠ3U"fh63#\ӝ?PsEo]9#R0$2VA8ӎ LJwv 8gWqJ+ts ̾bLOjMe0Tdʃۋ ^rKa?$ړtx)wjti\Maq5t¼RlRl(UK^+P#Ĝc\P׌u]D :Y@Ă{' ${ӹZEQ X1mҽHrepJY2yj5+:m24`hpuغ/+trs ӱyu \ϿȄHC=˂Qm& 61]w.-wLx%N1HI} Dc4D+4QH3Ő'CQB^?9,duSܾ< 6!+FhX"7ovE,9d5?j|$oPr\FF݋%C'pQʂFl+h f;SAD!i7Ѥz,哊upOoRyxɌ&v9c?J v_xεl[Gt6f#l0ܺ?p&µ&8f;&5TOQFb ˗:=/C+Sky(TᶘMCO@Fn_>N~z珢'֍G|*b:k_Dt9V@)Sع8rnDylGc44*LuzO[CT;4፷Ždq;@/X?zIsc<\.81|!_A*-b1Ň@19<~G[@KˎsKYX;q|`&xVL ]Ӌ'$J\'fX}>U5;z=FWXl="7MzmA<,Ecxi}s͉~7$a/KV}+GS VFd&z{#>w61"S\zb^,Y+s6=pJBK:M8D\qcsm͍!j)Rm|Rz/VxD$ؑq!${SaɊ),+6UaЂ xnyݼyir`OX2lms?c)XSVB_M)+6F~͘0إ#P$J.BB7ѭRÞ } T/m_8a߷ȟx_ orMM]r0F]{{MT-J1y7 Zq#= j+NC"kUD?oЧoW2:˖&Pfפ/ FnB cQ\̓]p \ZZ,Qt$M (n˧}V%<3e8Q$sq&4]G,~d#&AWCYC"L( -$ RQ${ę52(:s &Ri|H0pf2W[q?ys}8{rNC5"vǢen"Ӑ}e(T3r\eVz9ӇT j iid=  ~hSnlMC^j fD .V `Q-ijm xT*7IYƁw VTY\53[Mip#~mO"Fn]|aUfy%6|Q5RCq{D*ä1s?buk\Z\G6JVGAe/SF3@}=ә7V0X+Y]ˮ E,D2ɲ ![b(E_&}%;7bWtALy Gɥc%AB =i΋q&RI &W }Tgǥa+i9əgǘI|krct% ϪmLg7[l%b)@"2+x Pцk$$#%`f&9z%GdDھ }Wi<:pR`QӖ%m+CS15%_ZX@ S)z]jiDm hoMd>QX`V? _N~ΖX㊸ZĤ10:׽x7Oàj/^N2);ݮΑd:QԤp-3mjW_w.6 |R600WU1Lf:KlHyxR?K=GxJ-Pu-6 zԘ&,6Ffj=9g~XJ(o~7fjaHx׳Y$nѲv_j|2 p ҌGrH,=/UdґM8%ⴉmC+EcZb +$zPALF~5SAt_[ɵ)PU {$/0f XNji&:D]YSeba7Z4v54 ,yoP3=#"_j8{oȆz~j f@\R]X!-Y>$zkcCb sxxZXVgbǦ錃G۞K\ě딧U ]a^}jkڵ!P_}9UJ{6v@L6z5v}e.0?id9Jd}<8F8j jx(DxwjɆ֮ֆյ 8&aVb&co:Ү-I x7Yy۟Q4 e&qO~|e#k>ud;* ˞ٷvJ#4D=5~/hU&bA*oCga m23bj}Bc!,9j<-hOO4g$b|Aa /B`z $di <Jo&b~ KTk8%Rh?rUh3IG gKy3Y`x0zGl}{uJ&Cߗ֞O3b%~W>Ex܉x.o |SF_7/4a\eGDH.4-^2 7;z#<4+16l|q|@Pt(_0gOv2'zۏ-H|JxlU/-Yդ6nJoR3UX-m?2ծO)PȀZXlXD/)aw%}Ufp>~D*?sVQy0Y"-uBEm, DL)"-W9J"$Z* lSultMF 1jB9Jʾ0 V OO{jg|"&,mm_-Ͳ [H#a*xÏ}ҮCp]{8 '뷍',[xNrIȖYH_l=\?oDىBF~7|od;itț̃9dicfb=}#_cR$p4Rb;fUze*mAOH^/[C޹ZCv&#+qP͆vFr&ϩޙDC&~w>2?y>^4/⻧cd7?})Q^Etُ8o'н3Û#Jۿ =^E=r)֔,JTc2GÏrgU{ wt>Dٱ^tGl:a)aRoG9Tss7Ǒ"N{QcnF|isBvaZ>k,hU!`XS|RĄAALj*Md/z߰yo)¦?V'WЙiWP[.%Cnp+cQXn*=)Lca| x^7PB>+j%iv?5ȿ0`q9nS%f^Ηv)+*w3ЃEJO,}s X2YNܭXe418<"@NV r j֪Wgc@l ;07W2YCkG~ψ)1>Z@$`ﴝڨ^T\YV `!ew?f)yDL=|)qQ*0Gq``LB On3-y+,OL_i5oIRͯzij:m@^20`x8]9T^$cޗ%A3|;;,z,J@QxˎƃٲAyrM§y9Fsp?i9!_WTm$7%c#!Hf Fxޜ1.Ԏqٔc8:RBvrYA:f1ۙPi<4z1>;SG#Œ mcaOU\&nƮc˂@*Q ̓^hDK;SLR~;HʱWI6%ZN`PQ]5YܡMd6IjՃ.#M5*LJA#)q,huρZɯw/u=)_[:Je'Åty%jq'ʼ%R y"H+"gF#ݭӪ^vkIvѝahA&ln&ӽ PEvvOB:i0O^Jx.{hj=J *:- MW K6LWw/n~f}B  JLV:bs_*_u]^CtH『M7ĐMU ֋l@ #L]T+% 8,H_?`s X{bAfs@KTQ-)/[`a}LL8B^9mZNdfQgE9AGF+@'% X2@2um{*e=3'c&bx!SirL -M =oM-5M(ժr#t6(T1gdl^Cɷ55Pg _rؽrpl!~T @z:!zWӄMe}[I/]ҁQ @@8ہsۘ|ieW ,m&ڶ ߱շBs%{@OyR< Qyx$U= 'E۰Zc\oɐnH1yT ǼX09dCvu)ű|@zճ*(,Ʃ jrvho)ZTrepUG* b?37zǹ {Onc,2x[#cPpGwP\CNOrL5,{ޢ4pGzb]^Hwi4T$U̞?x6\7&i<$Oz:˝abc&"ej΄Ұ$ W9EQE˘lhu)x!U;4]'95I4-O[Kn<"VPɶ<냰ݜ`B20@ȆI 1Ywk247i/P,`&S^ ?nn^ 'UQ؇zOr`A>%@vT|`6 cCxVO˵aR(/^h(o4ܚ-VwfD \2=ոo+r״CLm#;a}(m1 5ynj8m,-G"hqTVXT0:u$uރt6ms[M]>pQʇV@ saxBbhڏ<`۽f^_X0{_>uo`9 迌h>opBvspH>O6g6v2AU|l$;g9^iTi܃C(C+~AN ŋjteRZe #}h8SI $J [Ah\U2jV*+bY{,]k"|!!ZdQ |WgsWJQz3ak xBuD@yJӊGGYBzs Dnipm{nH'3eR}>-=UMS:p40vYvHAee4F!`JW*sK6BH=m%$ޛe{n!➀Jg6I!X 0Cc O2w dX }FnQ9-Nd)"ft$ڋM9ùFx^aSUDV u jJNA]]+iϗҤ!WTRT᳐5yfy4M9󪘊<sMFw^+%{9m c[Bh9˅'_E=Fʤѐ/qz,?IvxvGe}ˁX(Lm.+m"q$ġǣVs} r1k*a9|}Q&0 >Hտнjq?{VAn6U_q#>K'y6Em$aqMU-@+Gst0g,*q^p7ov GHw\;4^ 2h̵?tFp\c=9>@l lㅲp+Y@I8 ZѾhQKɧMZWZ/Iٖ KIL;S xt*7ζSNXEz]~Ѹy+S`-4KsMYA=@HnNU,Fǟ5h}XZ/~ҍ &@K׃Zξwb娉+o|l_ ׳\_Ί$wZc~'W1{Q_z`9nW@tgU~9̽E2A*|a 5=<%{HĪ$rw4朝'i=:$+#t ,ߵ&9>]Px&+GG}oaXhׅ^K~Dbjڔ}KcٕsW`BJb|4yYs'J V[y‚L1{Wf OM ڒC$'L|}$R-ֲ0_NhpaqрԡIAMó]HĨX2+XF/JkL&rnw-GzI!ZB*{%]#?͞j\ȥsġ:E01[I .ԨUX"=ʒAOp37DKpe2ߐCYn{ 'nS۰^!mÓ?d41pX2l˓`0UBJkwpDdH)?A Yӊ! iFƧWc9u_EW_nSAi;e0uIz+4U L{u9|G|/20ѾCr8F69K1ǡ-T'вv gZ1&Ҍ5TgIHZ },OѕCB7j$g ~,1ܒ+*;FA+sǧb=T#~/|eKs둻$ f ^J*N-ph.\ u^Ӓ'(7$忪qeJ aŋ=3g_ y ^AA tbe/Iֹ3Hڻn"r<`%|2ϟ$ɮLZ1ɒMk^k)\MeH]pWgy{:0@o F8 .&xo xekʕ UtErXAEDVEp@U p+fU-`ڮ_9qѠ85,-F OpRHf,ۻ#Jˏ Ocҍ8_ub9BM'VVhcp%p'Ve@ǿ q<7,k'`A),/lTV;t ;^Rdf4zkYެǯ8C+Ȥ@piLm͙Z 36IsI>mRaUUq>h?g]eTKBrB+FHZ6奔m m[eLc'SQfC`UŐ0Vi'{(GR﷬\!%.a&IhſQMaojTemɧ>Y+ .gJ+{K WUvPSީq+T yD Z@|`dfvoRBH:<-!Ȋ+}e=i T+zݭxz2oKYYmueS5, 3ځ.v^[nXDd^v̀ b l?w&,MxW gsז]|<*/QY-J\8j)\qlrz6e~s8*ӳ*(p[9W%#5ut"$ `e/l9 yGAzC0*[Eݹ&}P6ybgΒ+{._kUMMX渱(N1w9njeuZD< N4&{陙>76@fsGvei)Ζy-͘~}!zǨC鐇O ?n{d AygX^i0P}Ki&TWyDsd궸Zi/3Ivf&e3P.>v* Jy~y?d$ujKK{Uu4ϗ$f8hTu%"딦\mվnheV nx5Z[.,?ek*LBȈ*Q5 h<]GhRt1,w3W ` f Dw> =NF@6K`]YڋZ=z)tZZ {,J J*f)jךCDd{*@ÍظAu,Kay,}G/n>ݭ՟#/2G$Q*؏ozH鍃q,QueOlXuh٧·rڻ/ɕ3 _o5BOq>n4?fR+PvAۿDebS|Խmm.\6GrXXoz>1 Ev;yL9㟘Uӵo$+hoXoЄ[c4y^k(dj|e)ꢮqK/5)i +,L/ ͭVYDFրk0PZ>)9d'}<_P?GrpEfKHf&D(Uڎ(e}V&?gX2mQ#2I2muVa@f$v}xP4*z $k#c p?,UlQͼ0#@A )Uh`a]I˪ul8wpKe,;hH; 6]M= wn!ܦX* m3gQg;G[Aͱo|{e9maXL 3b~C3Z,\U0m?*']g(ٻ$:V!E A>VJʔy"pI+D쉩q5X6_6a >-քl%Z{~+'Qm b&isz=]Uun3]ڹ2#ar$]&\͆xW#|Wb~%h9}|õj\>q%م}V)$t* 4a-f6QgXP< N*J:'1h;XZ}YM(Xb0CQp$ n- EܨmATNۂd? ̛ v]R1Q3|cz}$hronj.sOmoiNœ7vz@\b?m.<Γo11 x_6A88hEWȕwE3H;1tzX~ -ٗb# GA:*@- LV?޻@-i6S6O}~`+dk#po-1"eoqnb8vd4U ѳ-9+͂b )dˆ,**OT{2'ҭ2WKQXn]Cimr-|ٻu))b0|؍ sǭ@09K1Y9~mS_"=_tP:kdz!/k?Ѡ0{mi)QOEyQRE(`7lYORֵ=6:Jp݌3JY1Ry)gg"oU9@U$<&)hF r'K)N .&8Q%5vBXӦ/+T@ ?ڹo]5$o;/{OsO ϜnRjrD- YSnRLRHp̐<C)PHm>Ţ@AGe97OO ܷKҌ9/j{b_4K.pca\E¼P*?/Fe և BL"*_wBKQǦkɟz4@ !ꡕgWUV =]W&Se4.FJ7Qǹ#_)sU e5* \HF1[U]4&Qp棕hjsw8ն '܅B4@LGQR<7*ͤH}s|D5H͐MFqI\CײZxwlg'9U;W*_\:<5&;-ߨѮZ<\W8^#,ĵ_-!%1ebӀamGw*OpHȋ7 >s:g-7awԱdΌ?Ĉo >sEP a"l,#j: k[j0}W:a'[!H-DJ}1G:eVzRr0/( fpR j]hh},jPVlҵ\GO XRg_`#ZӶ~[Pxj[]z6-$Zō)܊FqNQ2DJ, )>BCqaȋG IP Χ 1L[oZ/DPּv[ٺ؛V'cs[*Ш0$ym_wVyvUC5@J >/,gu8\.1I  n6d\o6+0&sR,8+peU8yZ(Dj_DXCHEnJV_ͬ4=8Yn!PEfI#pV^׸j&ιg^"!ȫtDP0/XP+XՀ%V- p4--&KX`2biv۴_/jխNtꇔx 6uuiy쑭Rw T*H[*Y6?D@ gFUc$:W[-_kzx,Iou( HO1SROu6ʳ$>aZ4"WQ%D>ulpS=x ّ!Sf> ٹ߼^aڨ|*mP.- 6!2B˞yPh7bömoN̉SA!E%׎v aIebK'&["-FRٓSA$njWVH$ aY`6۱dpҘs^+۸} ; p.nB$_u'2kHCݸ^{-_=+h*^HjNĴClXΌݴ3&eٚ2BJ+<.xyY“{cU!XrɆ 1P~K8;ßAl)ȉE _BhB]GJi^Z- ß?n0SU\ `z*#Cƺ>sgdM/C JP`[3^ϩNs) @Y9tTt Ibk9lwֲP-;rWBAg#zy0P.ox ̊Y']E6K[qosR̯p =( E@V)h^kb<>[u +"wyH ~k9%_Is<a`i:*w (c6q[ ޒTzZ$Z^n A#q1iCX"\#zA*2 ;\X˘ʵ4Sh' /6e fM#!ݔSPqD7-o#>6 UE9ylmPʽ˂hZbbEeIRI~abS@UH{qR$뢃7fVw7  PVFfArOGptK+5kwվTXI@ȬCfIMVW04Wxr|tK4I(z/?g> WL,Oʈro=`I#^:LVuM3p,[bCїCeǠGG`)ʜV}<ը"8ޮ j4F.7&;/]N̖}N4/b7MX%/mӋb$,<3n ěXO`jԍ4H9'BX梍 ~g?%ɑ8CH`Y!q 176!tIV^W w< KC"GtZcRK *) 9AinXbZufwv:9.J~eP3rV^ (\Mۏ72iZecrqW ό|]1g DK"EC$Q"u&]!H-:9)o0$SkKo{JؾMQ6媣Բ[N)a>%]N08?V ʕXZ_45ɵ|fn~Av"֭_|e.ݲtiXʩAA60\E RDcBmL@|863_sP}H@6$Q_ax !Rka!1ɛ.o0aӷoYA;C b 3Jfhƒ;]UΦQN,rjYӷW.vV8j^)Tiǂ&V!-(W3t޹py@*5B$ &④`/f*z(n7H݅><,j  ΍q̄HI$7n*8K]M`.,Wwt$>8ہQEl>j Τ*; ^o1#/ǿ=1Ng>W& WbT(APЇ6'ԭr+Ns1#PEGI >;NdyX˂x=kz-z q?O,+M1U/eldlLEuc^yUE*k0Ռȯ^;w$ :̽={%;n)?}/YCV5 ֊P5f;Gq*K_䙡\He#vjQhIV?b e5fYP -F=,~x'?ui 6ic{mPt[#Z"7`SmTtGt2o j?{yXl{⮶ g:uo17G<Ѡc6w-E1nG a6 *Y&i!9KrncEHRo0A}HF[vj*{ͩ|)XnGM̬ D"-1KS?椇v=1% xUčZcZ'}ªV螤VWp"(>,̔9LEls9}aj5mFsU~N P--Np8MMj~<̩ 9]r&ăW CJwg{1tzAC@O+(Q3D4oMr$mǛbm|z`$1d 9ɺe%L&t‹7ݏ@]xCwJ!ImH~Ct~U  ;U0p#&QpmOI'O/^)Ǧfi] ;1lS7G$9=4`}|R>YXg`{o2TvkRjr) lalcq3*Tv+<L`lfBfLղ>D񈰀`FN 3Ao,}Wz-5ȍBN 5uՃ]%1.oBMtW|}'TX(1d=2)dv'<|4^vԶ.!?3KЫ;⯷i$'XnulCp(q*mEG-Z}i|$|fQͷڇ> 6kU( ~Dryz_|9ٚ-F(^z{Vۏ -n0 40ZA ju٨1 λZ|OlyJB~p`Z8zIEpH˵1LAODe#hFr`Ce[4YiU. ze)<խH9[L6f<~B(i1"#+nW UdxDrPEë L F{"tu ur.FEWM0T#u!P|ߛXU͖Ě"Cϝs>X3CVd~CAG%?xW%w(ihj@[YVc=2v2~QcBS6PjQXKUޝݪ();MH h͠W5%`BAdcczQ=PE6!ϟX2A2Q0,%+8e߉.5 HZ[@5Q2ѺdT3gC̏7.tt)uX [r~>xnZz n+\O7I'%@TìB>e[a$ hGXVk2= (}t}g<'6']-1i\%v  @H-dX"Mj&s8,,ۈ`?U8ɪIf3) mG]AwĮT9/_62oiZ-9_+0k);e HNz!냩0AfStj]A;B@Kw=}) z~ 9Ӆn1w5~^KW!O*^ڊ-GJYkHg @ХfvxT@_`4Up_Y)]R^uF-UxT7'WjL ?ؐU ZPʳZ/8O`LK79@S K}1l"ژ}3tv&=6|dKDJ,3JS^U}gu?LxzT oL/>OfKq_pJ2P <տ5pYP:Y&sMO'jb)^&bඌ?6G!dtS@7h`\}r|Fp5H[ k F2,2žD]xԭ55xDM|j~`yWVDܙ+Ҧz*oq.!hխ^%J@.XԹZǒVZ&>HӔ4v=.GjW9j YBunŚ ˨мjsH ѥr409ls[vb!(j^{ԓOD76{*2trAkXd4?a&-9m"Z:=9{J|ZR}| _<8Vkb :gB+q:{ _#Ѹ̱%c ]C#qcP& S _ca T)' / AbmUt? ӐC/k s'*צ"AM,=Ӎ-|'EM~\ Uң#0c1{.2MV4{LTH`DcO0]GOU0g'Z^ؠ''B7:n'm;:$YV{:Gjp#w]+F =X$g'>ߒ6T,VaG+4 絎8^*XdjG'qkDMŴfbuՔ+iO[+^'% [x)]x,[haZL?-B&Ę<((^~H+|XM$>`V -4F)$6 h(hү٣7 3,Cü/ܢW6>3T ?SGp$ M.01t(PeG ^m <¡DI5!Ū8څB[?^_b9T>~l/dwBlq-ӽJ#?`q|lՏQYxi`6 JVW < ?O)C$q4dAayr l٨VBWQA'WPެiێ&~$?I@8˓i cX[ݪ\.m?~ŜWC烌l%R=~?xOEѹ& S&(M֗!FHs܋#-,TD;^3c]A~Mv'$p-nFj)p-ϥiG|̵/Q,ͫ$;!;_аN{;ư499 0DmTEgQ#G1j-!󳑨p-O`t=>TseT spY\:qEyd"u ]DإerSڡ;^m|3NrC֔[u̅߸7A57Awv +_JJ*W`c"֮N QhHzz/붼;i׹%,}} 3ZxCX3ߢgUƇ2B +x4rV,uZA:wj[d+1 *_IMyC*\AU數W<"]I̵We\w>ivpy@`*=3~̯.8҄ck}f*i@jO Wnk(F-Yº8މ3)Ȱ^],CL(tf#P[',M <]WHƎlR_~I#yt,OB,svPSaN1Gq`_<g] Lj>=lm`9IY i^NXbUڙU桾x6뺹 OVȷ$o^]\LGjֳ/Gl3FaoH(e*t,&fKByH2g2O8&=VzHglq:˂̇R>pa7qީqqJ _FXJ7; '8a Q|zNa< 8-=F:Zb,ǿ (f̺:FXAk9!^yL@S@M8B#p{ _:{| ݍAZp/O:jU*8uدעNտݒlȼ}'PoH)(vtg Hnn!k+ꔣ4sc}(O{kro M>2c\|u ueJ1ٰW$Z{~ZqzfWI,& AظgwטÜdt t̘0č\ۏSf9w|?dsQ*bDS#Vw(ZkaJYmN?^iX#/A kR7lgTelXA~2gR"PF\=W0фRLwoW,nNX$ݭfX jŶ>YȐW@nT9+Q z$Pk`5l=5bˮ| CarOx5M2Uq[T{aNV"d)FTfMRۍq~ERkBSF싋Ru5&J7P[ ff& ;hJEOB+c7MWpVBBtz)Pya:UYUZaxu-4 VĞ O~շt111$Iqv~tIIEU3pd롫JfAWrJ,Dč.S&qP@l'A}ƕ[ @ s#]וcMR3:+؉1,2WaJ@ѽDD]N^dkEw=(P)x?(.A^86[vHX1DqLoEjCt)bm \")hggm%湈s&xz>HEWc9'@Az,vMpW]lvNb $ cf>EZs tCAv.U.|Ջ\fȹb.kWƶ+/R. x|8#s¬4ښ{KV2[[NOZm"SԵDZ_5;H,dw5MRWz&͒6:lKθ+b $إ XsXEQ4^.B#JT$5¤ YOE u,E#m=Yq`$Ө4$q`}XYtd]$sRksԺ@eϸx5W8i= .dVo9bw?WDA1X OHz88 !w+`#J|i%[܆\]#lW(?yffyY(caBz6 i@ lT Da?B;sx?wzWB@y.4Z77FPM;fz3cL",\i7sXc=Q?Ia:#TdQn=ōV򯱎FS}8aEZHumiO 3]גmy ~C+wHTUq΅y9 X–wT٤E ~}Tv,*zTz3w M26샖LJGG$=l6OAA;S=ޕ"WJ]Y(c.H1Z$+jܸa30%E ;=\#G\=1&(޼LƙR [!N Fo+zK"GV M'UpTS҅imo'k"NLANf/&)@DkТvU{!TQ[Y:)q]Ѧz~gH]a4]zvJlh/`984}f1dΟDKl7Cj4ÆT3rlǕgtFHcGj+*j T+x: m&Zt&n*@rk6i0+A/H6 z^%I^ >}SY=IHI9$;m8Ґ.^9wb+mS8Ғ"uB{w`f[FNAAEǔ]|)\)@W}ԣPhrH2ZG@\F 6fFVoTɣ&v23~ILaH^UDD-ݐ>ĺ|n#;Mcc45Z) :oHT)* ]%o(ܕY\ݹ4fmdX2"\HDHID19BL{GY=96~Ոۚ\WZ;VӖ,,t~Mc)6y{s.^\m3a-!:HDX OKt/  {'.}t4jy8BwcCeH26e:AWT\0ZXwbܗi^HNV 7~Pb-&~nߗ-\KlKIka x%XI+imN`lЀƉ j~"mb m M\7 J$|ˆneVߐ Xك0u= %.U$2˅kx_=jTJM$_k2&u3 I]\.`n$K:*N41fhz#U/>Y&@~"2MQE/Vgw ٱO W.aaEO;2-k=#6*WwE@ؗmN\fĊ6&ŘH 6IÄFCe-v{q젠Y=Ez˿ȉׁO Ŭ7 @> KAj֭.Q:\)$CyhMpCM>@K7nf ADj ±?,R˃ܔ+4{աV~zț<T$>(ONOU::>I E[kpynDR@I!&"&{ ra٤ ؿF%`"@˪%q+# lQ8vTv`unݾ?pwq#8QT2;sk_^;]!"zP c3Gkɂn3Z9:Ϳ\Fzd>_ DY}?x Uj|qJDmn:k4uE> ߩ{<ؼ|ٖ^fs'vyc9MP* , vqΗw_dN[eMwy Rٸ${Rs9B /dS] s9ix3CЙmm:RQ΋T))ojxOdAn#wJH8`1&UfG= ߰W3 6? k?,4u b(VE)Tbה$s;h*@kClz.YkbQ寝)Qs74՗)C@#@G̕xI#TF<7<˓dc $Anj/ o8?RTGf, QQ\A͎:zwk.]1=I6WnPP9.خA~A%hou Zuo8Qe8^l77_.EҝulZ]683{p2rrNޏK{.5Geܹͣ|>e y { \ !0 tM]uPʹ ٨/jMfb#$rֵ< l p׎.y;muUirW.l9I*$@ :)}NzPK%~H|1FrU_K8 6̼P)vۖP#}0"ICm1pf;Y26i"br$r%'aƜ5 ƂL!@DD{އ9M$Y"c5\j\>棕yqPN (RoP\Ze]k /лgߤOF4 ۗ-l7/Ӽ1U7 y ť%)vݚwpdfkhw'}eprHmoA1ѐv'\qŸ憘P2NHa@Q~P+p>ii&'zA,#<5lk$ 3kI<Ӂa5G=XȂ%El%> l$4'2N@tKW >i:}VNc v}2xTSC=i%\utHqL!UX)ק%7YL(+l;Y2@ω,R Rd [H*ǣ$"no'_39YH1u߿C|@4MMwsC}dR ~?ls Q,h)4DqeҸ^nFEevjNN(cwTb%*ll!c>t2K6Ĕ9WD/wq{gԽs>+ r|s, *H>7gY\!4ucD̦A6D~ gSל(t ҇aFct\ye Ig,V=4~nWtPw\:C%Yiʶ1O'7 G rGjI:˚d!19OKPbdͯۗ"Ѭ[U-\V]0kRi f.zi D}g05mq P+w1&M8.J'/ ,aE/A{Hi$x TIѶI~&3BȖUs)Xk~ !..ϔ6QK~՟=g{X(t*YEUְಃ0ߩc_ۈ7}lzX0=)TݡM/}TS u_2,EWP NqݾQdTP('Utɦ?_M4 ?WÉoB@jѣ<T24M kfQ+G^kH 7[rq B{n_2CVm"7tC%h@oS;⯓;N`[m =r~ƭ#~(Et󫏱6/$}eyB<#i qT)!Ftխ}࿊N&ȓ ^+{wfL#q=y^~4jzJ򿃝 e +Ͻb IZ%Ch,=cjj?1ZIR"o1m9G{jeLBBE#^[* Η<5uGPo sPCy^)Y5yM6܄a[+>W`y9Eeu5 4Rrkō2nrT-վ(+e0n[IU1D$! !Ss{b^^/,l/WSm_Gz7Y>O5Q;৒qPBV?:dKk6d 2aË J^%!U`"eǗrCܝ0tCHhCƧIE5_rOxqgMEAP~ݥ݅fM+WTMw@%#'v'SQ4۠^)xSlxBkUl}NmJOJͣqAb-ϭ X>`A|ЦuC/ #; >ޕgT:)W5ƉqS%S9yg]!հ"_?Og% 3[arCKyѼG7hvmSC; S)]T[`cTj]n!gt {3y28,^I'/d}ݯ*kxAOԺ^#guwFI3f8 75u!p$͟dL\M^gWD1aULdFQ~ E[K%(u 1GtL#$rQq6.N&r5ߜ*n,6=9Kh ~TVqM,sPU6'=Tz~ 1R}|4 G`Bg>.˫x'(,''ˇ!T \O4 ,k ڱ% m$kq?ˑ:UF (IsZQw&cjOClήJ$k!DG6FA |jvajacc2`n\VJ߼>U"vS3k* *Q]~w?Ps㋰ڇ/l)?HO߼ {fŪ3띲&[&s疷i=j[Z]QE6A[{?P>f.D%cLIQ;tU>Z pڟl/5rp:Q tx{ ˫~3ĘlW)f~1k @oѧ1|] co]Q7Zn+)T$oS_*$(ت< t2HQQCBFVzWء,e4J%с?Ѷ(+甼xe3-Tg0Iu?+*!>!&l/6,OM?2:*$IT GH Qft*H O ^(#!N8Tx-ӞYaf-xOv6<fm G\Wi;HvD=*B>vE/ -af\?/m&Hbq2}cI]ц)˛~'L>r Do0Q.0hH½FhÒhqdb@/%+:q ,C h1+mk˵痂(E2x8Ud+]֚jDvd Cr!>=M+$.GBQ"wwxSeΰݲCpGR3@%aCH6QB㬔挼< Voe3'y?t?*ŝ5H QYw 5ҎB6P/%~*dFL/z{㘅jFF_;c+i!^Z4+/v5m%xIvM"(vE{K ^;IanOſ` j2tp[kQA ǭu_YLfٖq q*RYq~b |my[830!MNZASD5ZۂSK@g $hӻ*WхI:t6&||w]&HgF?͊FnY?CQIi3H߀"p$'WMj#QcunskP^踨n`euǹT?XL|@ 4 4Y}us$Յ]. ^ u'Pv,@z{G,VՖXhA, D;1~ᒸk#])P!O`[G 97R*/yڡb ~_nT0$`\ApXG0 ZOBi -XJO 6_,;Grױvk*mL@Z9:ϩ4$?y ^PҬH79~Gr6UrP8WO@OΪJ̲uJO .%Ƨ<(ag+x{ 9Ufn&Ɯ~&\0w z@6R2Y&"dL/%-^x(gbsMn. $FȼHf ,%mr@Fߏ_k}{4e P%S;펙w~u(|/a& 73%QG>BMW;}(~Z0JVd-B -&qTvuƇlS)%+&$s-`6^MK-91p^P,At HuӶܩP v+nl+drzx'WWFWŨ+D:b ̢\=?3ib ~UfSD)ĸ] 3U^:UhqJQz ._e)TJ^ta J4cl,߲"-l b˷^|&~usHw<~ lX&cMƛ2M1fg| HH22t,77ooiծ;+ĂSBWׯxTM  {hin(FbF ԯw;Oj;{RyFw{oׇjP&,<|CۢX2]"¯9>Puw)W1}7dVߓ ~/CAïPK?ͭ:Hŭm]#NhᑅƽGUR؊Lgʣ̠rKgv9׺HI!#(C{;:= Y{0M=|DcGfUaX`i~WIrkx>?. Rrb} Kվ]Y8nfE]Dpoh1+.-N!,y6tGTPud5Rx;~cr5לC06QNݝӡ)(AsIˌ tMIЯAT:2<}rvd'7mEKX/m䡿c?v]:hԜfA{&_2mxt+XXwQ d&(So-Y3{Ž>WPlhdDе*$wyְ4O9vԁ1pw;*krP8!nǩSY~$=6CZwHy);`>b5}TI1[/XhG'Z`CI\uG"Bʼ^Ϙ,^10HBa-ԭnđOto0C3^RVySqB5ka6bH0K6bYXⵋdK,I2mܳyl yok¼[/DS,7+<=@h\G}:p~zX;fPw!^wΌ;Z? hEEpī;q7 $tq4c0> A\2pZs3h{v٭2juRRDNɶ;H#I`lPHѷ׾iGKފMSҥe:{IA.!իuMKeުtНME3A6~eTbfh$r}ĝ~H8I>rIiD#d߱_/+p4fQ ߈EfϬpc2)i+w)mֻй^oI|6=Mcާkҭ9 pZبdeVu/~Q).|c7_C-Mq`DAn\Yw%bj wpO:)) Iͼw@Zʙ)6ISO:)!ڪolz*܀ājzQ8QPGN3 >7Rg -p+l:/\;O_ޔ.n'oKASaN#d .TrlTm_%@2te4A;;WaYj]]yk#J9х.*ZARb ʠ ejJU-/МMQq&B F\(X8epZ*C"sR o$ Q.H@Cuapܡ^*/2#NU4FS:BJ<ȴ ZG ]7\5Wy'ᦝK3k-.[8 33L˛3~ʀt,PHY#@^֢^vI7=r;ۇ\JgNqfȒq)N$ލqW:G , O`ݮ\G/![Ɇs ? u eˍgoC"jے) ?ْ`rmN@e8TEg5c,]ZҊѨc$`C ΁I/0Xe*;pLMwnf'PWJl‡C*BjVd2:ؿԇBjca]!s+*qkwYV'߱z¨}VltjyXQҥk4d $4ɼ"  ?CɃXz%Qi[Y~~Oi̛67DZ²k2or6oÌdALzbrbhڇE ?S?WLP O;A{ED 3 _%<)^t `iC⟻ kNMБSKJKd݃.- Sq^g]3L9=4ن ^g#m=#~+1d$}BF8rJnB9`vM2Yc4NTjzkc \pDABwǛXdNhb)tv @t|]Ń)m4j۪GKϹ'A鋔*!2y[1>$3WG'dC]&cd{j}Ȥ-A[tM2ӊgJ-ZΠdGnT8_rkGJq5'{2@ʌoCWQz}ÎF"-q=$$-E,57/cBNOFg5)YO@ z;xDnRUŅv=Q6AK sEV{[K;AOk;*T0UTJ CCtg)7ƒeyx:q^cT̚t J׏KV4plGq5GҰ%_E;$DTGֹ&jIU9 DW&J64-awc# Mq2 ưzQ/78w^lg?!IrgpDJG !BGC+nyIKjt\3^ Aebj Ƕjm%I4؀e.Rl1r9k jlNJC㠲zNINvuVryD?ݱ# jY/yvnjP]W׼I.N& Zg@q *3S=q Oel*-/m࿢eR(bdgzDžF4Cn:bջ&7Βb1p-F8zU[8COe453; )䆢/>9"`xJb)4q!Teθ@Q7L`mLxl YWgl6T1JxڭS 4D6?&ϩIAȴ~!xFk5V{^8W ڈԭoxST&9[$m"ZG3f[sTln)M88ڤ,HMiPcz6d|\;b t+ u{rkTɡ( ՏMP,1V #,3S>r$&XMc@6 #ݜ-s?<vu?dZ 08N1`ZY^٣4We%lI1C3QnqacӘCd4tl|Xq6UC:eEy8;d6ԿG+W+u\=4? "y9@@o٨w) E e Mև^rCHnͅf-.A4l;T(ˉWҙ}TBz|U(! ߷ʷs,Y`3PH_\`%ffTn1'ɱJb̉K aK*cO1}OxvC ̈'K`ɂAyw3MݍQ9%ߢ[ָN5_cX0yƐ%#XL#pe')y_Q8/30e{f  v]$="6AdƗv O_vôX@jV/tVa⢽:â|RPK@#&|sSRo؇-UUUL2 9N=U :`>虞8- ?o ukQRk8Ri\u_=3q* pqAּlPٳrE6_$@> )6LsD?l,xxce}P}atjf@EST\;MGLKd:,%FnOI*~[(+aA!WEFm|D {ǚ(KWqstЕe?XMu#S&i-%ua{,ml@lS!v|C˴9, M Ӷ14H6JDuYوoP=+#+Zy5o` GoYgW <8"t{FI*3x[BW7%uH?C`܈Tݒ1ИVkTEg$«="%Z cO_%:i0iW3<~ Z`M8ӌTBɚ=ٺ%_d*=u#WC߆! Exu.O_[zS)٩}OZwOY0m.?]Rʩj3{B_Q.l9mca <1逨{.Q8t: 9hRc&A' s7HJJ>Z hTA۾6 NK{Bd AIx0-8JLKm'w&og;3@YS~j/Vb 4g9 ,uΤ\ >ͅU*Q'3V5&P?ٜf~M1`@DT1B_'{p1Ok%H5P0А͂AOW 9~_]hVlX$; YHZ~2FB:l9!ֵkr1-f UilX,\R o|..bVrPxT+K>?٘緆brd)¸Bޣ8xC66[b4 <MIFG4'>B(-E58bBf['˛{o;@3{` eHP2{EAEuH/=Ig"ЮLq"meV{6qt L x#)C"cXЗUEpgƖ)A^=^~QIg$dIkN(Z/vlk:|| fNHe3uB;%4僑9Wr^<o\y{q?@Vb0E)KvegB dsWYygal56 N WÁqmjŵj h:I: y}Ƥv&I_(9;Iw@|ҏNJydC 3ĘРøA{F; 0!Oz^ZZw3.Jsr֎zjx2[6dRdԡG(b&Tdo$XëZY$MFPBCUE{"dIJj`9u}=(ev_c{D.[HVy&^>%M߽",z3r e#GqYW1Laʝhn,nF'm_[BnJ?[lB>,HecCƳ X+t/*(bXqӶ wj;/xHr Ueu( cpY@;r֋۠R5Q?1I΍3bzJWU~,TeKq}S97pѬRhݲUNVo2#zVmꉺjZZxDJ փ>CfsI"(dKñ[K3`5L2#uh!-9ܣ%@_Y@\/Z>ay'iWO*WvUc !6YEG(.3W̼^C<)~)ry{Fl| H'^i]kjG(䜀ZѼ:54+]1壷 QC8:<T_4 'W*y'y |{@|T% d+])"}DZ}ؤSt_ĸěD g cA0vic7_i!t!rUdbyrMx8GrW~wz ֛oʽvqE@%jYRzL:zR]+ AuZ-Bj2ЕOTna%c)j&C lN 4.q<5=Yv{でR b)[ʱ'kYѨ[%{zZ26ᛄjitHΔCF/m5rcl?wdWS5߂Ua N;l}`"+G&Jj_B!BϜ6RR2_k'[-4sp7  LkDH6X C YroHOw ׳,S8)&v@h= 5 1^" \MH?ژQ/U>x--tV ASO;|,ƒq䵕٥Ʊqz{vH)Pk0̠k%@|P0WbRjHnςBRNnxo(q?fPpbSq% JMtZc# ?wQLAZf_MҐW-v[1c'-QG<.ÐlΊ̝k%2PN `(-'d|_"NpWK8vla G5tr'׬̐]ū]In{3rз?L-AÁnVg n;hj)ԫ9Z!uH u=dRb4͇*HJ̐&D1ja_DdW7-+ R] i)u9-jl5rab:ZHڢW+[9j-K;9p/WI5 Ks΀?RThtv MB6vɍ6ZNx`>Nlluz} $d4(Niݴķ@Ef"74Kof˰XI' %G:: ۻ`{02+*: ldծ92qʿ?x? w4wϚ];0Hl`lzpXn*y+^\ED`TȊMW^0Hji~',G0uWTBFLWDτزT3zhRBi;3kw=)5q [+vin(MX|߄]X 5C9~M";fB1lE"wo5,Pm)wr?Vm8"le3`d˖:] ?I+cVmV9'{$ZebB`nK~hArw݀%Z^+4iYkluI qEvHׁh..t?Y]FJdΘ5W/]%%( L FDM!R?쓣BL>MQFԯD/b=!+ ,:ڠՋ;EZr^ YPb,ܱyF|YdFL.TˍI|Dp}k%ʰSr*}N.V uHN]=g^xJ /Sctt)Ίy45O&0]#- <\#Wy |"J|덍ϵWFjƇ4۹UH8bC0K \8PO)Fb?H'apa~;5IcEFH pNTFj\6O: _Z⏝*l}0!o`Z*_f)A\a1|ˤO"oF?0,Na;]I>n(Z!ALZ.(I«aML0EzԲW6L23ӑ|nu=㢂[ڈ!}Rұz`^wQ9&CiQ}X^)t{8-S9 9liF{-1oZJM[m)v϶yIve,eǀ^X3Rn$tTI#.zC7''\YPH>' @-)e>A\N\-gIj T7+:y1o9Sy3M.PhʟlvYtƑpʘMn~F0”TKK(h59^6 7c8"ֵؿۂq pSaRڑb{mU^@_S9]G*Åt#pdT7`%m9hw;U./Qk'y 7+eݪ\X?ru2v Hi.IEX)Rj %IςhIDn ; o!k4טTVf۴嬙Avh asq-xe ).YqǀƊ CZj0_pG﹯Ѓ_QK ř`7seU~]E`~E8倕dG2F%qTghB4;Hn:p?x?N.t[nQ5*$ow>^ԭ&/D+oaKaV~0Ҥ\G7UVg[#I7LI WE QwֶI";2T>zbix=EXmv5cW@NS/ *N#狜O `#Oް \6tGhY N GLN*JNC}+}Icr^S}q:^mr}R ?F69+L~wƈqPone;:?Y<۠zomv׸RF"4L^uN՜'_y9Q.^J77kwv^VƔg{PyC@wgsMl߫A57}1ԧﲶbe2$~I#>^&ª7$4H} '%:&ėYJhB عN YDKm:62t6ٰO>roQ4IaC_dZ ;z\zHC[."71 kl!>~зA'j"_-T5\^f>0aaq271ַPwV?2sH͈Mʌs O~8  Yj]>azZ&,O7<Λ9udSA͘sv+Nh H!y_`p$Xƍ$#N@eP4DˬBb[!J3*soP1z~ܳi `d@$0Zt3q(HF5Ut GTُ -'zs/QOh+p|q򧘑֧U>:f%fJLw19HF-PWǂF~EߤWSNbmX666fmm }MAd'mY~~;SYW~Wn5i`+&*n{>Ѥ }m[E2I-;1,Y !RW\$Zr;z7(yt30 ({#qQRFQ8)Nn 9U .W]DL̼U|w<-Qy!V=?n[OQ"~! {Mdp@"/xL1Z1Y8RYIX[l {=U,7_&g9-r1٤8)K7-ƖO g>dÍGI&YOkpD[ ^B%F2 2 *dR@J&|.LdYuʥk[h@m-!E~aX#r]?i(~E,5nH(4sL7\: T vܚ9~qc}Q_oYu?2gcgi ,/#->jRX6n K0nėr?$Yg^`ơP0t$|ri$ 2/t-.~jp>)TdC Aɒ4 HAb/7fu~[Oy /Ϊ/(˫xz hQ9e[Y5*,Z?`DNn OgILΪoс$t+Cp>FQr櫝oan M򦎭.Ig"܆RtA-l$Ջ+M°uJZyi~!ty21ϰ^K!eX#vYZª4$ pi2S6XQ͙e'SM|ސmG+tVBԕ}Z*_8? ?'sU)t `; (vN[2VTBvr8%3*ebOÑڠR`1 "w.$38qՂ6ט' -znm"䂺B̳'ʾ#fSS0Z;ȟ]}ϼ8bj?kNd~ZU2C#j/e>tA;<ȵ,BT^|FU)tExj1婾H +go0JO 0i|"+Ó:!YpƖ"% D,!_!!r:);,U8!窸kWvV&P]blcX/P)}/d&I*-hQ/+~FݟGzaOnqvUIkH歲 T" ߔglԀG@D&Y  ayLZR|E҂ BTh-*p%OHeQoo?< E`y^(CqF9-L2og-dV La2bU5O!]1Bovg?Q!Qpg#f͝*lnaVtZ@R|?+.]f{)G]PJ"RI!Q#6khZW1S!x4 s|PLS;:b%vUO6[ԯG?E+o]d8_|$sE+^xnJ.ր|iIu9F 7mv7qvůdQ&F5?,#CA\uk_QBe@^wO쾪;^Xpq)N%)/YjV6ODMz< E@EZl7tej\4 6POa55Fg:gQF\Sm[?3'7f'pȃgW|XKV0E-WpHܐjct9y!W[wp*k36I)^Gv AlsXc 5P";&N hjӳESDILհۋډ,^nnؗR?\M1ʺs=msJ[SB=[x>%qn+& =)BqW L~NPzr$ΏY-C,mzC b aIƤnS$6旱V3:W >&6!.Ѐ~H|\[Lֱ$I_<ۘI8:/qsrו]}1;&/R3Jj0/]j59 X@KSPSwgyG^#DZ wJ8h1j7 ƋY>E? ͥBM\ßJ&G蕖I͏3i0獛"I+G&$z`SpiЫ} 1 TT{hAqB :Zhk-9@#ځ6Z!> ks_Ӹ҂ dWYH6>ײ9( lw狐wX-_ 4wF@:MX'.]oW.VDa<i8S 6omo ϑ=h& m 6z%ArݹqR\‹ց}lYχ[Mu5vx?0{+ľύ0MsYk3{V^Gg!S~,Al9 bE<7-Ȍ'( L7R(̀e |Y3ҏ0ؕ,VP%H -\Hl#E;>"%lԤ ~=A:ȺKkx4 <1፭}@t;gC*d~!*}3/w3DI-B9GTHMmcF7}xUA@za FZ+\ouzIb)T - gR Jl"zFL{uQʥ7V7e H҄g".NJu<>mwW丄 3ކz5‡ՃduZTdJ 9ޠ>e) juz1\Er2Te| f/ۣ:٫R8,c/?_'NtDo>Gg&1Ӌ&ݦ0X,l!3^J5`‚A+{?Ò>]OG+;4몷h)^$!rɄj,kƦ}G@hT7|8Oa!*=Z~!\A;5{?DtW0ilD^0(x_,?XIUD\f F 0cŎH.O9Ϸ0D(\snoJi^"IO{7!䈒YNG̨g:7XCI3HFET5 f"InU4"֍GDe Êֹ  "Rm;=]KJnT|c頁|֓+]o=ҚNi47ɮ*ҁVFvN6!IpO٩ RbQuG7(?ˈב$f-/&}^hIGKDŽHᥜi+мlKDےZyQӴ;\a>'ww,{!b`>+ =ۣ~IBPE|')̩8),zأs%r×bbB7X;Pʶ)/Cv>lh_U&x?MQIN0bFNmg,8^ڑ7 ɷ KcW+U3yu ?SJ@6yeM}2*MJ Z{ne0H2|vj&lcFh$F=_AMClMɋե3](:$_Fl C9.r) S44񀻶c+qXߟ2dz`܁į6)/QHrbO" *`Z!7n-7`h+=P04-3ho2t)K("ܽJz$IV+& .P@?/YL_'yLL+7HQ3UP>9*f 5LMاzS2QMﮰ5er 玮'HA70 af/^B5iq mmqZZ+x@ş2f0TpDŽpE@?F@zRnS4:Fs"e "ʙpnKo]+0Ծ7Q4c^PQ:\Q Nr ŵ)q;fe_@bƼ$Dmo24e:7W¿-؁>hjcwom03ttT!$Ƀ# `w=~QkC!>ߺ Ə<1Ȯ=PA$iKjR{DMoD|7eƒA` m&CRn wS^X=R0 \g{KSE^8\Ghx,YI3ʟ6duSo]R7̡݅>iWZ9 ȵ𿬋2QV!ֵ_Kh%+szRT33]sė+M@AM"7 _VNPKF+V$362F_IYF=+:^u+I׽g-18:: JE؜Xy{hF08SF&{&%|%ӵqhgM _"Q sW-3g-YKœ?Q봌>C.ֽ5eFPnUi{deQž^RDE!)?fѧyfR.^!)KY"3M-#UJ3Bx|8_\XW)Elu:׹Q[q /kgenx ōKǛ08~1vV%d'Ϫ9G2.y%V`%aٹGt1LR]yX$gY^-"GAm6MItdj699`TEP.]@W?DcG)&}:'Ne@s!m$q̗*M)HH݌Y*0V(d\R9=|qVF||]t{rh~-Xq܁$H|0Ԣ<;GO~[#c)4MH(4kirzPgߎQB#Y!o1,P~ڒܼ* #}q97ļgZ9Ǔ9`B`bq 9*4n:154.A-Fs@Ö]t%5cUzop(e߉:AAEC[Zs$*xEw2 t~Nn:5aSZjHݧpHl`qc CZʼn]XhA\|}9u&E~ &R?HG\^f|[h~k&y?r^, A᐀]0Шru!ש:U =&l@|7v5BzL 43H// sV-«1瘒ens8|8^0 P[v3Y6=k絼6gLu&"M-U\r`tP}pBv叾 ~U!:#HzcdY 8eiֺ-yחڊm5a|sz=E?<(~u LЫ ۠ p9Bp ff:ofXrxNOed2O8m 5RQDM{`)Cʮ q;LNOl=u V}_Źz׹ wtBnI7go~SjQ\㱔[pVsoLgA8Lсbo 'EHk[,EZۦiV@G?s uBv~ 3b{f:=,TstO)#PCuǒyWֈA En t"8c(#);IV?#R BphX?oǮ4ۋCeCL%oRqV/ܕy̍W[@4|{cL@+Uߚ^ZQݳ>B&Kݻּ)n[e\t-6fuEOl_D \q#49SKZ8 ನQB*ӟyW~,%S(M-Iۭ`vnuFK24y$᪌NYUWn5&;ȇ'/X;SC?&*?;ʠ| FŅ=.cۓS+oֺM֛"`oKf쀌9ȲxlK]uvGx㉼uP%o4$Agt`Eݶذ/cG8ƦwZs) K(wm`]u婆:}(T}T/k$3gA'Z^^<ɏv~誹pK\ʭ׹jG+(vu  ߲:Ȓ`P/  H>a=XrG^#D>"-C`''Xn  m(ט/es4AY:;UDك Y J5! ,vg{>,p:4 #a hV(@c?ئ`IsX>tleW\-OgP[¯bق.Bs"'&ޭklgRgR_t& B)iс#k[[p\.Mn˨eԹLj@_>~Ap QykߐCF GNˠZLrTR>(N/ήii9B+1vU} ,R3MruZAħ`[^LΝ U1u&+0â@BFLjfrE 0hhړ02%2V2qK h>;eղlWFΎ`ӛ>i3Ƚ<ٴ(3wۛKd_(fr.t2#9BM[eۺCCp_Q'>[,tfɖ`fM>Ö4J6#v-2Bxڴ˰srl,[\ٝVi=Crad=h&sƺi>{*@'I sC}".JS#k!9b `:;w,c 7][_*PjG"dA\L£cG 7fFYK7S8&s^~ʘeB|NoVߓ'Z{x,z+^^AGi$d/JWSiȻ}l^(5i%$VJY] 2IFnLmJJ> Q .&:!hF킆s/9Vi=#OU& l!0ܩZ]+7QMqk1kY,*dUW{1{n::mMCti>K9!:h@0qtQA3PLiw6Ay8`W+ t˸=2nz<@b6CDR+11^MxF,Y]jGR+>&7 Sl5>C=^V{Rw#nN"X{!iޥiҌD^!["GKFpq&"5[> :AgK7qU8e[/75jf| D2k7Dޖl(sq0g̙%.L[ZT.O5)v#:s?Dтc1B+4CB{' 2% TUg<乶U |rxg.@|v?ut:g^1z?[Oj)*Ү Ja3%%cty: #Ѡ,\ŶOE0 P^B9~ y`muh@TU^]rB>K3i?A}hw[J=8VIaդ>z<SOcM^郏]tc2s~84./I{qbvhڳNef8[>8xT3 Պ"i:>$>&3쬌 ݜQ쌢og>"zrvZ@L 2r*!iNzxP;0E I몕¦6aw_2c}:LLM0)jJN,#۝(B_m4"U|Ө)|-w2|(kr!*r-j/^-o805 /Q5bO|8:/:E_C$XDBĺpOۜu>em6K)|Q@6/YbĒ<H`O3\g;j!YQgf3:RMt&~&~Q:>-5?UC0ݦݵ<ՒY^ҹ+k[)CAcةn5]E—soWaMfp8'tr-\BwE>] S Yf1oӤ(\:oj`uLח(GL7KklU /Ž `:pɌ l)e*1 .rg L7TW]U?v{^/-KH0 A>PC}Go3} ~ KVؿ^J!#@9/bJ鵊MBvk%mP#j R îZju&Δa(t88vV#V檲wOb@EZ60g(N;Ό9{ e1qwFbCJ|h4<,oeⰾNn}[fyըGV,>k$Hk[*tw풺-{ [>XxL)8r߉3| doܷ43ߝ6+t(Qn#ϲv=lIrd0*C'/0#GcpQnq,3)j:FC> hx1u +Jծb7lj1Zu)M2Y&_`ėL,oddx %#Þ*.:]OSJ3~P%Rq"m?r)SFv1R!{ *OwYXFY6yʸ9ʞ/d\souZ,;1*&0K*w\G&3&Ms:¾)!e(#'N>,6bOE0XP ǝ5"bG쏸ZUΛ^G 6GRzeڞ2F7Y1iV5r7jI1x0 h5z +ߢ(W%S,TYzp#c}9Qjn5lSW|RuGs.V4Oظg]^9(QSiJ oNb+.^a0J(q =@65ʓe\1~-we'ms+ޝx%\kl+2VLZן|bk^R ޚKvrduqvB64 rr.,y!佦n+0="B1SgJ+/8!P0C[owe; =(yE'Ā" A2}y]yR HH / `Rbxtq!yx(`77w8q*y^`7#Z, fcRP~KV#@F\NȴYY {r(vFi&H,(xP"O5 CJ/KBUMX T;XKߊѸGa+47f!s{®51d P9t,}1uy_dۆW"QkMC`Dt4ɢ{=/>Yp [mmh6L'Fr]L=,ی쉓x.5= ' zB^$5%k]>8k4= @1D+u[l۩Ojī#@)<#f`뉉PI,Q85%TpL74|mc\H+|a/|=+w|3ghFUd d]k8L1(zhFYھ}D'U@908t$,tvm6Y',mbHW; wU4fw-"K7Ӥ6!h:lm6r $b+{t_lMy_GZqx]n(ė^R(8>M QkNTN]-o+БDZܯV1(IXlJVx3ȷ qDU"듺7Ꮹw@o?UOp~Q"d:Kyw?9۩~Ra27]~ sBB[&GH;h6Gn~SدbXW}a]bN a9?|FW;!5S5*w$sYݎYb>9y['hѫ r`G.E)vKCB<2;\I-RP>!vyJ__Q?-,rQ4 ƍ~vin6lJ1ƱAsQ"h92+R/tM:,xk$nK6iLDU{DV' m{/|5ЛO5XҜ$ =/XC_h>0 r$4J)~n7hZ:yx E=X"BUj׬fhP͸mJ>4AD'.P ljI " Kdbh1XY]?wѥ/3NR3Dh~0l" B/}'57\iEjG)?UpؙS*n!Pߖ0˷bTΒJ ,҈^8!s,64H,$"yx!;~:pPxL:ZWrRO{:UT, U~Gm:"0e4X[Ԍ| M!Z#JW&&EYw XJaD? *˧{/`褬8T_mh;3[8Z4ϷdG;)ZEʁv3U Gt.$9-OSͅlQ v3szπ%H,5\9n햱 y v#B'T|G2<2u=RwZ=6dYF-~vdza!Gr!~@Q/}7MC. sϡ`76 lrG[ py[EY`f FAV*Ey_{^`gA]4`P[O@1Ɍtc),7a[cղK<28;. n_v|yͦitq"%{د8 +˯ sQzeQ=_#EgId7kCi)_'kt [9-ع1dfư qV޷)"b?ᨀ'ܤUH#Kc,,anH"IU9>PbТ +n;ԡT|7`2F#?Si,?'}X!YD?.hq@L$_0H8d(a&!A'y1Z&:-EklT%Oq$OP3Ѩǐu&bA*j QW(V<-n^Hqs-뷛LJ;O"XnguxФkyUpƧNa/0{ ]MnuWߑLd]hn0ۭ @^ n }A7_|Py/!m*4fvjCg[p,7ћ&EV)_) ~Sk΀oaTӶIֿ;)vƢ@- a)Od9 jϪ&fzn tH{^}?צ$? gbuot Ӽ|3=dS`G DqcM+7lm}sJ oM:L!p&w q ++r][ueֵhITa$,-eAde-IxaUT_]+lo-5or_^Lp;NiPg~`P|{cK3eBEGHЈ!!-]!d Gݞ|ۜrN[5e6(&RO[ҹŶ"2ʱs~uimh.Y!_j VX͠!O"5InCƦ9ko$QI> vrJr@k Į 'o Yax9 ANh$(ڞ3ZH>Zux*0+#ޓĽbNW eOV^ NgZy2)H񸊋 +}s0pcIF-R\QQEEH*-\; yև>k=z1CJݥ?*=YpAW ?o}U*>Lu,!驚WNaBMYe[ex@ޅ("b0iը[t4iՌ)f/`‰y)nt?`7X]XS:=wM~O> J[4xu$& @OX^@@Ë-J[c4tBm3P,-bR2篨>g1 V6~LZ DLǠZTW/XӼ3.Ђ" tԽk:[NCT[ @ȤdpDGn!rg&qa+@ 5G7 3xYye8>0vwXm><@it$SA!~9fnއFNk㴑ٯ[nTɠDq.䑄)ي>H~_Q`.xoZ=G4=.7SA+\-/6;P Üko9"fuOW4Ѐ_ZmJX@8j սij؀>v!޼mIh=Vm5> 'LRGb6h3^%)Z7^%IpǢ?Ki$!y}{5q3gϼ-ϓ0T>R,MZٛnb} ߞJ>\G#~W\?A|ẻAMqݭVޱKH6%W<쏬k]/IN_# W%G]_nR˱ 5Dq5Bvxdw7MV &q{#(*pTP~X I&gm($/Yű7G7X&bvu?j\-?Y+7}# Iv99ERMKt 긺Dw(b%-)4 ב x<ʘ9R41_ѓSUaqY^_#-ōۨY 9BevB& [0i4j!ljD[hr9@41`EK83B'w4X?`]׻1=l:X<Ԙ y4~E wLiV-Ifΐ~$KDQ.]ˋ1ȓZ) =zXPPw$/7=B/أOf5"t+ *{[rwrv.SGL`f,,6$X,qY>5Ofɔe,p Ĩd$g4CGeQyR5ϸ_B`}޽<]^"Al ȥ5T_RբroigvuGxpFlq_ vVfOL,Dm~3XiWNK'6zP_%9:b d"nkQ|\% wL>&Y HdD$M-{J s9_j0F?9x <ټ׎|>O$B#t {Pķp^HW`%ӘP+c`!Ӷbz4^Q"d@(6|bE jFOqn%Dg$eB4;fr P%E>7 QwXLMfN8;P.)?kisMS=|q$o7eB!TV  76|z@va_˨w}-@;˝~\Ӊ\~{}k2oE90Q{47wiN+պhs󺐼LR#3 `.[ ]Ǝ|ےN۟3ݿ:f8L[γbj0M9ɲe3E>CAbƼUMm||)ƕ5:?ʎ%'VK"L5kY-gWG4 :TDE#[%(Qy1=TC}ayShokN<+7Zn$p Uޗ-]Q([i,dH⌝$1{Ө9 S#me91unm ŭmo﬒*x {"g2#'^- e5qw9R'),)h7;YEdDk]dDmI$SӶ|fYt@8iI 8cL V5_ՇN)Pa緁 `PVo7Q?[?zF/BQ uA~"LmZGJ3tLnFc= ?d+ Ʉr5/.jc0H ]4ҮdyAK=O< ʉ`Eb+SUv^z M CqnLri3`* eے~)ocm;H ‰ hW> ~u^XU@\_N{I@oښ;-R,h.hsƟAs2ـ|O(a\Dr.!0;yS9 `Is>X /Yaz" nيͨm$bioDI챝]%IyeOfAY_9OA_`w;K^Mu%4Ds} u97L"{9 wE);8Z\%6qoi-?r8Md p)ܓiә0STƪC m;[94K7sN|QbR>Қ# e*~M]'YG?"1t] x@+bɽ@Ƒ%8ў툝vˬ*)ۈ(S3F kmh5 j6FuX(17I%^VpQڂ sC)S oP'ffd@VF͉MSΣ2Ƀ32F#^#vR~?xHCa:o;sPвmN`)XT5M9Ԟ ZSRuNE )IAPvp0tݱ5bjDr4pĤy$CH͔Vt@o럓~<.V(&3ނ^KUkڭZu=t8#$%c6GJe|Puk׺lNu<׃  NPt9NߥO+և VtEa`? 3[gX*Xbf!^^2ǛfU_<#Ej*\wAM+L@~T5X՜# h͔cA_Ě4As42,+g'B8eGOy>p;k8ug$D HQJ'K_bU(7[ASߗ ))싆8a%-)jyk3pf}EU<+,8kO-/LkƷʺ>gnǔfb"`=43P05'ȭTiǔEv2Dk %ʭ?t*ve 5 تF\&XEimf@95|aʄ)]_bO 9+O!_L&=IbÜRbXڸ*F\Qղ]ַ,.~+W p$ j"8~{wGNc=3_C4miY)~sgu~y𼮓ap@OL ph ~G T]c Bo|Sȕkt7Ez{ 4F%/SzfKH =Tїl2pMi귋n}-uá> "+ZEaY"V*;V}954Β.X&X4 ^h}`EhR\ڭXST{ /".bO~Zp IBp=HL B}`MMu89zm_忾t d 9b:NjYv9㜇}QU-Q--Hk9FBv >IDע|{.b3u̱T0K=^=aF*N؃+yK-&DJD>|2;~4Gc>9ԏehX[\2KmXOkl[F u2dc|@׉n vNaSiͽfw;/WG) eD첧38TK [VA>yX׽Y]ddtG d,lnvy+ Wl%tͶm"Q]la2܍G+F13j܊ysֶM9m]yKό ÒC#vԒwL4ȹa1Zr܋s՚:e\(A 8 cN-~3gKZ JDžp7<ݿXCp@Yi^l'ÃHҬHP٩o!|4eg>04ᄡKړ]% \]8 r"n:_׫0f7A\}H$#TU.pњm ww|Mwf{H'=B+?2?VсGF])EseP,Lp#c<[-qyAG(;xyZ7Ey'S?l7 NwS#n9̮;@uAGq( > R#~N]`竻7` 96;_OF >oW>Ê Y}!f%<&Iֱ 7_r԰3nNd` zB{9eni|&Y p*Fn g^v>HޖH2b{N.q I/*7;@:,{ޜ ;}"z?Yٺzǭ_WPYWp&K'7*'RpլDŽ4}`aiTȷGGb5 !>n%K{~k?/dr_=2ϑ@q@[z}map|P ze}5r"H^Jz=2Dbd=&X M0ZQScbneߓ"ZGi#|4O\ɒzpWa۰bHJE^ n~vtCJGCǀk*jR¨- >e1xME.RQE0 lyXMV&ɝp;ȳQ=u&.ƒrEe*}OrwnFn ]/&4"AuK&|2kȞOZFžhٌI8A$]>Rs V 6Br1; ӂChpnKw+s>8ݿoz\,ȹrw E+͛b2EU'317^bvtY -A@N2>2&P[ŭP$Tsi 2&Ube'sԉЪQdgoubQܼt o Fo~U5.48u(XfσB!ԷKuđkީ )3 ɮU!q73y&AGtGalxg%;&3Ѥ- F? n4tD&,G{VynCICWxUGoE3VLD:c-uWLMLT%.T_p_(5Ӡ?tƜ̺!.& |մ;i]_ OD`NHB=.EIq*>Agei=WQ/4 @l>J́^x'3!'Ӂ3@5tP"F񭌽A[Cjbt\;:cfm|AW8}t&IS/E`lVy;3.Ct%W |HMyۥV~×1?yP{Rkʿ 犎'̓"{B.ލ zZaTfWD,x@IS# =%l:k4 ɫ p\4yq3s{tc#[w+K*>xx5X*A|ö Pz~?x%:"ᾩ,Z2ouJULmqDbIxC\n,=0R\~UunL@Ӯ_٢^E-NQ1Z󜞂OD"W;g ']ml ($cm |.W>|! fP,+pfqP4Tvӣqb#Mp%[Ħ+ǰCICV8yX?݂ 9^t>w~FPZqxU|\?-,J#?ͳ|/ϩR:F Ni3R" q}T"?3uj #.eIӁ - s V-lUDI=A~s3f+b^h "͡.(fJ)l yȻw0#&;:kr<`*DLiN O0a3>$ΊQ|M7:x4Gg- @]bTȘ[fFem:-cׯg )KZ.%nd?N.oMA'n:D> bEzh9S+֥EJ=\H7^MYp>\:10ّN-?piG'6;yHA5pǝV#csxA9s $'W=#IH,ʟ=n.FP)zM$U椬qwu8C' 7oAVTpM3GW;lj2EOr8q7 hGm2..%~6ٖ9\7C Iߊ9ᏻ ^Z,>=V}^  Bң[]#WWAn2P8 (nS 兹8>%&Y!k=9 Y`h$UA{J[+䜪XׄXXhfDk Hw5EzI vr># ]h%2I|G5 I8:O|UD;]kb"V$~a 'uTRxת$8OAōީWp. oJ=H]/j)/8lCTo~9$HڝynhT cxW H94nE 3\DWnmuuU;q|vn* c9 1?8# ZRw<ȹ&} R1fR?i=M_tjr­A+~؍Sg 2deDɀ'P'ZyaPuufOi`2DXүIT%Kb|LJ[Aq b@qAQI'ЋA RwQ[w[zR@ъyYukiEp_⢾,qx}[+`K٬g9WFxl==D"m!)FO3 @(-]uPpy&1%[ξ9d}'ݔ(n!;StDgzv@ whfxjC8[Z\{УΫL0st~R;;*ٗc$fᏑL˓i ! Ҕ N|&oMxuMQ&|&6d>f *qs] CO1h2+cg NyѠslXBZ>Lm"#R^ɫKn_lz@W`A2) 4GPӽz \of"ͬH";V}X菝ռ_9b]*~PNuOnAL,D#.װTcӀR:G%P"vMmfKdy\AvY'Y.]yCs׋D/6uqʼpj >SFzYq 5I  L+Oӆw92:L35f|]$U,gߺ!~X?"˔r?ϯ8W\usۜJk?ڥBL-Ձ)~P ngu~(Q8rz$uz|{ۙk Pޛd*? Dy=:GUhCrhU73_~ۖ^7LdL(K8i̛LhW/ۍVH[!?0pnNqz$mfql`YJ̡a̤L1׊=w)fTg{K*G(15|w,OmAM*\uŊtfv08cAt~R 7GEBPKZyn&Evby.u 3slt%yBb-)z;RǷ+S5Nd=S7F&_!Iac k8qdwW=ap \'һ]-BNM[+pS(bCUϢ ?B=9rT\@y Zί!hrQ߿)X0qje'1t[wˉʼneU:'[xfA$C?w4eQhY^va}/jFX>17G$ ѡWZ{ZDLNh6v xD'Kw SVj:X0\# Oy"re{f l?8ܷM8Ii6ї 埙z˸`bW(gCy {Hh~|1yc8eO*sjxKǷiwß $e>8}}vc;fdhd_p{džN BEYzWG'IZͭaTvțeCY]bϝ&Q.qAMIqE۵*Nm6/W;R@2`,6._ #D̺2 c3y7Gcmf;u4޴΢9fO1~Uα+Vғ_Vd!=|k# B))(5߱.?Y(JATbnmEI4'oMsIlEP0^G}۟Ԙ$64\O*;'YqHohg,5ݜJ zֿ꼸}Ҧ5h0 xxJpnSqɊT)i(`с6Wm%k>r h~:MDu⣏Db5JsA>Mܙz.ɬ7Po'UޓJz#ړ9,Q5|`=Rbs"ap$\,V//{DťskYƒ7{ouF<װY{/(Kќ\|8GL&mʶl^oɊbLFg 7%g*:mg|{FD6ʼnM2zܨ7ǡy>o\<ᮤа:,T`@`bRD!ۗ&L/Gu5+31&L un:\xn+c٠!&pjk5p$װRA7EtՂl)UHGT4dIʔأCa'jja"4Pr[W"`B!}kWa,H&Y#uOpGiɱ5>Q@# }hGVzғg]l,"ynOBfVCƭ1_UXCDguu#?\?;ъPQSWiРl3!jƘz~t嚟;Hͷh{dX9x~e4kkP h`h#Hs~% _ t6$P/O 5EpCSļ͝6F_VB37#&˙х-%4ЅbcѱQg6yjrK(o8i2BTW9x!}4fM`&V6pG%F 3i.kk-FN, GW:_霘IXhUt݅ bG:@uA-HX }WNjo/\گ:=>nP)xh5X(/CiV⢼2""EW6X?'oƛ "f-`'r{2ء:p DJE~ OOrxPm ƩYPYqP$;]ڬEMǓ8Ӑ1jl(㎘.Sդ]cQsDw1ǡXQ&I FHH5J9~kfMɱe.kݟԯG [[?#e+ E|6s&K +8&.Ҡw8 >HrԐ0$YDoNYMoҡR!_&A}sVoq [i v/ s Y'2f}?1O 7Z\bJQnhF}k{~KazHƦ% x}^判"kϼ'Mߺ oE,KR6$6P:\ }ÈR=,^?F\p@mjt_o: cz@p J)$"+'.>=#a7>uaO8`"C2[ݭK54@u5J ǁdg\ޣ %`2xrdlUT ?z7eg h)465Џ ,x´]=99ْs膭|Fٖ9.\?u~Ӝ#3x:GnhF/ p}XcP(@٧m Sq +aC$(iK9h_e @)ύgLdgTt )p(s3Y+ٸm:7O< [fL< lAQiy. {u6K@FȕΈ}WiI"1@I%9O2*7t0չ$1+j m!G|ISCJQ8 ϸm 0fScUnYkt"O f56<} ttR K*|4;ľV>jPG]HcGg>{VM3 c|%qo1=سHIcX IN<Ē8;'e{Ġ`4@L$ty`!4n=g6~ev6Z[.)•W'A-=Y=A@3XПSv삹`[["ʴp SqY=M= r"& ,ǻ$OL%pԃ^HC^\0FWTUb%\\m}&vG3;H LnT(Aж(D>U>^4uܮsRn|"Pp`(ХPTu"7$?ap1A'QX5k볤D[s`Rxt:fU6_mjcxFaSzJW _3Fna/dL14R_t+6̬osZ.&n${l׍-e1%H` "%I!HF緜'[tJޡ_=u5SXY 2dR`ȝ苳)j%~ys, pjnUs?%Ͷc6F>yTy M <xDզ|6}Xf?(t o\ ~GצF7P_{RWݞa6ΕJ(Ʒ&7v")!Lj$#Uߝpg2[{.SVU]Ef-]"HR8 xs nzė\=8n#j <& ~YԞ4>`9hAK̠ ]d@˰ ]l%1Xcd5iWNpyp+-;<eCuZ^" S*!Lyp vZ¼Qyѧgl>GNd [ !`I@Rݞ|WiOz$D>;d20v7ykSL@ 3Î/v2yR8zl@|Fsm۸^4 Y㭱!@x u::>"+g?>Y0,Cєu`WUكgB/s9.(^O_*Cj\ YÉa=wpw~ 1K)d'<R;.ry`J@H=oi¢$`}P!~9Ax8>yDҮV<`F8q6i3*xYjpiI`k-:8l@ڊudIC^'MnKZ֨-M P^tT埙24LAv`suF p[3Ho!-RGLQ_=(9g/z10 4-'Ș[F=ު㵰ɶ7A= E,z-d'^xZUPdMֹ/t@<hD":O); 悘µ3/_ JgYU͇hyv)+x.;4c89$0+%P= %{|ٶK `ٱ- JiX FR+$6 aŢLm_;+ӎfRaU'ZN3Lٕ2X1X8$5Ly@OY1mh%o@D݌`-*sb7*[YWDJ\~!f,1aRHv>:.ImFha  z f^.cM( qX S'fنmTU홹wDrէ:~emtN=W*ExwcNR&00@1'`)T`h.7rcp?wdj4~Q|yӀdbMCx iKPF/RT .\ Q! 84q>_OH@r8'4@չNzM[&^/ܟ:TE&ol *HʧZvM`Q`ؔʿ:ү?P}ѥ2=@@'xB Q8v9!TTcSI覣گ^0Ogp^[xwAG½8mRLL-Q˞-w>B)? c?H3|YN. nC+yni\0mR,O3NZT l944j8v #bÝJ'Itf}/f\_gw̥v!ed=#=‘04owpTmqVh7b-IhcWa;iSC<fZ01p2cncht@XmQ!ìig& ŏB rv=-.}xLw.,2QUOˎy'~z$rל閒ģf4;v0LZˈa"qN>rFB̧->/[yO]!s hvATg.6ć"dNq4s鼳 FHco~GmJd4ԃY!Ӭ}zn&G4Cf-Gp~',; ${tߓdM.qtSW3\U뵋J2]:mo(' պ=\ս\ i lLjSt"EF\w|G|nw!iUW@kKS,qI4^Y(.?Z:=HIzTNU!, _8" &:Nl#,t,f ӗY(Ai;c^z櫰࿘FyǟyRNlhP"&(gœP^$@1=[4‘Wih=niY~)bI\#Yk8!,~Hci tW޹Ss >c OMo3ƙjc-uV0iu:e'OJO|`aRZ!co,SpHwZ[ }ň.:<]ssT}JS+B!fZ`^X˻} QIJ/[c_hB2G *\} pĺƓH5Z_uoҕk;`{<c2\f1<^] "TհjK]zFB & ɸlp ?{vd{.A1]lBHޝmhcF°ܴ 构욆jEBOsUֽN.%܆j5hS@} $Jdpˋb, K"pDyb6u/vȧL~Dy-1Z!$le죠cwKGO4^iEKȹ~k[K&׋xp`O@ ߗ""\n1dŽ5ZqUjJTևʼ1 cZЭ=7$6\F*/}5etdw7Sc2&s7||K+Dݓ ܤ@i홊k\r-{s':c|(UDW LiT:n\W]Srϋlokwn(%zR" BG {z0l7si1oD)>{'ZI>5ɪg'z+Gu=y{s 78Z(n' be..9$Ðjb+JT/М-%Rr58|RP3;CG29LjulE>F h4>ZZNe_Fv(.gBtb% 7̩'Oz&ڢ'6_စ~| ғւ)V>f3w=}Sxf, b"5n4y"wo@wc{0*CmK=P\]gSO, 5E' 7cf"tm| A23R/"_MPB|[f uRD"Yõ?mEAoYJ,E|qBTG'{7HEwY&]HކL)8,>Z Y.&Y K~_$%ca0cYZr129ic|K}k9A:q{SA)ͱYg}{p) ht~L wg7  VoO V^xfp~&} j )"9}{RImMTeOlF_VSe}Z-L$AlL8F fGH]h5\.gWIP]0lDdUX|Ncsiҏl%E( BNYe!zJ}L#[q^dʏ69~9m8 }SEtNHivc"e; ]щP?+'Su8 ajجCBH>rpgXH՚Hx(M3KM&HVUK 6aActJkK@\Je@W暶INJ`8E^)k!Y<*j97鸲Adm[=/~U)(gM K?1TL:rrFŎ-6ɱubxp¥;^A⻇U6xJFؑ$fnIcxY;",*]Nsm,+9 6Qx'qڋ&ErЀAe`vBRuQtBƚ);Ghh4xZ,CĢc8'G _sw ?P(v=T)m/5fxYAGu(N)Q]D޺- n 5g@Q 8 *Hg %}Dm jrVp|'HW6O)T'D'H4( ?m ( QetAnͷ^`\T86'H>oͤ#pQ|-2DƵ^ ~Fmv p*?2vX j~g y^@@~L첰S3-`5E^o 1qo l # CA#@q?5/D0b1:$RAn#vW"R$uGZH)ڡxgft+bZCSLO?&hQҭ=q77Jxe܏UrNn):޾ĻY攒yʈy]X&)o?z:C4- 2I\A\ h9NX>IH2*|Wmfd`WJ*s~/JەnSZ z=RFON D|e p mu_ׁ Acqa13/f.:8?bNoMWxG|, mO/AT7>BU҄Ѻ#,W!,v'xvԃ/2b{fd1\q?UfKr͏͌`c2\ K/WVө[ GDYB[mga UߵvGy l"̗{7! [ / h sS7"z|:yCƞGg~&il%QUoѯkVaOE~V-]@!tue S 54RݷlQ,}<Ȗ,)[2k äޝ%m Ga00m wuz=٬bxzpE&& 5uL;C3ft$<\AsWOV(4x޴H('Qw:\ύ-4]\yu.Y~džlHexcvU%|Xn9z1Շm($_O#kXd0tlr.ƹ( jX0yW+]lKvv1"p6]dlnIHL\?dz8l~#m27R( pīuRG*wmw3J1XDž)R#! 8a4J3<[^;7>Gި'x`ﮫ.0|Up.宦%KtZ.VKa_okXiS6O7(w&gjXoLXi9*&.qn>7غKѝrb?eK2C9fco(3QN"hu*]g,O Ccumi ?63{5k [nճ?[$uw"z@_)8i> #\x;rˠ'-!U bGV$<~>d^CԴV/ ΁yXKRЬ،ެrݐ!0P( $J:Mb$b0[f5 GF`qHT5;.6n@2"ZŠp}0p4 iÜ9߮j38pKxLXֶf,Z`#b쎩B·@3+\ X0%nkZ[ÂwV^Y&AM][ tjNkΩ490%YU@Ïx1 ۭm%>D,9*zY3P'+ NU6,*T`, 9U J: V6WSK!!kOXc+cD2-T1#[-*x{h8l0a7T C2܅1f׹B Vذx!e3Q%\,5Rb/Gu&L̔m􏾤0FǾ?M9㦍>@0VЪ\ɋ*Z<\2&b3$M]_r~a 3kf3 N^n`ƨ_KTfpwS/!Fr=+* 75 T.@[gbN /Җ{f1YNy?=WEEؔ486L-lL>@ JUK,Nj9(9qp2# *BR/||΀9fX~6 ޚ 8k8a[ي'TD^ySFxUO;?19{̪gɒ[j#bH vR >mIdυLǧ< ;LqCr*Fmh C8Ki%1&7.reuU閰vqB^f촮GZt%~ڰcÜ0v ?2ɦts41 uju -bR8'xI!"@Zt1b4Ibb[; Hb{ ѫv zD+L~waٔIYހС"'TwN4پpb%QOfcCr uNV5JT!#' kQYbN>uf*wp`y^؟7wRdAZtj'//xM_Vo0E@bn /wSIBOfQlxA*mycM=?I_U =dp>߰f0!޻h[ vppZ Dx 37*>6"I35ɺG&vk+\ @ӛScK5G(P\5$ȓO;N3 V/ >6ٸޓdMU+j" )fTa~jH֔:9SSȩYRyV[+(d*lUmZA=$])k_JI 1+\v0{a'x{ ߽ 0pZFuR :9+]B(uI"f߇Avt8f*~B4 3'i4Xeml1sM.@/ a"X0{Z[ڔ͍=>-4 `8֩/,]7nCu/I]q^ᤞ 3` H?;l/1;4A!-'c-]&JqOx:fevss.ڳ QZEr0aSFCK'ZUtL sbZ4V*9"sM9/_-?foy],být֔8wE9ۿ86pCKOj? QrҬ JJ'qO&/g¥`S7pJT$x-l%"qO'^"b۱s ,0B됩뫾Ibh 4</.-WfM&?ɿFYvTp)bRq 4eR`{P6 e:嵇_҇2wlsWgQˏf+ufHgoe~ڽ͍b@ o< [g;0>3K W&/!E]tUL1nS{ᖵ Rל. lFg$P#^dC3Yv?yM(̛8%EV Yؖ$~ XݭΜ*I|@Yku½ @0!iLSm+U^'>n Lt1緪>`혐LnR1eU9܃1ED<8>/FzQJpaH)Y m#(19xV )D tB?MR83,HT#7ST cT81oVE#AGWF_f-{G*r$.U]43eF1m6yz/ 0EM@a/i !J8e|?7rrzj[3SKxlYl%\Gn5KlGk h2! .Ez2nQ]Rvo}9 9@d2x72  R&cNj9,BhjD(0fmzÍP?5#KٿK7QC (ӫ9s|cGaAZˬQ;ē7'̍`̶ԪH~ViJZ1 &^;9xؽl\(a:'1ŻHHq5$}P ei.!ef٭iKÐWm=IYÒ 1[e:}y[CLO]uS @ά"r'//o\3 \ad|Gnɑ6@#.=1M?68bqJQ4y(hK&EcK[w ޯ_*"Wp9'3#FЁ|RT]CرƼQ>|4ꇟ24^=g?^y&\V☌ڿlU -eV{JןNf4~jd>gWkpK/zKb֖e'~s4:uibt/<^m3W@;߶ 3qƐE7E. YsXƍ=]ԇ7v6(=Lm҇=1h|1V:\G0GOAEZ.F1fMMQ 1@H"B.ƴ`:_1!>!$sJ׺"ƗUN}2% ̈5ZRv4;ھ^5o AkUDħu˿ߩ{cE*9 l}'Jn?Y:BǷdʼǙzc|'7]o!ꛡ*} 옥 I_m4GeC@< N&Gt4Vroكy~T\SR;b.O<Ɩn\irz0g=^Fo%tX`u ۺV؈;T~I5 BJR0#/9eU}mB(քl1I{Nv .X*_|8QBU6@Iƞ@i6X~5QJQ- \u;}^"2y<;g=?$"; 脂|凑Qҿ!HLh'`*q}.ժ48cih$K6,=͓YdDmJzn;ЍZent@Ҫ'AZDa!缛$D[sAjrJ+O@I[HQՌ.JpdG7Om:5z]Id2nCeZǯVVŲ ^}B;^P b !glmdJϝѢ,=0?KF .93dߠ"a]tiAƨf:[wDѓHTp587>AyҘjU"| $p]5I#Nh~ .~`>?Q 'gi}Wm> % Ջ +ڌRA>#A>(#xC#KRj+oϱ Ґ `߃e |#E%sYaQD8d`+v(?Tw2jP$71 @jd膚|=Q,zȀ` BڔtMNi}&=h:*F>$"o792s4dd\@Δ [a`k9n 8Zw^r\l$aRvNkX+/spNXZIg=ay]ʗGcwJ-6!d<(~z?Sgf>}T&)*8G 0>m]OV|p-m@ "1S߿oY4$N|TZ~[7UXv1TrD|_S Oi4(gooz9&N)udj^HkeJ!ң SU1C]NɎ\DSXŦ43}봼 = v-,vO˧ݎ#x'ԫv0Ba=Z1dlTĔDz矐HWʜ<l+egթ.tc ?+fxj XMOrBK wr't5T\ᇇL}U26~NkC @*,t x1voa(3 e5^aJ'hBB[7׾&_OF>ɘ): fuffwA ]e 4)  1|^O] BAډ=;c:uSۧS54W0FTMʺ\<@lG0by'sJA١[x-i F)|m=kcii~k* H5f1N8$_ o%y[eXmhLJ1QR 髹)A&J |ZõA%`Ȥmj(D ۏj/:qjh(St?^VOH9UZ>kE҇8nS`< .dh!p$Kk(͔EAU wA {že֭ Hb議ℐd+CWpdbd:W\?~Z͞vWB98s=]*(v P(e1W!;T/^Y]BEUS0ɋ|Pz1C'ݾ|Ly eƿRϖi2g~;Zih|wț-kόe:bhh'qE*(ժtd7# *40xk],FT+R:aD|qPׄǑɅkB 3,Cz-+O`LF3pnVWks\ۘ.=f-\=P*$T4>q_[ub- Wa)0n0E,ą7XvDk|ur YLO~;uBpZ{e+Zߴބ7[߬>~Jыi5xBY[ HO-R"t sMNMYqmZg -=2]quFM}}{Ϲ=\OɾǪڐK ,[؜C$CCal&n+y 6Yjiόnv./x2eM ?m˷1>'IHE-H5f[.*BJE^"lW` J<{;bnX;tvxH}'|o|&{rMH.u )_T f6Z3ozA?,BMK|KmbB^kf:wGea畣%)]2m]=CZ_Ԓ6zF|Y`Ju: _*vşQ4J]EpiV,ovxYLB6z(^8y & n<,tBy~git`i:|%yBIզ'\My#ؔJLi H$"D%R] jf|y qA*crZ% .pelC_z ./#a2.s[U '+P!Rm& L{ޑPG&&W[MHt8X\ %:hn:iZ.Y_"<@Q0o{"vE'x3{~crn<[Dk{ zs~a86 ds/1u`3.M8Ώ]O?1WXڰв(ms3o%$'y`; NGnʴsK X%:9r']:[GUrV_GBhڎʺ.EWZ[X\K0A2!āoٌgcpV|!3a shO?1n |M "KY)+ڸ"#H}7Y9agL'~VMWؤ /_} U7 "Zw}M\垰MPS{M@O`ao{PWi3v;;5XDg[zRq"a"5tLo:7:ٲY'0c+[m9זּٴޖ?`zr1ԟ@i'3e9O5Mz  D9m!ZU(3LЊtKnwkg&4ގ`s6Zeej[hY Bsvft1eAxrı\\i|ds]= ;IfzJI`($s˄),F'&#]HPRgMzl?ɧWC7Db)_u peR=CM~]KXI 䦟+0a[!Ĕd l*şa6~Ͱ׉$긇uN)ћ19`i0UWMhS_] IgQ aXG/NbZ$wu PnQ'?ƶ߃I$|KF0@_LBv!e{XH&BKxnQh?/41-K}El Eb H@*;^[RH49GK~2N*++A{FbƄ-G]~n,, Ne$oJ.>TaX~#;zۻ}^bn ViU[ZFze FD-Gz3bM4ŝk;b`T'';%Bs}$QZuMuVOHl[zDOWmzqS 99ʊ\;"4#~^ I!aԜ^Ґcn1 ͲxaM^W<)._ cH!7=XQgRs"~ IV hs<5h[]FXP4n&+cv!rn`@]XסG+ 'Kʨ*!s<^5`sLܛPzA FD)yC6"1n!Gd Ct>֛ɵl&GH/,Ai=iE6%.ިZl fJ4)~DzJRO8 *6s,׼`S3i ;p!Zк,?e3Z@}"[.Sں(fa^v8%{$Ǻh h(_ /~'Faj e?̔X[LܥRW_]2I{XC٪jFС ]j>6 ֞V8:s  QzB9gc4{(6IGTv]:"wcWȳ0h-`8anq2e+"ah_5zmlՇ,)jClXZXuob6 A!pf*_} Z-Lhe¿rB\y ]a7a(~a+\ \rxf,}m5z23SԲ|z`:0눨a.d%>5L c1r8bw~a3a50 5a OFݓYCW m,i[@w!M kIw/&lf?(B_AG>A!L-6b6d$g4 }֢H[] T:RֹVjc۝@Ό/XBL a:O&sbW/l4xGFWe>TšO#Ye=Kl/#mܽEZ,g{K,R?>A"-IVo0'^Ar TזXhAz!,2us})4g;; ?+Z²A66>Urdx aރL-%*;'rn7d K+'Egf)Lh)%4rYAMA'VxtfϿ'9(%EDHץ}R!#3 7? q`hђފ$1u'|8r0T:a^خ2jrzˀ˯aUFq]f˾d"3e%kFMMQ}ݷΚN*e?|>b zwx#*D6P' ZBW},UuA5~1w,*Bn7ɖlzh 5M}a *JmPx$x[h1U:\@:lO#l, L(0VJKuUQ+J'5\qڒbi<yo؝O;TF\8;Ӱata4ad%h$ kx&ofR&y/R4xs4N{kUL2 Ʃx'V)phd58}-D:W1z~ϊ 8_R2Sn0E&awԀ!`~ kY_ bu^_rˤ7K3VU좰Uq0;`l%P pl k@E(ȳ+Ѧy>aب ݀:A5ZqfAJ4x39$8{ rAQa(ҬVج'gwdIjϾEXQ2z S9"H7wL8@n8:O?2t&RIGq4< ? `)ؿdvPs{ؕo18" 0p^Q7Pxiwj`)o.Pr LBGrZ4aɂ{ߦSfrgei}q_ݍ&}ҕ `1a^7/[.Ywqa4}&O`hS;G3=Pٓ:7puzM_'<bhS3lx 7zL_j3JYU=᜼hKэb]q\RwlسrQ;nuױXen>tTlDn{VTFMs֓ a=Ջ@L )$R2Sc@ϳUCCY什WZ-1;5k%һRi݊_VP#!akpW-Mc}-U)aG&&.~93 [O %υemۖMkvQ5!U#넼Krm8V0HGfq܄@+{+>zlyyݤ#1ᰨۖƵj}Z3%G/K.)6),ƨRɝzVRW;5B#tɼxPݾ7uy+pRL R/4N*Nċʶx ԫ8l97r/s$n 1tż,n bJPы6e1YB/bU39 =2ta5'-b_(2t3sуżr3Z :0/6ucbr̖z>zF&܎>߄fR-cN~֛ihAWxrY40" ۷3i>$bUz.vM'5W6x<`##OF[- yA'I#[uťM[lph7^%V:e6S%:(R: IOg+޷ωtzoHŐs9 # [YJꟹP r4w+.S|NoBj3D4%3Y[a$!o# `{le!34Pa[-AB-7d~f\|ye"!w]E&`\2_2b )PgiӋY o,G l>3^Yo` `vBڻErJ7dC%Z)? t ^Z gT2ڥhj{lU>qJ7Mf!3tKƊ6/xr &4]e[IKA\wFrns}}t> ^` 5MA,Ѓ%CO ٖknH=ujpi9 Z Y+$%Cr=o\ZK5԰uSE#t]jHߠcFY{smaS%TEoClwF,)ںCʎ?p^ӎmQ[( ڊ 66!'C|W+͖%d\x=. Q73g|V`Xp&,n,BP;ٔO:fGqA&XoB7v )-To.uKesc{_ S0T@0vI$}K{aDbti4PF [sT$*n'HyA;_`5(97D?n9j%$&GrKx=xoRS#Rղ]7.BC's &Hz5}>R%rKp.67cONy<3(Ko/2ᶫ֪?9OyL$O~  ] x8U}ˉk%kä,yi;E4/$>c_| Vo`KUAcQN#2Rb< 3 xA/!z](UXh 5Bo`C1TMy^?xV4t P:w)i{F1A[b[Bf ZBK֭h.wnL?U Q!tytY0>,ÀAV9NgMkږxoJr N짺hMAh([O*8pF!TFC-l=DXG74=$i'Lt"eZ6~Zh@Ht(LEQy]˻'~z8dug#߳@#w;앍$(6P5pxSVQ e6q*XPɟSݒ<M̽VI;fkDçuN8}_ ++I)i Lڷ' Hp}S$]eA WY%͗sb:Q, p1w߲(WJu<˱SI³A2\Zsf!6zI{mzoFUչ5`S{xyk_Ҕ]-A3]G㟛+x١m%%L5!rCHM؏|E q;^4KkN)YVPH\I*->~2SKG}RYL=` E`Ci͠)p;>sfs뢛TC=nM[ {;ejeI0n5 cRr%^M/߲FJSV,%8x_Hg*/)~#3=jT{Cr9eMR҉zA<@S*ކ-x`AsG1Np|]k}C CW.:3H fE[b}O%ܺ^<=4 '| +S|eO0kqI\un~&<؋%14|?NtWK$HJD/1,-Gz qCZ$P&tO=gkYJwLKpmn00e=0|a? b7SIǝ/l@t9HEς4o}qDW,99zw( u0c^U&ڌY 'gU(MvUvQkqRڮ#o#n|݇so<VU$^!JF"|TG1z#RcX]+gs? /-BY#˵ d? >{f} Qձi33b7*sК8tK4FAM(Dm\ͅӣ zjVA@(V~aD//)I7nZFtJN!3&퇻t:g&EQLQ+ \$^o ,Sq Od/R&p0/AzlN0i@ _Q|k,!X* Yͩ>* i|'3WOڬ'N8ibA\0] {NU`Oe7>UFbpugsr(6;khR-! "EA Ms i[?w  CZ "|z3rYCDpCFCˏrթV~Yuc"tHtK(u7@tMd 1 *C~ aiiDo!au*هPsxSʈcKkTƑ։'t @P{+HZ6NlnQP]gJVÛTwd}|ֺgȠBCN5/K\.@jm9Ⱦ򋥗4$XOA8C3QMΰpQ_𤶒Q ., MW[`];f!m&:d-ۣ:u߅^}`b~IRo TN…#?_W}NIa9 BK{}Jr?k/5ZZG'CL~5QpG5sf,ǂHЪ0¼|B%Ʉ"WIqWhz^]Ef8V./ÅZ3m3j. @XY `m[eUR={ c&YbdgJF8{墖F`|Ų6Eoq`sy:7{ҭTuAȉ,v;"޲mYQ d{O[ ~(.C#_!lj!jP6AO4oС@| ӗgTXH1e[@8'IndM( +=/#W'F+ [=gUVǁ&&En(1|xTϩoJ7ɦ5ZPIjw=h>Pa,o~8]Gm\+Lħf{LbR6ŁMn=nt]j%O3;:tlCw]tɖ^DMY墳 //ok\=k0n֔D]}HH<s#|Ӑ'*>Zp[ޜW/{i 4vTCd>iLjh[Q<~XuxY }_DROmrۻw/ksԀ0UERqt!*֧OMlAsW07'ף7!o!aM}Hœ;ԙC+3}WHlX؊m/8q䨉 4H^%m{?sfX'vIM(272W.cNkbnڍіqx[sIߗY5ձ4ߟѦuz/1J`zRw*_$1nPN[iŃ4#P˂4Y#_'N98\x+6,4EL|!~8,q? um&ՙ(zZClU5Awy||:-:/%c(5r']Y̊'g[[%{?E~/[YB!>MC󞻣n(H`N>ؙxBHe]IP!"\df%>ImԵn :`dpJP]fBD%>ZPnko?!کٖ^Gk?12@l.]cU70*mH\ ZGzG0sJqpS`J,Y"2Cc'U\DTGnӁ8[sNSԽFdaIrdH~V['6`Xam5|n(rZK$ź!U'pR^YT~Ղ! +e~멱WeʌWQ-bP^ڙa*9Jt@܁M~/:qu;Ht~V; T@h&*D9,7ut7.IGj:7\6Ťю-ZD޽&{pM6ă==M){c3ax}+K$0o'*"R'((N_W C X(gܿAˋ&w0чǁ]:d,Y2AhlG#c]I0tjHs^fYI48YkxIwG~pu 1/HyY4GڭR%,)g+ Q+%^\fO6a Ngz]kFCΊL4 ?];Ž@D!%bxfVoSfo-Xa@-.&hŝO Pg8WvP r^NwgRBO*PTؑ?FPZHV'D9n|4Մ~&#>KwB{ /Aӎi/1ӔH;{ۣ(cؙJ4b&eC#" 2)ѯ.5u,5c}K'g^9NCtB[Ќ!ZvBio,nJΙv 7e0Q^*顛#ޝjqY Q.xDOnevg/a{r1,M+6n6[ϻ]#c~^*#A勥h}r4d[֑S_˼̠1pq>9zr{׾ nZ-Yw8FYtN%}4l&[|sc, IF3XC&2xk, r7% ( SՁO$Z\e78wsaU"B9xt#@ݰ==QSpBayFr|vë#s;"!t~Jf,ҜG+6Mj~ ,?ʤټ|Pq{Xw.mbҗG}.}uեq|Ҧ|kv%Ҭ"/GP>[p _YKQ ?pd7FjZYBUn2}im^zl$@rV8dE1sz'G.!6*L, ^(]4̰9TioWW]syMoI'G@wP($Gey|x;e^ӏwf{ ?N?)?c}eK2:lɮA}O)u*г)6UD(w2[|M1/N NPk=C2 I9Kc@%rp즥Gn>M*΍u1HRy o k>֛ Ra_mxN;YǾ(U׍`oq\33zیBA˅c/rqOٷ+%>յ7a[[muGwBX#:I"\Qsr3"xW`"Dw eղκq/PqK %Q@p)yݾ=VD4Ur5Ĥ '/[WIe+hmH>dI(7?i?M5ΐ)! 5{VYp($̾8ydVFu4G]&6m " UBaR&|~+ '5o%H 9VcL:t9K&BiH5LR~ Dyܗ(9Ew|x{rVu;HTjOUX'F2f|sW,PЗ; jUʊ'w9=AM>$A+k|9PŪa:ص(kk@z/P*Dܪ$7/zta8j&.w lCf jI  g0ДuL'? ܸ@ ĪŰdG&=%= $OB *Zق衙ay3Ŀu-ܒhe<4P_iheyE߽|Lx3ߞCF|Q:5ig#PŔhspÝ3  9Δj}mH(5_VKB5"^k"~%9.Ǯe*MtgZލ?.әOOM~X398hO m]"J\UZ'pvb"ۼ)Py9KϢq-T͔VO962-3Op@~u W͓҇,.7KZQ˃/]rd!źZu/oajQQcfբ9%'Mk:XAp>FЖg:=;|2o#v (˩?Xp5Jtu-`ft<;5?;[#3~|џ=~=pFU*wG LGc>0(m<&Eପ-]䦶]@@7z.Bs; F6'9e2LwZxX=Eb% N܉]>9ҵ!A ؉hK<77|s,`>`c<#/}3G/Q/IRߩCOmٚq7cںhֿ?#t F"a|N˅r{!dg&y14wu.ɧ%$G4˺RAbkrPG͈jXTzKZҮx6;"#@u搈Z*q˰)-StIzq|vD5^5 3 k֓ByKB/!J6arXmlf&6P=6wGw$FtWPR:V[%?C>NW! Åh (ўC0T6"tj솖{ ]&T cY\{~ 0+:^J٨zHwohu uˉ4VM= 7=='Ž;]? :H+e8ٜiu1;Ag=p_>%W_y@08(U$pKcRٵ@+ojןHN _$QsTqZɍw9_"i՘x=v ra'幈hk⃞,raBO[Ot^K!p?|-=1cʛûKmz#&o{L%j\#Sڱq"poH/$ׂ5?5D qRPOmz@ ՉbaRP(.g5'7C<~au-/| es(/c ;, }gg?=|>/Y{+˟Jl!:T37傔*_Mx;H^C5z9wU1×@fl*ztƆ29= k$E9ؠ$ۑ IU b?c@Q$KM4TWL'EXOE1H]TQPb!+a^0ĩD<@t>K`=ox./vhЃc/SWL# +iV2ARS[ў24!gSZ3Z=eux3!.CU:@$jp)G|$6jbQL_8들ڃ2F^:uI;Vݤz;eAnUg*ǟGg 4rW_@eClM>MD*u]wjzGIZꕖހS˴j!b*-z1v*Y.I6D&0Ȣ$ZRk ^PN]y_ \09S哫4{qRCG‹Q gRHY/ fmf(iG~.a}6qu|<#BW`r5~*'J >r*^;PO&|[p/e5s0ڤUϠ "3 EGsv =șοLX.tR3M5 Cp&H# tDaBgݕmN/-ѿj:.aw)D}i5t,G0i&nc+V>Q}=#f 2}2Besw8LՏxΧ3;M*$q)0Pe;@}MVTmC\QTD[U2/.66/|W '8mjF(%]6 L)mvUƊ!.O|a>m4U4*}NA%g!!v-G|3:|M0^׍. QR#oϾ`>}F:;0!o;SZ?ł民 ^kY|*&)%kz6m>%-j?XzB:\e?zOŻ*jO6xX}cژL v L.gG1n.Ga+ۺ=rlTS[0ɨ!.) ?Nx"gȐ+2|#WX<>Ņ(1DQe弸S<4hn4Say @+'Ya@u5c,t`=9j I L6A-_Y]bu"%<%'e9M&lnS^ⰶ'P Krj0(1Gw`+7py݌+d'$شZa4/EWT2EV+M8t:ZC;qњ8;eEml. _Y1c\@xR K5>RB]Iݔpg罔ӑg(F-YcjStK;,4o(tCX9"A;qԊФ&gs;sĢ۬'O&δ߼v,c>?(a2RkóR8#p]#V;t3sY:jOF%, N*i%x2\z] U|C%?bgaiiMG!x=Vv]3bCFٝf9_/7AJl[>2?)a2ҠNG)f7ai&<#]CAO<|;dLi #'oai\rBUwZʇjnac6^Q+/8*ghNs*gZ.11pU>5_V#7HusK}'{~C5E \<O2қm;o_gq#K ,\scJtWw;DWQ`ε81,bG Ķ^Fpy84_Y|!lMִT7XRs1zT"^n4]EԺɩVgLД4@Y<Z'F9"2`jjTy(8Jp?(QeS_*{<'4ťM+Gv=4{5o^CA=EłmN 3̍]1Et#$ H˛-ZVQ nbw[Ibƕug .+[U9E0x yq ش-@QI$7z6ዱjX!ȧKݣ}A 0 :CUB%e!;/jK h롆r\B&Ձz*$ᣎAR v+R"oquK!f _MKI+i#naf|sȵh֕aDZ-|D7qPy4!=abU MǙy_fҷ\])9C60&P73z 42 &ʻڅrPˈ!)f F 60 - p{}" /a Y>Nّ8h7 =`@8)b[aD&X0>Wj^ohWQ8RM [nvA4({WUc Dѷg%Se%eMhRJ{ɔ F] UgYEZ!J\"FykJdjr*hhfJIΚh#rKM7O$aӰB\82 (Rm̳$UH!?T_M3x<cEalxiDKNM?rf}4 %ȿ3xql4 .>tY@* A(r1_Eܾ+Fgg<{pnDhu'O Am~L!p>%@t̥mR&$[a*]/6qe+YgQ DZįVtz}qvJSDO+b S=$T'5bAPh;a͝]@}6i_3OZQ,wIt&6ыʝ-nG+:|^7ɋ#1$,\[wͼ\Ah-(přQ4FA9m󩩨bwU;+>p0fljPײ9]'{" > (}Ȏdk?SY3moW-7"GcdWG DQ| Y[|_Xb [' &"1z BSVÃ&F>؈2wt#yazg ч{>Ml1"!/617rz!?.giӀ)oUލzIhǜijQM?BXec7p߉*xN6<&c:9 Np1JV" N+.-͉|XUuV U&mͨ#m =200pfh  h:tֈPm}­9s[1agz{4?)Ww#Dt'IP\({,C׮+|i{ 31L l*YCaE8BW< /><7}V^S:sfX#F%!9):q+(LS6]Xpȭˑ&BEP}5)с4QqiW]/\ ,HΥ7ƸDT? 9C~=!Z&he5f@/ۈUqLH6Bfw ? Ს[)Ij+PW<N"f$ʩVxjyّjX4<v1lӅ? }+nd9Md*W0קMQ#%BچpѠPnz[dTKS|@_kfDr:&'M&~:AIEVA`E ;Xo' ބ2:1@A~˂.Ǭ0lט0 t]~QirNDH [OVOR"̋$O7/(sbO:$rTXDD{g՟K9~Un-"ɓ9PCSiynP|?G<8;±tT%\mU80wwUX]_^F qŀe-)uIr|E$41:3OEI +cg5W2B&Q꟥Mӣ<81ltp H4HEH]WRbck!KFa1j-Is:fzL\WJ* HWD$=ʪ9"f8ZA>ۿfK=B$>g;^ wxAڴR^t[]zjסa5ł=at2 ػew%%"Š% "5pHJ!]qߊxERGq ^N:E}6 w %VĦp {9 B*m !Ԍ$ egӸS{d/¤``xj͔8U} `jlU#&/rQG BrIF{t#ұ@_ѵہMϱq@rT%>ųw("wU#k1>F٣yS{b Pr"Q"}p@fy\uFk67۩Bܑz~F|Qm6r;偟mTRR.?WRV]tum"Fj8hD꓁[4.I wZȝ_vlb[gH*$_914v0 hԋȨ9JMČ!`|1~JL<6aj` ZsOiv2ʘ<|p̞7Z s⒀ۣ[L [|JBU+[/{F56niuKGG. R$pM$5t|ƟԊċhf}]t1?FlKDa] E;ȫS$J$-tgPyۊ]0;){DTB ́n"n@r7`LNUdl|Q'SaZBX"ʟfmxjٯݟĸky(V%$ooNeyGL)zύg#(i-r"JR}}[]ڿV_vV4%>IͶ k*&XYc&)lD-L-Ů"q~.QX2 )rfÚ4rݤYz3R?A5'4.1B,WW&1+t h>uv_?5 4GI-I6 .VJBGrע{r\Q:6.."ЂiWpx ;1qc}t%Q8uړ ?Sنux%[Zퟳ:DpA>E_*wRȾ*b8x2bV{KU6>&U"5gM3݁ܣժq|&!UgG7oF" nr11 - <3?lS懢}+ EӚRcnf@^*boɩM" |ze@`'NIOqhɧ x@;7L0/aSQ1R-l tZ)_\XJ ;1uat2vu/)Z두&<"`;:'2 ">neaQ:pKRIڂ@B|]8EZC;IP[\yϊ>'TkDW+ Y`!2( s(_}%rrڷ8q=J#:qC ~8fK^Q{W#Ilad<@-5imSv_TsJ(dXI\[+s5Uq04K;EZvKtuW޿$ܒO$G=M!!%: J eȊ"jŏJ0(VU 'E߶}|؎;9X[ֳ[Odd!(^Ձtlş؊" UmjZ=N!{x5&v! Khfy`AK聱W E_?J d7=0UZ{c]^τ$&c+&-=\N>W[ů*.`nU>G~O4zNgji~,=YSJJ5Y k4ޫڨ0a5+'_?/ TBUD (:B  EB߾hg/prLXl㧚+R+?;knDWiyX2D(9l4.Hs܃6=˱!Yry@nLMA E;9&̦x!;o7wxgMQ_ӝc۫]P;k)xhhLEOA(ɚO̡>SVpC{BB#QXс1?#@2"E!VUM:[)CCGӒxMS/7ۚ㓀-ʀGݮM)}7!(Tpv9Z۾d@{uu Q3phK.^3ȫzŹWh_%Y0:9p嬜;z VFz9͓bytj,M+++Љ'GcyMIDyT|z~Q =#][\|Y|e2:Fp>gH1,1ڮiZB7xBE9{ƯɺEic`ps(* (iܼ+F,jz }Lf\v*oƶB-̳ }%n\<\8cv4%%RS[|!=6LvM4?/WO] HlQ/"m/|>铲#Z>Ko EW7J}ȈrfȾ@vwU KӔ*& "zfd6.vmMyzS,y Dx{Să@Pfo}fwr'Qc -D+;:[n 6 8_x(ֺC$ DjoW6~8}NL?c5H`Ǚw[?e?M i,DM^SPb;lՏ=ȳՉ?#??>c-8k6]&nv4;'D!:.HߚR{,N{ M/Ar$uoD2x}~Р]Qg(0\w*p"-A^)oRQk?ϕF5RkupϪ 1_!ztS xf`;s\ }G cϬB,o[BY񢖱-xk"+rICH)tA9Pe1 )bYJ{GTp"qXװ3 ,WA5cp c `Y/@+3gT\5cq45sF1W>Vpؼ$:3=NIi{~_=T.Y"RC# 8Cב$ .R9ޝt6JD_q+3Ro0϶!12ތȻ3[Vyu{#vmfP ,4a$RuqUJB_ogd'.zeuBU*4cY9iGa|۾yoۼ&-+l'_YluJc\e: "M:m"!E,NM'WMQzQeH#"M:|Ibs,Xn+ [d=@qbAeTz:# |_뷚r\)ɌteVWU Ά~xBH͐*҇;);*Hko [ IVOҕE ſ;@~T7Wx? b<}7ErgFVx_Ä[e/F4|J!y| $,+tgm52T+IξPaU|/,,A:E("6%=#ޚ$v`H"ƒ|vL?c-"2 x:)f聏0peleu̪E8c(9[J4a4a}<otdm X"FU|::CiKo-xCó7 QH)A6Q,x;؝qk+pǗ94dԓ˅lOUw̿Z͹G 6%$ނp8l͐Ճ8]Tuu.p? (B. ɇ `DZ =: &J;2ougpIR,K-V ]3%'8K8As^}xx)m S=ҿuFHY)&}J* H?k ! aکIUgKtoOrx0e3'BK1^Uw^-5mq'ja 4R{P 1Z# $î5fLoo6ܭE6@y" #>("v}B!Rn45W|@e4NjXǽ!`g K) ~R0qA`5-AzN3=6zŠo j/X;KZ?m\2XlNŠB9|lm=tb-ӞonL (16KF<5#$KFfCE+'҃(3}O[kM; YTkX<|"Ϩt{):I%f~w_,_NF֠!Dk ~mJm̪S%4ilA|^Vv`k恩 İ6WjRUiçaUI  pA_.瀗/|*:=9S:m{&6.ѤgK Qݾamwd2:^Wn7;A[/$d򒹬 ƅݝYwѷA_&խgǴrK-R"ͱ2=G3S"1uE̔n %ߏ'k^YU*C?;MGsָR@E5ԗ`ih{J:so=ڔ􏮳Q8=ЋGF, 6k5bKjq &avVD$"= /~U4iy2H=c:vPZZql(y;_ +/E!-9Ascs{q(%v|7kd+RlZU'~Fn_Q C?iA6 fY!eet)B/X{;6J`ͅ#iqCMd^i7D\R(M~"zLk÷)pҮK-nҳM&}DzkMF#y-s_s|:;9t*2l#:^Mn|j`o'5%S1idl8B8Sn\VN!QŠ)jlhTvtAckfdo *J{列6D>;WVLUdI}ٱ~aӐhM_bu4~  sXY1C#&7ȖdDBU BEA{̟cH,>k cO"ef6 Tpc%wkfIyM 4i+h o~|1~m˔>!E>!t/!I |nNƁxcq=i|L*?jMBipdjbT3nSvMN |hf,̀%B*7XiF,<p;=4'z"6čh hҏMB?![l2௲mt[9La ٣b] ғ7OwLΪuaL8s#TqQY%GY٤EtKy)QМ1+]t^h8Q~k`_yW8|=S6C=,Izԕ^2#kb${kBjr=F #.W>![٫HI;bbRڼ--]L@fkIAr ELknD k|pS4$J5{e9 l=z.0卺!vMέo; (gMDJd8miWFłE'[M'+VP@O㓅SvX4l'(ŏj# ۓW({&IM3SȸghJqEe =dʧlETdHVX6kk#mRaupfnA/>&CBՁ3?XbiRjyG2kGǶ82T1X|Ѷ!Ce˘3 ~Tv|物cWs&`\ѐc6t_xE,t-A B@EmIM{۝ɑ}-K: %[+K7|#GF&_a/o칌STD/Oٻ~RøN;Gj獝i5ݶp&y[q.3?y_Fꌉys)Ws&ZLǔ'TuvAPj:da97лaheH pU݇kPww3_B{Ҳb'EXX):*;BՃ ~lϒYWP!vPjI -x m#GS3г,iA?e2Т967g A9+8 ]I4j,BuOG5g9+0#fWdw//y#;Ht]}L(RaoFzxWȥ.L8Ikr` 6Ij)3 KԚwaDG%-eO`"|<_!uJ?pu:DI1oV[=0m,kByre7ț񎟖vyB#Ul uC. z93S1MǙճhƪzv^W1o_Hz$AZX?tp; vѧmt-9 N_8إB,߅I Ig`Y ِOgBYYT90t;6'L?k b¬8|kۀeEӐcxNUF( 9 DW5L™aEPWYI+1߻""?QebyV>` 1vn:?ND cX_[RY4}ן(ン:t6tGČ7_Q܊Ey6T r1@KL%²lHxϘ$.Rb1bBX:@'R큾9 #,<9fc{Z?SMV]Ǖ#G G~`~Fv5P=eNV+d0+@x-o'RFPKʼ*P]bW%w-ǹ3jq l_@1g< ]?7SA"?'%o*"8/%6H*pŚ9)uf9{ߖ+iGܿY-pH{,q]H[:2HSp"Fv4A88u2l \:~K./"%pѴP*:05/8 tKKo@xﭺXu9.7#IؔJd'3 3],bT(< -v}T%"sCtIר9X__#0 mwpdRǼn6J[QSE.'f!i{7F"=FEgJCS^Ea:{L9P)ͼ L0UvR".P; ^ZA g=7]0Vۅ`eE(KНkv%VB\I81pH"m_~YDYs6̳>%nȆpx8n=i `@)CT09t!R;A)(yy Ȯׇ?;m@`}ᆇ < OЙ]`U }rY"\q;-Y8 gX8x6") Dłz.cOo2>Ϲڝ-ؑU86!oX]UF#Gb.? nsO?0;ۻ, `H P$~$}x稴̦?]B[ƴC!=U{eY~Ѯ\*ڶ9@| ѥE^6߉U >8oʾm-v@bb܌+Wh^c=.v{b+ %UtIRyy5?  N wo2Ў3ƀ]WWo~iĎ9| V$H >B vY> !hu6vYa>0_T 2Gk1"Ćf]k/{upoz邷@oKM{Νs)s7Z(%S Xor A0 Ƃwh1'fr.Wb;\xq0ioxpg -Bhz%ERI  q'|Qf1dtm06p?JrHpg\e3,Uy02ٹs 23|pf K4ݧ70Hh6 a|B۹iDH8=٣$i3AW|${@ &F Z@Вc֑0Ǯ>v@:y\vDT"74 h['GVlUP:ȸxKqE5Zp+6̓㗻&i9f058 (؟vm;i"`DJ\rW17E}Ǟ Q R+za$*]ǀ8;-K`?AS%Q%緳|Lt~ḰL HBNh?2 bJ r+ZKCPW3kD~򥜉.pc4x)yޅ"#;p?ЗN_SXe޽ʙMH@Qs=dBQD]-T}HP~WHmK^)y 0 [DtȠ>q&'!;lQ3ƕ1*MoNCްrz?XMg:U Io! xg^řwO-VʋH m=׸hl~x [mr^˺>_3U_@̠WRua)ǬE[ǵ_Xw;Pk{9 cR,"8Vg岣Cx3y3,*if/I<4 YޅFrg,h i:3ETȅC`)d06mbϕo4Nsua e>IDM.(_n Vnc&VzUœ[Ԩhzg<1MƧzS(ſ=t$"S4;Fj9u Vd}{(? ]Zb&@I: eUs)u=1+ mp~tJ˚F8MVzu7գv/;2p ?{I!g1'݌_*[߭}"+: &mk'4646-9Yv\8v]z[1nz( c/"h}Lx ЩC(ᩔԲؼ.lyAo=8;Jf%>ԨҮ=2yeS<(Wmj>tq8j{v}g >HUX?aD+ nv |{5DSY]d,\e\x-'ۿ@BL\VeIdw|kiCs죺F9a,i+]]j^/U\8$Eq˰El _А?4zd\ڇNZ@p[ᕯ<|F 秲M1R'HYJ_bzM'!xd4G4bᵄ6x 9_P Ur$4)jQHV;ßydli:~0|,IV,fc*HW/%נǪcM +:T~O!OZC pZ3l&$ey.L$ +n%߭y?+I+.tD.@b:9< !i=c:@Ox-K4r^ɯS GtaiϝrZju2:8 Xeb2r܌а[k5Ѕ4Aeyrn!0; փ:=14 BkbQST0Fy4z0 4Trw3+5&ֹA+ N&'QeMM.0Q̽"a(KE0[lVr3?TK;td0KJ擵5y/#${ӊmdTViHX<~BNnݟ2n0ЖCq|(E؂|Oo#g8.6J'jJ:~}ld>2[R".3u0Y)dFNKLiʖ= : .C[&Y&F뛛]KsU&85},죍kOY{rRI* [o^M Jj&4R* Nx@:)iW7 I܋Y/ HAu@#8>=rE?Ri :7I{#`qZ7)D߈&zeP"tZ ;+ ́7#(Ctҩ2zCIxQpܮ +!\a]؏WU_$OCƙ=>#?]6,Q L&]42"b{P:(_hQqwz{CXY^Y\2p۸}@+Z튃s pc&w,l$Ĕr+> Nim,K`*aZ&MQV)^m)\Lz.:Ƚ]{՚! qx`}6I 6wC+(;*+D,~c6l ,s'r :6#~[[YpR\ X1:X!j]KaȉAGhv:׷8#0tOJ^e"Bn7Q@o /ZX:Pןz5 ];%ˮe(Y] tMF-lJDJl`PId˧h7 r>5{K4SΡP_|H_ w8G2E,|t]Ǘs=nu Oڈ 'Ag,=PVx9\@W:%J+ Gѯ1eHL|dJB QUK*W3cPPoazt_Zprz%qTn`G^}C]'r?YEaԻak',V ,G "'Wn3r/mNFfF]ry}TA#0$̧ä dQ=BY/wViR Nj@ qјӉ8ﴬ7LLhwSS-e8+%!4 \gFO^ ,4.nb൯vkW'!5*ia%R:ӄ3޶#|71ENOĀi %4נ[RX9fmg=^KFY/ c-h`M#`௳WS=]Rq&c:.~ uɑ\聳Mp?֙L{5jϐ)eʰP?:t+h1=>2xIkH3.]. V6fCК0&O])ESAp/j }'tc'#EV e}kBg$ܘ[l9Q#N0:^zðF'`~aJ/Yջ|CJA19ܥ/]_wf]xH> @"W $/i ?CFf2 Vs=HZOJ.5K %4qad2T< "<,^|Rso/g=ظנ5q Q@82'cfJw0Dkfo Eh$yuEὯ^FM ]%LĀca 0WHb^oH }$8 qZk3@J$F78,TY5v ڑ)'zBY!+sxJyPEH3L8> CIDgv)0> .H KY+::Z@eo3@n nkB9¬6] S +I,v23S- f*(HfWң\Ea$3b {.SILbd\r Wk3,H"^v$f+H#[!6u ?<1}(H!h`S=lMԝ(iߞwrgpِk97Kig]eft<b\,PR~7 6L99nAO~|ush['"Kη;V} 9X&oÈP115Xf4=AOʹм XC-a  ⭷Rfj"Cy;,+xUOEs"w}kCH.AO-}K]JVܶ Xr!g6~SE}|zb: 酪 Hϱ@ ffK&:{qL7TO{tbg~ng)LY$aA}p54uKOVLɋ,Z]uN1 QR\np,#"!\L;]h/"cqCB|e{ϙaNjnv,q6ؘK]e vbFT+YLٸ7lTӫXk3LƟKki^ =$(9疵5.5Jx>Qh}TV0^AkCQM=B:܉Evd$Ym!Ć,RipNoBF#=˘O,2r@s<:pj_A! ?GIil9 'vH^ngxSyTMAZSrĖ[v9Z $2aq|-KWڷAZ,%U~cwb7B XTLVȦ4Xo:[ۊ!0c Z"kFRǜGL˝ߗ?-nv_ٸ.,u^ɳwsS_&sYJ mblԾQ7 {";Nx&AlŽy>64<ŸKٲw5/s\INO52(O=Hk}냸D dW@@tr5NP+H%\!taB:0=>u߮$AΖٮS.UC,x$LhY8Dp'I 7?NV51^?괻fY&d.eu+X%JiE**,=`$=JwjTۛІ0!(6pfnuR + }=6b 4A}!o,ط|Q}N;jIgl gŕ1)//~Zp[>}2yGxJ}ݦu}" cݨ{3K=mEJ䋬J~r6+%mX8uM@clS_b2:ԶHB݅!wмM ;d|mY5RŢ!z玏v-i{b۔_q0A-:[t󞶠Ѝm10֪LzqIrrD}+xkFJ ƗBQB;1!һd{o+RN,ŞHc'.y"'Es :y"Dbh&\_$Q!"f=/c zH ?:PsɥNaP~QCPz gjcB2ٺC6hE*JœVJnT)aZf^9bbҞ19ltؿ4vfjz&4j^hM#Ez*)\G$R IoV#Cilr7]5,ԕbb$ Jk@V<ǡv-o3?tED/yF4T!]IaecOqZƺTZ"f]j1B7Sn/Λ+ 2.ԂΙPG6z};(h9;.ޏ8B@I{~sim<,$0YN7'shI~{a6ŘxL)CM1h;ⶓCx;E> vS1!ߡjR7ޥTq渜u6 :n:8[C"܍ܱDNtȲy65 }aɳLK5e[3 ^{S`&e6`liKx#ΤCBe0= ;_=+vqiLjMUX zi-|@;ަׇG;}_h@tZZاO߱ 'Ӯ0C;#/w|_2)cMJcS߈&ע; bx{~RI,aWWG-w â +}dbVu>}zu6g zʃOǺ%c2|qStɼe~G$Zdn%PEǠ7I Ev.}/Es؈Hm%y)ݖ. _S3`p DXeТ,mpzp䨊0۵K]*Fp!p>0! W%a={Ͼ.0+࣫ZXJO:sLkx-,cm#4-۫<"Y(0R+fӽ96H9_К͍s?fƋ:zuO2G7Hҕ /kk\{H%I-!8GvWܭAZy B:dɘVH؏lO@ T܉zff=Ih@I$@tC(MʝtGBUj 󜢋 ry'z#{-39%ؽ?Rh+q=EJ{$㡃#9PݴY>j''n&Tj85P -rNuXu  r\AB;rǏb NPm-wUJ~:YNTŮ$)_prt)2,mNԠSXEv. - e&iʎLANv.܃M=7@LR:]ku~)J($H~1 $t$:ݧ=%~zl i*~@Qi3x0Rf3̋!7n ^%e(˥DVz3]1%aKRݒ>3Ecl4QzFkC?ivR>׃# G1\dܐTiRFU_hPN )wYQ"*OXǷLV*,$])\+E;T"r|go^^Q^`4s{Lg){peaDzxq:Ը9J!o"&t[Ȫڐ3*C8-yXuBl&ŤFًF!fuY.r4n`o,`Сwz+;hvaD̍S¸I-52aADJ *RŹMX=4":xCs Is7<K"~vzY6^v ]e& 6%$@{-S1JWqd8U@5 .K^ . 0~U@'Ȩ#V{4_fuk: ^rpvu>#}f|g-OՊ踲8%v:Tde(3ITk|ި.4:y>1[?R2]J Oهj 2..8Uʞ߶%ebKdm.̑4ϧ}Ԇ|+%<#j-j¨[K*->AN9fR(0[Р݋ Ii$܀[c/~yj\Nֽ۟{d.7ּc /אv=Tջl kҙOY_iדDNJmO2Є.v&sw /q!z!QƏRx4l7=f;c9٠0V=>=2 83<\K 3?[aH3GZ`YB6W"kĝy3%bw؆(3Z(/1ѵ,Rɺ\L@dB0;|?NrF4Մ9泤~"dǘaѢcGsR]-0)ˇƳǭiYa@!6o.\:Bb'ih؆UhQ)ܹoY+Ni>d^Z+@,7 +ՙL]ʜ f^h_iKwF GO8sh :hl'nŸPa5|#8.,D m:b5/=ܙ͜CN_dIjEROܩƩl do0\=4ZPh7)x= l,o'{L`)eb{;Ѵ{?;~^Dq nqkfIAt L~;5]=M MAib!C!g @JZ@E{x;2@v`8/ΰ8_&A݆pY6 mכ)V4V]2)(0-q4kzzRmԛb]ʴW\eG"L$Q+4' Xw0&FnHx.T@nQL(k@,#/\@> Gg}ZKCwBo i* =2_`_lEʌ-`aQ}V#$36mӪpHggDmXAS\QE͒*u*$&n=HB{9^Iv&9|&@ DD| B$]D ʡi (6[\2bٴ̼9rfqqCڵ†oP-ۡxoL \; W'\ym+}\<n:ͳ"nl&a> EVi09peY 4qV6s:9owy<ϰ2_0˵79e七Di8SڱBBi~w9hdG^`)~I9[I?F!]X 2E{s8OhAbWJs+g n_?{KnO*+KjPŕR-l_c p7GlNDȩAlӨe>dx碯?*8XWI{bã̉q#œ,BB<(FtvpSpSF+_2 ۦ:`H}ѸB'htİ}ż78ݷӞEE ؕFrg3CubՀheQQ/U?ExO0tJ j,!ai{?"`:$h2nmrGVqgoUq'Hq$LƛfA7SS}WKosqDybit~xP1j멕$@m> y}t= ,-wUAfqB !#X}-;BV Z Ws-4gVWOU Lt}p?qnOFԒ<=j_c]TVrki+ڱQ5ԝjN.p0F *C!.Cu-pXNd bqC?+. M@X+ )"# j2q|)PgP$RߌSևg:@mojX%bOξ:Zɧ%7E Gl}$alIVaVԾz^^She}h D|#af}#=dX޾  >swaY|kud7MU7*⯺ >O:sN*&@" w9-֧|8I)Jlj;_hOn@^ GAϥ,H%M(N72Mvk%nh6nRv2iJ/m0TABA"GO1hLЂOrc|ƈaC+qc{ Wok;L ֵo3]xg d-K|kc Fؒ_8yc:MBmL*w!a@/6urлin9;ڔo'-)̰VPmWTP.ekJ$E&H=>;%Xqcn}bu+Bh ЯeFoZQYrib3mh#=\h` l´!:D}"ۋIi]tmV㵒֒þ 2ZMEx0~1qT4SuGϢ! Z?tDKHD1n0R`wٚJ[FQjaIpJ!廞O:y뽍nNJi1c˗IQs1nN7MDVRAzljz= 3`ˏN x7Yu7M$R; -Yb[T]} #5s0$F&vߘGz "=F^"[NH nI nV.-;>Z۝y\CPU(#KN9( 25z #5 r${NJG Op)+q`}h0%QQrs4`ITӫvjTڰP*N~= RQ3Xz(b]JҢ'JkaSKN#)*cD=؅AD ɢ $RA:S~os4fL?Yh$sqo #5' 5GؠeƺS A%nǦۇv՟q*4\4qmc]ǿhI 蘞/S>aϮ|~aZ8kqᨳL+hI Vڻ"3iprOvr(C5 k'LCߔL(qpq;V-}ʝ q`c8G`504rl ho Eh6>(@p\Pr>u1¾Ք@Kj,kA7;&_ #ѫvDߪ._ ox &:w:{ 7Q 5J׽ֲ{68zYԏu⋲ʛߌe˯ Q 3]0"ܥk^+k{1ģpG. t0*i+~YjΤPx4S,!UB$ m D-ڸ. }>ŲƸc7]gkк+5 H!](\++ 1&Uq3P8 wW#=cPJzB6ǟQ`7~POx>ݿu qx0"İǟlZeiS0F|zo:aEZ:0ޓb1J6%'f|ogr0oi:naX \\Vkm:K|bp7lҀg1i5F{1G B钹t]K3;ڢ)kWԂ z8(Y4ΚHѩuƱ1dpj8OBq-X ѽyF9H^ "?-l뗯ǧ8 34BNS4[4( m-'|g۱ؚ;aҿdm#ϔYu(yMGa+{܏E {dVU\.nS,O@UL${)Dҙ.@W"2}AHR#RMϞPijyprc 6jqAկ4[}|[4+Ƨ 4N)WLjrVpyUE&0%Z_jO' rpBXBǟ*ST3!wA TW,D+l(Qy`HHItzKмd-. /"mӹ\ܠ,ԻgF8%6@JIxrUaFTED'd\S L$N_R1wh#Q"4_-'G.d]|)6LI$.c!hu;!GBq_ZW:.m10Yp>3?@$Nn0J} 1E2{m[e;>RL] Pw>^k4A#.z&1--yuP2|b޾KjLS Mxf$&ѻ akE2^ ǭfpn.#QSCX<&K23vű=T˕菞b&N nt+}aդtR@cE uyN^|!R_BA38ɲE i}ypzTn_g PjNUY(*匽m,mو] Hj>C{Rz\i)FU>21)I҇AUZn̹4ޑ}Jgvں֧#~)[w=10\Zúh:sF s6 +#$fu KAu-n"i.)+MADM8/mkV3&zg{֒* `PW::0%jz- xZ=BDH`#2ʹUS@9X}MKĢ5& r0O"Jn~Q.|@wsU;0̙fo3ϖ2 x!2ȁ$U&]b Z#cK*{@6?3|I= R۬:.I. 3w3>c:0+]7b3BfZڨ,'!obTשA0!vu iz(,$NJ޲vGl ;ؙ:bkN@Lwk{S j*&Lfqh Pp֝OЃpL *fv/z]{T f/.Ϊb+;0ǭJB]&%޷"J^yxt5pEs͗ ėю ZƶuNw~/(㈪I^/>tXB=g(9B\][g),` s 'y`-I;Tͦ9ɇ'G跷~!"_rgkix*Ae+ѾNy35* l۲"~D8B~yC A8ti}E A" r TX{R0ń?Z'-' )T[=)Ca `{g6//+KZ!Nq _d7[Ƨ E91}?!KmnavBsN}>cdmMNOrCzD.'C _Bl]Dve!HY+ɲvy)KL!7 lO1\qMd>-l ji}|%Ŝ㹪͞F\7 lz8%E # SޕQu][)t%Wֿ5=h\ޡӲY l#ܠbO. F%Y:_>x/d9 ^r/o$׍:e4$V*ć3,G&1DlH>kecCeu0S,ơcmsJJOkf6(LqFx,qyH$B!8k{/y°kVSŵKqRn4'p[b #ɨA?{BiKOGԁŒ6t#L:}Pn/8%)u  '@Li 9Uq=d#tYښcE/<mمh5 Lj`* >~Z[D>t؅xPAKbէ?)Usk~a(ʔ0wu*7 ~S|Xv%8=_ym".(٤U;'="/ˆΪBJdl}/9^<'wTbdW5TxMQqv9;`q_\%^aioM`3K-t+%~O/]m*!<\mNj{M6Wڂ#-,}Nv"`rp4q뭍K1^êIð"9/kCvVǯedjt]j%a~CMCJ9BaAqn9cĕq{Atk(,K Sʟ&qD8_phDghJ? 8<2~ܒG o:o.=9P$X;JG${,7 q oqK$V`T^8O%cfZP#m.eu.O`KwP'lu~>%JJ)uO,گ!OhsPջH!ehA1np=\,.RxgV\\g:ricf J"NEðCulAUSCFl2p~JF. ƵilLz Ҽ_c5Da$]s)LC6O vm.T erC"=ѧTdti"taEYx%zzF~˿I3 iO'o ]K6_%2 &*SpJ U~#<Ϯ-&x4KFFp\GU<|$q=v?:В! ܆KOBS`:@ 2(OZKOQ+,$ bz:als -IBnJ= bwv#lL)( ؼ0ݫԷF;;>;AB+5Y,<7f(ZeS)3>Նz| -\*;υOCOL`k>AQǹiM~Iy 'X}S_e1;MX+a)?Ï;0F.^Cͱ u`t)Kne<DZ ˺Z.-Jؐ9DQC(V_(Ϥ_vj<$-B̷7͢=cwz3iD$̶gY+.vJiv[e0 viͤ[UX19EM|NzO~vx#[]Š0q;l~!8)r *W7~8׆X`oM0 e7ߜ:<|/@P3xm׆' kR~:܋v'Ћyι8/4Emcj( G:Z|Jj{#*8T?f~BG b34áb4wn[w[ 4*=y6lrixB-8S8TQ^ ɍ{-wݽ|tzB4 뛇6iהE cseEZUt4YM9Ӵsf6x (.gtrz)Ko?.bhl08Z| V'. m | %<~5u.m#`B& XՈ|]-=?ckF[ޱa'> VҜEhxycFOqx^oLV`+#NTgEXO9xQEuC}ʼ=#p#*6cbL߃ZzGjYyo ۋ}zt*wWC+bO l^%3 ywi+$ R_Yc&S[BީAUvGĕ{v[F:^ԉ놻d&w ѱ$՞EM'`" )c$T|3ke.Q#t>֣Nh bTԔkn%e@ݭ~|21M,, \ִ{̆NqzM(‚WӰ{ODJ{ ^3Ru:ҙrdg8ηBexn2(hK2tj;`y fqf0 S,`ns|`)~ ]s21ÄAP"yMh{D2 Ȥxu3&^r̙KM#f;Ҿ;CDhǯSE]wμ=X13O )Ћ7{~í-܊,vĺ_40 g̓R쀇wo6n#\t+]nqK'ZtV%j}𹑻\fe.ߓf7e}y ~& jj@Wf0[ÏGA 0?IeL(  ۜE27maf YHl}~J&['yVryA"F 4;?aiV$PܗRQ +tLxMhH<򸢋 ‘h|Sa2Bcؽ׎" $m93_a%hZBE z&A5D=Q!u u]mH(E!Ď~Sj+ NY8hZɊ=UF"JsSg)ۘI'O*ZфyΪ)(!%RpqOx`\|%ۃH\AYM$cݻ"#mxc ^9B؜9Y"zޙBnȠyή]V>\j:F3&z%lbF<Xh=@HfX7`禖79P dpD :7jb>KVVF pLH3I#̘,UF9z9SJ/.G>iEF&+9z@%rNnSħ"P0<hv.ܺ%Wq?V3QM]Nc@mC'>5P-좥&wky `_Аո.ݳשq啲PcDU(AQvzyP[AB~e8FӘ2}O[#2 n[跣)%6#HDK \s¤Fɛ9ЫNC|w}1MQ$)ɥ.#;ԛfSi/>v$SD%IX}ػ>Dq*NQ]#zP@W@R=m?>JMyna/0Ek3I3*HX8Jlmg@И&f%.]/rsD`jW\Wtu=vJrQTb!mlH / (7bѫqeQ^g)xs̫YYzqAd;}` IMu߅L7u߁N-$Ż.A|n,XNAUE@[Rur Pi7c+ʛ- a4I(OMDF'h/gT$܆+>ڑQ젡*; Q򲂈 2f /;kN.WW G@*NUѤ;#^`]`Tm ڀlsM؏/">xa~{g:i CuU\aT첹除.h¨ҹY 0$8P>DɞLWSDsI_N%^=07:vʎ jM~26yzV ukS[AT_6%W:ɨ;QPWY%Wwm]yػYYGEX"oO^)ߤl;  P%(PkEBĵ+/FvF"6몕c<=$ɋc$GYxmz6Vzs`VI y;D!pT-OP^ըai'𡲰ltNO{Ka7TG$.*Hcɡ8}<13qfw0*;P`5<} :XƣlƱYC]9Jy//E/ /h?tG@=mX竻 U 2HCYxQNd(#١߲92!^?*!--F|ʳѢw܏QX&h}qJ=s\ƩtVL im열K ~PDFDpc|yϾz3ױu(N RC?4E3ڕwknݝ`VJ^"#61>eEʊǫ\ |(hPuMr oE`6)-GPsY,ԉ; SkbGLeNA9i_0 —umk,GT9|<[cZ9誢y5nIq//UL' )7ۖ:vir\G Z5w*JB`hRZSHWw2M͖'B`Qu7KѠn3b` 2 p޻.awxu#LwR5 [>zm#rތ Hv˰2~IC^z !S1ڱߓ@)V[ތ::[ԼSh3 ijh:J?]I7$Zx( Lg1"O,H&->(2^OiU??1[=˲zQ׫j: ҥJ9;?.#]Em ,Sv3u };w $`p+ ~X(5#Q4a7hT2\DJ _*-xGvAaɭ1\sk oCK6Im\-f) ݮPWpyZf9=B-o Z|*^<ʿ5NX^C86L=Ge7z5͸l3rkvy+"zf40ޞcLoǹcr! r9`1ӢCt!d J~ , czI/p!Oښ[t5CoK(frKv'<9T%j! i4ƢA_+"ysk2$nDDM6]$,kݣ涂܋0uI/)Ja>:Ra g:cj^`k›dTDAq+5 Ć"P}(]}N\i.iFBpTM VeL]P ]T CBݴmu>s H%qS/8U99XmF)T!#=<[i|3\nl!<,^X9v_{;Hwx$1%m e`nSM̉{ TGaTs[ ]%g}.0FzѱфvN@y^;gpl1*cW ῱yKj5E0]l8>v΋_RN1b!r8y̪ ;u|5;-%i2Dqjk4aza4Ze&U폎Y87ڔm5ng)6\]h KҊE"9G}l/!ƯX:AnXQn1Njed2 ^kPcs#^7a#5 PA(z| z=biPlHVf_eCB㯭'mAXPSjouGzb O.uR9zYa u}D=_-rxl-W4OYw Ama@Brj񪁅(`|%mxt$vޑ=??ף9_O^ !ݛ ͠Y[w@439ãPYp=#݈aˆϑހ?J6e2 mx5,؛f,0DVx Tu QWB*kDht=nuJē4K?h2!Ci_))f:9ﴳ>ZVId')\u#H8FYB;7@WF]ǐ>#[TwRH; #v=U^GtCtAovP IUj1!%|@=%&˘~>T Y`fYCXK_WϠlmɿ6#6](UsLruN\=Z-Ջ|C1U'3ul=|GWEev!`:"Nݟ| ,FCoTn%Y@ QY%RWA2;ң^YBsֱv 8dM 8Eu|J, ѻ9)>Bl*3znT}i߂b5zπ6tPzLf.%%-)\?0?fY_zb5)n]g,XN'XH19ծƻlUa@@KfCKO `- Co-ߥh[2(cEMo(_nm~]V "v(ϗJpo95 PZ!یku1M?VMœS$fE~ce[}%:s>+wuH>m&18> UiJfi(KK.+uJqGχ^\/LKZ^Jزy`NFj L}9ZGUNhm-2_5D>d&dŰ5wN.mE/s[mPn.1C B)a<]!@c|by::-*2r/VAvͨ}G^9 U(j-?qh {Wq˃ƃmo&PU:\/J/O8ffnQfpDzQf[#uIxF"RL-f IZ%c1ľ0l@ c  SRXJwNm d4׎{ Cwۧt=@q'2d>;\Uywe)@.*򏝪3rJwJaow+M4 ++ ɱ9}j!T!A\zKĠe^Zo_qѮLCٝbk&$DwA3Ņiؔ`j&6pfz[w=qa3Ble29>9ȅ``$ɭ CyU?/DC V7NreU/g*rd=ob1xXA#ǝ~~q[7JpBǜ$ޯDh5!-ai 'PAܷ-aH*o9poi&ޔٜw},ojDgR .Kg@詹{,>G/-EeVl~>9q1Gn{jAG~wuKW1?8>:Q0.Psҟ?L4,fgN OyZ&'$OUz.Gt[ob51G krhUkD|A\}/]^.}=y2Z9+̨$3U <֠MSO㦑uNrj~/.wV%wFDQjfZыb3%nYWp=0O4'yEs+g>rWh@u7()ȜCAÚ ʹ+2㈿w5 ;W:J-u`ځ1dǴOR~(!M2< Բ{CKDٌׯLNXBI[C*ױ!MɎ1f&]:VȂۥ١vY4BMi4")kla8U|0),>㼈B; >ZTҒ%<2yz ⚷cQA$7O-HG*LK!/Q`C\b,+[};p<J]b*_ݾ^0|:@z,X) i>)Wx!)f&Y=&sz b#kJ5ѼL*_mp4p"mr G)},$ͬ.Y¬fޑӆ .>eՠFeӐV_D/C6?pEgza(زX9S UR{щjz4h%3e%~||S6k6y 8QKt؄}EL@`2щzZL,QQ@b`{ ؓoDlrWyWfNj7x_nO wkeqejlTK̸(&{ڔi%I_w†fSy,(F1ιOxVm dO;RbvZX/J@ګ#Qq =f~qQm#Me.t6-3>Ypiwp,0Մ+`n3}-ϻnѢ4%yB(K"u}`pu&e5&w<"za7wCt]5Jsꖯ~l͑fee,6oY_Ijt!yT  a Τ@5\i&uX*ù]wok{?QM(cI;cM-ݜۨ1ILcd7.#t{tt6 "zf)Lg]o,o)JLTg<^.Yp۫L[au/2zZvw@%#i^mya/Q c7R^sq0l:&"R[ə~/چ۟I9Gn6TBٟ8A4qENJMPٸ9 i%~x6:"FCwEzs x]hΗ^{ OkQ`0vőv zCU$Y֔&O̊8 O(n*dws+eTID],W?X߽yj^u'" [bӳaʔeR|1Tb=sw5$hSGqwYܫBDŽƀ<\8p}}=2l>œl0E:#|WӅW] 3ZE Z˨Q2[%>\6ER}5<姥'R/.L+صe^ Wq`*u64AX irA YCB:BއԲIԜN|0"W^Ğv,pVɆL?\&jR-Ʉ@h1uXOm.@oK]#2VT) ,7`O?!G<ݦSdM<骛/C3$aNۯ4o몮{j磉Ӥs_p%o BL?9x¶JqJ8V;WH&0$ޟ~nu: Lwפ[kz=t\a_4وήy'GG7{2jQm_5ajrl_U9!v\5/3Ht^]m}rHݼ '>~+!7D̛.*)"5es2Ml+"8HiFN?&-+4kKqY װo8kB}*J.f9IU2;9 =B:p~n:+S䊳 bQPoaΧo^΃^Ow FTP^[rGlO|eeC q{U/`XWkbE&3EPk+rFH=Uo~^u&_N9%zWY@/Q81Tn!lHbk8;$}Ce*tJSܣw}{h 7KƠ y-^,RY'Va-G{Fx,#&ҭxL+ ӑPbaO+ 'CBKn~W |VD+Wz^94bAWi"tV^ gD>߁=|QwN(7-h@sARtu4 fDȔUvjB#0J[`;PH_<Jl4/ F j!ge'eNLHLBw%8YXO褝=j;c5G e` ` 3w1XeNq?}FGPc}E׮Eհ ɏ[D.s؆S8Ҕkgʠ1kgc7e%`A\,S[؉Nǻ٥s' pm!{V !we:.]|>݅#|bz77΋˱#6# ߻>}l teѹb1WqV(tȕ'G{>x-=(ޙYȍǓW}b$3*#o)'L&p r*8w~t*ΘX4()BpTnID)[Gd\r'g8SD(I棕vt=I+| dhz\ Tʑ~8Z <'Ϸ3nܵyF5VY&/?~{FHR5-VJ!:K3DC ruu.{gkE:z !Tpaf'Qz8%`C#y [8Za4 9wF~5x}1YsXg|ÐnӶ tb2M:Yt7dxm[\(hmBDS_2e7K{HA4J,}\D k\3r0ްд|&DF4"yg> Ւ98WH?-;Ve#. +%Ɛv }5xYޒ{RDK+.rʒR]ض3\&wa쯯*VD;7!#m4iщ7~њJs.rT[Aٵ|wr3"U_fSr4H/+j+j ܌-eT9Wǻ{!7P,YIA [`SHFc #bԂu嘬^q22T$AyXc08޸%%1vz9V-/N _5MhG]ǃCfN!vF!`8,/s^QaӸ%OcJI3|v&TQM٘gH@dģ2hP||2z}iTUNkLЙP}&GM0#NzLIN;Z9l^dy7xH&(GH̋2IF}H_:3wrƱgҴ\蓏1N?s5R}\,q'~5k>~)qoj* 8lnʼnЅXtʢueS lp'ɾZCE,p`o"ܹ&WHdHnfwZc}P~,ѥ1^WFBk$q!f!O {un[WYzu` }<&&C:7aڷ, cifR#}/ );tB^ZNn+rwa4EHR{Z.4ZƳthK } Hx/"@:'yQ >"2tqbvJ +<5mE}$~M| X .šs6V.b㱀"bM/y|2(i{ BJ'~_6ђY !o) !2\fW1J$b85]U{?4 ,խ~bN`vZ)J&r W5:)>uAqE[rzw)~5jwUwah{􇶴T K{g:X6rxPb ZzI)]Za14u#(Y[}B]dd (gK<0x<[X9%_Ӑ*;P=`&tRes3çss{GERbdz񷄶3kH3VKmjl)qOBNG[ mKzm&3Ր1NLjzn&zpĵ.zᑓăb@/7yAK ]/:YJS>23W%ZoPVUSm q7zW\ \i|AğbkGPqO.t_z+޹9K} RCcXLMYK?KrNq(VcH >U | +=!mjc*91MMk49 勻}|?3G ᝒctȵ|4yaY+86嗯kXkĞ&U4*z$ymE@8åUĕljQfTŢ&ۋYѽy@!cho⮌>NyL g|C(RE2|/{KJ2[|=APϢXN}v\KPG{^KoÃ"ͬڄyX5vȜIS2Im4ee1HhOðl) }| r3GXx #F<:ȊQ !|Z n̵K܋!]#[a1/ލ՛4O,f&Ӧ%lwޚ * ʶe)fW߃,h9#^AX"D f=9.ˁy\-93MQǏlHhw>=2dCHJePU 7|u0CC-ٳ^6}4!i6V.Y X2'o^  y-űkiF7Aaq)bVJo-ңRE_j Ju6@>3z`yW/@PX!K-+Z#kśca1UWY3f5ߠ! i//Aĥ$Kk8PK f_6(_UcR/ LOv4Qc"v8WN;$!JhMo['wZ@G\IkR٣=7{0Tb8#ټeRe3Svbqd膍@7 ^YB% aٮP3(.BDlg@QkÔW!xtOά3{mWF~iT_mjeYQ HL*-j=«Z%ux8l1zZ?ēa2/7(R.} i2ڊQfDL{^l6%=`:nS2"MS=Ȑ ϡ9quA%h v H8 W$0vNC.kAK 8)]in(.>)%ؠeޫmp1WIN$~~vU]9Zf9b~捏r]/Ug?[=~ #}2MvGُM5DS[VUTFF_E&jgh`^14 +7'qTo=kRxY* qz(63 W,~B҆z-CtFa0HמޜxyD9 N :'[`ă.Xi`$`:Zt"gGv80}RALr vjH ]q FQ/<~*˘B-ɖUn@Kz\3iY`b ս_i3nk{g#ZO>@UV鍕4RGA b/U}ãR+?y@Z-'Kfkc1ډs>Qb }ɞq|;3F/-}.1H1jnuR{F,s0Zl0ۺ=5sk3]LHo&ZWQ⹸Dt5%Tj1E:Cuo1&F[m $jw&aԩ)s89浑ui'Ҟn c0=L/DQPjBK!~2"@ǯ2Cs#斐LkIR5;mT *{ zG|Br?6[wleO,y#!ɗD{]KRgYkFxoH](aՐ d%DS#ABnFX˫=2=^sn@PohӸCboV[X4l.#a]Ȓ0aE* Ir؁Czi*;2C `889M@=iYU&Z|DIόk2n#[֪FأӔ4,؜Do%Zg3oi+$*>BA!7,}A\HCdoP! ,n,WCk<M3%!u8T14rm7,Vdtqy[#Vcض_>cmyi4jK_~Po5Vٺv Шٶ{> )gzCkJ/WgZUtF!EGraF#ѡC*D#z,I-<9uTt?PTu#^O,3[( - C㺄(vLӤ 8hPbKxyŔ`Պ #*)[s __ HgPeoy,RzB"8yOL,-Rt֥3D .\ASq:⦉GٯF56$~d\*~ab[&=#EpPx7197ͅ3֠Π_mT9L5ngh2iLěҳ\1W!g]υ)%y(mInb[".9:z SCG .ţWywSZ8ae`$DOve,(^)S^j'?Zj(Hr;$W,K1NɉGCg;1VvPLeUJIu'.Ї5HsٛȔ/)1ʡ2z9\s!h'ʕ&,My%;|XLp,(#}%R\& ]uQMdjeh zQgO nN{:ǎ%8̊–8ғ"Z/x6H>+1StohzFAW"s(u2]EEovxB,8vndL4,[rdY4h}rR;%%6=jzͦ28`597H9.Q.e񤴀R.cj-|F I8pv% _9Y@6Gi9GՍk7w5cy*ysE %Dp8'tF-IfTv XF|s[nxQ3*\3.[{CmŤƺ+{JKD0_B)`--NH Ф_/,R>@Nx{qoD : Y5T9ɠ*EPy~zSO)Aptm%%`O|=hs8 Hqܒ /1nf(2*tDu<]9)oqb487 [Uۃ }k:k#Y]ϩ/]JקIf"յt`Xy?{,_T^W> KiOJ*nx/`Oп$Nآ/J+lJ@%cIXk65ke 7HDO+9^@P%)`#| Ѷ6ǨT\cyJXhQ'NM _?[3J>?ԣlɻir 2Ů ݥ!H3t=pBӍ?]7f7pR,izg/0\`&ؿ%]VyR@512:TE!~Ylp.,Ϝw&!bq;VvBUgKhu+7(i Ae8"xطXE]]hA(z2`i)<˺B3(Rhc;"V}**r$NnlmI".y( &,j0">IV[@Tnվ`$gA 9 y"ųS\%1S띬{e4E\q#ئ9%K6-!%bsSH򼦥M?h>oSkx$fvDS1R(tB~EC5?œGx-H$FP*Nso% R77}?ͅϊ+kj.̖bwy@=7VQ퉛*X~ hm6De,(U_uH$,YVY0ғ^`YcrmWmE%_ֳQL :Vs6 QF KqH]$FxS_3-ƈ3+[fdG*^J35K\(cMPYlB0(l޽@pkqYl]j/!HR.SL۪\;љ[*p7?䅼@[4PCs)k8shʥyZ閎O9'eDj' E0Qڕpc!u B_ҰO)*m92ADFUUʉ:!T2q)іu_>{Yw*D集:Tɜ^%2 \KnS~P{0;28Usiu(x"hHܘ:HoUÿ1WY%AU`&-N1}0Aliv7w`m ._W/A(T*΅+hv/c=:x"孥ȟf~q.} l)~|HF0-Cvqo|# \I?VM Ne *W}T+: >!LoqV9QCakBIfH4Hw0/"~%j}?S>Q[+kzHrLMNщ[O|I$|9d紊4̡X<'\U{-ؤ>IBdFn:1{ѱESvJ~q&TIg<4?eR8~ VyV\YHQd- D|xa) F>W]殺5sb p2Od3q VxĦDq)Xt \i&DQ8rR5;j\xp ݩ[g7v4'b'Ȋk$͞Ⱦr%*[|8|8GdK|ף2K%5'8=ۧxdgG倚݌5Z64RL8sK=aNZ"id؍ T# WLBm֐et ycV$^ߎu4"@XKG?V >qJO{HSGOo{1"#hg 4ڝ8Q0su9 AN)C}]ׯXb>Pao:<@}tł43 Vm|O@砝+D=E 昢ݔgϢvV#m΢C {8?-ǙeR47_-Ҷ:E+|  <`"udftf\oXB󣓒~]bBrw%4=`Sn?nxܸW7p֟aD7Wd"&4_OIx{“4nߟxbRR5j K?̖r%IXdA3f AnҠ9q %P}T>l-/?9r7$ֽ?v EΊ^"y|F$p54A2b_'}&3L&OB=_[rC.rq>+w\F㡂h׷R7|QVm6C`.J3e!^P~dkT*|,vׄ˒87FE'\j9WȤx_LLKCEٛJA7oTDrHU_錜6}]sud&QSl;ڲ'`/W \*ݥ7<& bCH9?bBƆJ۝; xDD1o -M쌂DuH0(Vµ;Xb7j\{8fmx ,9y҆\gg-4"^Vv'|R=+%]^6G\dʆ^'/=bak=vRR|f`eLj}ca]k$p6|{2^:QbtlAL(Y'Xj3Lލ r R+s?aSjTi@XDՌ)cˈr=pIKx/'YǡբPuqceHMVgzT eVܒXrFc5kͥNcHj$7PR+ VPQF|)&]A ^^Z)KZiBM+3Ԙ(̘.$aIԖ9g @ڑT-& RXүǩ갖dUV'ɚRPhpۄ*F?ʏ&TrXN( wy= l h5?kӽ7xċs=J`^dF8H) x4KXU}_`*-" FtѝE˒Q^auf 8%ݥ!yFMP$#_!_lj.111£߬fXTo NlPN1Q_HiC<o`)T͖brg|0+t.'Mm)c `oldԯ&V+%}$v{<hVkĨu%~S1)١?A:t>2ցQ$>*@zR j$qkb5"צ޸,;KN V͆qb' 'mg#S1ѼbtsG!7%lV&Hf, 3kRѾ@\z8uQT1k] gtnԍ#6Ʉ\e;˫?5RgðPz!1_WN[[9FA!j }$FTfz P`A 0ZVPu4٥~VT)+]?ؔ[<+|7O9F~&[ TsRz&s 0wsˢGWx=pp STB떕eq-&OtH^`-S‡sipe;ZhI'2{+14I {:[o]lF)7CF sw1Rkh/.s2Di:D_.[Ә*XkK%}K q-;se7trxԋJ?X)ieu'˅R_)ȣ_ܚF*+6ỸuS SC.zA} :w@|±GNZdY1@(1}4dYJjF'J+V+v17<_q*hwE!CplM!̜-mHR tooY^P$= >DP%F؃r5f<-=A|_@`#[|*';kOcO)U~)Hn+9X2>4QA7Td[TқjkwIʸ5xV;ԡtz?([|\oKp TU}+uY)85)X~ s'MOУYk.M4 *rHEŷP5 xniCwuT<s'J~< [1 ;yKnO/AX?)r*V' UqmygQ CʔYz8y.%2ƹ7re`&DWGm;]١ץ~Ug;힯6Ow8 ALk5a GsrW)7\@i)W}' FS*}U.elgQ(!;6ɋQgaH5[{ۓr_nQ ³U_;Ӣ:Mwc Ys#} _o a[F+xe $,*\,wpma@lC\P[eBz0iK7TSnU!#QLjsG}BX> 2;3/ B.8e,B `5vy Ix:[6LK3}@ȩ8n:x~EN*M(>| ]俙# Uq- l¨D{fiQ wl0?V*C5"ԭ>J&)8 m|Hg [,ECx@;DL 0lϣ<:K[Q}=e\/]WQzh-̝oPI RRkns[ڦ-pUrYU#E&.Z#`,AO=rڟOU*,zSGˏM^(@dM7~ZuRJ6(JnkI]+xkgǬCu.&zA5<χ8̾ht9-4͈4dt^$f.D/ KUviѱ:Gves6q)-[ Wҁ~duV)#~X2(k9㔫f I-T"VJw{#uFLW;yȲIUxTƔբU!"n: =se*j:g ãXmB%U Ku12jPkYmtMIg61YZb-)qZ<[r;F 9npf sئ4/dR8RyC5 ./8Uf)M(OZW p c Dn+@bیrB C੐Ml}AM1j^O.0?ٰR&eCey2D¾V6C?U݀@ERoY]}.wm&Ω0M[Vp.IgF g5XVjޱ\n0*xD ={&[̵CX- XM&/&uj=M;=zYZ)4ix :HLI@[oy !Nͨzܨ8ymL (@Q'_ ^ ׈LNsr{vj&ǢN W^ BBetl:0YsHU)Lȗ( U_T[Kk<&LJ UDe.Bd/^T?*~? evyǃ+M)94Q6~׷;C5 P.\O[` O/Zs<&P{?x*)Ō8c"(Lsvn$_a/;0`l\fh~[N *4? K_t\QW`4uJJm~xq/NUt.ꉓ7zbH>aYd朰'JoJN-aVQuk;JݍI'xrn3 unEbC)o)#Bw4sOB6XzQ%Vؔ)J.Z}!w|g?Ѽ^84нl*O0@/ ҋGͶON]ehȾOJNw*SGV^@g<A͵lscuɂ03rA[=}GIzf~i._4Ryӣ]L)p¶^>j8$ƊXz ^؃"k#)Jn eYKaQm"0\:j"U eqp2 'X/P_ه#unj@8:6 q ΞS%; DcBG}J7cGZ]QX~wVHz;FUX=J4b{JVv&L݌SP^N32x3'b*`B7QlEio+'@ , ,ᑫC,!E0gz8e^bKW %r6,tLHe֔WUR\r.o{mD4Ow1c%>,H)J/ۭ$rp@P_l?!H =_"&DXzE[ q(4k:Z|?/XUdkZFL`)&@yƄY6;MYBF';aP®qxD/fȿԩ? hj\ X){Fr~ڡvKОʐ=! xV L1Α=9\(~c{:%AO'j'f HGwDW5:ëԳZ`7JF>Y@t!VvϬX#rCAO pnr%{^7)0~Ր/|HS{zP+la 3w O'^tpB(n A"ҫ\4/](8Y H-9OJ LX7nthR7ʜΡ*s"<k^>vpr[ߡ2_DSE1z 3=THIޗj\՛+uє_Я%B8l@Ua?hWKK&!djVh0ƞ1dFQTth<`tb$Be WؖOϮDh/_:Jݮr'` yY:\MoK4ß,ˮ#@o> }v"~qa!7O6`tULoGd`1$P)տ+b)dTı$&#SCVD$ڛ'64JFbP&|ru,lO)|Y:Da{ |]L<c) u%Tl̷9r!Z 4n>;0l&NY 0 6+y^Wܽmீfk+d3aLV^6 SXkTI;Z $kNEkb]+8Y~w&}zQ*+"dt9 h\aj=m]H=?[mH⇣\ |;@1`qE{7]vZOM>v'Ǫ vF:|Qa$qAށVV*{D2Zw~ Wj޺Pwlu ηSy>Pt&ZFQd$9pm3⏨X;`Fwf]Sd~~% +G:VLpVm$;x-O}ٽϾWeYDnw2گ Q?R|V~һM17ȧ͙x/rjnP\7%)OȨw$O,9*.{^<Ƈ#6g4%pz}wʈ卜}j/9W"g/f6-O ('}[A!IY*l:w_\3MA3a6/xlb^ތR8GUݜX?cwTdFfO|!0鉀4 s0HoƗ3>8>J.nx E3B `r {m11 5tAԊ5z-8hU+|`L$&&[ϏZh 8 ?4Mc_M r[yW.~^BBթ)$Bg2ܖ0>~ϳ[y$*MrwW|gqgĵC)@xWU@/|E<%"Bt3{ŷyVy51K*^h v}zl_̦:)1,Z ۲{12㈽Hr]0-DN%(E*tQ1YM,~M@9U6b!6ؑVg L~jE| ݤٷs0+7ea=CvېEuOfv+cx( SL[BIxCț/!{EԔk.;*`AQׅ̑S(x{x3~qKiR㿳Jzi})(V[葷30#X[604ɶ3DjLr}ǔĺnZa'=jy5 [3Qbわ3SR2X*KN-꛽+yU+ JSL t?i̫%^zbKG|"с 6>;CJ\p !%S+Zi|Y whwrHQe- MMjHj'V9V? ʓZ xaJZ)Vj2Gn1StSv TTqF wD2֍hRR"4s;[kvW |q&\,^Ի?F^c2pqеP$}kR7dTأ__R6%ocyoVi)Z(Z/!/wm\k1J]tYG9-fG}KD!;_u4J9F[=|][Gyƨx:pnɌe /$#蘆4L@גh0yAނPFtZM;R{j)u>WLG;%4*92QllczO>l)YE1w%Dנ٢b)i42 ŭax=GFg.wZٺ~twq&d5+]ř@ߌ5%{td8Q7͛LXN3ٕȧ`dD-YpwT9{W1( > ;hmTLjL),ۊ.*b*N- b硑W|D]E `w/"`@?XP+VG>rEh9ffG?kN*5z% qYTec"4 oDϾ L֣9CAL9Lcxޡ%*cSޚy;\s-t9P=[YkZvUf#3KkIPeě@i3w T%K1"ټiXF\X;d@:sښN)^A@51f#[)Y L;`Y 0Kl_9:Yz \6{%&јK$${;t@7:^&$MGBJ 1TZݔ$$"NV&= \vҏy?rbW;);h\YC("0#ۄ@B݇3cLs- \yٖ8r %pPD輄jQQKpi8 _Ip7)Ip-{$8]XW0FK#〒]wcdmh}`wGak??qYX!i 㱻z#WvuL YԶZoܒp(bvVڲOT<(LKJWpD@p[k󊱝ě>NJEC(!,ɛĥ( Kxmү?4ں4 g ,^}vݍۻuSyt(5?{v_pCbu88[1˴xyf䈌E1wHpG* 7QTyԖס*tnabI_l0ag8{~҃ps= P* ᙓl=/U:D6BR7KZlwXb{f ~-؞Vlzi`#VB`ON+[+Оr \W,?@#^&RFkʦ{;^V{."s 򁨩6؀Z1Hzl{@ͪ`"x:PzU=֨1yolF߃YW_] D13*V +$&j`Z҄ڢ[M֨eآ毬BDs*m'ud5G(fQNjYK9u#((09Y,#2U($ VYm[fyu u{"%Ҧٰ]Ҷ v40IEc+ʄ̄k\eFyQ5TgFuڰQ''ǯ2) 3gxӠ W+VB4=k#z1pWUm*nFKw?P9zA;۶z}(+翁ɡUo2~0x!50T**O㽅U#/wR-^IEdqCځ u1ǗAzIp/Ga;>BtR/~%G<@"ET{YWaE ҂}Wn.ZQI㘀"Z5W>̦/ ,B?]t_'Ub%8ӛb^P_-Nϭ菨*W~CҥC?K,hALeaJj՗h8-ۍXERP-Ԏ44fjKkDq<ɑ:An1]^*дi,n]Jɧ g{ON)gnzb̿BpBjK˶#v R0mY/>BeyK]M8rZYlN3 a:V1f'g>L L3gB*$| 3:^]@|-NJ3?n^mʢNЂ#ȷG9-@A1m(]-+]i?)ߏsTaN8y`[mR|l-R?V0ά9BIHZ Ql~$/k3nJ0KԀO67SkeH|QENP0\ $0Si*R;y%,q`'G 1J'9a_w#S~Sq'W 3CinWj砝$&4}y cNAk{_ kT)1 (R/: o tgShSvfc$.Lqe+-Cϖr^r/YkNީ/;rF7~uN &;ƫ5</ol:xc Ӎ |&Q 0Yz5;}vbS2%ssZhFuX##ѹSmb/S je T5u :<б$iuG4kbRbf_Zb/ [0puyj)ֳ%{&& h?Gt9KJA$)ögfv^'@(Tiͤ~5 DB"۩XYNBz51MY\0bKe-$$Ӳp3cM\ڍ+ZE[ْV7*QቓoaUuKg²n>V+$TӼ1Ѳz6f(rcap4Z/hQ*Mߘ=DMyC}R~˚|D pmym}Ƌ&-/rkJ<^ fnAco? jj*EvfSnfʹk>0.arOKz7@r؆zR)Y𞻾Dm>Lo#R^Ä&^Yc\drJn%ǡOVr&Zk9n5~Ҹᘊ"k-zgϹ,4isB -Y .S?~XX\ H%3 ݖO%Zڞ]-GX"<Yqbm6@Jx窓<,X '\TArR@2:Q4঱t$ɼu-{|'3G)h*I24±2v[vd,&My{1 is_p/Wg;ܤpC `4he#6G׻0fG[ƸlC{p'HOd@vlp(2SeO б6 !f; ˾WF5mU܅쬲3+<dyWC5j^)sװ26rulcS8ۆޱ&8h}kuɞImQD$̞3Q\0Daiq/ H"lA~Su.[y5R XcgH%=/q;d`@GuޥD=g}ڙjͨ{9maR.>L[ZK}z7=㫡ۙPanYk˚:<ٖd淪Li{!bwo/v& F)=RDf\tf(J0TMAqS8svNˡ@䮥8`r-:}4J[lE|msK^P\帮ʾ3-]je[v"@)ױ" V]5nҽ'?EN%qKcZ4p{eF}> 5=V2hCG@AiiKgGaK݆ۘH>VYRpGZꨴ*%| 9u!ϣlIh$ނP!C0&|*̒lG֋T],ti8Moê ke§<wАaߗ19' ^k^p7Hx2i|9/ \DƸedŘK n96X}\9^l]i~CqdXцԀ?+t)&/#{BHrޜ UtHx 6g{}%ɈbOHٙKlxsc$g~Oܽ!J| 7'l>~. )pzg<m`BwHl9H:kƩN*Dy$;3^;W.s9ZV aôΚʎb:y`M@h>htQfߣ@'K]8w8NGE^L86.ЏGBP@y|vqP7m ANVGirps`kj' Cs ~M72 eo ,;SV"+Qvx$7 (R =6ҵG2LqMIѲ[%zb)}0:wlLeQ6Ĭ*nbFjխj P%ON*@ k=źT>%يsa*a>)V^ꚊM=Jo 3u:dF!WTuB̽js6qzjc7&FG|jؠ#r`no3xbG4 Xi&ݺ$MDC.Au/.Ho׿jKOz&w?3>(N] gUޢebw'3̤{WmN?4-F9;ן+(SG@G_C:t W 5?"MQP?K[hR-:+?\|.5VwJAoBf᫈Kr"b!5W7).31P5ɶyT8$d̎g>C"+ ػ* x+Oָ9.-\Rt7Ex \Ky7zchc5*p(jkoL#zO)Q'}{>T<~BA/!%&Hy}}Rѹ/"?fNn;,śM4BTғ^eJ/@!(8s!~hf1Hk6@7i@o#%9TQܿ]*K:3bC 6`]jӦ~ЯHznm`̛ݠ|a,OߓKΒJMHn?JY%jaI4ro ^vRvg͈ 0F)<7RRf˯=[3QCb7CslV[6[P)fBTI2il˗˅;p=Vٍ,#-es-0K(, \[HUCoF{*4H%]2ȷ䭪](䚏*'mx846͙}&H^2PCKeE&WB8$*+TS`ɻw݅B追.p7坎(Z5yx DZ* ok?lL28JL bGva.;;e%(nN,0KĜcKNh'HRaa4C"ti<R>7[T/J6o^#1A~9>‘$w!Ll ې.vh~l*BeEO[ E1Ԗ)K'C H}o ifG+$h^+u<[H}u-D/hwΤbЗ]?eWjM~?bTX;Y ˪KIu,á*5;CƴX[$kw5^t7yIoȫ`tDs/Hl# x)R E[Vh< =X"~E'ˉY,#RA@lLjFzc7mHƈڨZe}Uft <^ ;+>;Y+(.62,DxJjL,P4G"=uHOWެKXeT#-5s/-_NJ/ݭg=@cZA*#;鄕I0F# fz;1ySfr^Ձ5a=gJ םp~%$CW,aR̵W6[ 6AGT$e\hx?U2!?s&Yt%ghgnm&H׍Pb=+pKs~'/N1YIENau3jPX΅4rm+nm! "٠<Mӿ=fY#jw Б^&њ24Sq0ZJ7vgOܕ𤄛jhed/f<[u^.=GkT#DMWoK;>+&-Ѹ8 &a⼓ "5ǵI;2]UCvBCH rxbT2gt7IJj+ROxColyBctIB»#qX8cf/b`$*Y f8̲09"=m>P.끰' bF*t.ƬL\_ħ;! TGBߢFHeS(Jr4kIVe&q)c6-z0DBQ\H=^j{2BS}6u~𽟇revW&TYa(oCBdV[e̳mT/fhMyQR3嫜 >:SE" 1'^5D^Oy{P9nBp!7Sݭ8sO܍x ZQh#Tx{n&IMT%%8OݯrsTۑY[9ˀ1iv 5a-#x@Wϙ Wh^[EWM{CjF5b𮝅$-+C e 'i뵩qzm6(Zr~F:؋/ǖ4E&lhڱ垒1qdKC wg YwA>Ć@zDLW3L ; R ?a"4AB>fc~jx]-éV2ў D*i+r]?JK T;G@,sJgW,÷i)falnHVI5~;ao ^W'hh|nņ䰟p~j7l'^!tՇ#8o /߁ uNډ81ǡؘ* ^ۈ? D^GD7B>Е%mN⛔@%C$j>Xh("8x)YTŃk}SѨ؞2'ຼlo]\QoڵY++ k!,ya*NJwycg+;w{ݞ+N] ~F>eDc`ZYc6 jbÝQ1*֪м] ;]cv^W^{|;|ht TM-_^[Y37Hf wW5 Ţŷb)yi}S"a" :vYP_K5}-a0)JKځ(Xga&NՄ}gNZ|H`]ӻH,Sނ2(<''l U8[S\Slsdܐ .ǎ?|:cƍ"0NƋZzu)#&,m[:iғ;ԴTL(_'hFT̚=I|(GF9W \4˸ ~h\v6XzJv?%hg5)4(A' aq&}/~^81?M:f,/(iQR]ƿ=191^d-~^}`vMᛏIxvzXJq@IJ69U7k<١YZqZI^V|3S2DD=4?)N^ Ñn m60;'c H뇄N;J661aۺľԢQdvRQ_ M4Hz߸%| &b D"+rG@xX*_CfQ#)\2&U+ɮ9Cn Ep&p\~Ț3 S[<\wxHvnoqzX<fWOK fZhč51}3#3Z2ar(Sl<]hd5_GK30Ցcj(ZX4WnoǁD[3D+CՕ;x u(9\%ƪbP9ƙ[s=rWUibQ`V> 0hF0Tk095_adӹbA@wX/UlHfաMdэ-;}Vؿwx-ܓUo$X룉") T .T]uѫ`}KW2mQluw򧹡> AmJ“=SUsbn䥈Tlzux8wms̚TYc'W`"#`mXSTޟWiyTw"N,qD7}enY"6x`g ޒR<0NgUȭZc"a~T.(ڦ>u5T.tlF 1cVIϕ!T:䊸LM_gÞ%詷ش,̆{0&`گ/ ("ډa AP( 9JګP@CȐ?'N&n:5Y9Ivh+W:u.E!U- Vp?wK(L7ץCt3A\"ք;?ڗX"S GZT6/rpRaƌFi cl@a+k^WE;F nzmW,;gg us.;(6 3(^g:WsoBlRQӹOw{c-kao,Q !b'=ؿr =I&Lv!f[+:ϧU¨F_ETi-K"3*,DD,rQeu:8jkB.t5LSlZc-Ǣ|֤N\\Yj;6?l4Ҫo~0Hy7J5=5SҠ R; 6`kŀipV1JV(~(ÛVeuJa_>m/(cA,K=玷*VLbT Vfer1ΜAzQo1졟v5c-F{kgU)g6(cZg]Kʝ}#2`Ƙ\'$EΒ+)&2BoZnfI%#, *J`~Xs.oơ Y= D)P8Kya{nNY?RR ? CȻ@uMgqvwC󘵬-O. ^UE {$ҙa[hCI$kֻUl8Ɲ^$ia;I& E[Np )%т>ˁv^1m+zXf"_Td^^%Н̛0E$9d KSFxa'W[1bwftch/y{#}Y> \HWh{6_pS%u |"znu$QZKf,#V[?"˘I>Į~2&^G(ArOG*e-,5kB_Jb8ݽP_ZGl.dWK{ S94TڈJ=-=V8C/6*%R1@b]ݱ //riM1.ZǓXJ6.[_}FQ("nd_\*ۓɈDڷ#3D@[KLYa}u)kE/g"4%Ysܚ򳲾zQ,n]Uśʇ*o;Cq';X )j6Ϫ60mP LU~j`q |d9bJ~Y?a>EcT,s3l VZ81Vo_;L͊|"%9ͫ!MDcam=_wMLîQ@ub:b[䡂@ZCeZ'4uN6ZAX DOQ"(Rty:6y]=&Bd(pV|DA,SV%Dc5aHXW鸕 (&GZ w@ VpSǞ.u2~v=Wp)W8-fj!^([ ah7$4> PPzۿgp^3,Lk`񆦴FV#9VC:}쩃15ܵ|A^yN'9{NacǻCsxA?t=#ߜ)ha0#ţ_j@FHmlP_h@1Ak]3fлm8Fg bm=7E 6{ő(DIo=JU;}}9a6l&L{Xr ;qC/r=Ȋ*8T#سKQɪ'ܔAe3valͥ!|p S8˘p4V CYG7t󝆌ѫq̵{+GPʵ8^2 2b'<3:zDj5P )|ML\ѨeV7z`bͰd ^g#=u3/)9,2e$@Pw/0VOsB#QO.3z6}"8)Zᦍr6oȒa夋Ut0>e1 J2Sq,7𢜢HT[A^j w_LrЙ(I8Ȥ^"lSw|R}06#FB)u"d#>,%K}vv@l[]ѻjڬ,D"FHTJ$:P FwɚZǓmvG4BVHbnѻٙ],0/4[h1tkܰJ\hN֊$6(MkǽAb!WrCN -OFC>~.SK1 h8vbKL,VIPX:3L ;yS(fKjP نx1h%3i Pxʹ#j# ~O?ŷYeB(!m.tu ҫ(!ټΉ399;wFXZp h~IUNdVwi e&z=|{xR#zY{߀PWd;ǃRUs4`]q\-aKOM&jauMRt{3ѳDIY{xb+LamIϘ~k_I1qP'|= _vD##:^5H><{$EGL/DIbX82FhYP$j Y.R;zձ'5f޸;xfH?G4M0w̺Sc%r P%5$?FXEm +⧅<0T?6W MP7ݯg `L;[ot Bktw] qG(. {vYpqIH/H澫i߂ >;4dVX jx8{{Ѧ;c;# ߵxڱ+m!NSp YAB!q8 <`F%/3EBT# 7KfW0_< Mӡ*08N$21$[.l<~PӮ[cB|@I-+k)n>Fo$uu8I5.Mz "M;b08/iҷ֕Quq"["md ˰ M&Ӝbx-^6+_Q52w,%`Vk1 >귐FU%%XH*ϱH_7FUQx\I2tzSӑWB]h!նeZ[覄U}YNZ/~:I4_>4";]>]6yz_(a=+rv} B/Ҿ# `;0}TՓЏ6Shr&=O^v)8zD`zY!I4oO,yE{)&s5V2AUSu,FXD]2 ꊺ#, DtB>1 t)bXҘ$s- Xnmx5"K֧^Z|HVjW _y*K2B0@JliB_fKlbrSL5RD!3]Oc*j^$3ZT3("lhf x }j3bZJD'\Tg~X&C8{6U*VWuWv*稘3%@v}c;c:ϨL{; |EB< s2F2@(`Y=3 xsΟ93# -,ԎW=!5jdP|ri"E׹fa [&łofb,l/>NQPf2M㑑IpH H[ᜁ.G-BKWͰlMw+|si7Bu.FI=nci hRs1; >"*pz'ݿEcHelUms#9y ѳE:})XǿNВA÷Xq|Jآ&vO-F3@))v3O;q fce1v@b"yRvrRk.mbwf>r4?FǏ&a?k!xTgzκh-z 8#ZqH=nu7v%*[n}Y\o#;'ػזnńL m聀KBv tM2.&c1/}xX!͗'#x sk]=d):*!ʏG.cVdHwlt?r٘FΆ6ѷDh\.zGms,=Bv[GL~>s71]|uV]  _"%~@I]7ٴ ؖ.j G>>&S5 ^_?P TE X0 Iվh A- :x''q L1gil^ȭG ݳǿ_BpO; ?FR8a>kz9Zib|xy@x[bbe̦ Lj瘆;&瓛VPCRN'.4j^"pپ5uGHezG."k"NvJ)(WHX9(Hn5oCJZ2^t.4kH{'|egaq0S_p9d낙܋ty! pW͙߮~:k I} c҉M!I\*{~i'7qQPNnyN;Ȳ jaOtH:BOpBf3R0Ag>9T:=Ecn/A]>ts( )Hٿ@@vowNT> Kкu#D>Q֦);HSvof0X,iҦJI:L e[2ZX`m ! #Cp>9ɒ wu`}Yȁe| 21AH7O7\̩:;rY"3Z8'eᠬGjN, H\^"lT 7cIh\| "xg} rhuE '~u&X77mV`2;MԒUpߒ]/P"%ѹEZU9W1&N~ҋaWaRu8.4g9?BHwyAOpa]Mbtsyۋ$V|ȱ:q*cnPxwO$.>o(-HȀ)&QŐ/|Hm] [Bz;KttOG*pFS/ x|2Kd,V}7z u۔pkx-N& 0~X;܋ܑi"31!eW),9^khCzͶ_XQ$ZQA%,'03M4>PW=$_ҩ*)]+vI>LK0,ǩM2f8v~tO e%s˓U iy"[U<^׿:7qM DSʹ,z7P`C;M׶!S"gp,Je0j`=D.a+KYR\\fY|᳟K)q=9|QKIDwඩ}3J8p ~[W'UEΣo0wuNHQ_Nyi J&vKC qe>Z87y3s#(g%\JDIUm~ I1{Cm,7x*ls Q^\" )CT@Z޹YA]0IZ~ٗL&-g/!^^.7&9"ܲD`7q[5/f mG 03XZ!4b]RĹ6{MwJ_'j{lU[z~|}. xCKPAL Հb#lvLG8Oă̐X7y: 7|q ߕ6c)6' C0yPY vi\:rM؆*t+g]0!z@h ˶|#]%7/9\*lOm$^#1~fu܂'"۸in^3ֽ* WGDI'cXY}^&*F 󕍿Yt}&LR}kV_^h 3&]HL !B':<}hcj45TV"\sy";vj.Noq匛^úC@ƨasKڋ?DM$L^{kpw9xw0ɋVtbX7 <,d.mlY".\>NHHpW"x U0SsiQVL<kꗫ4scP$[p9Ђ$JL>i{څDT*X<3RҍӔhz~4pZy=P.Ir8n6$Z>\?pa>:,5)tf5/4STuim aOREKeZUCR^ܾl!+]vZ,?멁h"tihh_vJ=\u0s[|WUK-(Pv`P$XUTW1NoB16B[{jzuݗxηs: YZ