dpdk-examples-19.11.4-150300.16.1<>,Xc$)p9|h8껺WiÎp[6dN*ʝ>vNBO;eTߺ0#os1h1kq8W<~dEH<ӌG"iE*q?-|?-ld $ T. DUekt    ,   xqtqɸqHL^(_8hF9ˀF: FGPHIX Y,\\]^IbcZdefluvT-wx<y"-- -&-hCdpdk-examples19.11.4150300.16.1Data Plane Development Kit example applicationsExample applications utilizing the Data Plane Development Kit, such as L2 and L3 forwarding.c$)sheep74JàSUSE Linux Enterprise 15SUSE LLC BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-onlyhttps://www.suse.com/System/Librarieshttp://dpdk.orglinuxx86_649l;(09K@)P-`{(Z>zk*0xZhZ`9.h8)pLZjHPZj {NcQQ!62A '^e`5'2.ci =_1/ h E {<W*_{  tjpmj[;iE  R k o    } uL%3,2^ H1i 5jr:3i;jC"L"8:-7F ? U  M>|dg{f!5{[fovzoar|gH{of{fvzoaHS.r{T( Rf i p)T( #|f04PC J8 ,  R^kJTKc `sU  g+3 26aQ1%M1Z&}(i_]0 $<; G3Fwh< f;EJ $M-@0%+\]6l &Wcn# #B$!pU_# A.IF /(s ?*( o, B77kl k.2 7*Ka  >DIFA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤큤A큤A큤AA큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(c$(_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VCc$(_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VCc$(_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VCc$#_VCc$#_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VC_VCc$(_VC_VC_VCc$(_VC_VC_VC378fb751532eaa55fdcfb04bbbde3e53d2aef27380a3705a37c979708b61fa98156f4b3f20bf1d175b2b7fed8e6a7e181bad9698837c0876e0c23f861e2e3389d41842206e2c40734f3b5f84df40704272be8863a84fcb31dc09a1f56f47de96bdab123ec112f6eedbc669f843989e874b5ea5598dc3b0911380d9319fd5548740e3820b7c1ed1ba0faec724d574835af981e8c99037cbf18b7e5cf5473abc8ae35f32ef39fe2c7cbdda11690d3d2a0774a9a4c8e17a9e5650f2e33d1253643639b3858bf47072e63bfab8c0db9d4fd15f622a612c117a3237a8808b98f7da2387e1963ba854c7eeefff1f2798150542897e67507e5729c78ad89db10d4f2458d05024733bb4c64850d4b0915b5bdaebb99fd68afc4aa078b4f511a672ad682b529f3d271ef24795d703c3600b8a5fc024cd990a78f3d81d45469dc3b84209304782e7efb78d48523266e7a33d800d577152d5231469a5c65249e3bfbcd00a6cfada2fd2553ba2a0f8d1f644fb7d6a8ac2b42fe1fc60432074995727457960bd4519f77f275e347c10547668ed2e984567872d24638b4b7b0479170835831d7163f0b05b02d6414a5dcd7858a3ca13faca00cdecb6a02ebd3eeeb14c4e4a789fa7f7f564a2bf5ef6a088e8f9c0730406b98f4bc0c89fe073563b2c0dea77758f2a1ef23f273095dbee75c1ef31834001e8385f328c41e312922b0e5132f6a341c9ee9a6ee4865e233125bf1e12fc23db93fc3fa8b057790120c9a2ad644aaef6faf1a55a557fc77923fba0d30a94991a1ff41edcee953d5f22f6bfbd2f5859a33b9a4e7046138bd77b0baf9085773b267a2fff69184744ad4ac617601da41472d11b1c84d3220f40c5de267bba338700296e8f1f64ba9d22c56add29800d73c6c533467a80c46f34a86ca087c10a70a1e17698a4d014ef9f69ebcc20e9411f6fb84d9c799c5e2fe1f0d17949ef3745efe714c22f753afa60759199877faabae99189de3a112c8961e0b36f06be55a6fa7f36a9a517eebaf7c3b2a6ecc4be92180118ad5163f7c37e8f1d74351064eec72b7f1ba3e6acf07f8419ab59844f420a4e759d6026302842944870c40de966f4a5258c4350ee590321797fa00ddc4ac463551b714e35e1b3efdb7af5f3ccccb174db0dcdc5341e05d2cab200559083b38b87483fd6f4efa423be40e46e45921d8b2d3858963c355735c4a8473bae529c43d77ba0d024cb8035f084744fa05d52a761607d72330dbc5ccf13919a72a6b47782173f776c4e5fdb2ed731b7d0ec8b352ceba3a4a46a8611a74a8290eef02ef2db417c20e5a3db492b613e7040ea6fa50f612b59029c559d3b52e637978c21a08557ed41b9f4e339182cbe8c370e392dc4b1fccd09213354f89db2d8fd1586a8a9a49b979797c9123637f12e7780ff6748f72fc63f5f6ba6665bd643ee27ad66ae7a0647a323cdfd36fe77272a12a93fa37d13539f7aafe046b1074c15401538a551c9576d7c06f98c53ea80a4bbac70b871075ca5036a25cc536daeeea29d1a87959f0702617c85c1b7e81fa5c661f4ef5131389f0d4966ef96aac0ecc1c9b2122876246040df2442e7a941e1ae245b2abd2d287465c4f029fb45623ad89c3f4064d18b1f81abcbbfbdac286aff9497bfa6ac0a79b34cf7101c6e64021496d0d6c2c288204d91eae1c8f2ea5cbd79cdd93afd2b11113f8631797fac7959e741cb9121bdaa2fe86e7fcd02bc08aa78eba430034186a41b3d42e00c4b94a85983d5ef1243ef309d82f81a97fbd81ce1f62e2b49683e75338d42480465fac06f7ced9b69fc3d25f227ff85377e1e48acd89858ee6a5a24405894a1f0634458f509c7d4641b9d454793c7969063bff61ab1bb963165e00a46ec0f78dc3e10bd486ca1100707e73075694af91ffe35b1a2b9ffd03fc1028572dfd5f1ba03eb2875c6ad832ec48efd1ed5aa7691c295fc7225a6c55786ec9f58e676aa931dc41efe0fed002c5e85db9704d0b3514bced20b3b88357a0f56aaabbb6917171bc7a924401481022be0cf1400b4558ebce6366eaab6faacc5b2433e50a59487ff0b1f514ebb250803d16ff1505a730ccb778492abd4d7a111499a4877a4567fbc5d3b0f116af41eaaa230408263eb25c4eae34c442a4ec1d5705858d38daea23a451b73db80e6b22ccf22cbd7b2b40b6cf7741cffe0b7f705ad1cd0ce9a86c98309f4b5c4aa62e911a3199ced2c5c324389933dc9e74ff8805a27141390e1113fd4545e2b28f1e906a166767a4fdce6befec18bb27d961ab96c391c2c76f4d5be960f4d6025d395be7d4a8af3dd5494f7f7ad4a46138aa179ec0b8ddb925c128ccb65a119eb8ce214b6be2e10d3d6fbbef57e12ecbf18191aabaf5c787a586baa0ab0a887d0f344329264e923744c50537bf0753fd1dc484a4545524103d4dcc20a555dc910efbef36df3c1bf49ec5467902b7205b4848ff932acfc60a5d5de353d061d4a31602665bd02a3f05c34dedba518cfde397d7a64b06a6e3ed6751785d15b7b3ce01d7715edf0f828d79f568bc0314aaa44217c68a41ad198121c2a97d956b8e8b3d06226247809adecd9edc36c20ca4354954f06723f70becfd299d19eae0fbbab7e81b58ea848a5fbbc74b81053530006147b691d812fe20fcfc0e98fc9189f2bec316e24958302b77d3e20861d356cb8880e71b017660de5d1e87e2188c88f5c9a1cd46b2d6d527a4c5460b8b72ecea0354a13a42aaa71a40bddb4bb999ebae16d25cacfc4a647026fc5b819a31c4e32712936f078e6a293d91c79fc496e71ff05bc405417f0c1db85a7190394b2036261f492c3c6befc8563e0893074c449300cc95f5fa2741a28340e5d3d7ba03bddcf3144f58a46b117ae94d9671326518bdf5e2780665ce1410271206a4e7a4e6e2517ec43bf57be9e3878277deb92cc88972954080bca1b8dcb2d503b738d311f3de4d7b42bc3e7e6ea22c249781acc1fc597e59f1b39ba7b9ec733b04d7fc51c5a6ef6665f8c67379404be45edce275866d67c2d5269b5839a26b75f07b222484f4641e309e998edb6f4716a18573b4fbe270e7c8dad8a11102f63bf6c6ebbba858080d20e1fc19c882bf288d967fc300be34584484d03694313906650d72f54db7a502b2f6682c9af6fa3322103e9b04b5af9dc7d16fa36e19d209fb072d012b94b18fd7216d5cea79a754b496c5fa392b189ca862e929587ab3c7be8bb5a5c4e0d38e33516809a00b3952f1906307f01dc1d55493e5691361b863f26c4eef2347587603e9e9f1532a798c2e8f42e13c751e49d05d1b3ab28987c40834c4aedf1b660cacc00398f45bfe433e36a90892c6d7b76eeef51c4e14b284fffc4fd90a150946c62e3ea720194d03f84263a92a11fa25858a53886d89a472221805a7f73afa0a78cfc52db058d15a17a0abe51e62a2d24f99aa2494ad8470662721e21b288a33d1fab16852b787ed1dca8a2369d2d967b4c981332a0c70e597072d845b9985d80a11202bd2a8e6d194d0be8f5bc3ffaaafc022d94482104543591b3ba8292b287da77a49a55015a810d6b6802690298576be78914c7764b6bf850b53e6c14393f1a87f80bab4418b8c1bb8eaac31dc886a71bcf7cb5ae99998c26ccb5a8ef55244f232eaac0340654e63ed47edc4fb46e9b2a89e2e06cf05100a5153b87dd6b98a726300f006d3e15cd30250c60f01a809b04e23c3accd7252bcbb388a7b6cf600d7f1de5c9971f52ae15f67ded82220e9b7732ab93c0a3cfd8ef2faca87d31d8d902969bc891b3c139dd15c07e75f02b46c9ce01912452109ed516bf90722c7f63e04b3fcdcb9d2428aa1fb834ec75a01fedf9caae9740b9a712735de0dc2f988ce3035df94bdc5594166830d5ea05653a096becd7eb90cc4f7c21913043399f4de8ca13b56c1e6ad363b912cdf30fedbf754b1e8dffd6771db8b77bdcbe9dba97d8dea0c721a502e493e4c0df8e082eaad6d39709285e622b2b8f09e340c65482756124790d27b56a94ff2bf35f9a2d3e23b65ab851089ba159b11c6fd0aeb337afc2ac46ecd1997831427fbec41cf6f58a08b36a457b6930d79ecfb62b0cc05373d99f61a570c9b39ed0f3c8ac56fb5560ae9b81208fdc5a7f0604dcea12d5d867e79886e5abe0b1342989d1dd07dce6132ef6de4d6fcc0d8fa46f77bfd8e257cfaadf47fd8f11aa83901074c98147cf36da173c59a4b08ebdaae99934f5cfeb8a0c234ba36660947bc20d636c804aef706dfc000c0ac2b28ed7f92fb2be046ed349effd0e91742ebe65a6c9d2a9bb9ed8da2161c48d9ac0d7d510471fd8a1eb0d01f7a5a2c68daee0e9a20333989d90292f2da295b8a62e6a562894c19c7d22c65cb66c5cf49605523adf07791e076526e18f616f0e3b1026fee734b9162ee924bcc90f7ff5ba3451fcb2808cee33447b1ea1d3db697830d24d39c81a621a4f01cf736e100084132b28c27ed85d851964cca5c99e4466596bb070a8b774ba2c550793e69b7ae702ad003206fb7abf0560c8a2a24cefed46f38ffa3d3b494ff74920ad85ceb58b8153a5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62e0426c3e2221f59c4cf3e093624f02dc55a1913e642f2a9278a0c417ccb14381472827a70eac52bdf00514fc4d6b3bf71b68ad234da26d2914aef88d406c91ed7a72685f22ef057a4e9f12c255d7ea0e5e12cbdbdfe2f378485d647c79f08caa98f3a0f09c3251644082ab70844ba205a4cae1f09e54c6695a1714fa87ce1f305dce8dffb6b9047ae0d406d8fc3bd00e539e7596166ef4b788bbf2b0f062488e1095521cc1ec49e48bf17d94e776deabfa4418e6611489e50849e3305a4861ddcca1871a9ba06c8a18dd55201dbd3f8bffd14ce6079006f1c63bbd86667c0b4f6b19121324bf4acac7b9d7cff94b3c9190c623f6f1d12d604a299e84b021d3106e23809fd8f7c53bd6e6b35c5a1cf467e28723b96cae687703bfba9ea80843cd9d562df613c9f4f1b504f2cf1a4289ccb529d46e5c37b0244e1cde6a79f04d369af415f01cec8dd98736a2a3ce4d9279b14c908d19800c932a85f8a0c7c0d9f9a6f05bcf0bd576bcea73bf0117eadd1c99dc437447226aa36d574331f2101738a6d5d05751e5ea55fff128a257675fd5f46708b590757fbfa369b447269e7c6e31c5ba533d8024c3d292393dec38594548c784c24c54de8532da5452649b83917434c046686bcc35400a6f63fdd1b31d37e87f2d3ac3202331ad226b29949e756f1e6fdfc5c3c983f15e8c67fe1f5df71080d0cb9c7634effbe38ebdc0116bb3e2b28753bbc859e1638b8bb94817c58c52e1693140455bbc3f4381f4171234cba6f04e9e9aa0c16395aaf82cb91ca65bea3ef74a07210b9b7008a061dc5ae20a1361aafc89acae4313b00853663866b0350440ce8cc1680d59679f10c825ef0f99e4f8d251e2ba02d8a2534edd76c15f6fe2ae3c383c55f074276b813b1e1714e51e124f53e647d5b18588bcd1fc1922fe51b4f8b4ced445c185dcf55141a33ed38a93a3ed520e2ed7b7fd7d02fdc602bc6dab4ccd6f288de5f4cacf8a27e07cbd3436dffd7364a609ec4af546d4a994e7315193c5b3d4a5f626b4ce3c1c248e79a9dff8761138911c9325223a21664cf2c430883fa259e4966487d2cbdc8d7617e14c00a3eb8ab61db274e42cad0846cc4639fbd794d93c70fbe16b2af3ce605f8fbab65d6f395f0cb879fc2b2a54194c79aa7e609cd938a4b6abe15ffb664893f538265aee853e4c49e179d2e14e9284fd4152714a56d4f99bf75805aa3e9eb959f361032e727d213b74122e3433e331f75b0d0f7fe91e57ae9c51fb2be0605beb6c9011bcb6a3c94ec23e7f5924cac8c51446a0cd2e15526082c7021fa3bedac7fc2d85d85b38b1ffad094026cb0a998b178fa09d5b9a615c6626b9ff93cf86f57f238510a33691b0afcb0fddddc59710ddf4d7a991dbc3100d816e65c1ffc76b3bd1575fe3999292404a90c5db90eddb4c993cb591e43195ded1e4343861b15b9aef6599a17bbdd56164a2e1237d4ebb206a4ecc67bc66ca5715597f8f147cdc9de5be7b623e54c4d412aea6a76078a1d4505046a930bca82622b8353a648f93d6df6bad2c622109ce023a0df297de940de3e15242ce38f78de1cb131006dab06c9744276f6010ed77df2335145ab36ac47654294be33cc3d2fd208b64bab35573b1a533f67315861ac139cd69133713fa8f1360bf8b6faa44dc12cd38ec2825c7e68d79559ecdf35853bf96d9505a3b8e40f2a7deecd1e30f01c1815f57686dd4be74638e9a34757ebd4a36867f79a29c9cb4400b8e08c6004e070c01ab232a85bbed499281c0aa78aab530fd818da2868e08a0576ef96108fdce8154dc6aab9f488e364d84c7e705862e2f3e9fb88a686e8c953720d110aeec334d6fe9efb48597ff6557b8b6367b0bda3ee7090d566d8e640741e093ae8e095bd97a2e3061ee7b2847d38f51e6f306a71239bb9f241c9fc2e86565a489686339af537b4b9df45069a7b507b107a97fc0d6801711806eab9584d45db7551bbb8ab4be21c5b8b7fd689204c38da2c6d287918ea0bbdfa80c6c98916d0e20c3ead40e56d5756097078ca7c974f5b66ae14fb780c9448095466a1d4b51c773514ef2064bcb2cb2729928cb5e53714095398a7d854a23c352e7631111e7d0f175fe86f8d594bea7d518e5cbabdcd391cc0fbd68a9bfcb3717f926bbef09566fcf722b757f919a13cb77d28dcc593193ebc88f2eb35a67cdd8302182b2b33df56f95503c89eba84f65c7d478908f53e00833d716c3068e3c991b1c3271d1a6575cb3ed5a4a20d86e7de362b55259190cac2d191c5cafe6444cafc3fcebb97d401aee72cffd23f2db0a623f3d09280bef261e7d3a1fbaf93b2a3142d9b1083538ca0f58080753aee84e21bca7333a60e44f9fc1b87c5dbef50f438be7522e8f28f1ce25dd28c6e9f08be8a593bbe046979f2f6e989350c5471844b951c9d9d2f1d95f31081e61635647ebb5e4fefafcaf4b37d7bf3ce319c7a54ef1b4313fa4f6c005fccd8689cf13e1d3b78c424ddcae133235b2f5731e78f205a27a7e3e7b2af0c6d9b127f2a22208ef62de48d967b208a79eeb4948bae8c0383cd145c2372848cf8c4fac79764463ba059186a7f0fef326f1fc1df77eb7a4cc40207683cf5d9b3803d6baee62b2aa5a0536675a60f67b4a597d017cbe8d5ecee975c8ce5b55e8f4f898740f74e71b27940f0cbdefe591cb43de9a339343dd2965beb60eb551f53198c4ec6d1a05b56a5c8e882b8fa2860d906e78f48648231ba826d2c31495c367432f8ec0ed6a7cab1f930d0ad7316bf0906be26ec0fe4baa6aa6114e98e96ec4f4e2fdb532c6259a15c3f9923a6dab363371e79a54a7e0b81e84a3afa587d65aad84649356ef4d5cb535e15c38e20c57ac984593f13e82ff8ae7a16e31b76364edbc225a96ea91929241deaa83a7a6906084cfcf447194054897355f10ba8c35d0a0e1370e907e5796ae47c63a0256268ce459c12fb83572b1c6bd66e39135b1850102d5d5a7094106e4061412cd167c44417127808c0dff868a93d7935e05345fe07712ba3a93e71a66580dc8cdee8063d56496c0bfb7a0bb1ef2f34e8f7c2fb4d247f8ede4530da98e207828ccdeaf0b44478f74d6a5f7adbeee98dd65df87c81e1aa351f9b872b743560a4a5a214a640729bb23591ce8dc2a3190a7e876ecf4314458cae2dec48c1991bc0bf071dec085cc3c4ff628ecbc07b5b8fe8ff9ebbaf2c3a32b229b67a8f6a780096987f1c42f7d88f7ce2d92e720749c82992479fcfae49b3b20cbba391ae0b14e11c5da3cff003f40d99a601ae060116d3630251a2712a7d4f5f48db0dcb0d24169d8a6947416117c491297f23c4514d549364cda690c89aab1f5190be649ec149254978acccae25d9ed2c2de5c8134ab88010032b7b68061c91cb52244f1a96cffd68b6b21d707d09c28285f8e9a44f7f04f959b16cbc86815b3dd194d82ed9999d90ba74a1bd50ff8fb0e00850ca8d12db73333cc2621aece10d6933ab265b1feb1ae28b114e2a027e7dd442e30284accba99907cf2e647e8d1837a6d8948a0320463e5dd9142a25b98809de4cc30b4f7f8641dfcd45305a15345dffc85cb28a555aa0487232f996f3efb817b9faf80b02d324d13702ac7ce64e68e97ad45a9fd68131cc20a2aca96dec717ec03f81bf543824b95e6867d9ae4534cdace48e0d972175d5449f92c6122643d9b66bc7125bc707c5d3ab362c1d70764dcb4ef24e8c8b986f383f25f0fe0dbe35f60c2e322ae5ea6afb15e7cf2a3b3ba5185aa6296c902c3a34ec6865d991b10a1d5325005d61110285cbec4c9c6caa3dc326d6698a32e7fa4d844a25f5f014da3debb28f2566e53a7783189e3dcad2a44803c90093dbcc4fe81eed57debcdc78b3e6c3f62ca2df18d2f5f5f31d54938f9652187d9136e58ab4cc4960414b2b50f3adfeb0f5cfa6978849e31fd54d74165dbdbd82eb3714d9cb077800e8a3f317a95b918378a3f4f5841d6654f106099b6dc0f1555375e8994a744925c26a821204bf9801ecc07bd67d05d11c91cfe67d9984c84bfac65bff71674a1253877a01a73c8614cf652a4363d2b2992d4672052064685ef5e63a6c62e9f1659e388d4b862b9f0abb9575dca785c6ae445acf24c8f1cd0c5bb11651f8280b26f80779ac10acfa4f9a953604403e50053953b9e1c3e88a5852ad4aa20686df9e3986324f1077abeb2c512e4da1f69be27f5064e82338f5765b692e6da25a979d9e915f60aed69d9958037b7f6c2fb66baa1832bbdc81a109257a793022f86dacca7e73a886a670ba2623fb87102107c97b85d1e50be6c438fadbed84d2827a5032e36b2308312efba0d52654ece4760a5a4b758e27c3bf983d8208c6b97d429a141dcced5faefd10055c0569e985025bb74131abddd1e3321d63b77e4942eab8649748ee45070b613f1528813e5d8b9af3a427d102591e60f381f2f9352ed1ba1dff112bc11241212b8d67d14f6f0ba0c61d6a7717161d4ab316cf6f195dd8cbcc31272b9c556e0fe67495fd92574c299e0f387696d130d211494f74681b0bdd66f95027321f05fe951020a1fca5178181112abc5e8b1586082ed2de8dbb8476095c0c18a0852229c54d5fdec17b0a0c3e34bab9cdce7b7844eb396f5e82eb6613ed0680bde005f3771d64fa19cc7c6f0a7ae2dd3a1ccebba2167ed6fc04d07e24bc6469dfe480de10709cc457cc093dd2a7e5a4cb5ebd1781fbe8218050e1d4f215df575dc0ba24c5fbfaeb0a3e967047ce2eedbc5805cfff9cc192d8b359a0ef143a19d0a01e9b7575d4a2a057bcd0db3ea710567b1539da3d077da3251398ae391299f86135f33fa3691390bca6ee5345b8aae20248a221b8db3ab906aa557ac44b9cc3ec55680c254c0480312e97f2470fa06b45784eab74f08b36df4c334d795eee95fc51d562dcd25d5e5dfbc1327cad12c0d51d5bc81a1288e025e6713b3175cc5c4de3d159a88f6c31ba4c68b87b42d03917c50b7c4df70b68dcce6224787336a7a17e1dcfe8c1a72bafa8cece832e4fbbeaf624ce98be89c70245bb9d06f213fa52ed73035e5077aa0ec7153900ade2fe073d5c34b9ec5f4f8c8835f9474379f9089638df4d9fe129a8b6ff8447d1c06178a7bdde44ea3d0e2c44dd19ba9d52cafc6be419a3b28a83ca4bae4cfca813783d0f6f1b9ad1081903379559b4cf5aca682faca3d36984843e18d5ae5f63467e64a5cf48ba7484da7b98375d9647d0fb02430014499a7e72018f475bb28b19ead77834d658a8c7b8081f00a121150a375809b59ecb5dce9efcb821c2c84e90f733fde306f647ac5cd18f18c6da2776c9df609665e8a79d95b149b12fdb1224c2f27fa3329292ac13f279f0be918c33bcabc497f2831d72d9d66aaccd4ad9d1bc5683b729bd8f2bf3194cd90df192d246132f1cbd584978e5cb5d1fc3c01574d558eac71b07bd16feb7320c7896e92aad070d338388113aa18b7c796bc2dfcd3330fee702e917c3a10b736aa1833d0b4bf751741547b84587960cfc1c652c4b66f61efb451e601115278c224e091fc91eae444a10a691aae0b0724047fdb33a61f007cffad2a7a217e021b368eaabed4733271ef5d8ade03715032c181432d19273d7fb093736da2aa8486a8d31675f3411f0375293deb64df76a02bb6e5a4192571816a9f43a8b85e0856c864fb33d3ea62220fffa0c58df3f44e2ff69c8fa4565661920c2a7c1b5f305aee210b9ae68887c590d1d83a48e7ae35c68a9c9d6b75b936bb1344d3463391d70f536c7da5f54af2f2d0dea2613dbcd121a86a438116976d1ae0eda067609036da99ba3f7aa221d52dccc979c43148afcd40e024e0647276d2c26d93f732d7d01dcba88a020070c8c0ff8a0a70297ce39fc7d4d379a8467069d2e2a060afa05cc004962ae95fad34bbda65d2713d961cc4a2ea68a12e417acf3671341083028b634d75de0c2ecc3502b0da3eed9b680e2e9eff9411ffcf32eb501ab3e7aee2c36ae1f391b3640b6cbd73ff064755f7bbd55eebfbb5c1c89591ebabca36409d5fe7a9cfd5778c3d089a9ae118db83e1b1fad5b65acba3d2f9fdecfef3e947e4a60e8089f7803daf4e8dcadbaab3aeaa44218824327275dd7fd6b9a325aca71b0d6e75cd179cbebd022e617fe593410231041c0399734fa42052cf35f2b1bfe7ed141d7b1e11082a8e211b9f8da623423397893d725ba8a832ac9981180aab3d9df8b00bdbc347a61d52f0aa3304414bc98f97ed2dd3a70109819451198a43767071225341b4fc711ec47e2efcc550a8d091139e844ee95284b3ffeded4b1ee78f527c13d0834b34b5b3171536893c0b0e667e2643b285a82fd45db294b990b71308310f753d181c06e942e95b11ffca37fa7c5b3b7a83b6970865573b5440a7c0ba1d8e4612b6c877f6f89f2d301164dbc34a79e21ec7bd514ecfdfffd4baabf727c0e421f61e371506a1bba4fd37a94fb9750d0fb5d285f27654fdaaefe2f9c29536b731c875d1db30abb01a5a9a782f5b4d705828fa7c3959bb52ad8b84a491033ec1e6d7c15d1c3ce30cce37b930a012a0a9cd047170046e0a6b2f2e9002c19e7d7246770ec2d7e157fb33dec4b05ec0dc2eb1bb56a4d6d88fbf34d72315c12d05d33b2743f63cbe218b4771bfd95660f0e955f07d2b5952134157822c761dd3ea3586458bb08af543d158801f6871b5cfb052e1b337e4d2df61f5642dc639600621a58f78f07986f8d7e1d7c07e9b5fbbce7f999cf86aeba942fe9a2a75dc91cd1350103d314ae1871045c3900e206379e06dadf1784ebd18f0576afb7aeaacb1d060fb386498171d4ec7b19196b39ad6423352111447f4dcf5771923c01a15f58b45118a59ce194697abc8fcfc91140513d97bad21041e86c02e4a3d2fcc2a12dbb7123f27209ce3a6011579a42ed29dce9c69295adb4307960f621255e83cbeef83e46e37bfc4f89fa7f7b2ee88db9046c206ec712d1ea3d5dac5b0a63a3706363290c7844e9dcfb8bc2ef95424318ad208ef4fa4dcea7ff87e23a82a99561e1d190233499fc8e4052c46826bb8b7cffc372096e89ee3b077e3a38db25a26aad2839387de50272b3331d26c329cb4889c4dbdcadf4fb718ec921567979fd59194916c6a526f863336fae153eacc0bbce497e5724acfab999bab3b0e1096dc0461f3f5e6a0db54d5efa82a06d02f8055f4bc9fbec14973d73572415d36d50bb7b94b057156caf8b5d9e611fac38d964dbc869a67934842810d2e64d09abd5c2245f0fa99721069de3e4e031b4cd3ed06b13ee2404e805219e89631bdfb97233219e2e06b0539d2e73206b30647798c2b60ef75dac08eb6d00b054ced65691000d370bb66981a7d35700fdd6a83438240ecf3e5880287fd10bb17d447e15a9ece1d797c04c3a8c74eb20ad27cb05e6bb741949e3556d74ddb654e444856c6a5172599526e1eee7c574d946fe34401ad16d00bb4e34dfeac53f20562698a553a928617f88f3efe0c4a28a09e5451b55ed0fbb91d724e237e0429dfbab3e315b4e3fcc4b322bcf824d600a74e9accef0c428268b91ec9ad4d189784f07155f587067e1e548e0ecabcad353e09b2fa22598c3673f68fd2250e2fb12c427539d5e96646f32813e783393a60e662575ce89c614a31e33a5ee93dff138b631868d6e24fdf286830552a20163ffbcb920fb72239b32b8823ea26b2456aaa0f12634d7b744b13d5e7db9cd3890333edb9932987c14629dbdc9997aa1cdef73c9ed98177ccdeee30a333cb30815eab45e186f8c92fe97cbc5cf74f51b09ec495771720a59f830df893dc4527ff1f55f283709892779106fb61c77b0a6473ea11fe1e3833960351725794bc39fb0b9a51395bb59c38e849010020fcc11a2b15a8acf2befeeb711e231fa7cd8354e80e7010bb73b78363d2935345fbec2c82cebf8a1a356c2533c1d4678324f76995e2b962638fc5ea5111428c481716f4f3dee1952c8bacec7f332272b23ba5342c4aec105fbb093878dfeec1b40fdccd2c7503babc01f467d535219856e24d79d4e608e2a86d50426786d418f9f82ac324e68e7eb8ad939f1a34785e2f62b049c84d2ba5f9f0c2036332cf770c78cedb72a9b270ed793dc1ef90eac905732a86dd07459ff3ceeca3482250fea10a570a6bf79b823bf27fc6f9450b53a0cdc7c988746330afc33a027926d99768fa862a7bc32c8233204a858fc5628176583fbaf192253f8a1bd3d3fa88e67f3646fa72fa08ee483370d84930cc4872266076dc1e7a252486a4778a5518abc4ba106bc0fbe9446a8a06d2c4fcaa4e831f5e80a2795aad812e90ddeb57af43b03b3c03fbfbe83f88efe674c1317443324119caf564353fde807ea3cbc66ae07d9bfe188d87d5ca304551c614564344ac9b998b959bb38f0ad35c5dd473015478b636ea5b50e11b253dfcb7d9673cb36b037d54d14ddccbcd8423a9842930988ff29f6b9b6473191b38e8160cadd3db4e97fa7796abadb1978c4e425a3c40507adf635029cdcbd14cd35e4277c03a9da9e347e0a64d4441cfb1b646dbc80b1afafa6700742e6d55f553d92659c9356b97a41a369f295a07b3db3a5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62ea255d87f9612dce33b022d81d71449f5133090f8cfa86367e988c4735baac945649cc862d4e0a6f3804e93f39b3e2de3291e15796032084189a35f48d33f1ffe42c4bb50a5ba9aa175ff9a6ca257ce9b949832c4ba2c052f8eb86b6d87f03666346f549719d34ce69f47b9b4c95077f88d9a8ec2e8f061d9095047a9b5d60d0fe52b62785a3fc4f08dfbcd1850bcde511d8550209f1a6ae2dffe8b7960e43b47146158e16a9ac1aa335a55f8dc1c88d07efcc7ab458a517367528d495182db4127a84c3912bb0b24b4fb0f1528e18166ed41ebbf92d622d91db219ceba1df30f118ec7b300237d5946fd4c443b14298eb4b554b1360531a52cde83595d0427ca067c34521cffb6dd042f8ddb002b3cd7fcf2972d833f3cb6af24ff8c3829e428f75d08f04b7fe5f021904d904bffdd40c987387bb648e4b08d8a51dffd9e30197874b4c72a155383690542eb985dadd338c99a74c9cf7728b4958e8eea417cef45bcad80795bc9098ca8a8e738a6b22847deb101dfb0abdc36dfa8e880c2d5747874f26e7f26ebcab38676b14b5c3bcfc7523cea76c4c2f5cde7fa777182f031b3bed899bca516714db68079a997a9bd470fd07b24b5cd4757369ad31465088d2971306519d1a92b1c921055249ad904556256701254a0b3f2b4e7f5b4c9e3e07ca9c873a53917af29ad06bb3579ce0e481233116e0eb0b28744b7756fc453618dc47d43907cc8190e777420b6c093d78436b19c41b6a434f94a0c6ef5e968142fda70535396ebaffeee4ba7649f19ca432796c0ba33622db0286a9f462f99f01945eebfdc6312fe471abd2513d7dcecb4beecbda089e1a063e77568c0059d98003cc0b6ebbf908e0c84d53632963b1d1ecbe44eca9980278cf469f935ee4ae5362d55269aa9e81531e8091201985b9791bb4acc728e9daa6d39df4f4d01986515d4f0fef15c3fe2ad7f51c1c5383853cde8d8c66f39575e588041481df72a2eaf8c689db216730c2a0fe4aa3f6414cdafcb6e8ba82c3915be86a705e7c12c48cbccd490528432f8e8a1dcade195f037c03cb62bc354f6f97acb795e31717979c1f36bf98d240b743200047c254d0d732d4cfe08af926f34fff3ff10ac6118a45ac7815499ec921dc1f77f57f3bc449d0c23480724440001d86b130a3ed9ad7a4324e5789df970c4a5e762c9ef572d4bab8f929f40f097ba04bfadf1a9745cbc3f64ce717745d9ced6d81fe1ad6f33a908269293fc67f822ef31023362eaa6bffe8af43e1fc0ca5c46aeb4c23c45be23adf79bf125399a6c8b11e87094627f349bebdde65b82c9174810307ce888f68fad03fa0cb92cf54fac5279df1fc2dbd09bdbac1f648532988ac8270b2f298197ff00ada38824d070339d472b83edae08a47ae2d93cf4b3b08618183e342b80bdb6b585627d886bb80b4df23a13c63e7b8e3761bf3e754dcdb5f55029de2739024c66dca82ef3602310c728a9b94d827744c4f204dcb3cd037a55ec4ae152ed5c3b8013f36798c0eff74a920258d191eb133a04b3515cd18a473618ce3e1c01616731070a2e7755ef4a33a62b5a991e02b9246a066c508ed21df9cea46c8cec2f7aea8552531da85edf79c62fb27a63c205bb44b6c645dbd1c9a26a3ff1c9b6a1d3615735fbc0d2f38ae8d57ed17adf22959f3e16029bd44e4ee0939d56ee617468a829a424fec5a52f64d9f3ef9eae6a2c3c1aaf35cfade70c7ee2f8a656c9b682c068ac95405891dc58638bfd1a10474e9ed8ce27d762bcda95e922e56013a04f21d294ddc0a5b720847782b906f7175bc51d0ea5b6830bb9aaa7727124d14dce62bfa3277dfa3320a55de8308bcac97d350a958f7da6d7edb1c242bdabad03717dcb128eee027fb16097fd700b26d558d6cfcd85617f1e1a53753dc22ef780cebecee3de68956e321fba4792778bbfafae60d4157eb82e6d8a7bd74eec9b879c882444b9a5b29d5de5db8b165f2d021322d541b0c2961b9cfce7581ac4560c715144aba3a62ead62b5843f38d63fd1f80de095567738725820170798cd1d075000154bc813ae683e56d4fea7845e8af74c91e2a7ff3d7bb585e7e57337a5b1c4c831b3ab6d1ae145473453beb15a4e7be2fd821a65107bb1226a679a80897d8548512207bd84e3d721e1266ec70537fcbe8a5d6f92c6c11bea0cdef828f9e362ce033d8a98b5007784bb99fbc49e577b05ba80ed9e4751517eca42b54fea51265e2dabee188ed3fb5cb6bf41f1348731bfd6c719df3ec0423007190f9918505ca67ebc081833edfc2100a99fe1d548b41ecadaf6d8d96a2af186dce60164a001bc27d6cce9240e78cd6df66b7690d282882f813f2aa661f50f9d3b497e6875488740fff39acf113751a0483a5030750f2f6024ebcf155d73d0aabf87ce2d76fb378f1caf6c59f7ad044569c987c5dcaf207022d5f78ceffd21ed3caef5c8910f0737d3c2377ad417d3e1f6c46df96db079513acc9ac66ee76d9940c07f1012275664b005cd6c987aebd9f6de1e11c527f274627b1048889bb61ffe6b5360d97123bcda35e89d11e99ab032f78f48054c71debe7b1c05f72cb1566445a7d0fab4989fe7fc53e8476a5cd671fed3536338b8531a10fe133a92b5a3f3f6e4a7772529cd5b9e1c4394efb6f755b6eb799f28f67d51773c81610b6fb407778b2d23f301f54999588af87868a580f180d8c0661844c6e153f202307068cb47e229c4c6a3152f1516a07efada60388e4fa2a77727b71c5e5b7554ced4b3cea784c27e9745612022192449b0b01f1bbea3d024902d9f72b5ac0a9c3ea3585494a55df791cc8afe15e8b5bce78a2e591a05d85301f0e1d78f46b4a8ea32b80eeafdca4fc51dfa992ba08b3f4a80299e3b3cc88330e3c56c9ae6b3979b7e17e72c0afa3ca9aa6d8091f8b28858ad12c792c8fab3503e63bb7d5efe4653d54e4462a48283ab8d891c91976e910678a10916a78bdf313d3b01c6ae934e4a1d4463dbbb4111b79547765fbbb141888556fd6a938b2fa413e7763e364b06b69084876104db35d5c1b67493ed5de7f179d537f09e08b383c76079c15bef6f19029e9db2a8a574ec351b1b2b106006177e95e7d4d1a746306e40feaf0de6c99341848a8ec0a50849d1affbf75d6285a73f6db3d701cde04925d840acc6b257562382af0644faeb43de21a4136d51b66465aa9888ea9f8c648d0e26208824f15a81533d8c6bfd12f83af530c4e0f061d5023d6bc8eb9886568b3e26294d0df38ed83e438c245f94aaa52c2ece4c15547756e0d328c330b89b799dabb596e9d7f51fc949b12e694c6bc7a2dfd189917597f0eb2641974d244a189eee5a52495edd5fb742daea06806c1382f500af741ea55904acd51b7876979d1c5c7c5f79561c0ffb457cbdcca932bb5ca4e63ebfd00342aabc26352c9599b515a63f29d5a2bd3dc2a123b43cb9186535f6443d405d5a63511664cea1abe39a8b52dde3be600783b825b82060d9709ee8f686569092899d0602882071dc901987903f869639ae2c3f7859c459482f1cd8fbf7c7de4985af4e748ea057766cae63f93e71ba01808e3cf3e2d828639a2037f2eb0bacb829079d660e547df1cabe42c17ad82df2b6d89e1656cc89b5c080c5ed75a243acbac7573dc3c051b55ecfb0b510376da8ff912f2ce45eea541bc918488c59819ef791aa46e0e38d1481b6afbeeffd28a1afbffb484d926c3a58ba686047bbed7f985da7ea986b78275bf6b4aa7f95341769cad1401cf3640baa28fe8a58bfc267c0ba4f29da551233237e3fa112f25fbf1c25cbeb780c53b93bfd401a40d63a932dc5022bc01a922504e6c420b5f2bf9ad58e8810f4c606ef9770790351a0ea33d9846b52749e8c5b9ef4d53bafce397f097618a900d1320a7e9af180ae19da9e62f4c91d1b9af4b59a288c085c97ca2a44134e75db8d567b1a61043945830b22a21ab0741e235c11c83e0bbf7d9bc2508cc9b4a4d7a51b7e416ad9fa5239ddbc5d3293c40c488c1e459c8629e83f3602ba558bf005046cf7b11d73cdcefce0bb34eee4827e07c0f89a1a2e3a6c8d804e6f85e27d40700ca8a7aa4b3646949ae7883b9f15808e2ecd04aa8ec64b855eec926ea747c0a72f14e1c52a6f7f1a245cc19b346a6eb1eaf3d11712f5b970465d4d7ad72d0ab88739f60504f303f9522f5bfe9d0c1dbfaef8c65c775842b7b6499a6b56cea60ad8580b3ac4e1b892fab2604a05861fbb31d9fbf4e1fff7c1c9170ede854796eb498d04b1a2617c4da032970c7075eb3c3aff41f75cefd756fbb79c447e7d3033e8f688242e0b7a8ef074534066e5b480434d440317caf533878b6a45c9fcaf7a97f08c178f22beb584ccd1e264f86e08af127d7ffe4d8edffcb6c27a0770a54378c0bd65ccbc434fb6af012b2cb53c93be67056b0ca5b0f30cfa9018b91f6507db810db8b719c1b8196579d2c6a444b170887c66714e2fb5467b7bd6c97da777c7afa12e9a721efbfa963e431fb32d9a1f14a98eb87c6bcc7503119dd705bf6c52080229b4e2a025f87675cd290beda2b770c7f152cce2f8b1d9cae306737a11cb3b5a721fe9764bc269877f243e71cd9762d95dfe07dffb8664e470185bf43033fa5eb5b9d313dded82be20a4ddece8c4209d3b36b8452d196c4dc733bac4bd4b2304271c0c0e315e93722c2c49928546e15910ce13c41cd0c50cdb3e104ce94d06417436a1f548b39a340d3b5e11c62f8b1eb7be2ba5eee8879ec6bf9d2bf4386c0a70deebf03500c6f99c54f0804cd641c159035f947708fa625dfb1a66a3be8d9d8864453b662d667db512e11df6ed6e2c27f1259c8b865c492bf483cf9d1aff6946e2954899a55853acdb1a08f5ad23a5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62e0f41f309c84768b036de3ad9764cbf1010939fdb7349ce1bdebdaef6c0db2278a3010205cabb6e4587c5b45b569261bdee0e41ee0056a25a4fae5e4341d2f744cd29d915a806255bd0e584ab2999e75fc63a5a71b31e0f00824e79eff4befd42f1033e84169b25616e727b8cb26c7ff49207e9bc4c231fb8d81c53c746586c393eee067b083f131d5a9076d56e47cdd97c0b809c2ae6c46647419a183a22abf0edfaeb144c7d5bda829665b8f7985176ed985b923d69ffe74a4976aab0eb1d9236ec4b8847ce4d3288134c28a71b7674c8c2078d7b8b439a56e661b11b3a4d59ff2a98d8df1c7eee6162fbd6c397726d6ce068d4bc80262070393e1e19f57a2000cb24a6dbe436f9305adad1c71bed6181f1701497450f09588cf83fb577434e853e1919e4f94a85dad0f8223a29731a718114facaa5ff06aaa75c965da94d428563215e3ff7e88543939cad3fa9d68f7789af59dc00ac915cb570ed1e19220f5311f0d61997c18cb6f6d119c7a3a30bd16d3339ba75f196465f27f23d039f26d01ff545fcbbb9e2f9fe189e15eb86ee8814c7dc245e850a192a67e2fb30d93251a67893a6a604644eaebc33f0ef3572e2967afdb196be635df715297688ab95fe767d8adadedd1e526d0c459df38dad7c15fb87b96212573fa1727ba9ec0b392dd23f40233669cea465aa3d6d1f6c794a6168823f1d2c6324101cbccc05e74d721115738ec1eed85f9e1db1a1a86b560b2c4973e3837e3febaa0cea22e52418a73e161aa9fbbf7960e870dd323de52149ffc534b8b20532732d4270da9b2f8337559e98979b5e2fb83d8333d74c8d65082069af52359f85d6b43bbc9f50dcb31e39982a532f094299851a0125e434c4c6f7711f02887b022eb17d3f2ca4049b9416ed9de4c2163d6d65c9b392902b1ca2b8e5058acb0c349f7b0b75a95ea8bc25790180c09bcbcde8691b21f8792917c691077cc605f31bbfcf3627a96ab08f5e15088554b0bf462745980905eec414a38d62b0bbbf7b5505e5992ff670e6ae9cbf2a63a029c2e7362ddae3da4e08a85f3a960dd70d6d88c48e120ef009d172aedb6f60de80c781f33d3b0b88ca73857b6db1a0d156e734a2c3c8547c3462f22ac8aba018ac4fe4589c95c1469b67d592904f1effc1e0cabfab1f4cf2873c11068c553b2fa0b832c8efac20be1ca0964df993dfd18f34c2ccf832bf12b6dba16a419fe192f95f6825aaf4a29cf4345d9268882341c3ad1c5e4f572925fcfc7d7b2b5c53e9de81c0744878cd3814b82e1533af0a1e8c3475843b6c72235deccd1891a958e77c8c9939cfd43321c21ffe8f89778b88c41dfa3fd130c580dd06e6ef13dc49d484257fd42ea32744eea59876350bc23f04ea6a4fe1a92be297c08bf412c1af5c3588a81fc37c223b409270a2933dab993e0bdd8a843e3510c9250e19d038815eed4bfcf029c9f7e8e843cbd12ccbe318cfcc4e2d695780628b51c23d271cb12dbbad01a7678810ad2ebc379c9cc32b3728bd9c08fd242bcfa0ef3abd1c92c3fef1568b2d4539ecc5fe3dff83a16c7c70e5419e7ac998e86d92510e06431ffeb72af0eafbbacb32eb8d255d5e922bcd7febac4886b15cfc075e1ba8d6e891fcbdb7030ae8d1021a9cfe746d32cce9bf65e3b66087ffc615224ef8917d905f7be964bf96ecb4de8c0d533f359d37731bbaa06415b4ce8959bcded51a0f456d9cc16c2ccbf898902fb38753339a3367af3bd45ae2efc3b456a79533c90cb5bf54b13af8eaf8f1197001d6acc542acaef8d8f104141fdf0101afde9a8bdb6c65afdb78d4b11cb1f627bb19425631f440ebe44f3d299d8f0cb7773479d05c685d848eac07834fe693eb9537df199d0374150c351d28c96228fdb0dda1ff31c1c2b3845c302bedbcb272184c61803c8caf46979c41075be45fe1776da732412cb9ef139ee3cbb005547b74dcc316490721b0c419588c069bc8986df50530949a755aa99f33a349b74466ae33fc687bd6e2d4ad89da101820a0549036c523fef0e72b00677bdd84e29f32487facf6f9ba6781b413002acdb7df5e7d2c6ab2cfcb7f2e62ea375c19b987a95f429bb61bafbadf62e4e3d5d716d8504de744945be3c6ee9531f43c21da7d7f75d43e611549b972dccdded9c313701d7a3c8af6f403ebc615dad02f6c67ba7a0997aabad6470a5b34e58fe3233c7064f13906d3333170a7674c19349fbd9c07001abc0df53f336d846a9ad6bf2a378b38e129482a0cc85c83a9b17d2a6ac3d2f893125211435d0cbd1ba7a64add003e655eca2b4c975b6c2f64ab0348b0ade7b8d86a89743afd6707e71691ded7e006e552b9a7f42abf7217920863a62c79bf96f5b9854d19d51b020dbbc2a99d240edcc3e2fe8da60ddd800d37e14fa805e1d1ef3e67827d3f341f12193a6ee64dbfed7b5ed62a08ec06dbe9dfc7aace65c3eba7b32fedb9e797c639925ee3d86da52877a8197890eeaed92f36b22cc8983470e18f744643058aa3a5e378a91ec733653496d7c67eceec7066c82b0e2707b19c04b2f0bb7e4d3631823532a6a90ed870057e34a15a5e81e92866cb938e15e2860db246b698f0fa20ca0acf4f561a87a56dd3bfa5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62eba56cf9c6ad9aff5b2f19a202285990a8fb058971f2884aaa4c97af70dd8dfbd1da84ee916dd45ccbbe1726a572af48e41b94b1c92c7c7371a8f99a018070eaaa5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62erootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootdpdk-19.11.4-150300.16.1.src.rpmdpdk-any-examplesdpdk-examplesdpdk-examples(x86-64)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     /bin/bash/usr/bin/envld-linux-x86-64.so.2()(64bit)ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.10)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.7)(64bit)libc.so.6(GLIBC_2.9)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.4)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.2.5)(64bit)librte_acl.so.20.0()(64bit)librte_acl.so.20.0(DPDK_20.0)(64bit)librte_bbdev.so.0.200()(64bit)librte_bbdev.so.0.200(EXPERIMENTAL)(64bit)librte_cfgfile.so.20.0()(64bit)librte_cfgfile.so.20.0(DPDK_20.0)(64bit)librte_cmdline.so.20.0()(64bit)librte_cmdline.so.20.0(DPDK_20.0)(64bit)librte_cryptodev.so.20.0()(64bit)librte_cryptodev.so.20.0(DPDK_20.0)(64bit)librte_cryptodev.so.20.0(EXPERIMENTAL)(64bit)librte_distributor.so.20.0()(64bit)librte_distributor.so.20.0(DPDK_20.0)(64bit)librte_eal.so.20.0()(64bit)librte_eal.so.20.0(DPDK_20.0)(64bit)librte_ethdev.so.20.0()(64bit)librte_ethdev.so.20.0(DPDK_20.0)(64bit)librte_ethdev.so.20.0(EXPERIMENTAL)(64bit)librte_eventdev.so.20.0()(64bit)librte_eventdev.so.20.0(DPDK_20.0)(64bit)librte_flow_classify.so.0.200()(64bit)librte_flow_classify.so.0.200(EXPERIMENTAL)(64bit)librte_hash.so.20.0()(64bit)librte_hash.so.20.0(DPDK_20.0)(64bit)librte_ip_frag.so.20.0()(64bit)librte_ip_frag.so.20.0(DPDK_20.0)(64bit)librte_ipsec.so.0.200()(64bit)librte_ipsec.so.0.200(EXPERIMENTAL)(64bit)librte_jobstats.so.20.0()(64bit)librte_jobstats.so.20.0(DPDK_20.0)(64bit)librte_kni.so.20.0()(64bit)librte_kni.so.20.0(DPDK_20.0)(64bit)librte_kni.so.20.0(EXPERIMENTAL)(64bit)librte_lpm.so.20.0()(64bit)librte_lpm.so.20.0(DPDK_20.0)(64bit)librte_mbuf.so.20.0()(64bit)librte_mbuf.so.20.0(DPDK_20.0)(64bit)librte_mempool.so.20.0()(64bit)librte_mempool.so.20.0(DPDK_20.0)(64bit)librte_meter.so.20.0()(64bit)librte_meter.so.20.0(DPDK_20.0)(64bit)librte_metrics.so.20.0()(64bit)librte_metrics.so.20.0(DPDK_20.0)(64bit)librte_net.so.20.0()(64bit)librte_net.so.20.0(DPDK_20.0)(64bit)librte_pci.so.20.0()(64bit)librte_pci.so.20.0(DPDK_20.0)(64bit)librte_pipeline.so.20.0()(64bit)librte_pipeline.so.20.0(DPDK_20.0)(64bit)librte_pipeline.so.20.0(EXPERIMENTAL)(64bit)librte_pmd_bnxt.so.20.0()(64bit)librte_pmd_bnxt.so.20.0(DPDK_20.0)(64bit)librte_pmd_bond.so.20.0()(64bit)librte_pmd_bond.so.20.0(DPDK_20.0)(64bit)librte_pmd_crypto_scheduler.so.20.0()(64bit)librte_pmd_crypto_scheduler.so.20.0(DPDK_20.0)(64bit)librte_pmd_i40e.so.20.0()(64bit)librte_pmd_i40e.so.20.0(DPDK_20.0)(64bit)librte_pmd_ixgbe.so.20.0()(64bit)librte_pmd_ixgbe.so.20.0(DPDK_20.0)(64bit)librte_port.so.20.0()(64bit)librte_port.so.20.0(DPDK_20.0)(64bit)librte_power.so.20.0()(64bit)librte_power.so.20.0(DPDK_20.0)(64bit)librte_power.so.20.0(EXPERIMENTAL)(64bit)librte_rawdev.so.20.0()(64bit)librte_rawdev.so.20.0(DPDK_20.0)(64bit)librte_reorder.so.20.0()(64bit)librte_reorder.so.20.0(DPDK_20.0)(64bit)librte_ring.so.20.0()(64bit)librte_ring.so.20.0(DPDK_20.0)(64bit)librte_sched.so.20.0()(64bit)librte_sched.so.20.0(DPDK_20.0)(64bit)librte_security.so.20.0()(64bit)librte_security.so.20.0(DPDK_20.0)(64bit)librte_security.so.20.0(EXPERIMENTAL)(64bit)librte_table.so.20.0()(64bit)librte_table.so.20.0(DPDK_20.0)(64bit)librte_timer.so.20.0()(64bit)librte_timer.so.20.0(DPDK_20.0)(64bit)librte_vhost.so.20.0()(64bit)librte_vhost.so.20.0(DPDK_20.0)(64bit)librte_vhost.so.20.0(EXPERIMENTAL)(64bit)libvirt.so.0()(64bit)libvirt.so.0(LIBVIRT_0.0.3)(64bit)libvirt.so.0(LIBVIRT_0.1.0)(64bit)libvirt.so.0(LIBVIRT_0.1.4)(64bit)libvirt.so.0(LIBVIRT_0.7.3)(64bit)libvirt.so.0(LIBVIRT_0.8.5)(64bit)libvirt.so.0(LIBVIRT_0.9.13)(64bit)libvirt.so.0(LIBVIRT_0.9.3)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0.4-14.0-15.2-1dpdk-any-examples4.14.3c@bk@bj_s!_i@_2@^@^l@^\@]@]@]\@\Y@\o@\I[Ѱ@[[['ZZ@ZZZH@Z\ZTZ@X6@W= SLES15 It needs rdma-core >= v16.- Removed 0002-kni-fix-build-on-SLE12-SP3.patch since no longer referenced in .spec files - Added 0002-dpdk-eal-ppc-rte_smp_mb.patch to fix an issue on ppc64le platforms with v18.02 - Updated to version 18.02; some of the changes include: * Added function to allow releasing internal EAL resources on exit * Added igb, ixgbe and i40e ethernet driver to support RSS with flow API * Updated i40e driver to support PPPoE/PPPoL2TP * Added MAC loopback support for i40e * Added support of run time determination of number of queues per i40e VF * Updated mlx5 driver * Updated mlx4 driver * Added NVGRE and UDP tunnels support in Solarflare network PMD * Added AVF (Adaptive Virtual Function) net PMD * Added feature supports for live migration from vhost-net to vhost-user * Updated the AESNI-MB PMD * Updated the DPAA_SEC crypto driver to support rte_security * Added Wireless Base Band Device (bbdev) abstraction * Added New eventdev Ordered Packet Distribution Library (OPDL) PMD * Added new pipeline use case for dpdk-test-eventdev application * Updated Eventdev sample application to support event devices based on capability * Added Rawdev, a generic device support library * Added new multi-process communication channel * Added GRO support for VxLAN-tunneled packets * Increased default Rx and Tx ring size in sample applications * Added new DPDK build system using the tools “meson” and “ninja” [EXPERIMENTAL]- The vm_power example does not work for ppc64le since it uses the IXGBE PMD driver which is not available for that platform(bsc#1082154): * Disable CONFIG_RTE_LIBRTE_POWER for the sample application; * Disable CONFIG_RTE_LIBRTE_IXGBE_PMD for the actual PMD driver;- Upgraded to latest stable release 17.11.1 (LTS): some of the fixes include: * location changes of the GPL and LGPL licenses; * net/mlx4: - fix drop flow resources leak * net/bnxt: - double increment of idx during Tx ring alloc - group info usage - check for ether type - size of Tx ring in HW - number of pools for RSS - return code in MAC address set - link speed setting with autoneg off * net/nfp: - MTU settings - jumbo settings - CRC strip check behaviour * net/sfc: - multicast address list copy memory leak - DMA memory leak after kvarg processing failure - fix label name to be consistent * net/i40e: - VLAN offload setting issue - FDIR input set conflict - FDIR rule confiliction issue - setting MAC address of VF - flow director Rx resource defect - warn when writing global registers - multiple driver support - interrupt conflict with multi-driver - Rx interrupt - check multi-driver option parsing - flow director filter * net/qede: - enable LRO over tunnels - reject config with no Rx queue - check tunnel L3 header - tunnel header size in Tx BD configuration - VF LRO tunnel configuration * net/mlx5: - Tx checksum offloads - un-supported RSS hash fields use - device operation type - pedantic compilation - fix pedantic compilation - flow item validation - flow RSS configuration - UAR remapping on non configured queues - secondary process verification - port stop by verify flows are still present - flow priority on queue action- Enable(disabled by default) MLX4 and MLX5 pmd(fate#322609)- Upgraded to latest major 17.11(fate#322609); some of the fixes include: * Extended port_id range from uint8_t to uint16_t * Added a new driver for Marvell Armada 7k/8k devices * Updated mlx4 driver * Updated mlx5 driver * Added SoftNIC PMD * Added support for NXP DPAA Devices * Updated support for Cavium OCTEONTX Device * Added PF support to the Netronome NFP PMD * Updated bnxt PMD * Added bus agnostic functions to cryptodev for PMD initialization * Updated QAT crypto PMD * Updated the AESNI MB PMD * Updated the OpenSSL PMD * Added NXP DPAA SEC crypto PMD * Add new benchmarking mode to dpdk-test-crypto-perf application * Added IOMMU support to libvhost-user * Added the Generic Segmentation Offload Library * Added the Flow Classification Library - Removed 0002-kni-fix-build-on-SLE12-SP3.patch since patch merged upstream and available in 17.11- Added missing supported broadcom chipset family Broadcom NetXtreme II BCM57810- Upgraded to latest stable 17.08.1; some of the fixes include: * net/qede: disable per-VF Tx switching feature * revert "net/virtio: flush Rx queues on start" * various fixes for mlx5 PMD drivers * various fixes for bnxt PMD drivers * various fixes for i40e PMD drivers * various fixes for crypto PMD drivers * testpmd: fix for non-consecutive ports * ethdev: fix ABI version- Add missing libelf-devel dependency- Updated to 17.08(bsc#1050250, bsc#1046598, fate#322913, fate#322608) Some of the new features are listed below: * Increase minimum x86 ISA version to SSE4.2 * Added Fail-Safe PMD * Added support for generic flow API (rte_flow) on igb NICs * Added support for generic flow API (rte_flow) on enic * Added support for Chelsio T6 family of adapters * Added latency and performance improvements for cxgbe * Updated mlx5 driver * Added NXP DPAA2 Eventdev PMD * Added dpdk-test-eventdev test application * from 17.05: * Added mbuf raw free API * Added free Tx mbuf on demand API * Added VFIO hotplug support * Added PowerPC support for i40e and its vector PMD * Added VF max bandwidth setting in i40e * Added LiquidIO network PMD * Added support for NXP DPAA2 Network PMD * Added support for NXP DPAA2 - FSLMC bus * Added support for the Wind River Systems AVP PMD * Added vmxnet3 version 3 support * Added MTU feature support to Virtio and Vhost * Added event driven programming model library (rte_eventdev) * Added Software Eventdev PMD * Added Cavium OCTEONTX Eventdev PMD * Added NXP DPAA2 SEC crypto PMD * from 17.02: * Added generic EAL API for I/O device memory read/write operations * Added VF Daemon (VFD) for i40e. - EXPERIMENTAL * Added generic flow API (rte_flow) * Added APIs for MACsec offload support to the ixgbe PMD * Added Solarflare libefx-based network PMD. * Added support for Mellanox ConnectX-5 adapters (mlx5) * Added ARMv8 crypto PMD * Added crypto performance test application * more details can be found in http://dpdk.org/doc/guides/rel_notes/release_17_08.html http://dpdk.org/doc/guides/rel_notes/release_17_05.html http://dpdk.org/doc/guides/rel_notes/release_17_02.html [-0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch - 0003-kni-define-HAVE_TRANS_START_HELPER-for-SLES12SP3.patch - 0004-net-thunderx-sync-mailbox-definitions-with-Linux-PF-.patch - 0005-kni-fix-build-with-gcc-7.1.patch - 0006-kni-fix-ethtool-build-with-kernel-4.11.patch - 0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch] - Use updated patch to enable HAVE_TRANS_START_HELPER for SLE12SP3(bsc#1031705). [+ 0002-kni-fix-build-on-SLE12-SP3.patch]- Enabled CONFIG_RTE_MAJOR_ABI: libs SONAME equal the DPDK release version- Split libs into a subpackage to provide multiple installable versions on same sytem- Do not use obsolete pci_enable_msix for() kernel > 4.8 [+0006-kni-fix-ethtool-build-with-kernel-4.11.patch, +0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch]- Updated to 16.11.2 which provide bug fixes as below(fate#321541): * mbuf: fix missing includes in exported header * eal: fix debug macro redefinition * net/nfp: fix packet/data length conversion * net/i40e: fix setup when bulk is disabled * pci: fix device registration on FreeBSD * net/i40e: ensure vector mode is not used with QinQ * nic_uio: fix device binding at boot * net/bnx2x: fix transmit queue free threshold * net/vmxnet3: fix queue size changes * kni: fix build with kernel 4.11 * kni: fix possible memory leak * kni: fix crash caused by freeing mempool * net/i40e: fix allocation check * net/virtio: fix crash when closing twice * net/ixgbevf: set xstats id values * net/i40e: fix hash input set on X722 * eal/linux: fix build with glibc 2.25 * net/i40e: fix incorrect packet index reference * net/thunderx: fix 32-bit build * net/thunderx: fix build on FreeBSD * net/thunderx: fix deadlock in Rx path * net/ixgbe: fix setting MTU on stopped device * vfio: fix secondary process start * net/virtio-user: fix address on 32-bit system * net/virtio: fix MSI-X for modern devices * net/virtio: fix link status always down * net/ixgbe: fix multi-queue mode check in SRIOV mode * net/i40e/base: fix potential out of bound array access * vhost: fix false sharing * net/thunderx: fix stats access out of bounds * net/virtio: disable LSC interrupt if MSIX not enabled * net/i40e: fix mbuf alloc failed counter * net: fix stripped VLAN flag for offload emulation * vfio: fix disabling INTx * net/igb: fix VF MAC address setting * net/igb: fix VF MAC address setting * net/ixgbe: fix VF Rx mode for allmulticast disabled * net/bonding: fix updating slave link status * net/virtio-user: fix overflow * net/i40e: fix TC bitmap of VEB * net/ixgbe/base: fix build error * net/ixgbe: fix Rx queue blocking issue * net/ixgbe: fix all queues drop setting of DCB * net/ixgbe: fix TC bandwidth setting more details can be found in http://dpdk.org/ml/archives/stable/2017-May/001809.html [- 0005-kni-fix-build-with-kernel-4.11.patch] - use default gcc which is now gcc7 (bsc#1042372) [+0005-kni-fix-build-with-gcc-7.1.patch]- Add upstream patch to fix building against linux kernel 4.11 [+0005-kni-fix-build-with-kernel-4.11.patch]- sync mailbox definitions with Linux PF driver(bsc#1035993) [+0004-net-thunderx-sync-mailbox-definitions-with-Linux-PF-.patch]- Enable HAVE_TRANS_START_HELPER for SLE12SP3(bsc#1031705). [+0003-kni-define-HAVE_TRANS_START_HELPER-for-SLES12SP3.patch]- Fix dpdk KMP build fails(bsc#1031750) - enable igb_uio kernel module(fate#322394) - update kernel version for SLES12SP3 4.4.59 for bsc#1031705 [*0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch]- Enable HAVE_VF_VLAN_PROTO for SLE12SP3(bsc#1031705). [+0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch]- Disable dpdk-kmp package for ix86.- Upgrade to LTS release of 16.11 which contains fixes below(fate#321541): * app/test: fix symmetric session free in crypto perf tests * app/testpmd: fix check for invalid ports * app/testpmd: fix static build link ordering * crypto/aesni_gcm: fix IV size in capabilities * crypto/aesni_gcm: fix J0 padding bytes * crypto/aesni_mb: fix incorrect crypto session * crypto/openssl: fix extra bytes written at end of data * crypto/openssl: fix indentation in guide * crypto/qat: fix IV size in capabilities * crypto/qat: fix to avoid buffer overwrite in OOP case * cryptodev: fix crash on null dereference * cryptodev: fix loop in device query * devargs: reset driver name pointer on parsing failure * drivers/crypto: fix different auth/cipher keys * ethdev: check maximum number of queues for statistics * ethdev: fix extended statistics name index * ethdev: fix port data mismatched in multiple process model * ethdev: fix port lookup if none * ethdev: remove invalid function from version map * examples/ethtool: fix driver information * examples/ethtool: fix querying non-PCI devices * examples/ip_pipeline: fix coremask limitation * examples/ip_pipeline: fix parsing of pass-through pipeline * examples/l2fwd-crypto: fix overflow * examples/vhost: fix calculation of mbuf count * examples/vhost: fix lcore initialization * mempool: fix API documentation * mempool: fix stack handler dequeue * net/af_packet: fix fd use after free * net/bnx2x: fix Rx mode configuration * net/cxgbe/base: initialize variable before reading EEPROM * net/cxgbe: fix parenthesis on bitwise operation * net/ena: fix setting host attributes * net/enic: fix hardcoding of some flow director masks * net/enic: fix memory leak with oversized Tx packets * net/enic: remove unnecessary function parameter attributes * net/i40e: enable auto link update for 25G * net/i40e: fix Rx checksum flag * net/i40e: fix TC bandwidth definition * net/i40e: fix VF reset flow * net/i40e: fix checksum flag in x86 vector Rx * net/i40e: fix crash in close * net/i40e: fix deletion of all macvlan filters * net/i40e: fix ethertype filter on X722 * net/i40e: fix link update delay * net/i40e: fix logging for Tx free threshold check * net/i40e: fix segment number in reassemble process * net/i40e: fix wrong return value when handling PF message * net/i40e: fix xstats value mapping * net/i40evf: fix casting between structs * net/i40evf: fix reporting of imissed packets * net/ixgbe: fix blocked interrupts * net/ixgbe: fix received packets number for ARM * net/ixgbe: fix received packets number for ARM NEON * net/ixgbevf: fix max packet length * net/mlx5: fix RSS hash result for flows * net/mlx5: fix Rx packet validation and type * net/mlx5: fix Tx doorbell * net/mlx5: fix endianness in Tx completion queue * net/mlx5: fix inconsistent link status * net/mlx5: fix leak when starvation occurs * net/mlx5: fix link status query * net/mlx5: fix memory leak when parsing device params * net/mlx5: fix missing inline attributes * net/mlx5: fix updating total length of multi-packet send * net/mlx: fix IPv4 and IPv6 packet type * net/nfp: fix VLAN offload flags check * net/nfp: fix typo in Tx offload capabilities * net/pcap: fix timestamps in output pcap file * net/qede/base: fix FreeBSD build * net/qede: add vendor/device id info * net/qede: fix PF fastpath status block index * net/qede: fix filtering code * net/qede: fix function declaration * net/qede: fix per queue statisitics * net/qede: fix resource leak * net/vhost: fix socket file deleted on stop * net/vhost: fix unix socket not removed as closing * net/virtio-user: fix not properly reset device * net/virtio-user: fix wrongly get/set features * net/virtio: fix build without virtio-user * net/virtio: fix crash when number of virtio devices > 1 * net/virtio: fix multiple process support * net/virtio: fix performance regression due to TSO * net/virtio: fix rewriting LSC flag * net/virtio: fix wrong Rx/Tx method for secondary process * net/virtio: optimize header reset on any layout * net/virtio: store IO port info locally * net/virtio: store PCI operators pointer locally * net/vmxnet3: fix Rx deadlock * pci: fix check of mknod * pmdinfogen: fix endianness with cross-compilation * pmdinfogen: fix null dereference * sched: fix crash when freeing port * usertools: fix active interface detection when binding * vdev: fix detaching with alias * vfio: fix file descriptor leak in multi-process * vhost: allow many vhost-user ports * vhost: do not GSO when no header is present * vhost: fix dead loop in enqueue path * vhost: fix guest/host physical address mapping * vhost: fix long stall of negotiation * vhost: fix memory leak- Fix broken dpdk-pmd/* soft links(bsc#1026804).- Do not disable cryptodev as EXPREMENTAL tag has been removed. - Remove CONFIG_RTE_LIBRTE_MBUF_OFFLOAD as cryptodev is not depending on it anymore and its removed from the upstream.- Enable rte_kni kernel module for dpdk(fate#322394). [+preamble] - Build dpdk-thunderx only for aarch64- Update to version 16.11(fate#321541). Some of the new features are listed below: * Added software parser for packet type. * Improved offloads support in mbuf. * Added vhost-user dequeue zero copy support. * Added vhost-user indirect descriptors support. * Added vhost PMD xstats. * Added virtio NEON support for ARM. * Updated the ixgbe base driver. * Added APIs for VF management to the ixgbe PMD. * Updated the enic driver. * Added openssl PMD. * Added support for new gcc -march option. Detailed changes can be obtained from http://dpdk.org/doc/guides/rel_notes/release_16_11.html - Resolved fixes in the updated versions are : * enic: Fixed several flow director issues. * enic: Fixed inadvertent setting of L4 checksum ptype on ICMP packets. * enic: Fixed high driver overhead when servicing Rx queues beyond the first.- Added gcc-6 as default compiler for CRC/mtune & other optimizations. - Fix possible parallel installation of dpdk subpackages.- Add pre_checkin.sh to generate the dpdk-thunderx.spec file- Fixed paths using %{name} to have the dpdk.spec aligned with dpdk-thunderx.spec- Added back in all the architectures to keep .spec files aligned * Driving thunderx platform architectural dependency via the ExclusiveArch tag- Added support to build code for Thunderx platform(fate#321960). - Introduced new dpdk-thunderx.spec file: * Removed architectures not supporting Thunderx platform (e.g. x86) * Added dependency on gcc v5.0 for armv8a-crc- Update to version 16.07.2. Some of the fixes are listed below: * ethdev: prevent duplicate event callback * hash: fix bucket size usage * hash: fix unlimited cuckoo path * lpm: fix freeing memory * lpm: fix freeing unused sub-table on rule delete * mempool: fix leak if populate fails * mempool: fix search of maximum contiguous pages * pci: fix probing error if no driver found * net/bnx2x: fix maximum PF queues * net/bnxt: fix bit shift size * net/bnxt: fix crash when closing * net/enic: fix Rx queue index when not using Rx scatter * net/enic: fix crash on MTU update or Rx queue reconfigure * net/enic: fix crash with removed flow director filters * net/enic: fix max packet length check * net/enic: fix multi-queue Rx performance * net/enic: revert truncated packets counter fix * net/fm10k: fix VF Tx queue initialization * net/i40e: fix Rx hang when disable LLDP * net/ixgbe: fix VF registers * net/thunderx: fix Tx checksum handling * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#id2]- Update to version 16.07.1. Some of the fixes are listed below: * contigmem: zero all pages during mmap * crypto/null: fix key size increment value * hash: fix false zero signature key hit lookup * mem: fix crash on hugepage mapping error * mbuf: fix error handling on pool creation * net/e1000: fix returned number of available Rx descriptors * net/enic: fix freeing memory for descriptor ring * net/i40e: fix dropping packets with ethertype 0x88A8 * net/i40e: fix mbuf leak during Rx queue release * net/i40e: fix null pointer dereferences when using VMDq+RSS * net/ixgbe/base: fix possible corruption of shadow RAM * net/ixgbe: fix VF reset to apply to correct VF * net/virtio_user: fix error management during init * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#fixes-in-16-07-01-stable-release]- Drop code for generating our own linker script. * Commit 948fd64befc3 (" mk: replace the combined library with a linker script") added upstream support for building and installing a linker script so we drop our code from the spec file which generated a much larger and possibly broken linker script resulting to linking issues (boo#1002534)- Update to version 16.07. Some of the new features are listed below: * Removed the mempool cache memory if caching is not being used. * Added mempool external cache for non-EAL thread. * Changed the memory allocation scheme in the mempool library. * Added a new driver for Broadcom NetXtreme-C devices. * Added a new driver for ThunderX nicvf devices. * Added mailbox interrupt support for ixgbe and igb VFs. * Updated the ixgbe base driver. * Updated the i40e base driver. * Updated the enic driver. * Updated the mlx5 driver. * Added support for virtio on IBM POWER8. * Added support for Virtio in containers. * Added vhost-user client mode. * Added NSH packet recognition in i40e. * Added AES-CTR support to AESNI MB PMD. * Added AES counter mode support for Intel QuickAssist devices. * Added KASUMI SW PMD. * Added multi-writer support for RTE Hash with Intel TSX. * Improved IP Pipeline Application. * Added keepalive enhancements. * Added packet capture framework. * Added floating VEB support for i40e PF driver. * Added support for live migration of a VM with SRIOV VF. * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides/rel_notes/release_16_07.html - http://dpdk.org/browse/dpdk/tree/doc/guides/rel_notes/release_16_07.rst - Or the doc/guides/rel_notes/release_16_07.rst file in the released tarball.] - Removed patches that are already avilable in dpdk-16.07 [ -0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch - 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch - 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch - 0005-d293dac-vhost-claim-support-of-guest-announce.patch - 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch - 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch - 0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch - 0009-bonding-copy-entire-config-structure-in-mode-4.patch - 0010-bonding-fix-active-slaves-with-no-primary.patch - 0011-bonding-do-not-ignore-multicast-in-mode-4.patch - 0012-bonding-do-not-activate-slave-twice.patch - 0013-bonding-fix-crash-when-no-slave-device.patch - 0014-bonding-fix-detach-of-bonded-device.patch - 0015-bonding-fix-detach-of-slave-devices.patch - 0016-eal-linux-support-built-in-kernel-modules.patch - 0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch - 0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch - 0019-i40e-base-fix-driver-load-failure.patch - 0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch - 0021-i40e-fix-inverted-check-for-no-refcount.patch - 0022-i40e-fix-overflow.patch - 0023-i40e-fix-VLAN-filtering.patch - 0024-mempool-fix-leak-when-creation-fails.patch - 0025-pcap-fix-captured-frame-length.patch - 0026-port-fix-crash-for-ethdev-writer-nodrop.patch - 0027-port-fix-crash-for-ring-writer-nodrop.patch - 0028-tools-fix-unbinding-failure-handling.patch - 0029-tools-support-Python-3-in-bind-script.patch - 0030-tools-support-binding-to-built-in-kernel-modules.patch - 0031-vhost-fix-leak-of-fds-and-mmaps.patch - 0032-virtio-fix-crash-in-statistics-functions.patch - 0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch - 0034-virtio-fix-restart.patch - 0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch - 0036-examples-fix-build-dependencies.patch - 0037-examples-ethtool-fix-build.patch - 0099-mk-fix-gcc-5-version-on-suse.patch - 0100-kni-fix-build-with-gcc-6.patch - 0101-ixgbe-fix-uninitialized-warning.patch - 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch - 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch - 0104-igb-fix-constant-sign-in-left-shift-operator.patch - 0105-e1000-fix-missing-link-interrupt-check-brackets.patch - 0106-app-test-fix-missing-brackets.patch - 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch ] - Created soft link for dpdk_proc_info and dpdk_nic_bind(from dpdk-procinfo, dpdk-devbind) to keep compatibility. - Added a new binary dpdk-pdump dpdk-procinfo- Add _constraints file to force build dpdk with sse3 enabled x86 machine(bsc#993462). - Enable compilation for ppc64le with the help of Rüdiger(ro@suse.de). - Enable example package for aarch64 using Rüdiger(ro@suse.de) changes. - Do not enable PMD_RING on ppc64le (missing rte_eth_from_rings). - Disable examples that need LPM which is disabled on non-x86. [+0036-examples-fix-build-dependencies.patch, +0037-examples-ethtool-fix-build.patch, +_constraints]- Added support for aarch64 compilation. [+0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch] - Disabled aarch64 dpdk-examples package for the time being as it contains lots of Intel specific code. - Added proper "Group" field for the subpackages .- Add upstream patches to fix building with gcc >= 6 * 0100-kni-fix-build-with-gcc-6.patch * 0101-ixgbe-fix-uninitialized-warning.patch * 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch * 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch * 0104-igb-fix-constant-sign-in-left-shift-operator.patch * 0105-e1000-fix-missing-link-interrupt-check-brackets.patch * 0106-app-test-fix-missing-brackets.patch * 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch- Removed unwanted files(bsc#984437).- Added missing GPL-2.0 and LGPL-2.1 licenses.- Update tarball URL.- Applied all the fixes recommended by upstream for v2.2 stable release(bsc#981996). [+0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch, +0009-bonding-copy-entire-config-structure-in-mode-4.patch, +0010-bonding-fix-active-slaves-with-no-primary.patch, +0011-bonding-do-not-ignore-multicast-in-mode-4.patch, +0012-bonding-do-not-activate-slave-twice.patch, +0013-bonding-fix-crash-when-no-slave-device.patch, +0014-bonding-fix-detach-of-bonded-device.patch, +0015-bonding-fix-detach-of-slave-devices.patch, +0016-eal-linux-support-built-in-kernel-modules.patch, +0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch, +0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch, +0019-i40e-base-fix-driver-load-failure.patch, +0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch, +0021-i40e-fix-inverted-check-for-no-refcount.patch, +0022-i40e-fix-overflow.patch, +0023-i40e-fix-VLAN-filtering.patch, +0024-mempool-fix-leak-when-creation-fails.patch, +0025-pcap-fix-captured-frame-length.patch, +0026-port-fix-crash-for-ethdev-writer-nodrop.patch, +0027-port-fix-crash-for-ring-writer-nodrop.patch, +0028-tools-fix-unbinding-failure-handling.patch, +0029-tools-support-Python-3-in-bind-script.patch, +0030-tools-support-binding-to-built-in-kernel-modules.patch, +0031-vhost-fix-leak-of-fds-and-mmaps.patch, +0032-virtio-fix-crash-in-statistics-functions.patch, +0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch, +0034-virtio-fix-restart.patch]- Use fdupes to manage duplicate files- Create DPDK packages for 32 bit x86(bsc#977639).- Add upstream patch for the ixgbe driver * 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch: Fix VLAN filtering logic by adding the missing brackets in the 'if' statement.- DPDK is most common vhost-user backend, Adding upstream patches to help qemu vm live migration with vhost-user (fate#320713). [+ 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch + 0005-d293dac-vhost-claim-support-of-guest-announce.patch + 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch]- Move the combined library back to the devel package (bsc#975123) Ever since we dropped the CONFIG_RTE_BUILD_COMBINE_LIBS=y option, the libdpdk.so is no longer a shared object but rather a linker script generated by the spec file. This means that it is only used during linking and the linker will add the individual DPDK libraries to the DT_NEEDED tag on the dependent binaries.- Fix shared linking against libdpdk.so (bsc#975123) * Restore the 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch patch which sets the correct dependencies for the shared libraries. * Drop CONFIG_RTE_BUILD_COMBINE_LIBS since a custom linker script is used to create and install a more lightweight version of libdpdk.so. * Include the combined libdpdk.so library to the regular package since it is also necessary during runtime.- Removed unwnated patch and reformated patch file names(bsc#974903). [- dpdk-2.2-dtneeded.patch, - dpdk-2.2-examples.patch, - enic-pun-fix.patch, - dpdk-2.2-warningflags.patch, + 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch + 0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch] - Added CONFIG_RTE_BUILD_COMBINE_LIBS flags to club all all *.so into one library- Intial version 2.2.0(fate#319169)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFtHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~t     tt19.11.419.11.4-150300.16.119.11.4-150300.16.1      !!!!!!"""""""""""""""""""###$$%%&&&%'''''''%($)))))$*****$+++,,,---../01110222////////////////////.3333.44444555666666777777777777788899:::9;;;;;;;9<===>>>????????@@@AAABBBBBCCCCCCCDDDDEEEEEEFFFFFFFEEEEEEEEEEEGGGHHHdpdk_example_basicfwddpdk_example_bbdevdpdk_example_bond_appdpdk_example_cmdlinedpdk_example_distributor_appdpdk_example_eventdev_pipelinedpdk_example_fips_validationdpdk_example_flowdpdk_example_flow_classifydpdk_example_helloworlddpdk_example_ioatfwddpdk_example_ip_pipelinedpdk_example_ipsec-secgwdpdk_example_ipv4_multicastdpdk_example_knidpdk_example_l2fwddpdk_example_l2fwd-cryptodpdk_example_l2fwd-eventdpdk_example_l2fwd-jobstatsdpdk_example_l2fwd-keepalivedpdk_example_l3fwddpdk_example_l3fwd-acldpdk_example_l3fwd-powerdpdk_example_link_status_interruptdpdk_example_ntb_fwddpdk_example_packet_orderingdpdk_example_qos_meterdpdk_example_qos_scheddpdk_example_rxtx_callbacksdpdk_example_service_coresdpdk_example_tep_terminationdpdk_example_timerdpdk_example_vdpadpdk_example_vhost-blkdpdk_example_vhost-cryptodpdk_example_vhost-switchdpdk_example_vm_power_mgrdpdk_example_vmdq_appdpdk_example_vmdq_dcb_appexamplesMakefilebbdev_appMakefilemain.cmeson.buildbondMakefilemain.cmain.hmeson.buildbpfREADMEdummy.ct1.ct2.ct3.ccmdlineMakefilecommands.ccommands.hmain.cmeson.buildparse_obj_list.cparse_obj_list.hdistributorMakefilemain.cmeson.buildethtoolMakefileethtool-appMakefileethapp.cethapp.hmain.clibMakefilerte_ethtool.crte_ethtool.hmeson.buildeventdev_pipelineMakefilemain.cmeson.buildpipeline_common.hpipeline_worker_generic.cpipeline_worker_tx.cfips_validationMakefilefips_dev_self_test.cfips_dev_self_test.hfips_validation.cfips_validation.hfips_validation_aes.cfips_validation_ccm.cfips_validation_cmac.cfips_validation_gcm.cfips_validation_hmac.cfips_validation_sha.cfips_validation_tdes.cmain.cmeson.buildflow_classifyMakefileflow_classify.cipv4_rules_file.txtmeson.buildflow_filteringMakefileflow_blocks.cmain.cmeson.buildhelloworldMakefilemain.cmeson.buildioatMakefileioatfwd.cmeson.buildip_fragmentationMakefilemain.cmeson.buildip_pipelineMakefileaction.caction.hcli.ccli.hcommon.hconn.cconn.hcryptodev.ccryptodev.hexamplesfirewall.cliflow.cliflow_crypto.clikni.clil2fwd.cliroute.cliroute_ecmp.clirss.clitap.clikni.ckni.hlink.clink.hmain.cmempool.cmempool.hmeson.buildparser.cparser.hpipeline.cpipeline.hswq.cswq.htap.ctap.hthread.cthread.htmgr.ctmgr.hip_reassemblyMakefilemain.cmeson.buildipsec-secgwMakefileep0.cfgep1.cfgesp.cesp.hipip.hipsec-secgw.cipsec.cipsec.hipsec_process.cmeson.buildparser.cparser.hrt.csa.csp4.csp6.ctestbypass_defs.shcommon_defs.shcommon_defs_secgw.shdata_rxtx.shlinux_test4.shlinux_test6.shpkttest.pypkttest.shrun_test.shtrs_3descbc_sha1_common_defs.shtrs_3descbc_sha1_defs.shtrs_3descbc_sha1_esn_atom_defs.shtrs_3descbc_sha1_esn_defs.shtrs_3descbc_sha1_old_defs.shtrs_aescbc_sha1_common_defs.shtrs_aescbc_sha1_defs.shtrs_aescbc_sha1_esn_atom_defs.shtrs_aescbc_sha1_esn_defs.shtrs_aescbc_sha1_old_defs.shtrs_aesctr_sha1_common_defs.shtrs_aesctr_sha1_defs.shtrs_aesctr_sha1_esn_atom_defs.shtrs_aesctr_sha1_esn_defs.shtrs_aesctr_sha1_old_defs.shtrs_aesgcm_common_defs.shtrs_aesgcm_defs.shtrs_aesgcm_esn_atom_defs.shtrs_aesgcm_esn_defs.shtrs_aesgcm_inline_crypto_defs.shtrs_aesgcm_inline_crypto_fallback_defs.shtrs_aesgcm_inline_crypto_old_defs.shtrs_aesgcm_old_defs.shtrs_ipv6opts.pytun_3descbc_sha1_common_defs.shtun_3descbc_sha1_defs.shtun_3descbc_sha1_esn_atom_defs.shtun_3descbc_sha1_esn_defs.shtun_3descbc_sha1_old_defs.shtun_aescbc_sha1_common_defs.shtun_aescbc_sha1_defs.shtun_aescbc_sha1_esn_atom_defs.shtun_aescbc_sha1_esn_defs.shtun_aescbc_sha1_old_defs.shtun_aesctr_sha1_common_defs.shtun_aesctr_sha1_defs.shtun_aesctr_sha1_esn_atom_defs.shtun_aesctr_sha1_esn_defs.shtun_aesctr_sha1_old_defs.shtun_aesgcm_common_defs.shtun_aesgcm_defs.shtun_aesgcm_esn_atom_defs.shtun_aesgcm_esn_defs.shtun_aesgcm_inline_crypto_defs.shtun_aesgcm_inline_crypto_fallback_defs.shtun_aesgcm_inline_crypto_old_defs.shtun_aesgcm_old_defs.shtun_null_header_reconstruct.pyipv4_multicastMakefilemain.cmeson.buildkniMakefilemain.cmeson.buildl2fwdl2fwd-catMakefilecat.ccat.hl2fwd-cat.cmeson.buildl2fwd-cryptoMakefilemain.cmeson.buildl2fwd-eventMakefilel2fwd_common.cl2fwd_common.hl2fwd_event.cl2fwd_event.hl2fwd_event_generic.cl2fwd_event_internal_port.cl2fwd_poll.cl2fwd_poll.hmain.cmeson.buildl2fwd-jobstatsMakefilemain.cmeson.buildl2fwd-keepaliveMakefileka-agentMakefilemain.cmain.cmeson.buildshm.cshm.hMakefilemain.cmeson.buildl3fwdl3fwd-aclMakefilemain.cmeson.buildl3fwd-powerMakefilemain.cmain.hmeson.buildperf_core.cperf_core.hMakefilel3fwd.hl3fwd_altivec.hl3fwd_common.hl3fwd_em.cl3fwd_em.hl3fwd_em_hlm.hl3fwd_em_hlm_neon.hl3fwd_em_hlm_sse.hl3fwd_em_sequential.hl3fwd_lpm.cl3fwd_lpm.hl3fwd_lpm_altivec.hl3fwd_lpm_neon.hl3fwd_lpm_sse.hl3fwd_neon.hl3fwd_sse.hmain.cmeson.buildlink_status_interruptMakefilemain.cmeson.buildmeson.buildmulti_processMakefileclient_server_mpMakefilemp_clientMakefileclient.cmeson.buildmp_serverMakefileargs.cargs.hinit.cinit.hmain.cmeson.buildsharedcommon.hhotplug_mpMakefilecommands.ccommands.hmain.cmeson.buildsimple_mpMakefilemain.cmeson.buildmp_commands.cmp_commands.hsymmetric_mpMakefilemain.cmeson.buildntbMakefilemeson.buildntb_fwd.cpacket_orderingMakefilemain.cmeson.buildperformance-threadMakefilecommonarcharm64ctx.cctx.hstack.hx86ctx.cctx.hstack.hcommon.mklthread.clthread.hlthread_api.hlthread_cond.clthread_cond.hlthread_diag.clthread_diag.hlthread_diag_api.hlthread_int.hlthread_mutex.clthread_mutex.hlthread_objcache.hlthread_pool.hlthread_queue.hlthread_sched.clthread_sched.hlthread_timer.hlthread_tls.clthread_tls.hl3fwd-threadMakefilemain.cmeson.buildtest.shpthread_shimMakefilemain.cmeson.buildpthread_shim.cpthread_shim.hptpclientMakefilemeson.buildptpclient.cqos_meterMakefilemain.cmain.hmeson.buildrte_policer.crte_policer.hqos_schedMakefileapp_thread.cargs.ccfg_file.ccfg_file.hcmdline.cinit.cmain.cmain.hmeson.buildprofile.cfgprofile_ov.cfgstats.crxtx_callbacksMakefilemain.cmeson.buildserver_node_efdMakefilenodeMakefilemeson.buildnode.cserverMakefileargs.cargs.hinit.cinit.hmain.cmeson.buildsharedcommon.hservice_coresMakefilemain.cmeson.buildskeletonMakefilebasicfwd.cmeson.buildtep_terminationMakefilemain.cmain.hmeson.buildvxlan.cvxlan.hvxlan_setup.cvxlan_setup.htimerMakefilemain.cmeson.buildvdpaMakefilemain.cmeson.buildvhostMakefilemain.cmain.hmeson.buildvirtio_net.cvhost_blkMakefileblk.cblk_spec.hmeson.buildvhost_blk.cvhost_blk.hvhost_blk_compat.cvhost_cryptoMakefilemain.cmain.c.initmeson.buildvm_power_managerMakefilechannel_manager.cchannel_manager.hchannel_monitor.cchannel_monitor.hguest_cliMakefilemain.cmeson.buildparse.cparse.hvm_power_cli_guest.cvm_power_cli_guest.hmain.cmeson.buildoob_monitor.hoob_monitor_nop.coob_monitor_x86.cparse.cparse.hpower_manager.cpower_manager.hvm_power_cli.cvm_power_cli.hvmdqMakefilemain.cmeson.buildvmdq_dcbMakefilemain.cmeson.build/usr/bin//usr/share/dpdk//usr/share/dpdk/examples//usr/share/dpdk/examples/bbdev_app//usr/share/dpdk/examples/bond//usr/share/dpdk/examples/bpf//usr/share/dpdk/examples/cmdline//usr/share/dpdk/examples/distributor//usr/share/dpdk/examples/ethtool//usr/share/dpdk/examples/ethtool/ethtool-app//usr/share/dpdk/examples/ethtool/lib//usr/share/dpdk/examples/eventdev_pipeline//usr/share/dpdk/examples/fips_validation//usr/share/dpdk/examples/flow_classify//usr/share/dpdk/examples/flow_filtering//usr/share/dpdk/examples/helloworld//usr/share/dpdk/examples/ioat//usr/share/dpdk/examples/ip_fragmentation//usr/share/dpdk/examples/ip_pipeline//usr/share/dpdk/examples/ip_pipeline/examples//usr/share/dpdk/examples/ip_reassembly//usr/share/dpdk/examples/ipsec-secgw//usr/share/dpdk/examples/ipsec-secgw/test//usr/share/dpdk/examples/ipv4_multicast//usr/share/dpdk/examples/kni//usr/share/dpdk/examples/l2fwd-cat//usr/share/dpdk/examples/l2fwd-crypto//usr/share/dpdk/examples/l2fwd-event//usr/share/dpdk/examples/l2fwd-jobstats//usr/share/dpdk/examples/l2fwd-keepalive//usr/share/dpdk/examples/l2fwd-keepalive/ka-agent//usr/share/dpdk/examples/l2fwd//usr/share/dpdk/examples/l3fwd-acl//usr/share/dpdk/examples/l3fwd-power//usr/share/dpdk/examples/l3fwd//usr/share/dpdk/examples/link_status_interrupt//usr/share/dpdk/examples/multi_process//usr/share/dpdk/examples/multi_process/client_server_mp//usr/share/dpdk/examples/multi_process/client_server_mp/mp_client//usr/share/dpdk/examples/multi_process/client_server_mp/mp_server//usr/share/dpdk/examples/multi_process/client_server_mp/shared//usr/share/dpdk/examples/multi_process/hotplug_mp//usr/share/dpdk/examples/multi_process/simple_mp//usr/share/dpdk/examples/multi_process/symmetric_mp//usr/share/dpdk/examples/ntb//usr/share/dpdk/examples/packet_ordering//usr/share/dpdk/examples/performance-thread//usr/share/dpdk/examples/performance-thread/common//usr/share/dpdk/examples/performance-thread/common/arch//usr/share/dpdk/examples/performance-thread/common/arch/arm64//usr/share/dpdk/examples/performance-thread/common/arch/x86//usr/share/dpdk/examples/performance-thread/l3fwd-thread//usr/share/dpdk/examples/performance-thread/pthread_shim//usr/share/dpdk/examples/ptpclient//usr/share/dpdk/examples/qos_meter//usr/share/dpdk/examples/qos_sched//usr/share/dpdk/examples/rxtx_callbacks//usr/share/dpdk/examples/server_node_efd//usr/share/dpdk/examples/server_node_efd/node//usr/share/dpdk/examples/server_node_efd/server//usr/share/dpdk/examples/server_node_efd/shared//usr/share/dpdk/examples/service_cores//usr/share/dpdk/examples/skeleton//usr/share/dpdk/examples/tep_termination//usr/share/dpdk/examples/timer//usr/share/dpdk/examples/vdpa//usr/share/dpdk/examples/vhost//usr/share/dpdk/examples/vhost_blk//usr/share/dpdk/examples/vhost_crypto//usr/share/dpdk/examples/vm_power_manager//usr/share/dpdk/examples/vm_power_manager/guest_cli//usr/share/dpdk/examples/vmdq//usr/share/dpdk/examples/vmdq_dcb/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:25950/SUSE_SLE-15-SP3_Update/06e7d1a1371fa731af18a74b9731d929-dpdk.SUSE_SLE-15-SP3_Updatedrpmxz5x86_64-suse-linux  !"#$%&'(')*(')**('(****')***(**')*('(')*(*')**(')*(***')************(')*((')**(')*(')*(')*(')*********'(((((((((*******(************')*(')((*******(******'++++++,+++++++++++++++++++++++++,+++++++++++++++++++++++,')*(')*('')***(')*(')*********(')*(')')**(**)*('')*(')**(**)*****************(')*(('('(')*(')*****('*')***(')*(**')*(')(*')*('('''***'***)*******************')*(+')*(**')(*')**(**')********(((*')*('(')(*')*****('*')*(')*(')**(****')*(')*(')**(*')**(***')**(')****')*(*****(*********')*(')*(ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bb476166ea40d37e72530db693cb36675d7959bf, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=7916168c94b668d1630e061e21c12d71a26cdc92, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=417fdd612fae869591b7ebe8e3ad2b198efdd7c8, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a3d24c333374ae1f1ebdc5e83d0b7f6acb1a676b, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4c62ddf2718f27a7f2404b45be879522150fec5a, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3291be0413484fd06259ef5172f8d8c638b11810, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=65948fb108b2566a2b9d92755e1dd46af82769ff, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=262a83e14d1d7239af24db14d021dd066794242f, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=1fa596bece27378637967e9ebe1fd93414517958, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=8f8a865d505ebe6d55fd8a84a5518e2b32bffa18, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=22581710edb8a1cc3e1cb78fac676c2a4a061c10, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=8775c3fbbf01bdb0dfda6d273c6e4080bb793064, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d531861b8a528561bea0e87c42749ba2e1c0d74d, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=c2f58d446a15be9c92207ec98a6e55bf6c0f8738, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=20256584a25976ada8b499145bda21d46c1520c7, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=1c4de7fac0aee2f8933c447029d9de187b2e3f5f, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=5803cecc670eb6a1373a613aaccde9c7c24e88eb, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a0c3fff957b00873e1211a1ddea3e49d296e758c, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=54e78ae877e305ad45731fe84a873285c97b2287, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=42e25ea704eeff038b230bbda0febdc6790b0d76, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d10d2cf5d771450d5fd5618749bd4eb3f0d05d74, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=109f658b311981f38dcdf09c1c0918e1a2a92662, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=cc781d557ec6dd898247108c338b6f14a12553bf, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=aac0c68926930b90c8fadf98c254b3676f976150, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=9ff7130483f81f1cbc6853d1d37e28e84589c197, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4bbfb83d28578c3c9433474ee1dbe2b173f0ad43, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=58ba9091da65c20bfbe7b8d56da61608d8b72c6a, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6232539b1a75babb1aab6edc059725189e395f9f, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=035f75438214e33535b0f4db48061220f34558e9, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d0b9920a9041ddc517acc3839cbe72e43bcd0f22, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=80dd199ba6455a7a33bca7ce7b39446d0bbd5218, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4f9996ac5f45c47ec7392fb56bf24a2c5225fe10, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a8d9c560d3dac495a4cf55eb086b914265c7cf39, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b0ac996c892bc2f33e8c454e40333c60f821ee90, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d6dcbb1904f89b131f1bc7cf182a857dc6c339da, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=7100a9f6511d47554c6a29396461cc7326b04fe5, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f454fdefc5ab8d39f99759028dee2a6c8edbc5d3, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=04ee735560461f60fe7c47ec416b50c9300452be, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=1df2c71e5f44d6284c4f7b2d8ca83df72352132b, for GNU/Linux 3.2.0, strippeddirectoryASCII textmakefile script, ASCII textC source, ASCII textBourne-Again shell script, ASCII text executablePython script, ASCII text executable 07KYix1?O`w (5@Qa "$    R5R7RRR!RR4R R6RR RRR5R7RWRRR!RRR4R RR6RVRR RRR5R7RRFRR!RRRRER4R R6RRR RRRRRRRR RR5R7RWRRRPR!RRRRROR4R R6RVRR RRR5RR!RRRR$R4R R#RR RRR5R7RRRRRRRR4RR6RR RRR5R7R=RR!RRR4RRRR RRRR RRRbRcRaRR RR7RRcRbRRRR R RRaRR6RR RRR5R7RRbR!R RRRaR4R R6RR RRRLRJRRDR R5RR!RPR RRR RRjRiRgRhRfReRkRdRKRIRCROR4R RRR RR5R7RRR!RR4R R6RR RRR5R7RRR!RR4R R6RR RRRRRRRRutf-8165faaddbfff53ba5f864185ba80be3e82140cc9f3fa91ebee1a9f3e446a2b86?7zXZ !t/ ҄]"k%져HW"<ߊ)Di!#ɥVHS Ec)24/<>uB49w벏1zͪ"-[1! 2nvj[ @ǂc|*TD QmN0uFL["98 '72|ȿiɂ~4leFe3;Kn 4/344hPzCʞ> ͘bQ{.' { Ʋ%{F++J} j dD CER!YL#IrI3/xzWT5?d,6lj0j2pN:?m(F!50CLGvPt!!e'l(>O0zMU./&W8fXI%(lX_D&J?At:)*6(3*0M8Mk-mzr\n"OD-5#.T4[ zk1dTHiUk\OhS=_o#ş~uYi0Z9NBN5d]MP@Y~:AHA^GXVmyԙI'In1/+zYX\\>R˨%3otF-i}jg}n|BYKC'¤9RAti`ˋ'ET4,a5B_}ZECz6G: 93"^ﲟM-ZD%F6ެ b. qZW'Ha|XxtꗘU Y?fTzL~\I) "9š݌-eMfLw(=H0M2ЋYH &.s#U̮(nM:y`uVttA_(HjyK\F@x=IGQfjD@ZK[uЈwi%[Sd)FhWxv]A96g/p>ibqdDppx ~ >LOF_zWh9Ell4♼ΣD/@ Q_|Hu2}6n3#T$ݷZ\f q[g&z<|1nX8#:HH6՟|\EZ6M,g37c"l4 D3/C'Ta^\"| fpjhE Hm}T@=),}UKޯZlG/[ ?;%rЏ{bnf0@ r /± W_ )9 A8-J_[MÌA1d2!ʝģ~+uu9k>EX^Az#o^3*U&w*%׍n5̲3"L+*ޢUtA& Nx~>W<{|jR7@U^t>k}5`͠ oלoqxY6!^y `4]ĬQvZ #{d2Q.ֿ)V)v50O IqƇ.NIlJ5eUl3ƚi;:L">)lnʵo7Cь`̽'h2{"x\XEWA\}g" Q"&#Y5`f)6?92͂kN"Ʀ76{ @̆.6yxJӄ !*-qp3 j.e(Kqޥcwo޸)v@4C]pk "Ffp5̪Jx:XĮEt\'(PQ # > Q)w`lE\S}e%q@/~ϝjG*s`?JttY lC~WY*'ҽ*g$$r-Qjfv[ǞmxtJ)w kT_w4a>L3]S/M5 @7V*|$X20%ft'ͽ YO2RPǂZ#k~yEJ {ye`о䑏QxYD5|UI$Pw7gn.r&v}\&`q⯴·ί(P/RVIN*|pV s#nx@(>@& Oe.\ȥ8zC=̡g[OgX Pmi܍Dz_SyXǯˮ#QXxR˓M\v0)BNP MW˯ߊ׳V?@J/eyB ֯;$-=]wLPkx 4jV9 ؃%#c\*TUA_7*q؍zRzxj+I9[AHXsNQ zbO=rYJRU|MB9ӟj,祰Cs>HhG'8&m=e)374v [@e9mX6s, _%鬡kyo~IeabVr=E%6=M>g:%oOiטF(}h%$ (Fé;nsΊǼu4SEgeK(S'^ik3RhB< 0 ꭯Z֝dp*C"c>d'rEP>h?o{LGm%~ܕ;.Se%ϕed>MzJ+m^G))~(uY#5#ZK%_k4:1.qTBH#ᅥa˹R%Rc$/u Cw; c,\s:ة%N %[y!%X _O@sX4+y{_Wo3boL ̩PNfw" 4\DNtS6ѳDX:@߯^J>)^iFn'&x[1D 5Q&M9x8bNQ*3Wt yr&7o {E,n-ҹZ@6GVOES89'D~UDZHHM6$pu\韻lQ\Ox~8o[]r5_'jomɠ!CA#1/9 !9ȰPY] 0; aak?ٔ_>gN+CU{ktw?0d˵De`~;zOYg/` .c W_:qY8΢<賃է@Xñ^y 'Ix3Ɓmo$tң hvhvmVTO?ẏ.0GTf@ ⵻Gg%i򅇽WEk`Ktani4y ѹU!yIwd@{{H`-L(Y(pښٍ#)_j>vH95sꋭ>4Kufd]$]e3-*٥_k'`]@G7zDP+_>a67:H6Nt_ FhPva_~'Pp|+4vFMQϒF\WO7MrU)H3}L8w@鲴7LRLwKTQFک LqS|F]86櫹%XXOuo"tĒi*TNyY|=͌RClZ)}ވT|XSb9xI V^#Czq'XX.b91ͺ x`h> }йם}uIxi%oNjLYM:3|ލ|ă".vP?ܦt!Sk? ;8FT8shw0nĬ(`| frQŦsf"Nhpa4RSP:ߣP9Bv ~_`!v\$ƵB(4 o04J L̞V0mO\v킬o%sDeWHo>w0!܋I<6zVgŶb C;%w<RIv)WJE^ωC)ieְ;{PIקC[W<QJ m M-!rŕ8Ŷ_ݰv@oY&9Z\OcK`#n-u.=@q)vċmopqL(bO4A&^ ׷EGħLsk vmO+t]"աRZT"e <~NfsEf7Oʆ/, _p$F+'%`ҶXsǡe]Ǩlzq' RoSx`iIrfV}Pgb{h 遳+z5:/~&:Ԛp.v,zCmdws]dJ}qpZ-'^,:*%'~FՏrC*!͌%&PrpSE?ZXaXE|Rщm: Q˳#gC_M|)$`k|BMr9{Tm؊h6GpŁv;0v-])~TYHb]+4@Q\{)Kv>ӝ-mַ?nX t<{m,5A_*u;E# G1@ʻo"Q9=MݗO4u/Q2ECtZiTYAp0oqIpu|(JE!yZy|%ѻsl% bM%enqn^Jo-_Ĥ'V.4U!JM 7b͐h3 g%% dƻG;zt d^KC*?q̬-ae^ɿRaVԩ9i$t;{.fKD:&%n sf XW?_oٮi>KA1is ռ_>zz%-n7La%\pԉ d1v̕vnY8~.!F`#߸*B=۳7preb|Є2oBldzq: e_3?zȾ@;jruD9^u ~0IƠ%OG&G[SW±\zp[ %nJr*J9]uW~ O 6 cU*yckkB{tjOVy}/ۅ@#e´T'D*A1x'jN)E$Ȁ516%E ʎQB@yG=ia  PYZZ6؊llQ62Ι VÑiEofdW]JIڏ:r|W$G&yjk?U 1$uSF&}fBsmv^c82'jz%i8fHP`)qE<~iaJÒl tir'ߛ09I>6 |eڰBqc֤ YIkVCUq>qĸpuz2Ɩ7/EK`<ވTaF.!WFi8% p+t EXqu?*1n:-4] 扉/ʯlt93v|>54=HN E v-2W빧ܩмCFx{ZuaAԼ YD2"₅wE"kNŸpmN7MFlV$5T<_kzCdۓ 0QK0ߍyI 뷮¼+)=a`F44l-ׅVv +J+C|cAywK >ȍ*AHZ $dzXlkJTZ!HsUT=5O$.auMM]:}J #jaLibe(MVSZzHJD7XM"H\HU¡ZY5~,-LHB8o dz=[^ԡKLĿ 7nj~!c#,!8o@bJE!~xB@tֹapqz_a{>rӦaڝ8=KP2h$&t7{y]D0,CeN}@[lDdͺ$3CBX͹KδnU!RNFYG]&x)o,Xz֋~vqGi N3l3Ðp>,w-u, .%H>Z=A\_ Vi͋v&$7(u 1.a;#- &;}_1o}ѯͨnBƙueHU 1fӨ#0 `U"rq<](==tPs[ԽS6ƑV±l\G<+g$T&H4UFÉ[o{sɯr=H>n51G#A$*.k&\V@b^@яG^9#0R5ޝ|K3e)r'>ZÙDxz$8ۄQv]S/ȶyY)]Tw>p+  6QC"KnRZ{x(㓪Vd|hujg4͕:v1$ ˩7j}2f+WG򳢹R==;d7>ğ[̱B5;rp7-B3(I@'kyӻ%ş'f$54Bw0n@gg)tHjޓ/z!#ao߷}+j=-0C5Ҕ:thY=n98L18XWF !~}ܹeaBQc',|Qky:i5"aJeb.z%JQII?5v밖ao/dF?GڵuV0 ]O!U4 0F:ٌJfzF{̌,O 7#~2`nޭ$@3&uCУRre-|@G0HL⨱缬QiS;Hm7A2#?R$Dc)K̔)?YS*|k X|kQo =DCQH^*$?~(Ͱr k'g5$%qP}? -śj"cs4xDq:/C+JBp0R{yp-s{QLswBpڞ^&;fH{v?6s$u O=I^v8ri:L'8c\U#Fd|9FUs=̖\@h]ݺWH*ɿjm(1Jfq=uLk^sjRǏبИ^!=p>Nuq!Snu)ZYb12d "2I k%0Nn`JJ+hVQ` U:-LpzZ2*Yh^}/4Ï HO7m06%w .j#L 8Vtɩ@tTC/|;U筈 .l$^W8Y34wЛxٌtIw*49. d?N+d+S2}G>j)ZG& =w!$uդL$淉:&}ްЋЋkE&F͆,Y(y7_VGB0ﴟ9hч+s:r{nlg"$ql^Ҋx@#`uih9a5bqd}n`oj3& )NϮ$e N`&.Disv>\[< !p6|Ryl. $*7KQJ8cȗc)Aݷ@߫fYV Ns|rRw IN'I@2m]Hˋߩ:*?ؼq0DH5G[{]/aM- ݥ43 bK~Ͻ΅c\ڏ{014^Ut'=_[d"D`VRS,BPo4Ϡ`psj!{7ۋH5:t'iv@l<-iC4v"J&@auwPzm`F9\aDQޜ$Ńr@̬43Ӡ{4JkD)|RnwTZX8'oƌ;Bm#n46 ͆ވcm{Eg/~o1_.ض=eXĬb81_EEzBR%ib|>e1#sO\2WuOOnP)=572iv3dKn6@ kmP(M{ Ģ28.}Giz/e\Ԩ: 6_啎ƮPWO۩0hA5v?jfsv)r֊{ Z$JNPDMQoփѺ< 񇏤#0ƪtej3 NؼCXeEb^+'UiktrzxW@n-]Aȴ {Iz~Yڤ='j٨lBE.JQXu'H@3,})PMfˊ'V /D5bk9͉x,bpܸn'B 4bU/y$fij H3\wxf]K_S'9^G6cP22N\Ob.YP! }slsT7px$?Unӂ q\q:x?uew[\{_RBƒ4߇>_4 >qJH`Ldӓ?C]2iB1zMS>ʯ-*UE6~ĩW [9XsUFpTŭ; Suߔ,ͥHC'c@T 褷I<#cz/Robw|EXPW 0<),y]D4tlCfEFE?d'PӍ9#hS2)Is>yBfr\ wrA ZR/aU*Vb5]ô3eZ03x$DZH\Xz˨O^6)K=B?ۓ1\sڏÜoIݷ^s9s_|O r_S#FQe=63Fr],#H Zu ,-e*IazܰY{_48ύ^;x,hLw₎?Sݲ*~د"VFKβ7b{6#YRG3 cI2X'Wj~"$-oV3q:Ň >sr2!UƯG5+uƫ, t+&=a͉/OK ^l9䊄4y7C~Oa` /8ӣƻ&[5DZT{{kޏ2C'i6}ɯ?QO ER/Fd/p}`&nl`5$!(D-}!X8ׅNP*, byfFZČw*6AZ5aV 3J%* Lz0u@ao в.Θ?۔T??d1Ys!sZ}q}z KvBSsxε-w{ɠ|[jVg죠,R&qՠhsj{ͨ`-cH,$vv\"8]>NkW] *[K 0|PjSƝN3܂R|>8dU3u?5 /~ GGtDԝ6BeRpvJcHnѐ}Ī 4z tx Ll2>i-ĶؒJ7(>?5&{Hxs[$4! @u7s 郸;3o KY-gcw5h!hJ0מ4gzyſ( oLwE㵏bpkT4۷\'"fvkXPcomd?Sɔ<v (LiiaCdadsbb4XLjnJfTVc&qOKa&Mh%tg `qEV?0Un~άHJ" jY_Img0ճZkCqNg꾾c2?. -Tʕ==Z؍,ٍ֢8$P8;Xz"jBim Qof?9!v'VWD_rX'Ei\$"b/MHiE|흄$bPî1yWve mQ@z`i˧[1S3=hju MYwPjL[dY~7J%'+V ΍!YWNrBf .N(qέlTW*6E\Dvƃc** {_S1>Wދ7{3N@G1"/.O[5Ϩ+wD=uy'qClL9R \`^^4dGza0ʲEpa*V-~a!:7Vc=Epk{!m世>Xhd?$7:~p mS-"J7t(ecs/b "ȡ#d1 jF=YQeJgsc8!bdbO[k5T aIwq~ènLkRaqBqȻD5Z k&* +Y}4rf2o FLsY/|9=> BOj{/j!E'&͉1t@Dyk0)wW9*mz d-$x8p5,ɖ]Z`UҋF9>B~$owY [Tܲǘ" B`tZv}GSPwrxr$rlQ담X5^yVQťNx/|`$t:B`VhWkP["l+?0E1Kw}w-=,L\ f_tL QL +0jksbB><`k@Bi;X+L/g[?+{]sh0I ̈>k>h49쌅ԘH3X 늪.!}?KYJhW4ZA {'C;}} Bu`^l@GB 0$u"^<#og12r-;RpWvf܁aY X7F#BGݨ)>X4c+ΝTl"P@A+b NN7w@zUn Hȧ;Y2WflM";%Ϫr҆mh+_B~Z!ҌzluvFC#շ|$upcA9Uɝ̿$JNxBJ")[gp#%e?R"i]-]6Ѧ2DqDgHy ͖_Gn8sR2[o%Rsg6x"X02{sT)y7V|(+f[M߹:u5;.5bѽS]M705,D+1/iTPAfi9w_yfR<_FZ)Nr8Zt֛q؈T,(ef:(#c%y1PRPXDH)l"\ݓRGQsm!ih:xG kɶpuU q99^Z^8N=t[r+׵ 1d\I}LJ߷bøgkYCr?oDow nHh^~JZ{Hp<= k/NiS0yӛA=gPG;fPÖQ{dOzjC}j6ZBDZȉB<8myUJM8qA>+ ﵈WГEo?Ak;0 ,pGe QD/,E^s|GŬ]j 8/'zgyc| {t}29mg> ϙJ>H{qzxtKҮfBPRe^+e(5Tfz=:;P~$)9~q`.hU'Ƴ W?>8;jL oׅc?I$|ǼMPKP{>:N~JȠiO0ޖ`jC^Ufs|wsB!V+DWz4#NO KjCK3Z7MXG&j W/{_u'=W{fϜ)7piǏ]x r ٦dO6Ql&O@]8 CoCTm|'O;&1^4t/OUTE)_ ~UId -ili !|A< 3$0Z9&kMvv>604M4H#)b@txr̬J bPC?ipp|C Œ';EEnGd]+rݑm8gRg o\s1ኾD@pRX rV\C4f^\a)RLK,oxsI%+}C⑵[\rL mItT>霡nf`5fk`0[9Qi՛œ.~yQ')[Kj"]T}iQ컴7]OïY;w ykҨ )#ci-7" Mϔ῱P;6R>B@C A"NS54W):oZ_cDOnP\YOFͮghpWmQ e3dԈ-8rPZݘ%ר8oxI) 'e4\ |6Qzr!Ǖ~pg#K>‚8kx:4Ȥ0L#> f%hsՀp+)1-%V|H6zG>Mb1='I'0ȇ l"T1U_5oڮܯN3B;!2I>9Z;ӗoѲy.KVL\T)gN)meUӒ]N?wOdՃޝz$a-Ȑ"aEfՄePU߄]6fJ=a\[MWxC|OQ5b]287z{_rQZ\71/u9F:1RH,6Pj?1-kD_uMd!1}&LHJ\7@H(%eYl[ Xӕ}] ;qT4*bュ_֔&1OcH}8Ke]wq?BJ3sq;efE6|y.QO\x?!_nz&`U#i5+xxړË̦ a>ؓ0CU4hL;Ύ!\V_㴖?ۨSkW& ,HΏrTSf=ŀЕl<ҵmJT#&lT3AY1lyǢ%-.}x %ad3+k礕+=nOyEv0vsVLM"AJ̵1WR~tػG h=oHE_屛t\衡lEc2)S1*œ w>Zp1QΎg(Y} GHi-tN9$ j \7Q!)ƫuyɒ쉎E=Hw~z_Vt056;ja(_g_ܲ7Ӹk+{A!.78&RGV2k0v%@ם,ɢVIcD7}>⽢7z$)TCHf)+SϚywW,/ +~7%{q(ч "\AnA*lW{}MX2BfUk3@܌GҲD$<Wn'= sN߄ e1L6|IpPS#gĶF9c/-a `]UNEx/(=.,TOOمH}QهR"v@}BN.YuȖ3)'ޫ./Cnn8AS v(m "G)k$lTCΎPFYuk?R\ gmG3U$pV%~kT<ߍd>Mu)8{u8 J{.|蒊rz)jyI-KB<[-<,.08ig;6zAw6ٵN"^Śʤj Bظx.DkAٔjF] E\vYb"0^Y{DT,?~r_7_q38#lYۃH^qWE#SJ&,t0tqK`q& MJeы$hSZ0ll}R3q4>CgX˶x8ʪdmKŗ )-հXi74kfex '[v.5MN`fhkwł܏2uѧ A'#yBɟs$_MBʼxþ[VѠoW"0ʧ״ X I}ОaŒ';wW,AvM!'ɖYJyaO _ҔT&3U7<8OvӅӓVJRД4(B+ >i%Dbtv7J '~"eK߆_z!~.ù#WAnN0)$ */j SlT8 3lQX˺} 2h"c\Y/5MVLtUlC}XGt*KJӂ}rJћ×xӷŢVg;49T2^XLp{5ED~կ+x@,v` c/9.^gӋk>&J56г t钎*48=w񢯨oy.Fo;20UV}]eK5S8в &woW$,-O3?@$d9 I#w`yA 3?hUGFYz$UXVu1Q "kFeθ1jk*ZBX>Z zgk9l{.@r7+^aiUHkg/6Ho%!4z(Ľz49evvH؇bD`VkӌJOQ;FO烈Z`kvS<]y0*CpIC%<'Geo_ੌ7=evG.lpؓlơd˱gB[jknY03eXoaY1!‡ i(ƫaRC\VjT-8cNzq1FbOo6zUv{9] nnz;=nJN_N4Xڃuu{UyZ ٱR(rIJ3bGR$zN~R# &z;:r,uI-Y;O+6TvV}za/ɄG /HӸQGNu4h݀C6TJXk}ƻ͡g %kƔc:wa"<ڼ@Nk)4u,H u‹#qJ>9F #bcŰ]Au̿΃09\szD욑lg>qrb|l?j88S^.Eur4s-רsFj%.-m}ŲAǒn "LF[­-lZ Y"Z1PM@^~Gى3R΄60(Z 2Qu?PgPvT'G3A/P$| ʿy|q | .mrYͥHx0?פ&\GV1r4_n{j=fA. a8hgd͉wi_II6.@,%l}^ҋs6&Wz) {z+$Ya#k>jhF mG}w/X/?*zEWWS.ѼbkK=خZyG,fyfGB *g[)`PEoSlcw#O,ʹvV$6xL B!a.\}8ilt6̦ v`}T. Fy?ܦI>NϽVQ' ߨ'aA&,e(/w49l*'ux[\,Fad;[L7>*%+m5>N4|aa|qՓB>26HXLQ|¦>1d`V$isHezivAgZHӌC̀`ᵷa\p"ޞ}W(h̡!~KzGbv.t`q$5ЍU%7@g*-Aݔ4Ra|d}̶oɞ]gJ'N.(޲B|_cr%"_79)ƍ06N6Dz?ebp ҵbu>0WS1w}L;#鑣߫䄥qS"nD#nZf `ŊF=;Q10UjJ\nx=u^"ムDr荶cC:9h p6;#A\p+(%&$Zh뻇TʛIlМ 'z y}Nə-aC~Bt@SICGg$b"ڮZLe@ nJ܂Oi*XbLz8 !e)|+; jrn s47W(j۰mb jOr寬:xz ,5&&QB1/1+T ̥(Z;Cw=+yM;FP5Z_ʂhJ;Zxl;խ$JS(mnEw=r#D#ĝOMKFz3UkE|,.߄$Y޹ B_ǟVj2.X J-];P"o%zEC9+us:_cp| w㵤l%NqACѱ‘ Ž- 2Vz.7>HGBprA#%kmdYF~&2:o2nGA'PV~]+xZ}ݓf?9.s;U7l(V qd#Y:rj@v5L;2 Chܨ‡1ChYyv/ _|7Of9h:TRjPDfrǗ iYuk\+o*+.3 ;zEŸG.b':Ʉf"t{ ^؇ ma0oFGt!TY4tf z]yԨO!{ҜR:=o՟mLk*!Q\n2Pۿ:^oRlɷl; 3;KUABN? ~=h*V4р=$q%R,.?L5jK?$Ax<+Ų !y"4(Ǩ٬\MCL⚾2{JFށ&b<U g>ǚQ>} "0ǰ N$P%Fu;"#yJ?%$V{y8% nZ+'GC=onǕEp?7QrFĊNpDIʙëQȋ:P Cq^[&>O%̀UOY^A=3B ՛$rEDck{z1HNҦҮ1auLC" '׎Y7 |ѓ*q~֙ڡ*~]~?Ƽ(9YGBaJ?&@ΜU^:mZbW2>1^vD:Myp86`gTVLqV̥=P_.gD -7Àak_Y㗨@Yv'!_Rj3ҋA2 R{8y\Uj䡟*-x+h\y_%.3 _<}Cp:UNxNnF=M %6#΃!;^lX?9)F>+<zȝaQ9EfjtGWŊKdPUSO}*BQz`]cG RcF Yǡ3UM/If'tL@ǯ)T+Z $x0Cm)SjuA8'I,ELќNѩg ²/w"ߴƻ{>ix}r,n?ZE[ɜ} "tؘ҈f&&@o+ u>λҊ>7$B >1;>&8}Ni8}>rQ͞R69F~LiL\ρaĢJ^KZscOd| j77X:m_ L7Y3Aj` ڱ⧰H{v8O4ON1[|ۻڣ'~g Qe ExG]D"]Eܠ!&F6&s%?TXxwJ; M1۳7/62%-m{a$ZxD;.&r ^%{K"1 G#wf@x20~:NAxztQRizEuJJyGGy U9Zm%B9.WR+i%Ɨ"'W ۈ#`)8h_Ȣ,.QUǫI #zP,tvV˘VzjJ M|jadЉcZNFbofZNYcftX{Rn1ڙ-`Gt9_]v({P;9n@8H=+0ΟkYJ钿Dmle e$$uY}@ ;; Oh$jS!dzw'އ3נl.Ojv,&>n0bJ{p&˩kܨ.JRy.[L, 3B%p AMORe0]\HS ?NVq[ey^@w7~xa>`{zlrGTBg={џcS6yMoJc SaҠ&]/|swZgkemrX$N# 0T0IU#{տfj="b5m1p Oa:/9* W;'lfB ?L*97VZy4j5Z%U}o2j %DXiD7r\(T(빴K~NDHi^bÎܫx@?;erV,h%W~j[7~XlF{$€kӫ&r`08\^K*\GzhV\@&s5̬%†fBO381ׁ,AL:8@/vX30HU '՝\ٖ6c[5pٗ&^}0' GW uzU_vG! A1NJVk͎rce!2\F 8"A Mag.d\[YΗOsy;ehRtNa;.1r?2 ,pI~4 mlkfݏvO|P̄&i?^\:ǥ K]z'¾rЧ6RLˉ M &w ϳ0Zo" NpyAaׄA{;F[djikBY헂<:RjF /s(T2//&6'l#PmB$ dm@EfU]TKT ce뇡L&a N%(P+J 9g١{ ͩ¤eVY5.aTq!IbHGI2f`zVTb",j5my*؝S}:~ør[&v oz:,P0sK 7Ǘ^V>Uaf.\Gli4y XmOylE.2呃)˿FIP_̧.tE=ǃ~db4LnBOG)h0yM}K)ow9 qkވS=i*4NM4(hMa}2&p'ȱ-K^^3B2=7kK zMkeڌ069s/1(\ זdϡ`c.qTeٚ(Ku Ø~ ǎ!> !IhBr|ٷeb 1 &Tay6DK$5GVxr,ؿ>Lz[S^؛234 ;c1Oxec~!ck^ìe9 -={IL]߉6[YGl_+^-]zZ ` F)*6p[ v֓1Q# Ǚgj*Uhy&yI;|$U:K7,#*A:O@0o, wy%h̥UAR&%))2w8iobT"Ana/P`&M8^zW*2P2rpDIGP;TW1J/` BԧzٳЪ"RZn"oO!*rk^ &PN2 KUJxQ1 UoI}%ϖ#ϧš{&bMvk".sm?DM+O&zr +~%IrRޏJrgR]UW} u7 [1V{t"X`"tL3-O]CKFG,F[?G0ﭒ$ z#"N:⫇l/Ӌ{m @Ӹ /H-ϧtDÂua )'~({F-dȺFG|VW6~m٩vKȬ`g& kH|1g%p'560 Nt*8.͐h L()3o nynSJ|Qm ~}22By:&s%!sѧn%QpjXZ|BJ䧃{8g$d5+}YJu̙\}dS񛡎KBmq/%kn܊Ԃ 5$gīǴR1Ӈz9Kyo*6, 5\'d\'H92 {S٨R`)H*t"Y]Ua)vm^ 4EbոXxN?w$4I&ܑ'4~N,6|ZR3phBއ{,&XJ9޾Wٛ"g581HCUN5NRAEI!,B UھfS FOl2F$v9=$ dVu#$:tKcܯ*= X,@k.c",%iF=uݩR]Q!#Xa'3@,:|iT+okcBJ!s0#{N1sORr4 ZZSDE+5~'8w^`z\j}i~ D~Z ]KS08<>_oفK%,.齖D=eeO%Fֺzw>#vt"RYC/z>,$c.Ԣjy򁮕VCK#34 [AzHX(]>/:L˴,!VP;"4;#&Z]{/vZ.y,io7M4!bK2eop^0Μ;O,F"mA'˪ S]L.:!;9S?Fz?9Mݡ(QM\sK(ikf.ӳ@מ I0L۱HfqWD.\)ޭ}vL8c7qtPɮˠ |R!(^;v >OJl|3 #S<EA$-˘f5A*Ʊ)TUr$Enzf"GXJu? Zf١"wlt[wk_Ǻ[f56KkЩow8s#nj7s5gqKvXG4"٫>{+xҙE"@N=M۠R*&=n B* xXJeD2xM{^B/+\ܔ X!D.@ 5XimPb[ܒUcB3'sxwFUC sɲ?"ǚ=qII$,2^[OMuq6;{x_vZFY=H\^:QvO tƺb]MmSNK>ro6j7L)^ ~?Cc`]z>j|L ftU .a!Yʥ͊e1^8j~?,?\10;\bDVH=lcc-"3Qi M9zq7(N vH| =T Ɵx~*IJi͒՘t ؃'K$7M~ w<6tD^N)%r= UOugzT3^h]%h݋–oXŊ0r½A/yKGrڈDMh? %gIL3e>r{o2N<`{e|a49!gW⠧E (C1|%g*+L5Į+BfscYJa?Co )訉8iq.0UQc\MQ}Rra{a'&z;PAj40\CVX2][U4s0z Rc^ǩ ?r/.5&@{nJ-pp}`CLKҖ&Om?ܣ@IXٖuU@IH\׳oPux~C#ԫ!DݗNTLDG;m|m;"Rfw /1aOL.f @z}/ׯūW̒K4ْ+˾fI8FpaW*)I|'U[#AJDZ?9&. G#T"G_Df"SVbFRp Nw*?:2.dpݟ$p2HcPyv;Z/HЦ{bֻLEm:B}.5. Çż8Nw/]ʹ\v~H?t)dh*V};xg겵`5T)ܖ;I,fmG̾JzfoͼJ-|.ʳ(p_<~h3@b2+,9d%K-ՙeA^]xYJl)'"ԟʎC`F)*gG|(b u6̑R5'f 9Fy@͵uvMyߜF?kƹ4 hӜ#`WJg5O?!lg !M?:S$~-_% 'uMP ,iWrT^"v]!#I!c>\kP#-3Kdv2e4+B`i%9  % # ;#NDh76UB #\!:ᑎlL%*t"Z +`Ѵ<3^hmk(^LMlԤ)Ыh#'f]9T23H"QgSc''ePe.['~t/{xLݒJʎxd.1v:+GxTE }^5vSk~N$ʝhW8`)]]&31"5>NLl^c2US^^c9Ay|r*#Ai$1p#}~rK(+cfILfGeUQ.TG4.Sĩw>Q4~K ٠$'8⪟Ce{G4=|7cboמS/.D8Y\(p,%k X7xbDYl(BkML\ gB/,]7ڀ^c17ϫCu8f"zs"FB3.mgpa!Od1(9򓟾mĭܸIdcT6H!Ɗ:exNFH*#cf#m\TDPܻ ݁S'7zf/ @RDž*"Ǻ>Fɨh%sn0 6Zz uUV* 蹣qd=(Zyy3Ge̢=t@"mڋ! N}&Y+3"*M75?GSQ'pU&յ:Yv"S%2 egI;z+)֝tm=6 4$A| QblZ1[q͆4g@ð>|YseE֨s<0_v˒o:CMb9d=4D,|\Wy~1Aٴ|BF ǘxqEwZ/e6)L> RDNWF&vj!2k@c| 23Nz@ T* N8Q^"j9%Z,;auO[ /5’{\DlҘaK nz#|bT߻tFRf)#<.$,_2kgfЬ3G܉;n09mD9τUz>1¢K;uZzRV ƾBuTz"͎Dv=};3q5b6{$~!k'U(t,*#.i]Ь;Ю˥OFM깈`:QbBI. Z ZS㚖#!~L CQ~G:ߗ!Ng,)H `§gsGZ! p!:zL;;OVɱS6=U:->55vҿ~mZ@t@\. A@zD6oRq2 Z45"D\ʹvv̔YN`1OI>AWl~ ;{agnE5%;M7SJ̳,R\gap)v铝F6km>X)@ƽD-"&G9gҚd8!H:tr#SҟP/DjTy(iQHraaCX4wxVTy*BYZIY7pi̸&\Z=EU'wJ6g&ҟ=| kU,qR? @6"73|#$gzr3R!:JvsT(w=[L3 MoCeJ3>= ŊSCrz!DjpW d;8ԩj׶GqcgP w<0j5užk:h=u@FS׳gC1k6U;ᘛ11q #;?8neWWӐPaGקXqs/MWg-0B9i/Q oNn Wy‘7K7mCkַVyNo]YU^V"vyU6[Z5=yx eSn2Y7GxdUnzq[S: ^a*_,XŪfxWUK2KH6GKQx]djOVN4/zz* mJH*@FKyC(G8y.2%>}yKoEͿy 0^c"j/#9Pc*~iE\Z̢zk>~g| ñ'5 MmY=JKXh2Ս=k s(.} '!A3KyE#>jA[9r!Jd sr>y>+eTؒfU][4c "$甜m=C?sIhKMI#uu߶KC"_&(HT>!0l#ˑckeF} b'wj2=5Fꡠ&E8Z4i|\ໞ $*KAP0i?VkA1:puf>pw].RENàBg{v\JB頿*ӣ7:ٜ#@-t 8L Kj$LT> OYaȼ52͘OF0QHu!Vkp%47`NQk[T-HbN`2G3OKp6@fPCy F\I4hbaxR+·Nc:A.%*00 9FFa)g(V v[E(_v^4PhUk"ny.Ͼ4|kdk3NGW =*AA( ez1 *asr:2//5m<^SZyG9hYi/ޝytwcpf`܌ȅǍO14]`L׎/<2P*-Dj1Fgҙ]eK}._Z<50ϝ "w626m_3C;8-nNaUg\+ "]hOb}7eO⡨AE::y<ظr:0Ga+\g71]օ  Uu} &EhZ䟻f)톩֮ \1; \F|IŠ$!&̧8ɥu/ʡ'm5|馩_]?5tU-md ;i-HL"H@ ]K-ۧh yVڃOK^q4R&HRN#\He380ڒUt] q.!=U0mRT`8U$6c0}vo850Xf1&BD2^8O"#yLr`Bb<[VS!M/GHCQ2eBŘ5yQE)!B*!Y5?ߡ3 PntF b`"haKGQ 2,iuˆG=T6m&ñŏG%r|&^d' Ucp-/kysS,ɏu\F%uˑƻ j f QKAS 2<]Y^K 6m *="Зd;Xٰyz*eo;4Bilfmp0_ Gw|y#-)ܶqi!z5yw;7K($Mw{-NL6!6IN! _0]UlϡXRY rK%4GQ^0GtbzMC\;Ӹ }&ق&> X"X&kvڤ,t+]:YPC}(Ö FT>d XJ.s+pT(BdRP^,p2!-aC"!1w׮#ONx J6%W/c P1\C愿;t7ZEdQSrXTPU=:,irVxgkԓ@qU8r `@kD!8 6㖽!%.KeFA:+ g$5W͈ޫo-oDb{:l`qU˜E$rGꦙ''*jz 2=X,sx/_a}=KئegRT"@Tě~O\@m2GiFQ xf8#)gTn&I\[Q\͸D{e$^9+H@El`#oyKk(-Kkb&t$fuK hq@:O_3m'FskVz 'R7 Id֪K$8W H: JJGn'\XJ&.o՟ɩm? 3o""z@,Wd8B0g`O x`MӦW]3 ,WHC;,c6Y< nq6;f6RךHNQTdڭÊx:Jy3e]u0dl6.gvj7͞^V'0AlIH&O :νe.; &s8p>X,M}tXqDu2mw"!ԺZu}8k{! " e=j$~ǖJi* !M##z&JJ&0ǺTџUfTKݔo _-ChNI(y3Q--{U!Yp@ ԧr{]Nh6+pwT tL8ir~M-8?Yk ͙ګDroȅbAQ "VTLJvl%+ O30hF^2!d6ͱ6_m\1ܮY|r #-DY'p䴨ݴBW<ҍ|I|E <;s5g=8,eve84%Pn(q>^Lq!R6l*Q)C ]U/c\h|o\ॢw=X^fHԐZ[6~o / .jHL9¼n>fv[݉* Ж=AowRO:KjҪžŴ`Q# (0XLEĂg%gC0n9!k6 XznZow MDi^#Q%yj}aٛoĽ0tø*t Q@J 8K)@rz?-EF*)`%W[Xf4B_[:;/0PU5f B-9xgh)Ù Th[Aq)2+^ 5k~M*S !!|7Kw~) b[uoWtP0`ip*ќ"wnHHu%YjO)3;$/<&hѼP*L5Ѓ`2~s8IHa{gm~RJj.Y<"Mæc_DR## s<쳯^" A6"'رjeZ/.c."gOH2u{+H)ܪ 4 yhJ&e+8y:\ݑ̨L."S\dzmj4q[exM%a|j y-R1ܛB'4gТ G deD`&ĬĐjϓ&,/2OK|et>( ʋ\Yԃ~h?^ o`,wEg PdHiN e0=X+ٔfp/M0(_1'C5r.3Lƹ=-1ǃtYH^tP\rH)-`7S$ܟnS{f^ׂ*T 8ͥIԚx JeQgUB8V ŸP[p{CQvTe 'D_l( #>xƑ&)p֘ CgȃDEoSK67c+& ﻹ ShQd^@0lj`GF2Zd DIԥ Hl.}ma3Cnh"=_,x!HP||(qy(X#sGMs%s wo1H_v>\x#IWQ /fZNVhA΅ 'qw~D y_^iL:KPIcx+1GNbȸÔ,_(ϵRF~fpa>KBi9|iB-73Gd. 'R=(*fmu6مC& 8s'a>Se|p՗OϷe!o Jɷ*Gnn|4ڀu(!FHDiqZ;9ξv?:_fs(z(bl'힍؁ކX9yWZ\U=]N1CċG_>N KR6<>ޝƣӥ6s7[I@{uw}EwK X3:d%a㱡,7-_PA|Q38ċ'Lͧ %w'} |QX:׮븐_:>ƽJ|L% A[)l7u]#'2D1ѧe\=!j!wn¤|%$I(Ͽ{ߴڨz3bl*Oa1/o+?Wn:J/E^1bO*dBv|~Ãp`Ib}5Y#3XIݭճSS4=/b[(SK[6=NLkƉ>KWqXa:\&i.i7`"9;*G%L8hMF+=9ӡpa{Z/Um˯eI6|^- NX[Mz[&\tW&&C'x_j:3ƬՆԓV8Hzx\ve,\#=mo^3M{GKrkeUyթ.1bJiȲ-RK˻ -J[aIudTDV$avrܐ#nU/Br䳌am׵Q03bk}ct3L7!N/䚴RU(0`MU;҄@r>¹D:{lO*u(X!K4JK __gcbZ9 ?`V3e7u5NI$NF?RIQ2AU XqCUY55BfUϛ]@<2֭ :41)kY&l.$y榞C .ԅN+V˴~-v@sO*է"x?e!%Gl;| iv:lwOFw-B&D ZiCīJ݆ULw;WMTُiV epc&s_(Ji}?EW qU| |N~~SQ+kkg3낳{CwRh%?(S1n}ܱ']$zN95q{%%[eCX32WX]9g qjrqa (1cIo_R%vt5 d|q %^z#`J5%: .Y_g8qUrDH]ipO^)I*p5ʜd,*ne)*X6̀ N7bhbYV6Bio|4v/%tzo%3SYt[3;[FBhiQ}) Xadn] CȟP>~&Iٱ0yV .%.f-d.ޣc7ϡ^M(O],\]=2Ҩ$5dG:MUq2 QpWpcʬkh?3D7aIpV,wsK8MN=RØZxOfSf0xu{vۦZ(xe=;/ې1}1y |5RWtJ4JR}'D,yrFܠ'iCG{kħ<1kbIBˌmf̶հe/\[;t \j/`uIach9d:s^t v扺} yEP٢W1{Y7 xϳ`~E',j5f^VC ɄԕFm. C.TZWxb^fiK1@u1<Y(_XTf o[nxwؼK%JQ,|}H?Ԛډփl'F#' >Auy8e+2Np1V uӵ@;,ؕ(_Q*֍J[Y *QijgeFwh-+\> T,#:  ҿ ) ѝgBxBk^RZݝFʶ,O?S0o K^r_q/B>yynJhuSm'qcL C2#9\ Y7A~A>ómbZVE `ʏ.b9y h#y-"XVx+ `%uf1%xzG%6]gT݀N{x`wy%K`%wh1Et GÑ151 X?2*ؾTvs²A-Rv;VH5LnRk/S_:Ŭ-!5T@VWƙ=iX*HPApK#=5LsF3BIrDCe1NQk Pre!r~Hg-F}4a#+\f))xrm-G̈$J^?'+G|p#Hd{|]tڃo(H}w{G/n[i*GMRD@4"FRQ|U?FM}Y[̑Tv b 4 .8a\6 lUMgeL5]R 4U- Rc2cI*5{6ir pDQV[_vRn];,.^joF&Uo-MvCʩO9 7\/7P~bbW7ulS)r\5+oƐԩH?~}ET@:I Pΐ]7Xl&PQAa[̔݅0Y ?mPT.v]Ys 3?;[Az"7+Gxb8-Ȳ;ՖIr\zh?CT YZ