dpdk22-examples-22.11.10-150500.5.10.1<>,iI+p9|u!qs})%K^K~k((Dɕa3YWl)IH ۟ dϞ/$آ:PۮD:AS|:lPa&%WIry Ӓs`NsC@_ǯ= ~SM/mbq1֗Nvwj*'Av,P5єvK^1`[FƢs<8;׳i@^=-^xP(a3"* <\b_$c龢YJF.ٟ-F")>?a4?a$d ) Y6 L]sy <      f 4 u"(#8,T9|T:KTG\HIXܼY\]^Fbc \d e f l u v8w;xCPyKs```a Cdpdk22-examples22.11.10150500.5.10.1Data Plane Development Kit example applicationsExample applications utilizing the Data Plane Development Kit, such as L2 and L3 forwarding.iI+xinomavrotaNSUSE Linux Enterprise 15SUSE LLC BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-onlyhttps://www.suse.com/System/Librarieshttps://www.dpdk.org/linuxppc64le 0 hPX h (X @X   h ` x PhPP P  PPP  }zbQ1}9 Ze uJhc|2_b+5&a2/0]?pbNC$*=4'(<)>$Z <YjflE  R ;k o    } }L!E] H1i s!^4.;G!m,YEJ;_j+o!6 ?W/YA <)J*? ` ?Won{#j#HVT0z?T,&ffQm  ~P +[r @blz t Oq&$$8%&%dPJ N( NpMj  AZ Q32P95{Ww6HK!* =Ea1N6d h$LQV p+zP)-r0r2~q[H+ &"$#:$"}p}J <+w-( U F6qln)  7)n lNo>sDwHρAA큤A큤A큤A큤AA큤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큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤iI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'EiI'1iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1iI'1hʒ8iI'1hʒ8hʒ8iI'1hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8iI'1hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'5hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'5hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'5hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'5iI'1hʒ8hʒ8iI'1iI'1hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8iI'1hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8iI'1hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8iI'5hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'5hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8hʒ8iI'1hʒ8hʒ8iI'1hʒ8hʒ8d1847c0e7f59dcc9f82bcf57265b6d5accf8cfe7df53a108c97416440b4ffb3aba1a712707c287f4bbbfb293323e9787bd3ad0e32fbcebd8ce677779ab51a8d1f241d2c18fedf969fd3b2788a85209c5531637b8709cf7c646ae6a6dee9b4d4754ec7a3346b956fd16c2bfc3868b4077b36ff6f5fed3ec0c4456e60b4ed4a4da8728ab65b861271a54e9d9a30d788d8d4bdd94cb7ba8fbc6af809000f111cc14a14ffe9e82e93ae8d0d94520b31131c41b416862b2d1a2df1a9c5b78ceafb26c0c575c19a70fac8f7ce35705e69c1a0e9d2771e557da6aa713a79aea61277805b762282b5e05011d1bf8df9e0a4f5bcb553392e50cf7e8997c4d19a920940936f710dca60dfd996ca52aaa8007a1410ba925b117d80bd5497e928567ff74ec0f7903d6ac3297b63acabaf0b133e3bcf176a8ceb9915378fa9f75d6116619854b689457a08399c27b8bfe770bff32ac8e959a5d414c1d6607ed33972c6bc20063c33bb17a9370c42c4c67044decf28922ad6142de35947c18cb90dcfe851f3db817a74027f91033f39996096f194a6e62b34a846ebec9315134db15158f618d7825096d92bd4c4266ed1785626ca1de34684e1fa426efbecbbea1f8e2a7042d125ae371146424faa7dde5394ddd78d2287bef4a4955c1e22107741bcb31bce9ad78827427249855ee17d81ee097d8068cbbb173408a78a99a2a6ca90deb1821a1b7defee2bbcf1feffb0ee6cbf7c751de4249d49412ee64dc0ff85d092c9cbd33be893a6ea5b22710240bc512677b1882c070858e0e704c7a53cb660ab372ffdde3186cdf3be2dc5fab7bd754912fe9383fc9adb0ec465b83ee35bd04bce75025c3c123eececf164558017917e724dfd3688daeecf5bbf129a46902f2dd8785f25c16cd6e6341e5c35ad3cc2565a74cf440eb395dc17298847c2d460e2f3096825ea979911908060678943d1a90865dcedf340cea13e12f8f7ceb8e37a5fa521af50be8b9602576c7d339e4a38f3fa0cb4ee5f5b5b2034821672686eedc2253931ec86ca34742a2a8c30320be462c7843d7e9371ae76682f435070601dc0694b049722432881f1585862acaa1cedf641f443456e7deca6f2fa544931c9000ebb6a606e868be54be8347ace8be049e5de193c7a6bbaaee2ed5b15686462117e11a743dd041b3f9fa02013b163805f5491f1d0852241131f32bdfde019ac89c701c2e62e040cc795ba27cd9cdb83c2bc45d0975d8de93e110cfe02152785ae192b496f2b90c813845d75f5397ec1f868ec779f13ae85e98a8a97e2f81f52cf06becde8d74cc3e21d5f983fa866bc9faa90ad310dc7b461a537581a59ce5128ba834f7a5c82f618490a000db989734e599961e5438852e76541099a04e2909d45ec3c4437a98a8f8aa10017cfc09c3f5f95cba640374610452410e3ea20c09d861c9a1d7a46a771ae1087e9f34ffb4968dd1ba94d685d4b1d65c9f005b4d80ad8f3f1e44b222bbf87b43ede3fcf6452461ed0ed35264752d103ba281ba7f25eb4e91efa9cb128d1230a5c7726a44bb9084cbc4e191c022171b74e1fc2ded7ba983166f9aabc8a5a93f58b2f85a79466b832c668c63835bad40943db70663b119db4da2683222795ef9112a61ba4c542c050d43b23d25bf2f6d8d4736fdfab5faf6fb1fd34410655568d997707ec803703bb89216d53f2d6b1d6e9c75131d56023243bcc6e44d6d59397a4b0b0ab93fb3a84df5fffbdd0da7705668c544cb2847edecba20610d735d016c54fee8c192b0a56ed90b7a608de8e41022ba312334e9d30cd11faba9c78edf70707d0d764b60067492ff46d6e84c3c5e8b8a566b860ebce68f9dc6d3e47fe6e7e6356b82067aa9ef92178257315db80b7d774f0838bc9355818fe6d07a7b0edd5665ae8460462bb7344f5889fd960d10414dced6e4164b7f745e70cd41d9bcb0445b44a83efec9a043922f19767134c4059ef20a1520fd7649f37bf39e4a3ed394ca3b89cb1c2565ad2e27c1c4a7b0f078987c000c8ae912a34b20c7600b2bdb8f59ea3a108fd4e358b2fd1a946f5785aa3ec390d1c7b733cf72af342fd58b229fbe156f2928f7f1b3a9f5accd0d949e4abe3d21a90bc7518c5f030b529644113f49ac9b008b90fac44a40ed2c8e3143ae8d43a2982219fc5641a464a3516a8f4763c392a1305b8679cd0794dde83364f90adfb07d5db021d8fff94abceba69612549720801453f76cb31e4b4abfe875bf1416ae09ae35198c43cc9e7d5413dcef70ae49131a8d44e918a305a0e63a73e5cd413e0f17af33f167f328442004c0c16d2a2916f2ced3c4a08c3a6f16bbb097fa78d27b2ed33555b249bb2593e6187a1bd0304b0adb373444fa427cb0a5b4a04a8e7bf95cca27401481022be0cf1400b4558ebce6366eaab6faacc5b2433e50a59487ff0b1f51116af41eaaa230408263eb25c4eae34c442a4ec1d5705858d38daea23a451b73db80e6b22ccf22cbd7b2b40b6cf7741cffe0b7f705ad1cd0ce9a86c98309f4b5c4aa62e911a3199ced2c5c324389933dc9e74ff8805a27141390e1113fd4545e2a72186cf50815492574bebd0c48494bbca5311c6d0329c85a3b2921060f782a4d9a9cfe5f7959f172425460d43529f3e4d9c53e5b5ffdcfe24dd8e47958068feea391fc09e6f0b5b9ee2c0a79cd5e5018a6790bca40d240b831128276da8f3e1edd19e1063fc09612de92c466bdeb50f8487845721ac1af60955121099401eac910efbef36df3c1bf49ec5467902b7205b4848ff932acfc60a5d5de353d061d86a0e2877db4023e6d66ba5abeb7f3d4b6391261b82e62f9facd86451300278a1e88481b9e4c45fce4dfecb419079026d0b75a76129746012c69f902d91b498a13ff9643178e7052845d95816039f73f4cf430cad9a2bc8d33f8f5e84ca39e0507e4fa7905398ee8f7e43c1e438828b0943edfeb877c4961d5b276b5645c235e4e2292f60aff02fd52ae9f261745315bc0ef0852daf81f2e213106ca6ab696068f5f3189ee4b18382a214992ed7b0ecb2633b4502f36e691c7c0bb5f7ba017f8c70cad98839b11bc8f5e67145ceacdab98db466a1c0aaaaf6cd2ed94b983b1a5f061cc0f2756c3fa2e01535914d68dbd97b1b54015668b450d42fd25d843cbc29e3d0801c170068dec57040d5d73c36a180c2c36e17fdf8c6413737b5987158ba06461f6d49190d0e5d66dd55b819b5f9fe0bf14f1fb39f6cee7e664586cf35d44c7faa6607964f1e72e44f49291745f78a9c2c54fd132276514ce1c93dd3c17964b107fda8d145573e96f53b9f3ae02dac7111704e7841cdcf1339d01fae7f1377e951b034ed959122b815692a5f3f50330e3d31a11bb3e87df5cdc68267de84ed7dde8de9a18f282c2adb635122fde4b8666daac8f3eb2fc972c3a3372d764cc88972954080bca1b8dcb2d503b738d311f3de4d7b42bc3e7e6ea22c249781a5601bea1294275cebc7d6713df21ae3a90aa42edeb173c0ef6a9713fbeb2d67dccbf2b6d79d7fdcfc33c37c81aaee54496b042373c86a1090f62102faadcce7974d7e221bd263f643b664481f6b5f108abea07f57337eeea7d15cc27bae248a642d019ca9ae0f1d04e643658213ea30cb68c5ce435a8cd8b70be4009fddadddd1ca78e3adef00337adb9ae3054e671eb06239c46e0cf0478c88660e5f08b35a82cfc7c3fa69ca4362744d4900433a36bdff527ea5bef4e6d0a58678a5b0b75a9b2d0a863eeacffc898db034b782cc85fead9c6ecff160401121d9acf3a858cad20a956d892610036ce73b2de6ef84f0ebcdbba4f674ed111a1909cc62b433cd090e4a437228ff5bd8f22ba644d902840c564e7bbdc76001f27dadefe4d786faa03e921ba0b4542630c102df8a68dca7bc37735ac5fa8de5fb21d85c4ffbfe0862ab94cc3469f177cf09e7b348909f90bd376c5d4b0c8b020f287990bbba73d086802690298576be78914c7764b6bf850b53e6c14393f1a87f80bab4418b8c1bb971e7be49c60daf8ee6fcdeee30a606dbc9fe9eb152ed2d1769a8ee767510e876bd3be7b9aec9e4a8258f26c0775a46ad7cd97e4c2670953ad85cd361304af7641fc0809eff376f2d44d669bbc188765fb844977d336f7509ae83393025ebefef67ded82220e9b7732ab93c0a3cfd8ef2faca87d31d8d902969bc891b3c139dd767adf47f4a2a3be0c818d90484e5fa446b02d87f3abe537769cafa68d8670c9004277780ea08542083de178eff67f11c1587f10a991fdd91573c218f2f1777bf83e581bc431faa2546848972a8127b18c5ccbd418b1a12f2bc1f0e2c6368ead8f6a8ca4951862db531dcc95f5c5b3fa1e77294e1acba3cda8ca57eb924d9bd45363780b11580825fb466a3175935cd7f8c4b0d91be4631f9f3291f195e98d723bcd994cd65e7ce864e2bb7c6f8874b170f0c1c363234ef7f58bf7b88d95b1d2c3031452430e7259aac5a56d703b73fc7dea0f7e6476bd532a1e67398f2e77ad2fe1afb1ddd0dd76681b1ebacfe62b22468d71d0f3c59874ea283ba96e7df687e4d8db22509f24f5d61d237c51ac9cc0c6a02a80d163d68a8bc44ef033345bde70bc47857efcc06a52e9f7dc31aaa51175b45f6e853d710b28105e8b769768f1fc5d028650da0e16716a9b56458045c8de8e79753d062575db66808bdba9403a54a7a7ed56a24869b1b5f26539cac3a5c5cf9f0beed2bb8afa56733807c5c13f4bbe1da940c7977f98116e3718db233cd02ecec3fe888672fba1ddb4124468dbf55f0f932e0fdecc87c927022badee96b155c4b3ca3cf653198439caf0a4917cbda0dc11dd2191c8feca58849364b394c25bdb6ddcdb2a8c376bc2b5728c496f79fd9ed9e0485d23f354425c43b1c2deea768a432ab333e6361be92b5eaed75138ce48b95d1d34fd822fc4a4a37fe5963821bffd7c1a08fcae826409200c2e969f97302a41cbb62ae81ee63de7f96b481cf9b7726b71a49cc33c3a1e33e1b5d9c7bde958ddded917f98a4dad1f20a641938bc9a070b0068f8d0ee314f60d39ba76b7ecd2cfc8102f7efb3d07a21fffef6fe630f8a7e6d8026466011382f05a19b19121324bf4acac7b9d7cff94b3c9190c623f6f1d12d604a299e84b021d3106e23809fd8f7c53bd6e6b35c5a1cf467e28723b96cae687703bfba9ea80843cd9047baadff7c66e08f71525da763f323310f235e9dd09c057cb8c99a3c73d7f11af415f01cec8dd98736a2a3ce4d9279b14c908d19800c932a85f8a0c7c0d9f9a6f05bcf0bd576bcea73bf0117eadd1c99dc437447226aa36d574331f2101738a6d5d05751e5ea55fff128a257675fd5f46708b590757fbfa369b447269e7c6e31c5ba533d8024c3d292393dec38594548c784c24c54de8532da5452649b83917a3552982b9f8b33bd3c6bf449443cc4d64d09f1faa63f1736c073be8b6cab59af1e6fdfc5c3c983f15e8c67fe1f5df71080d0cb9c7634effbe38ebdc0116bb3e2b28753bbc859e1638b8bb94817c58c52e1693140455bbc3f4381f4171234cba6f04e9e9aa0c16395aaf82cb91ca65bea3ef74a07210b9b7008a061dc5ae20a1361aafc89acae4313b00853663866b0350440ce8cc1680d59679f10c825ef0f99e4f8d251e2ba02d8a2534edd76c15f6fe2ae3c383c55f074276b813b1e1714e51e124f53e647d5b18588bcd1fc1922fe51b4f8b4ced445c185dcf55141a33ed38a93a3ed520e2ed7b7fd7d02fdc602bc6dab4ccd6f288de5f4cacf8a27e07cbd3436dffd7364a609ec4af546d4a994e7315193c5b3d4a5f626b4ce3c1c248e79a9dff8761138911c9325223a21664cf2c430883fa259e4966487d2cbdc8d7617e14c00a3eb8ab61db274e42cad0846cc4639fbd794d93c70fbe16b2af3ce605a6a50a20c5fa6493be074c8463b832d5fdfcbea2e3d9af885bef9711c5799eb4526316834074de351e1930cb791d2f60a8e8e219387e9954fa33155788973712cdbb03549ca93363f00fbe7d1fa32d7434a3c1a76985e6bde8bb955abccad9a9beb6c9011bcb6a3c94ec23e7f5924cac8c51446a0cd2e15526082c7021fa3bed105a420f167e6bd1c057270e47d41a944899379ee9f9975ec01039529ab1e66f6f57f238510a33691b0afcb0fddddc59710ddf4d7a991dbc3100d816e65c1ffc76b3bd1575fe3999292404a90c5db90eddb4c993cb591e43195ded1e4343861ba337fe252014107db5980aa7a82cde9c380edbafa0ad81e97f948d9939507d51cd10f99a2cb7a58af05823da9afda81305dc2c6e46756b03facf8eacad6f3ba0a7baf13066d8e902cfa76b61fa1233d630f10a901385da1cdba45b7a7e098dbe35573b1a533f67315861ac139cd69133713fa8f1360bf8b6faa44dc12cd38ec2825c7e68d79559ecdf35853bf96d9505a3b8e40f2a7deecd1e30f01c1815f57686dd4be74638e9a34757ebd4a36867f79a29c9cb4400b8e08c6004e070c01ab232a85bbed499281c0aa78aab530fd818da2868e08a0576ef96108fdce8154dc6aab9f488e364d84c7e705862e2f3e9fb88a686e8c953720d110aeec334d6fe9e4f772d9fe3be903e8a3ebd134624c534a151df0d23f517a5b59df01e37b6b964061ee7b2847d38f51e6f306a71239bb9f241c9fc2e86565a489686339af537b4fc073fed919dfa07072970a0b4ba61374031035315e9478bca904b2c8aba1fe94aa005de4285d6cc8226f73bb2d3bdca22c5695b2aa067a0e748c2b2922f2a6d444cdaf7dde3e8811c5aabfecf5750df7735946eea07e605a818ba3bbf5d4d46ae52d7ebe78e8ae9af005dd3df3af5252d71b469d197dac3201d9066ca4a3d7ccb2a8ad8a55563b78fcd312a361979b5b0ef97658bbadb39aaef8fe01aeadbbdbf13063783df0263612dd681b916ddeb5697f58fa25c6d8a02dee5a74684276086e7de362b55259190cac2d191c5cafe6444cafc3fcebb97d401aee72cffd23f38fb5a2626f18691dc4fe75ec1baa513c7e0abecafdd9204aae7fd43e73b268cee84e21bca7333a60e44f9fc1b87c5dbef50f438be7522e8f28f1ce25dd28c6e6348052368ec2f41622bf03c7af660794e2b7eabec633e7797b7a12131f5377e2b061d2fd4cfd33a12681a7559b3ee82a6011d9464afdba7efd64d6fbe0a45879139a91762f8ffa325a4ebfc986793154268610f32ae6cccfcabf320524961c3b92b4af14449333e0e1acbba3ab87fcb3569ab2e8be139ca994bdbcfa3bb5aa29f08be8a593bbe046979f2f6e989350c5471844b951c9d9d2f1d95f31081e61680e835bf71abb6ef3a994146ca985b40805bc81efda5fd73b0b0831170b8eff09c0e0413ddd722b05971a8335c36dcecf1ad374089404c86f19d0af79d8957a3fcf3bcc6131fae765858f8f2681aff4c152c65493fd4f2790dcca8e0c59fd8d6908ef556d856725a4116b3073f84ced064fa2d7fb5260daf892f13261653822efdf37cf5dd91d67811487c322a1870c9f088aef597623b3c33cf82fb4df05e06e573459306108db63d625f6fab498e366aae6bb591cd9db8403209bd47f5286b3e66502976c71e55bb59ee3740392fc75c652ab3eb03c39eea25091c3175ecb31b253d2051dbf062bd9181f30517cc28ef3e2b7c27519bb347024e6e6f9be09e60c5454c90d494e40d97833fc431f6cd7024b639056cb219170e24be38b97df8870dba0f46acd3cd79ae6dd1033a89f8ed1fbab494aa45ad4962900ad7731fb8afd29f2e863436ad7f269dd3debc6f2750a25f680bc1e1d9296fd5c5364f03b5226430224ffa628c26a08feb616f6c03e31916560b3a9dcc650ec23cfe6efe670254ea522f8137b8de4336e7c786f7b27b8d1058307b515cffacc8bb69d17779a8caf3491733ef3795705d06e1ccc01bb5edeefe2a73282765713b9688cadb89dcf43590062121033c40bb14fbb52115ed05dda329db0a06d01c7178eaaf907e5a54772e9d6392f5f790b05ea94a0c81ce700cb2b12f5153abf8f8b0f2cd4f19a0b43ffe50ae78987459650e26122625c9a67b82251d5a20d3aff97c1f23cb2ee907e5796ae47c63a0256268ce459c12fb83572b1c6bd66e39135b1850102d5d9ee133c9e45ddf0c81d61c53b70f13bffce849595fbae79163ba871f13bda246a3a93e71a66580dc8cdee8063d56496c0bfb7a0bb1ef2f34e8f7c2fb4d247f8ede4530da98e207828ccdeaf0b44478f74d6a5f7adbeee98dd65df87c81e1aa3548921df264f3a07a476acc20b2501a12cdf630a17a72013b7222faa1e79b6e2a19391ca62072c3b32a82ecb7c709d40278ea5ec6445b8c9f998acad6e42f649f43ace62c3eaa72f532cc92185819dd64483f5a83f48d7ba55d5b20375ab45516b20cbba391ae0b14e11c5da3cff003f40d99a601ae060116d3630251a2712a7db5e1eb1053a1d1f638c1847d4a15aaebcad7eb80ebab19f018d7b8ca96bd78ff55df62e09893a9f4cd7a93db4eb1680a5e652969f0f461396a4bc529f54ade9df483c39ee8a5bb017f5a4ffb0f385893d482251c04f2fda2e9efd365948ab3832ff8c98e6a361c6af6b4b1cb69d0d0bc4e52f0466b14a4447b3f57622b405a31af51fd43106258721700b93e1659b8fb32e2287d39fb94da5f2f8fad48d11c836fd8aca666a5ff2fba066cf8173387db1bb22a35e3e4463149e2ebc0cbbc2350170e8314f86d75fcb2b324df885c685a21e77785ec2b25733d12d3d8d6be4a86bd28f69dc1c8fd6faa04d4255e4b36f01156ee6b404829fb9b4eae1a753e46846cd626635f5e7eaf7968bd807a3e67898128784b3e3e8713a14886373011543b05489dfcbc4eedf2cfb6eb6c1712a94240b22567e3d22b1755075e34efcec4b2c8a4b2eae0dc74f983aeaa46794e03fef6e0052f66913658fcabd7160385bb00a2b31f866a1121f2d413c9d30d350f946c03991449c3fb37f6d3ba96ff8482b913f7cd4d45299c52a365c482c99b8cae65a826dee2521aa61580b39e1ff7a417231f0bebbff0a60a00f1aecb3838eff91ae22d4e49249c615db7e93be72ec377a689dd8efc6e19e379e361139e381a837ab7185f1a0fd553cb45584852a182bb6190fb63ec6b0d1b4955c9466cbe9aa54d7a729e1cabd3cca2e3900535fa371ea630970278e4288287a4b2fc14938d822366f8714acc3b7f462fc88e9d6db08121e91d28154fb14dd94e1757c40b26456d9f5b83425a6f7c2ba5247340268873aa084eb31f43aeef14889b4e751fe4b03550ea3cc393e0d35661f965a91243783ac0c9cc39de3c1aa0a9007121b782ea49fa232f71a7fb6d45e76b7a017086b903421c6b74aaf4d0f870280278e73db9ced27b69bb2a2be0155d83dcdd98a2e2a017dd24f2b67e02cf4158cff5c877d8d3bcf769747dad0aedcb4cefd97dfc083308bb0bd208b8d215c5b2cb1464a55877762cf30e2691540459e4b15e328d4539fc7d4d379a8467069d2e2a060afa05cc004962ae95fad34bbda65d2713d96118c3fa69c2a811a881eb2bb15f9c3f3e0e20be3a2a820c318fb9046fe43585c6bec02b71da0a2c711eb453318d78886a0908929be6f6acef81f8628f0a6bd8d31b4cd99d42fb777854379c3e44c5f3baf7d682e4c96d86cffd15b28b5a8cfa7d777f7ebad0af4e475e853dd98cb623216853f56e3aa19da9761f20ba80de04858a6befcb2499e7e0fa8fd40ae13f3922a23afe14115cf1f8986de15133bdcf687ab65d5dea04d94c5e7e27ace5f94d81dd73a60bbce6178a8a2ad5e26b172b276270f8e5b84220b58faff5603cfedaf1fccc30308e895f1a513b917df4919563e667e2643b285a82fd45db294b990b71308310f753d181c06e942e95b11ffca3b3173d320662ea4c45d3c2bd36a4143693ed7e9ecdef68c4a996985c671079cbfb57788ac2a4f3ff9346fea92b0036d0cc35866c04b959ff188fcd5bee75a812d976aabeb5f8a72fe6e6765582da81a22bf6b9808cf74ba4c9230dcfa88e9fdef5b4d705828fa7c3959bb52ad8b84a491033ec1e6d7c15d1c3ce30cce37b930aa8ede27ab69ddd85de936278518782ade0d047b2b611470c462861377b0487e6e52053242541b16f044d87e7736424d611524a7cb04e4d01a9649758a53fd55341008f4fbd5b1887998ab1ab947a09b28b5ad725c812a5e0a70c82dbf0fdd93ec87016d93ce314227e1d130f2676a2b6a0ed0ab0f9d10ea7182af0dbb9b913d5ca7c342a2b69fef83f4009677d57be1c26d5c0dce7d5ce1e9c1e6ccda4d85d4f1140513d97bad21041e86c02e4a3d2fcc2a12dbb7123f27209ce3a6011579a4263f50706f68fd9cb4c53997f76cbf22e5c2765c9b5180a5d10452f30a539b2434318ad208ef4fa4dcea7ff87e23a82a99561e1d190233499fc8e4052c46826bb8b7cffc372096e89ee3b077e3a38db25a26aad2839387de50272b3331d26c3296df55a6b7d6aae542b757b72cfcefb75a10479bf221dcb6d0f9758ad34021b7f138113d4561058bae63087ec474e3ba0265f6da34d5a985f1344c02bba2e807f2cd550ea942a8c373a48c0e1229c26c68edbc7816444fe64161cd9574e979e8fbd5c3688567ffc72cffa3ec248f1f41dfc2c25537eae2d995d4e8cfd68358cd14ac2aab881001ff26745e4e4682d62947ede90f778aed0d4932331ebf4d9235249dbff262556fcb696f542b225a51f5ec1cc513a4dccd4de17d37f0462eece6d13ecc07d59466d998677b57b4b24cf1c2234b7db47a2e83975fdfdf9c8051c797c08b039d765ad796f2e6a443881fd9dc34a4fb5efed1eb1d0b0141a80207bef2598c3673f68fd2250e2fb12c427539d5e96646f32813e783393a60e662575cef67242c90e7f1011b4e95599aad8188d7b514c77f73e269a34a0441ed1b8140b07639549a43931ac310cc3563ef354d9bcb9876b7b44488499d8d400651097e86c1b91f93c547a5034a8e2c4fd98c89c43e42d8d62f5944eb2c92f6d572ddeb0b8ff3a3a0f8c0d438e860c241523b7d3396409b53640bcf42c74c6969312e60992f0a85c72d31f6632c865ab63a8ca96a5ba9ef86315e7a82b422a3f76ff5b2bbab2bad7be5131d9e3be5f9f0c37e472113e807e162e542d60ac5008dd5d75c97be905e98415b1949f5aac5f41fb2345ad1ed4494b53299c3a4bef76992b877c34deb1279b5153184931240eb0ac99208cf1cabba85c3d6cbb1486ad6c5a7865ba28148c0e928f2d050b0527c2aecd99be3b05bbea3013099b7865331fe4170b21d32ead74e7ac0674723c804fd3d7d637710a6fd818b924055a9291d94825ba019a7bac5798eaefa9015549f0069b57b09a78b79ad77075ef5fbd5f1004fe8a6f2b94153ffdd4d33fe15f4fbe45875dd5cd4adb2bf1ecc7825c186a39470266ee5015cd3dfe882211c928c8948a316fd6323bd0d8879e917bacc329b204008ffc5ea5111428c481716f4f3dee1952c8bacec7f332272b23ba5342c4aec105fbb093878dfeec1b40fdccd2c7503babc01f467d535219856e24d79d4e608e2a860a1145a3423328fc6a7e1edfc84da304d8551a5a79dd6654f9063464d35ecf1aa407e059ab7f4613576afd48cc386a4166656bd2bfe865351be80ea5ad1a8f46e46b3342c898c96524ef7f405ad2ec59aadf9b1233d01197140446e2da71347d35997fc93fa4e6341bb3627232d6e431de3309b894a6711caf0f3cd3c3ddaf454d3eb647be46d094d4b361681011718d4e6a51e7e036c8b256fb8826f316ff9d7fb10c0eeb4381048398f808d05013d29f667560db867a1b72d5c3e46f807d8ee69c68c22cf43f84b7acb6e61a7b45b37e80e29003761dda93f52f956be082b9b96910c66b7146e4d511cefbf186ee060d86ee99d12d3108ca6105ec4d3cee6db2c7d60b055bcb68c1e776ff73134969ac8da688d30734aac0ec7220c6042f245e4e5c34f0732206aa5912fcb88a375d0840f226231690aaaf824c300106d388d0269a3f56b0a469b0c552691c126e0199b9c72d6bee9dce3d2a158bca4ad60e81ac0272eb225a9f78976d75420bdd299096d2f9db16f89b0d2bb3d6f0a167a6d2be6ded3d6254da6787a30ca668bac88e2d48570224aced459b3df669dcdabedc41821a33bfa997eeec5d00b29bb9735ca6ac56e4d01a3b26e3087d8d62616ab028b95c78dacf607e7e8bdd710dc1707dbeb43c148f8c561d06ba56d5ee8f2a64a405e58cfad8437efe64c3a283f94865ed5f46c2811d57981a3787f8e2e661b9bc0c4ad1d39e8e4c6237857f4d47d774e6187abfd924fbfa6a0583d2f2b93edb9342c3079cfdb5afbbc69ec4e687b9cc50fa4af2d55c6d7359b0807cc220caef6b7dfb913839a9f04d5c9698a4c565543ef80fa9361b8cead3957bbff33cfa4ae5375013e26a615cbe373130c7066884112d15b902436348b64a0b4a87dcbd6d72bfe0ae7415f99de78a870c2537f8c77cb7bdc9f8853cf66dfe7ea7f350751239ce47047aad618fe95503f7ccfa8aa992b86a360720ac1e17ac93f2b697555258327f8e1af06f863c7848a604531261dc1bef19c058442eccea541dea36329717e79a412ec97070c9b199e01b8372f30c8182dd7330c254300e120a91b166ff0df920238f4031b43ffcb7c77075ad01b0e6391d5b0aad06df563b4600ae05118ec7b300237d5946fd4c443b14298eb4b554b1360531a52cde83595d0427ca067c34521cffb6dd042f8ddb002b3cd7fcf2972d833f3cb6af24ff8c3829e428b478f53c548f15abfd0900fad150dcac00cab43905284fe57f8ce32350f4ae437874b4c72a155383690542eb985dadd338c99a74c9cf7728b4958e8eea417cef7f9cf56b5a6dac7d2637d9f5b18de41368316807f39d0c86d436ec401e49b90e837b0847c8ed804656490b94b1220d19ad1c74a5f9b17fe004454fa7890dc8a607d0164c015765b19deb3e2095a4aa1b8ba7d7d4d781216d1d0a1cc3e20fa56f2c3fec942c35adf54d04fc6a92e055e8416ae857dceac3599fad23a0910e83c88dc47d43907cc8190e777420b6c093d78436b19c41b6a434f94a0c6ef5e968142fda70535396ebaffeee4ba7649f19ca432796c0ba33622db0286a9f462f99f0e9621121ebf54e6430314f35f3982d7b9d168966857fd7e76eaab293edd9e40c3d450550198ec9c9d269fcba5cc30b3f7c96aa456840e40162627d200f13b4af6fccf6a33f8987bb64d438146ce3b5036ea2174bd7afc29dd233b25ed0a92913cbccd490528432f8e8a1dcade195f037c03cb62bc354f6f97acb795e317179790c3b5b61ea93ddc24387e5d03e1d22fe7db528e377f5649e27e69ab09c224ac1db1a15d1c37ede0e78c72a84ef27d64e97e009081d72a4b879888b1c3b47a73eb0d1e3d5069ebf644c5a217463c0e33727141453f299b81a0ada761fcf14ea40912c00820c715a5475d5caa4a388ae01808cda5f9520a0d57a6a51aec32157f6f2943713700573800cc288884f0cf558248cccf40fac973cfcd7233a11f7ca13aec5c48f201a44f064dbcd784f2037e3fb25db7c00b8bf9fc8ce8832e4d0c7ae59bce7393e046d7835951b61816a91219d037768bbe7f4dec06cef799425d06d3091c963c7b8b2009b6b19cb821fa422bdefc84033089ed373a9c2f3baa581482d92aae04f82d393746980b04d36165df0cd9ba197c958526c1e8ff3067f70a7b7169e896218e8df485ccc5e88285d0e61ce2da42154c5f3ccd65e149a43359b942a9dd3e64da1e764f820cb9a5c7535a6b3fc9e3e1ddad61fd9efb9f3563e471808075ebd94c549745109dd5475e27cb4ca1cda0792c9dd9ef019689145a51b700810fd754c2eb31bfbba0411e932373692ced9c8c8f407614470d899fb1756282676bc9e4f065514aa76fa05ad600b98d9657c7e4999ff4b032573607f0590c0b15d475c3bc6a68192d674f50e2f0c35d98221719ba3979861aea69a0962a3899753f2ca03e93bce1815518ca4945dbecb85fc88ddf0081b4eb7b7003691cb1e7c6e62c215bd4b876f88ef76e1d08da602e1be6926990cda315d5559cd43e1f7a63f3b6186d6a2119ece23342a62d94f730d47ceb37bd198e18068d4bdeca3cec6c7473c29b18294326a2e60f7f0e572d3e517d3b9605976eccf4946c8b542c64a86c14bb0af45150d7ad9e3d809c27bca687822562e24d29acc2d5898990747aec7c6849609a039547509687092628b5ddabaf26af50d0463d81253b7e45b5ec08d7065c38f3d9098c99ab3dbe1c1d03b660236dd9071a37bbdc49af6ec5b29f20e94494fc8f1b2d9bb4729b1fdabf20b0696a55dd09eff092631685309987ddf72d3477e1eac8c9a2c64f6a0ce4121b1358bdb6a86bd340c1662cfad594dc0809fc87697ed8569d5323847b8172b01701ed6a0d18b291f4b10d0edab49ae99bae535ce93ab56e41ba86bf5181dc92143e7361fe961bd2f7dc80a96a5b57a20016524dfbbca5cc86d6f101860fe5636298094970bb43253e33013e0a9d219c89cdb07dea65080fa72b1089d6b4707d1adc9faf786aede59086298fcbd3696452eaa90975f7eead3689693eb21e9a26d95a9d0b0be52b9d556569cd7f0df3fe12f80294c7cf89128bb43f930b0d156c61ac759ab1cba2ab9be67a2fd74b1c60715153b65ce3fbf3c1081c75ed3821fd13f809b111b944621ceba8cfe3cc06ff880dd91a01536525e075de5939149be29fe7e3cc2adf43445305c10e1ab5958c045f3873be5fbd64143cc8a7b725646f40021792956c41196acf8bcdb84c33097c0bddcaef9b634353f5f6aba67c0ebe72e33eb1eaa26d358c8481ce59543e6283e3c35113e3fbda739f9647158339751567e44ab4c1756bce5d079fa3b6e4a92a6221941c83f4952b6cbef166e5905f5d09ff84589c8949159344d3e57def6efb05a4c4a77eca661c68241b3696a97cffed5a4d04325f024497f9f73f06910eadc1a182c852f6b546bf191c9af9e5abedbcf7e773a9f82c41c42ff37a7cb8a24ff03dcb3e8615e2c57523827003495396748f8da3378fe2d7540a6d6ae6231ab8ef149da7be328d2448c506af22cdbb49388e3e08e698656335d4e59f4c8861726bc6dc84a9c0c71d0e6a39ad86a8380abc951dc1e8ecdf31077426bf7dea75485caf06e8d2b519f13a8014a903b3d0310bef269e309284b4cd34acd4d4f0d8a6ad99abc67d06a519ed5a98b82295a45397a1152e68d78a460438806fdc2baa52eda7466020e43bbc97b3e1be60f9fada2091b5c3dc915d1087b0a6de9c25f9719a49ac57bb781ddd7807c7a89237c6d65e9a234d6434563a73cf6e522537ebb96b69e65cd25d63f07e66e8ec3bb808e68aaaca0556a243c4a6d986ca16089a777eab451358ff5bb65f9ad020450005a218b09f7ff4270af7347f9f90fbf0c039a5d54186581b52a4930ca7aae46a9088d32043a61655fb430ac6b1d047fac136ef2c8cc71334cc72f9bfdadd87cdddd98e726cabc52b14de15cc0d96e98aa83135f9d7caa397cdd5c5a3303eef951c8e23ff4ceb6d1a6d0d954a7fbb2a9fe7e83e2200fe7237635401afcaf9a2b67df7a1bbaa2acf9a5034bda135583f367eb7c9b96824d558d7d8b7de72d1f4bc4d754a50ccff5d1561fc1451dd3c939fbb47f97c8b393713fa7187e9b6a2e4c4ea2f6f51d47479891c282ed4446c2621355443e95687749d0c0831286bf376fded37d272467cb7c6a6fb66ef6d5487db8073a630c1034443ac6dace21519bf576a0e7bf9a468b62b8db87180944966b2bda89c59ccff1e66db6d449fc4463879410fc845b27eed2ce81dbcad5aa97977d93848f83ea0785d35b81f9f075b801dc8a77e59dcfb178f236c0db1a10840af599b515a63f29d5a2bd3dc2a123b43cb9186535f6443d405d5a63511664cea1abe39a8b52dde3be600783b825b82060d9709ee8f686569092899d0602882071dc0afe3b799a17db7e8f4e2b2a247339c8c8eaf79d77b9c8463fa5013d0fabe3fc6cae63f93e71ba01808e3cf3e2d828639a2037f2eb0bacb829079d660e547df19ac15328eacdf03e2f2589f5670cda23b9e6e2ce05303bc6c708bbf7bf7bc3dec78e04c5284c2e88137005a134d91b1cc9afbd9a607cfe4033e8a5f0587e7f2a6216d2fc3b728d341afcc12dc7911ae1a88871d93dde3cf59420bd8660d92c3e9bcc45a9161bfe15d6d744aedd48d07d0dc999a0cbe4195c0dac7192169b815eaa16646c5df072fba5bed9756b8734ca5a7701bcc036db5a44ef5b47909a74762a40097752c5345144b3b4f108fde6370482e135a40827e6b17ca32485ecf6d4c8ce67a6ce0e6056e4770d7e4ab055aebaebc0e2278c9ec0db802f844daccab7d431f71b682481ca69a37648edbc0346b5f7f7b1d76e52295a3f630c514acd9a41a61b662958816077f5b134f4f8bcb86f5fae7378b76ef00e226e7abbcda0b383e5ffa1e0759fd1fff61cbe23602b630829637d79d97c009f086dc1a75ce2da3a7660b4d95b60dfe620876f42ef8ef687d631bf43ec94da2c7d09a573c9315b9a1a2e3a6c8d804e6f85e27d40700ca8a7aa4b3646949ae7883b9f15808e2ecd2c3c35c681f7c3ba82369f56ea2afbee80af648bb929c9a513674dc7764ebbc667163fe24961807c6f61241e14f9110d5c261eb0274fc1333bfe9bae3d2652df3138c5363a5ba9bcab3766ed345662681e903cc313622fd1c8c756704afbfb5fb6b936ccf0be261949b891016f0a579ba3b14f14a077238d6c5eddec1e1e64c098b6ae9462699f87f34f08ed5aaf2ba4c327383fa2426473c012d1e19394e86e3312f71ade563a93dc3ca6cf20f185adbb11f384a164bb5e5118df6ef725c9677c66714e2fb5467b7bd6c97da777c7afa12e9a721efbfa963e431fb32d9a1f14a98eb87c6bcc7503119dd705bf6c52080229b4e2a025f87675cd290beda2b770c35065dc69882bb5bf17233c7afc199b1b2836449d9bee26d70cc205f8075542d95dfe07dffb8664e470185bf43033fa5eb5b9d313dded82be20a4ddece8c420b8bad7ecd8af4a5529479027dc74bf39059787703a01217e0d673ddeb9973f171eb7be2ba5eee8879ec6bf9d2bf4386c0a70deebf03500c6f99c54f0804cd641446613d88c8c86dc50c79f2f89ef43ff260d3574f08cf395b4fa61604abda9540d6884626dd27e75c30288674d160aa4f55ab9fd01b150c02cf4bbc351982e969973226b8d7987764b59a0c61a7aaa7877cff1851de7d646c726c3db639fc247cb5dd7cc0c0ffe214573f897673a350268acf70766f6069dc8bee2a5b49a419965c74959864d45c70ca6550c0df2335cf8cfd2e5fcd70dcd4929cbb2607acc455a4e5947ae3c43fd42a225b0856091292af034844e2a2bab260cf478ab6c05690c15e7f6c4670ab97c65a2a3ee234c16354a3480f81e699940043454d28b433ab0e23c3b6290871022761ababeca51e0ca916c6a884a84558bc9c9cefecf191d3c5f5626c812ae3d0fc47dbdf1db51dc86c9610555271cf8c6b3a648cc365932b682b275d768fd4fe0dbb7dd174fa0793aea8e4be6944ac4d37fa01effb693316b7118e2e1dee26175aef5b7e63a36c9fb5b2ec8b6236826298388fe8632e84a888faa8ea496c71bbb2a30e6710bcfd854bc4c4fe777972fb7e86386bced7f4b9f82b6412122c7f66fed31f5cd6158cfaa72a56ec422bfaea17185f36e4f563f651cf223ded63992f2f00aaf0948faf25840e1ada99762fd80988d9d9efd8ae07befa55e39002c02d5f7cc89808b3e8217c7573cbf541511291b25a803a90c93df77cad8691767d542c3930deb36bf497a84c45a08a0b2284f2693d6de6528f75a0346d36aa2d7e0a1cc1735095385f0eec943cf891a60ef6343ab82122ec60661510f559ca16ba3dcd3c550d2b2fede20dce0d85d5c6568eb5db372e9613956414cd335c5306cc56eaa79121bed7e05a1eebaebe95511930ec39986c7987940b30ea096f4942e59e1511ee2ecdada552b689111a2a6906eb75929dc3611a202ac047210fc0a02a5690c9464e2937bf1c73873b8ea1d9fcf29bd69151924ca307cd36b72418c0690208a485e6e10cf4308eaadc38dbb44590ea5b7b87f5428f3fda3a464fb7258b92a3466c6e4f03fb0c9bcf7adf2189840c2acdbecd0e0ee606f70e64f9016f064bf3b9e3566064a42c572a3fa3d6a3aba985c0ee83de34e04b5dc3c80a1162e4240e20d4e5607be3ffa02b3b5b79caeb363b8565aa655fad5e282393da6e17008b3d219bc99896bde6d226cf992ac99ee068230ebb6557214fb0ff1315da80caccf94857709a7be1891a59248795d3afcfe93d1918b581b9afdc65be2e4d9196c113ecc00ffa7012ad4aa165da881f6b4e713d171f672c2d6417f81c74f9bb43a3a266670e48222adb362d9e6e7f82e7cd5c4a800973e25df31c1c2b3845c302bedbcb272184c61803c8caf46979c41075be45fe1776da732b425ead9548d150b5313ded11af749d48fd8b9bef702ce5f834b07a17f836e554047f43ad47f27ffb27352862d489eef9232a72e44d207fb66474162eb7215f52144baa479bbe42ba030c2645eed33965d08e22143a797be04d65b4c665c2c295be3c6ee9531f43c21da7d7f75d43e611549b972dccdded9c313701d7a3c8af6ee74de4b1d52086604c544599977ed76ac5a6f258bd4fa1449d78604759bcd7eae357b9d8f2d238c0b32dddf724ada9721395b66d12786728fa7e179a536b0ffac8d8385c36d0e200943747c7613ad7b658efb74308a74143b5c1da7d99dc0ddddde8398cea7d4ea24bb21a15518e0fc1bef1cb68cf377c525197f914016d5f46e8156c79f50929d921c056d4bd7aa4199ed8ef1a612a619344a8e55c537e62b72901826680579d60c1079d71e07cb0e2f16042d42b1c0408731ac8a73fddf68104a5a7a19a091e2e2976e56106b2d4dde69cdb6fd9ccdd3e68f3963a04101e2bb74fa964b7a64822f55a3a8e978b8c4c814547f83cf25f5fdb61c0f009ff781ef812827861c26ebfdd1e333604f4bbf0303192ed593543b56190371e1bee0ba16b855140c67f340fc9e73586b0f142a159178f7d2021d6ac0619f47af16db801379eb6a97b65f35e7cbc92a97a171590802e5804c39235d6b7f377a21c47077e7d7700a721a7dfce1e41664bb457cba8a53f75928a5d5ba4452193a5ae9345frootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootdpdk22-22.11.10-150500.5.10.1.src.rpmdpdk22-examplesdpdk22-examples(ppc-64)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    /bin/bash/usr/bin/python3libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.28)(64bit)libcrypto.so.1.1()(64bit)libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)libdl.so.2()(64bit)libfdt.so.1()(64bit)libjansson.so.4()(64bit)libjansson.so.4(libjansson.so.4)(64bit)libm.so.6()(64bit)libnuma.so.1()(64bit)libpcap.so.1()(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.17)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.17)(64bit)librte_acl.so.23()(64bit)librte_acl.so.23(DPDK_23)(64bit)librte_bbdev.so.23()(64bit)librte_bbdev.so.23(DPDK_23)(64bit)librte_bus_pci.so.23()(64bit)librte_bus_vdev.so.23()(64bit)librte_cfgfile.so.23()(64bit)librte_cfgfile.so.23(DPDK_23)(64bit)librte_cmdline.so.23()(64bit)librte_cmdline.so.23(DPDK_23)(64bit)librte_crypto_scheduler.so.23()(64bit)librte_crypto_scheduler.so.23(DPDK_23)(64bit)librte_cryptodev.so.23()(64bit)librte_cryptodev.so.23(DPDK_23)(64bit)librte_cryptodev.so.23(EXPERIMENTAL)(64bit)librte_distributor.so.23()(64bit)librte_distributor.so.23(DPDK_23)(64bit)librte_dmadev.so.23()(64bit)librte_dmadev.so.23(EXPERIMENTAL)(64bit)librte_dmadev.so.23(INTERNAL)(64bit)librte_eal.so.23()(64bit)librte_eal.so.23(DPDK_23)(64bit)librte_eal.so.23(EXPERIMENTAL)(64bit)librte_efd.so.23()(64bit)librte_efd.so.23(DPDK_23)(64bit)librte_ethdev.so.23()(64bit)librte_ethdev.so.23(DPDK_23)(64bit)librte_ethdev.so.23(EXPERIMENTAL)(64bit)librte_eventdev.so.23()(64bit)librte_eventdev.so.23(DPDK_23)(64bit)librte_eventdev.so.23(EXPERIMENTAL)(64bit)librte_fib.so.23()(64bit)librte_fib.so.23(DPDK_23)(64bit)librte_graph.so.23()(64bit)librte_graph.so.23(EXPERIMENTAL)(64bit)librte_hash.so.23()(64bit)librte_hash.so.23(DPDK_23)(64bit)librte_ip_frag.so.23()(64bit)librte_ip_frag.so.23(DPDK_23)(64bit)librte_ipsec.so.23()(64bit)librte_ipsec.so.23(DPDK_23)(64bit)librte_ipsec.so.23(EXPERIMENTAL)(64bit)librte_jobstats.so.23()(64bit)librte_jobstats.so.23(DPDK_23)(64bit)librte_kvargs.so.23()(64bit)librte_lpm.so.23()(64bit)librte_lpm.so.23(DPDK_23)(64bit)librte_mbuf.so.23()(64bit)librte_mbuf.so.23(DPDK_23)(64bit)librte_mempool.so.23()(64bit)librte_mempool.so.23(DPDK_23)(64bit)librte_meter.so.23()(64bit)librte_meter.so.23(DPDK_23)(64bit)librte_metrics.so.23()(64bit)librte_metrics.so.23(DPDK_23)(64bit)librte_net.so.23()(64bit)librte_net.so.23(DPDK_23)(64bit)librte_net_bnxt.so.23()(64bit)librte_net_bnxt.so.23(DPDK_23)(64bit)librte_net_bond.so.23()(64bit)librte_net_bond.so.23(DPDK_23)(64bit)librte_net_i40e.so.23()(64bit)librte_net_i40e.so.23(DPDK_23)(64bit)librte_net_ixgbe.so.23()(64bit)librte_net_ixgbe.so.23(DPDK_23)(64bit)librte_node.so.23()(64bit)librte_node.so.23(EXPERIMENTAL)(64bit)librte_pci.so.23()(64bit)librte_pipeline.so.23()(64bit)librte_pipeline.so.23(DPDK_23)(64bit)librte_pipeline.so.23(EXPERIMENTAL)(64bit)librte_port.so.23()(64bit)librte_port.so.23(DPDK_23)(64bit)librte_power.so.23()(64bit)librte_power.so.23(DPDK_23)(64bit)librte_power.so.23(EXPERIMENTAL)(64bit)librte_raw_ntb.so.23()(64bit)librte_rawdev.so.23()(64bit)librte_rawdev.so.23(DPDK_23)(64bit)librte_rcu.so.23()(64bit)librte_reorder.so.23()(64bit)librte_reorder.so.23(DPDK_23)(64bit)librte_reorder.so.23(EXPERIMENTAL)(64bit)librte_rib.so.23()(64bit)librte_ring.so.23()(64bit)librte_ring.so.23(DPDK_23)(64bit)librte_sched.so.23()(64bit)librte_sched.so.23(DPDK_23)(64bit)librte_security.so.23()(64bit)librte_security.so.23(DPDK_23)(64bit)librte_security.so.23(EXPERIMENTAL)(64bit)librte_table.so.23()(64bit)librte_table.so.23(DPDK_23)(64bit)librte_telemetry.so.23()(64bit)librte_telemetry.so.23(DPDK_23)(64bit)librte_timer.so.23()(64bit)librte_timer.so.23(DPDK_23)(64bit)librte_vhost.so.23()(64bit)librte_vhost.so.23(DPDK_23)(64bit)librte_vhost.so.23(EXPERIMENTAL)(64bit)libssl.so.1.1()(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(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-1dpdk-examples4.14.3i@fM@dJcd3@d dxccwsc5c47@bK@bja?=@a;H`]`f@`_s!_i@_2@^@^l@^\@]@]@]\@\Y@\o@\I[Ѱ@[[['ZZ@ZZZH@Z\ZTZ@X6@W= 5.9. Also see here: http://inbox.dpdk.org/users/CAJFAV8w8ozEkdSKdBHEHXJDxpChorGa1jUsNEcPMptG30bWykw@mail.gmail.com/T- Add patches to fix vulnerability where malicious guest can harm the host using vhost crypto, this includes executing code in host (VM Escape), reading host application memory space to guest and causing partially denial of service in the host (bsc#1176590). * 0001-vhost-crypto-fix-pool-allocation.patch * 0002-vhost-crypto-fix-incorrect-descriptor-deduction.patch * 0003-vhost-crypto-fix-missed-request-check-for-copy-mode.patch * 0004-vhost-crypto-fix-incorrect-write-back-source.patch * 0005-vhost-crypto-fix-data-length-check.patch * 0006-vhost-crypto-fix-possible-TOCTOU-attack.patch- Update to 19.11.4. For a list of fixes check: https://doc.dpdk.org/guides-19.11/rel_notes/release_19_11.html#id8 - Add patch to resolve build error reported in Staging:E project where a kernel backport (jsc#SLE-13536) introduced backward incompatible changes to the API that break kni module build * 0001-SLE15-SP3-compatibility-patch-for-kni.patch- update to v19.11.3: app/crypto-perf: fix display of sample test vector app/eventdev: check Tx adapter service ID app: fix usage help of options separated by dashes app/pipeline: fix build with gcc 10 app: remove extra new line after link duplex app/testpmd: add parsing for QinQ VLAN headers app/testpmd: fix DCB set app/testpmd: fix memory failure handling for i40e DDP app/testpmd: fix PPPoE flow command app/testpmd: fix statistics after reset baseband/turbo_sw: fix exposed LLR decimals assumption bbdev: fix doxygen comments build: disable gcc 10 zero-length-bounds warning build: fix linker warnings with clang on Windows build: support MinGW-w64 with Meson buildtools: get static mlx dependencies for meson bus/fslmc: fix dereferencing null pointer bus/fslmc: fix size of qman fq descriptor bus/pci: fix devargs on probing again bus/pci: fix UIO resource access from secondary process bus/vmbus: fix comment spelling ci: fix telemetry dependency in Travis common/iavf: update copyright common/mlx5: fix build with -fno-common common/mlx5: fix build with rdma-core 21 common/mlx5: fix netlink buffer allocation from stack common/mlx5: fix umem buffer alignment common/octeontx: fix gcc 9.1 ABI break common/qat: fix GEN3 marketing name contigmem: cleanup properly when load fails crypto/caam_jr: fix check of file descriptors crypto/caam_jr: fix IRQ functions return type crypto/ccp: fix fd leak on probe failure cryptodev: add asymmetric session-less feature name cryptodev: fix missing device id range checking cryptodev: fix SHA-1 digest enum comment crypto/kasumi: fix extern declaration crypto/nitrox: fix CSR register address generation crypto/nitrox: fix oversized device name crypto/octeontx2: fix build with gcc 10 crypto/openssl: fix out-of-place encryption crypto/qat: fix cipher descriptor for ZUC and SNOW crypto/qat: support plain SHA1..SHA512 hashes devtools: fix symbol map change check doc: add i40e limitation for flow director doc: add NASM installation steps doc: fix API index doc: fix build issue in ABI guide doc: fix build with doxygen 1.8.18 doc: fix default symbol binding in ABI guide doc: fix log level example in Linux guide doc: fix LTO config option doc: fix matrix CSS for recent sphinx doc: fix multicast filter feature announcement doc: fix number of failsafe sub-devices doc: fix reference in ABI guide doc: fix sphinx compatibility doc: fix typo in contributors guide doc: fix typo in contributors guide doc: fix typos in ABI policy doc: prefer https when pointing to dpdk.org drivers: add crypto as dependency for event drivers drivers/crypto: disable gcc 10 no-common errors drivers/crypto: fix build with make 4.3 drivers/crypto: fix log type variables for -fno-common drivers: fix log type variables for -fno-common eal/arm64: fix precise TSC eal: fix C++17 compilation eal: fix comments spelling eal: fix log message print for regex eal: fix PRNG init with HPET enabled eal: fix typo in endian conversion macros eal/freebsd: fix queuing duplicate alarm callbacks eal/ppc: fix bool type after altivec include eal/ppc: fix build with gcc 9.3 eal/x86: ignore gcc 10 stringop-overflow warnings ethdev: fix build when vtune profiling is on ethdev: fix spelling eventdev: fix probe and remove for secondary process event/dsw: avoid reusing previously recorded events event/dsw: fix enqueue burst return value event/dsw: remove redundant control ring poll event/dsw: remove unnecessary read barrier event/octeontx2: fix build for O1 optimization event/octeontx2: fix queue removal from Rx adapter examples/eventdev: fix build with gcc 10 examples/eventdev: fix crash on exit examples/fips_validation: fix parsing of algorithms examples/ip_pipeline: remove check of null response examples/ipsec-gw: fix gcc 10 maybe-uninitialized warning examples/kni: fix crash during MTU set examples/kni: fix MTU change to setup Tx queue examples/l2fwd-keepalive: fix mbuf pool size examples/qos_sched: fix build with gcc 10 examples: remove extra new line after link duplex examples/vhost_blk: fix build with gcc 10 examples/vmdq: fix output of pools/queues examples/vmdq: fix RSS configuration examples/vm_power: drop Unix path limit redefinition examples/vm_power: fix build with -fno-common fib: fix headers for C++ support fix same typo in multiple places fix various typos found by Lintian ipsec: check SAD lookup error ipsec: fix build dependency on hash lib kvargs: fix buffer overflow when parsing list kvargs: fix invalid token parsing on FreeBSD kvargs: fix strcmp helper documentation log: fix level picked with globbing on type register lpm6: fix comments spelling lpm6: fix size of tbl8 group mem: fix overflow on allocation mem: mark pages as not accessed when freeing memory mem: mark pages as not accessed when reserving VA mempool/dpaa2: install missing header with meson mempool/octeontx2: fix build for gcc O1 optimization mempool: remove inline functions from export list mem: preallocate VA space in no-huge mode mk: fix static linkage of mlx dependency net/avp: fix gcc 10 maybe-uninitialized warning net/bnxt: do not use PMD log type net/bnxt: fix error log for command timeout net/bnxt: fix FW version query net/bnxt: fix HWRM command during FW reset net/bnxt: fix max ring count net/bnxt: fix memory leak during queue restart net/bnxt: fix number of TQM ring net/bnxt: fix port start failure handling net/bnxt: fix possible stack smashing net/bnxt: fix Rx ring producer index net/bnxt: fix storing MAC address twice net/bnxt: fix TQM ring context memory size net/bnxt: fix using RSS config struct net/bnxt: fix VLAN add when port is stopped net/bnxt: fix VNIC Rx queue count on VNIC free net/bnxt: use true/false for bool types net/dpaa2: fix 10G port negotiation net/dpaa2: fix congestion ID for multiple traffic classes net/dpaa: use dynamic log type net/e1000: fix port hotplug for multi-process net/ena/base: fix documentation of functions net/ena/base: fix indentation in CQ polling net/ena/base: fix indentation of multiple defines net/ena/base: fix testing for supported hash function net/ena/base: make allocation macros thread-safe net/ena/base: prevent allocation of zero sized memory net/ena: fix build for O1 optimization net/ena: set IO ring size to valid value net/enetc: fix Rx lock-up net/enic: fix flow action reordering net/failsafe: fix fd leak net/hinic: allocate IO memory with socket id net/hinic/base: fix PF firmware hot-active problem net/hinic/base: fix port start during FW hot update net/hinic: fix LRO net/hinic: fix queues resource free net/hinic: fix repeating cable log and length check net/hinic: fix snprintf length of cable info net/hinic: fix TSO net/hinic: fix Tx mbuf length while copying net/hns3: add free threshold in Rx net/hns3: add RSS hash offload to capabilities net/hns3: clear residual flow rules on init net/hns3: fix configuring illegal VLAN PVID net/hns3: fix configuring RSS hash when rules are flushed net/hns3: fix crash when flushing RSS flow rules with FLR net/hns3: fix default error code of command interface net/hns3: fix default VLAN filter configuration for PF net/hns3: fix mailbox opcode data type net/hns3: fix MSI-X interrupt during initialization net/hns3: fix packets offload features flags in Rx net/hns3: fix promiscuous mode for PF net/hns3: fix return value of setting VLAN offload net/hns3: fix return value when clearing statistics net/hns3: fix RSS indirection table configuration net/hns3: fix RSS key length net/hns3: fix Rx interrupt after reset net/hns3: fix status after repeated resets net/hns3: fix Tx interrupt when enabling Rx interrupt net/hns3: fix VLAN filter when setting promisucous mode net/hns3: fix VLAN PVID when configuring device net/hns3: reduce judgements of free Tx ring space net/hns3: remove one IO barrier in Rx net/hns3: remove unnecessary assignments in Tx net/hns3: replace memory barrier with data dependency order net/hns3: support different numbers of Rx and Tx queues net/hns3: support Rx interrupt net/i40e/base: update copyright net/i40e: fix flow director enabling net/i40e: fix flow director for ARP packets net/i40e: fix flow director initialisation net/i40e: fix flush of flow director filter net/i40e: fix queue region in RSS flow net/i40e: fix queue related exception handling net/i40e: fix setting L2TAG net/i40e: fix wild pointer net/i40e: fix X722 performance net/i40e: relax barrier in Tx net/i40e: relax barrier in Tx for NEON net/iavf: fix link speed net/iavf: fix setting L2TAG net/iavf: fix stats query error code net/ice: add action number check for switch net/ice/base: check memory pointer before copying net/ice/base: fix binary order for GTPU filter net/ice/base: fix MAC write command net/ice/base: fix uninitialized stack variables net/ice/base: minor fixes net/ice/base: read PSM clock frequency from register net/ice/base: remove unused code in switch rule net/ice/base: update copyright net/ice: change default tunnel type net/ice: fix crash in switch filter net/ice: fix hash flow crash net/ice: fix input set of VLAN item net/ice: fix RSS advanced rule net/ice: fix RSS for GTPU net/ice: fix setting L2TAG net/ice: fix variable initialization net/ice: remove bulk alloc option net/ice: remove unnecessary variable net/ice: support mark only action for flow director net/ipn3ke: use control thread to check link status net/ixgbe/base: update copyright net/ixgbe: check driver type in MACsec API net/ixgbe: fix link state timing on fiber ports net/ixgbe: fix link status after port reset net/ixgbe: fix link status inconsistencies net/ixgbe: fix link status synchronization on BSD net/ixgbe: fix resource leak after thread exits normally net/ixgbe: fix statistics in flow control mode net/memif: fix init when already connected net/memif: fix resource leak net/mlx4: fix build with -fno-common net/mlx4: fix drop queue error handling net/mlx5: add device parameter for MPRQ stride size net/mlx5: add multi-segment packets in MPRQ mode net/mlx5: enable MPRQ multi-stride operations net/mlx5: fix actions validation on root table net/mlx5: fix assert in doorbell lookup net/mlx5: fix assert in dynamic metadata handling net/mlx5: fix assert in modify converting net/mlx5: fix build with separate glue lib for dlopen net/mlx5: fix call to modify action without init item net/mlx5: fix counter container usage net/mlx5: fix crash when releasing meter table net/mlx5: fix CVLAN tag set in IP item translation net/mlx5: fix doorbell bitmap management offsets net/mlx5: fix gcc 10 enum-conversion warning net/mlx5: fix header modify action validation net/mlx5: fix imissed counter overflow net/mlx5: fix jump table leak net/mlx5: fix mask used for IPv6 item validation net/mlx5: fix matching for UDP tunnels with Verbs net/mlx5: fix match on empty VLAN item in DV mode net/mlx5: fix metadata for compressed Rx CQEs net/mlx5: fix meter color register consideration net/mlx5: fix meter suffix table leak net/mlx5: fix packet length assert in MPRQ net/mlx5: fix push VLAN action to use item info net/mlx5: fix RSS enablement net/mlx5: fix RSS key copy to TIR context net/mlx5: fix Tx queue release debug log timing net/mlx5: fix validation of push VLAN without full mask net/mlx5: fix validation of VXLAN/VXLAN-GPE specs net/mlx5: fix VLAN flow action with wildcard VLAN item net/mlx5: fix VLAN ID check net/mlx5: fix VLAN PCP item calculation net/mlx5: fix zero metadata action net/mlx5: fix zero value validation for metadata net/mlx5: improve logging of MPRQ selection net/mlx5: reduce Tx completion index memory loads net/mlx5: set dynamic flow metadata in Rx queues net/mlx5: update VLAN and encap actions validation net/mlx5: use open/read/close for ib stats query net/mvneta: do not use PMD log type net/mvpp2: fix build with gcc 10 net/netvsc: avoid possible live lock net/netvsc: do not configure RSS if disabled net/netvsc: do RSS across Rx queue only net/netvsc: fix comment spelling net/netvsc: fix memory free on device close net/netvsc: handle Rx packets during multi-channel setup net/netvsc: handle Tx completions based on burst size net/netvsc: propagate descriptor limits from VF net/netvsc: remove process event optimization net/netvsc: split send buffers from Tx descriptors net/nfp: fix dangling pointer on probe failure net/nfp: fix log format specifiers net/null: fix secondary burst function selection net/null: remove redundant check net/octeontx2: disable unnecessary error interrupts net/octeontx2: enable error and RAS interrupt in configure net/octeontx2: fix buffer size assignment net/octeontx2: fix device configuration sequence net/octeontx2: fix link information for loopback port net/octeontx: fix dangling pointer on init failure net/octeontx: fix meson build for disabled drivers net/pfe: do not use PMD log type net/pfe: fix double free of MAC address net/qede: fix link state configuration net/qede: fix port reconfiguration net/ring: fix device pointer on allocation net/sfc/base: fix build when EVB is enabled net/sfc/base: fix manual filter delete in EF10 net/sfc/base: handle manual and auto filter clashes in EF10 net/sfc/base: reduce filter priorities to implemented only net/sfc/base: refactor filter lookup loop in EF10 net/sfc/base: reject automatic filter creation by users net/sfc/base: use simpler EF10 family conditional check net/sfc/base: use simpler EF10 family run-time checks net/sfc: fix initialization error path net/sfc: fix promiscuous and allmulticast toggles errors net/sfc: fix reported promiscuous/multicast mode net/sfc: fix Rx queue start failure path net/sfc: set priority of created filters to manual net/softnic: fix memory leak for thread net/softnic: fix resource leak for pipeline net/tap: do not use PMD log type net/tap: fix check for mbuf number of segment net/tap: fix crash in flow destroy net/tap: fix fd leak on creation failure net/tap: fix file close on remove net/tap: fix mbuf and mem leak during queue release net/tap: fix mbuf double free when writev fails net/tap: fix queues fd check before close net/tap: fix unexpected link handler net/tap: remove unused assert net/thunderx: use dynamic log type net/vhost: fix potential memory leak on close net/virtio: do not use PMD log type net/virtio: fix crash when device reconnecting net/virtio: fix outdated comment net/virtio: fix unexpected event after reconnect net/virtio-user: fix devargs parsing net/vmxnet3: fix RSS setting on v4 net/vmxnet3: handle bad host framing pci: accept 32-bit domain numbers pci: fix build on FreeBSD pci: fix build on ppc pci: reject negative values in PCI id pci: remove unneeded includes in public header file remove references to private PCI probe function Revert “common/qat: fix GEN3 marketing name” Revert “net/bnxt: fix number of TQM ring” Revert “net/bnxt: fix TQM ring context memory size” security: fix crash at accessing non-implemented ops security: fix return types in documentation security: fix session counter security: fix verification of parameters service: fix crash on exit service: fix identification of service running on other lcore service: fix race condition for MT unsafe service service: remove rte prefix from static functions telemetry: fix port stats retrieval test/crypto: fix flag check test/crypto: fix statistics case test: fix build with gcc 10 test/flow_classify: enable multi-sockets system test/ipsec: fix crash in session destroy test/kvargs: fix invalid cases check test/kvargs: fix to consider empty elements as valid test: load drivers when required test: remove redundant macro test: skip some subtests in no-huge mode timer: protect initialization with lock usertools: check for pci.ids in /usr/share/misc vfio: fix race condition with sysfs vfio: fix use after free with multiprocess vhost/crypto: add missing user protocol flag vhost: fix packed ring zero-copy vhost: fix peer close check vhost: fix shadowed descriptors not flushed vhost: fix shadow update vhost: fix zero-copy server mode vhost: handle mbuf allocation failure vhost: make IOTLB cache name unique among processes vhost: prevent zero-copy with incompatible client mode vhost: remove unused variable - remove the security backport patches as they're already included upstream: * 0001-vhost-check-log-mmap-offset-and-size-overflow.patch * 0002-vhost-fix-vring-index-check.patch * 0003-vhost-crypto-validate-keys-lengths.patch * 0004-vhost-fix-translated-address-not-checked.patch * 0005-vhost-fix-potential-memory-space-leak.patch * 0006-vhost-fix-potential-fd-leak.patch- Add patches to fix vulnerability where malicious guest/container can cause resource leak resulting a Denial-of-Service, or memory corruption and crash, or information leak in vhost-user backend application (bsc#1171477, CVE-2020-10722, CVE-2020-10723, CVE-2020-10724, CVE-2020-10725, CVE-2020-10726). * 0001-vhost-check-log-mmap-offset-and-size-overflow.patch * 0002-vhost-fix-vring-index-check.patch * 0003-vhost-crypto-validate-keys-lengths.patch * 0004-vhost-fix-translated-address-not-checked.patch * 0005-vhost-fix-potential-memory-space-leak.patch * 0006-vhost-fix-potential-fd-leak.patch- Update to v19.11.1. For a list of changes, check: * https://doc.dpdk.org/guides/rel_notes/release_19_11.html#new-features - Removed patches no longer applying to the code base: * 0001-vhost-fix-possible-denial-of-service-on-SET_VRING_NU.patch * 0002-vhost-fix-possible-denial-of-service-by-leaking-FDs.patch * 0002-fix-cpu-compatibility.patch - Rebased patches: * 0001-fix-cpu-compatibility.patch- Change constraint to ssse3 to fix build issues on x86_64 and i586- Add version to the PMD driver directory to avoid loading previous version drivers (bsc#1157179). - Update to 18.11.3 (bsc#1156146). For a list of fixes check: * https://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html#fixes - Add patches to fix vulnerability where malicious container can trigger a denial of service (CVE-2019-14818, bsc#1156146) * 0001-vhost-fix-possible-denial-of-service-on-SET_VRING_NU.patch * 0002-vhost-fix-possible-denial-of-service-by-leaking-FDs.patch - Removed patrches already included upstream: * dpdk-fix-implicit-fallthrough-warning.patch- Changed to multibuild (bsc#1151455). - Added dpdk-fix-implicit-fallthrough-warning.patch to address build error with recent kernels (bsc#1144704).- Minor Update to 18.11.2 * List of fixes can be found in https://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html#fixes- Add missing libmnl-devel- remove -Wno-error=array-bounds as its no longer needed - disable i586 build because lack of sse support- Add 0002-fix-cpu-compatibility.patch to address issue with older CPUs (bsc#1125961, bsc#1099474) [+ 0002-fix-cpu-compatibility.patch]- Update to 18.11; some of the changes are(fate#325916, fate#325951 fate#326025, fate#326992, bsc#1134968, jira#SLE-4715) : * Added support for using externally allocated memory in DPDK. * Added check for ensuring allocated memory is addressable by devices. * Updated the C11 memory model version of the ring library. * Added NXP CAAM JR PMD. * Added support for GEN3 devices to Intel QAT driver. * Added Distributed Software Eventdev PMD. * Updated KNI kernel module, rte_kni library, and KNI sample application. * Add a new sample application for vDPA. * Updated mlx5 driver. * * Improved security of PMD to prevent the NIC from getting stuck when the application misbehaves. * * Reworked flow engine to supported e-switch flow rules (transfer attribute). * * Added support for header re-write(L2-L4), VXLAN encap/decap, count, match on TCP flags and multiple flow groups with e-switch flow rules. * * Added support for match on metadata, VXLAN and MPLS encap/decap with flow rules. * * Added support for RTE_ETH_DEV_CLOSE_REMOVE flag to provide better support for representors. * * Added support for meson build. * * Fixed build issue with PPC. * * Added support for BlueField VF. * * Added support for externally allocated static memory for DMA. all the changes can be viwed in http://doc.dpdk.org/guides/rel_notes/release_18_11.html [- 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch]- Enable missed MLX PMDs for SLE12SP4 (bsc#1112307)- Fixed a problem with ABI compatibility; API/ABI compatibility is guaranteed by DPDK upstream community across subsequent bug-fix releases. However, the .spec file broke it by defining the wrong version which included also the bug-fix release number. - Fixed a naming issue with library: did not reflect soname- Fixed a syntax error affecting csh environment configuration(bsc#1102310)- Update to 18.02.2; some of the changes are: * 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 mlx4/mlx5 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 New eventdev Ordered Packet Distribution Library (OPDL) PMD * Added GRO support for VxLAN-tunneled packets - Removed 0002-dpdk-eal-ppc-rte_smp_mb.patch since incorporated upstream- Update to 18.02.1 - Restrict untrusted guest to misuse virtio to corrupt host application(ovs-dpdk) memory which can lead all VM to lose connectivity(CVE-2018-1059,bsc#1089638). Changes: * Add deprecation notice for rte_vhost_gpa_to_vva() * Patch vhost-net and vhost-scsi examples * Fixes checkpatch warnings * Take VIRTIO_RING_F_EVENT_IDX into account when ring size (Tiwei) * Fix next chuncks translation access rights in Rx paths (Tiwei) * vhost: fix indirect descriptors table translation size * vhost: check all range is mapped when translating GPAs * vhost: introduce safe API for GPA translation * vhost: ensure all range is mapped when translating QVAs * vhost: add support for non-contiguous indirect descs tables * vhost: handle virtually non-contiguous buffers in Tx * vhost: handle virtually non-contiguous buffers in Rx * vhost: handle virtually non-contiguous buffers in Rx-mrg * examples/vhost: move to safe GPA translation API * examples/vhost_scsi: move to safe GPA translation API * vhost/crypto: move to safe GPA translation API * vhost: deprecate unsafe GPA translation API- Enable MLX4/5 PMD only in Factory and >= 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:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~22.11.10-150500.5.10.122.11.10-150500.5.10.1       !! ""##$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&''(())(******(+',,,,'----'..//001111112222222222222222222222222222222222221111133444445555555555555566778879999997:;;<<==>>>????@@@@@@AABBBBBBCCCCCCBBBBBBBBBBDDEEdpdk_example_bbdev_appdpdk_example_bonddpdk_example_cmdlinedpdk_example_distributordpdk_example_dmadpdk_example_efd_nodedpdk_example_efd_serverdpdk_example_ethtooldpdk_example_eventdev_pipelinedpdk_example_fips_validationdpdk_example_flow_filteringdpdk_example_guest_clidpdk_example_helloworlddpdk_example_hotplug_mpdpdk_example_ip_fragmentationdpdk_example_ip_pipelinedpdk_example_ip_reassemblydpdk_example_ipsec-secgwdpdk_example_ipv4_multicastdpdk_example_l2fwddpdk_example_l2fwd-cryptodpdk_example_l2fwd-eventdpdk_example_l2fwd-jobstatsdpdk_example_l2fwd-keepalivedpdk_example_l3fwddpdk_example_l3fwd-graphdpdk_example_l3fwd-powerdpdk_example_link_status_interruptdpdk_example_mp_clientdpdk_example_mp_serverdpdk_example_ntbdpdk_example_packet_orderingdpdk_example_pipelinedpdk_example_ptpclientdpdk_example_qos_meterdpdk_example_qos_scheddpdk_example_rxtx_callbacksdpdk_example_service_coresdpdk_example_simple_mpdpdk_example_skeletondpdk_example_symmetric_mpdpdk_example_timerdpdk_example_vdpadpdk_example_vhostdpdk_example_vhost_blkdpdk_example_vhost_cryptodpdk_example_vm_power_managerdpdk_example_vmdqdpdk_example_vmdq_dcbexamplesbbdev_appMakefilemain.cbondMakefilemain.cmain.hbpfREADMEdummy.ct1.ct2.ct3.ccmdlineMakefilecommands.ccommands.hmain.cparse_obj_list.cparse_obj_list.hcommonaltivecport_group.hneonport_group.hpkt_group.hsseport_group.hdistributorMakefilemain.cdmaMakefiledmafwd.cethtoolMakefileethtool-appMakefileethapp.cethapp.hmain.clibMakefilerte_ethtool.crte_ethtool.heventdev_pipelineMakefilemain.cpipeline_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_ecdsa.cfips_validation_gcm.cfips_validation_hmac.cfips_validation_rsa.cfips_validation_sha.cfips_validation_tdes.cfips_validation_xts.cmain.cflow_classifyMakefileflow_classify.cipv4_rules_file.txtflow_filteringMakefileflow_blocks.cmain.chelloworldMakefilemain.cip_fragmentationMakefilemain.cip_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.hparser.cparser.hpipeline.cpipeline.hswq.cswq.htap.ctap.hthread.cthread.htmgr.ctmgr.hip_reassemblyMakefilemain.cipsec-secgwMakefileep0.cfgep1.cfgesp.cesp.hevent_helper.cevent_helper.hflow.cflow.hipip.hipsec-secgw.cipsec-secgw.hipsec.cipsec.hipsec_lpm_neon.hipsec_neon.hipsec_process.cipsec_worker.cipsec_worker.hparser.cparser.hrt.csa.csad.csad.hsp4.csp6.ctestbypass_defs.shcommon_defs.shcommon_defs_secgw.shdata_rxtx.shlinux_test.shload_env.shpkttest.pypkttest.shrun_test.shtrs_3descbc_sha1_common_defs.shtrs_3descbc_sha1_defs.shtrs_aescbc_sha1_common_defs.shtrs_aescbc_sha1_defs.shtrs_aesctr_sha1_common_defs.shtrs_aesctr_sha1_defs.shtrs_aesgcm_common_defs.shtrs_aesgcm_defs.shtrs_ipv6opts.pytun_3descbc_sha1_common_defs.shtun_3descbc_sha1_defs.shtun_aescbc_sha1_common_defs.shtun_aescbc_sha1_defs.shtun_aesctr_sha1_common_defs.shtun_aesctr_sha1_defs.shtun_aesgcm_common_defs.shtun_aesgcm_defs.shtun_null_header_reconstruct.pyipv4_multicastMakefilemain.cl2fwdl2fwd-catMakefilecat.ccat.hl2fwd-cat.cl2fwd-cryptoMakefilemain.cl2fwd-eventMakefilel2fwd_common.cl2fwd_common.hl2fwd_event.cl2fwd_event.hl2fwd_event_generic.cl2fwd_event_internal_port.cl2fwd_poll.cl2fwd_poll.hmain.cl2fwd-jobstatsMakefilemain.cl2fwd-keepaliveMakefileka-agentMakefilemain.cmain.cshm.cshm.hMakefilemain.cl3fwdl3fwd-graphMakefilemain.cl3fwd-powerMakefilemain.cmain.hperf_core.cperf_core.hMakefileem_default_v4.cfgem_default_v6.cfgem_route_parse.cl3fwd.hl3fwd_acl.cl3fwd_acl.hl3fwd_acl_scalar.hl3fwd_altivec.hl3fwd_common.hl3fwd_em.cl3fwd_em.hl3fwd_em_hlm.hl3fwd_em_hlm_neon.hl3fwd_em_hlm_sse.hl3fwd_em_sequential.hl3fwd_event.cl3fwd_event.hl3fwd_event_generic.cl3fwd_event_internal_port.cl3fwd_fib.cl3fwd_lpm.cl3fwd_lpm.hl3fwd_lpm_altivec.hl3fwd_lpm_neon.hl3fwd_lpm_sse.hl3fwd_neon.hl3fwd_route.hl3fwd_sse.hlpm_default_v4.cfglpm_default_v6.cfglpm_route_parse.cmain.clink_status_interruptMakefilemain.cmulti_processMakefileclient_server_mpMakefilemp_clientMakefileclient.cmp_serverMakefileargs.cargs.hinit.cinit.hmain.csharedcommon.hhotplug_mpMakefilecommands.ccommands.hmain.csimple_mpMakefilemain.cmp_commands.cmp_commands.hsymmetric_mpMakefilemain.cntbMakefilentb_fwd.cpacket_orderingMakefilemain.cpipelineMakefilecli.ccli.hconn.cconn.hexamplesethdev.iofib.clifib.specfib_nexthop_group_table.txtfib_nexthop_table.txtfib_routing_table.txthash_func.clihash_func.specl2fwd.clil2fwd.specl2fwd_macswp.clil2fwd_macswp.specl2fwd_macswp_pcap.clil2fwd_pcap.clilearner.clilearner.specmeter.climeter.specmirroring.climirroring.specpacket.txtpcap.iorecirculation.clirecirculation.specregisters.cliregisters.specselector.cliselector.specselector.txtvarbit.clivarbit.specvxlan.clivxlan.specvxlan_pcap.clivxlan_table.pyvxlan_table.txtmain.cobj.cobj.hthread.cthread.hptpclientMakefileptpclient.cqos_meterMakefilemain.cmain.hrte_policer.crte_policer.hqos_schedMakefileapp_thread.cargs.ccfg_file.ccfg_file.hcmdline.cinit.cmain.cmain.hprofile.cfgprofile_ov.cfgprofile_pie.cfgprofile_red.cfgstats.crxtx_callbacksMakefilemain.cserver_node_efdMakefilenodeMakefilenode.cserverMakefileargs.cargs.hinit.cinit.hmain.csharedcommon.hservice_coresMakefilemain.cskeletonMakefilebasicfwd.ctimerMakefilemain.cvdpaMakefilemain.cvdpa_blk_compact.hvhostMakefilemain.cmain.hvirtio_net.cvhost_blkMakefileblk.cblk_spec.hvhost_blk.cvhost_blk.hvhost_blk_compat.cvhost_cryptoMakefilemain.cvm_power_managerMakefilechannel_manager.cchannel_manager.hchannel_monitor.cchannel_monitor.hguest_cliMakefilemain.cparse.cparse.hvm_power_cli_guest.cvm_power_cli_guest.hmain.coob_monitor.hoob_monitor_nop.coob_monitor_x86.cparse.cparse.hpower_manager.cpower_manager.hvm_power_cli.cvm_power_cli.hvmdqMakefilemain.cvmdq_dcbMakefilemain.c/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/common//usr/share/dpdk/examples/common/altivec//usr/share/dpdk/examples/common/neon//usr/share/dpdk/examples/common/sse//usr/share/dpdk/examples/distributor//usr/share/dpdk/examples/dma//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/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/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-graph//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/pipeline//usr/share/dpdk/examples/pipeline/examples//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/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:42042/SUSE_SLE-15-SP5_Update/f1b6b54899e6635f7f143f75a0298942-dpdk22.SUSE_SLE-15-SP5_Updatedrpmxz5ppc64le-suse-linux  !"#$%&'()*+,-./01123123314333312333331131331312312314123431233123333123333333333333331234123312312312333333333144444444433333333333333333331231244333333333333333333333333155555565555555555655555555612311233312312333333333123121233332311231233332443333333333333333333333333344331231414123123333313123331233312312312312333314434444343434443434344434343443434673333312312333312333333334444312314123123333313123123123123312333123333312312333312333333333333333123123ELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=69cc7700b31254b5566d5929ae6344e460cf02d6, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=57eabb1150d024e748244894d6ece70a7842df18, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=4873e0f679e88b67b88586efba480ba86a4b2c0b, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=46c8e6c05ffaab7a9f6f2b0f0ec548edbd894ef3, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=bb7ace60296e9c37e17fda1dc609b215953247cc, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=18340bb30f47118a320ec6b93981e54092fec9c5, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=b051ebe7a73cb0ea28e333f642842c49918dbc86, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=26d6850cff303c14a30630ea9219a2a608fd771b, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=9b664baa5b04f1116bc3ae13ada654ae8d7cb056, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=0d8fdfccd7432d450497050c6bc386e448cfd62c, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=5bf5ec7bd455edeb8c7722850b45beb1d47ee64c, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=8834e2f1a0548c267c062292e28d240ce079460d, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=789816827b1f5a66a3a1a424ba6f84d85a00b133, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=4fa458b049f0e6b654de5c386f3115f2bd19f295, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=c89c2057708888aa51b2b26fd388f498f49cf356, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=69fce5025cee45541843c073a0d76ca422dcf4d3, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=0b8f7f1f5c818bf60ce5a0329abc13ba5a421194, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=8183533e3bc25406f7f08426bfedc236e350a035, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=aa48ae543d573b6f8fbab4930a9f915d84983e45, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=9050dbd27dd01459d72f0040b9fb77f23e6cf6f4, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=0b7150fbb6c3ce684746e9b4deea4489b83f4113, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=23e9ce503a3a95e22489636ef05e0915218fe16d, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=c78b10ba19212eb670f10261af531f6687481914, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=813d077fc9bd1185fb3b2c4540065b8f2a989f86, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=23572eec61d48614d567ebd62e4279f75e0360b4, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=69b89aa13621bec97b6e6ad2ef530340cdef77d4, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=8dab6962c2e710f9a2125f6cd994a420ccf87be3, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=485ed2159926813c4ede97ce3bad8322649beae9, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=31169754e0d995a191cb506f1e3bbd717dc0d7ac, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=31b5800e2eb487c96e6b1dfa9515e8d0f8497e02, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=0df7248203b742937e0d8ca289e55f8e38029bee, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=58c65953b0dbdbb063cb3d07f11a99bd8eee7a0e, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=455aeaf31395d63325ccdee01a7781d9b8e4bfa0, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=24ededb1dbf1d70de8c44550019f549e4ccb113a, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=c9a517f88e0ab8725f3c55a9944a76a8e644a8c4, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=5cc6cfdb75e03a501c7b34ec8de66e0ec3a08bf5, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=be75e34d2b7eede0dbe8b872edbd38d29026969e, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=6fadf5711692ead25d9fd513bf3b19d0349f14d1, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=f3beceee80e50c188c1ed21fa86001074f8721f0, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=e2971e7879d31890b18acaefae444b00adb20d15, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=1f57b0c23139eb8e71e41f93762f13f1762e9dca, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=aa83ddfd0af35940cfd78ecdf8bb6f3d113fd3db, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=9d238378d035645d6bcf1968ebbd7ea397a46a1d, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=6c24aa4c8e136d5a354ef148b91705161b40662c, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=ce3463322eee460486a6b552fecf82fa924f12c9, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=bb5e7556a3e075ea6a786c7f4db1e8865467a731, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=9bb17e7d3e2490561b008271b14a4796afe94bb1, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=6684ce89d6cdf4f4fa1d7cc406d6390f845ef1a4, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=b70c55e1b6d7083e7731fd6738b57ca8765c185a, for GNU/Linux 3.10.0, strippeddirectorymakefile script, ASCII textC source, ASCII textASCII textBourne-Again shell script, ASCII text executablePython script, ASCII text executableASCII text, with very long lines:Nj,GZp (?_~#9Oi*=SiAWmnopqr  .1 )!&(!3RgRDR-R,RRRBR'R RR RR&R>RoRCRfRIRAR+RERRR RRRDRBR,RRNRR'R RR RR&R>RoRCRfRIRAR+RERRMRRURRhR7R5RaR RRRRR'R RR RR&R>RoRCRfRIRAR+RERR RRRgRDRBR,R\RR"R'R RR RR&R>RoRCRfRIRAR+RERR!R[RqR RRRgRDRBRR-R,R%R$R'R RR RR&R>RoRCRfRIRAR+RERR#R RRRgRDR6RR,R'R RR RR&R>RoRCRfRIRAR+RERR5RaR RRRgRDR*RBR-R,RR'R RR RR&R>RoRCRfRIRAR+RERR)R5RaR RRRBRRRRR-R,R'R RR RR&R>RoRCRfRIRAR+RERRRURQRR5RaRjRR RRRDRBRR0R/R,R'R RR RR&R>RoRCRfRIRAR+RERR.R5RaRqRR RRRDRBR'RRR R RR RR RR&R>RoRCRfRIRAR+RERRRaR R RvRRRRDRBRR,RJR'R RR RR&R>RoRCRfRIRAR+RERR RRR,RRRR'R]R\R RR RR&R>RoRCRfRIRAR+RERR[RqR RwRRRR'R RR RR&R>RoRCRfRIRAR+RERR RRR,RRR(R'R RR RR&R>RoRCRfRIRAR+RERR RRR8RDRBR@R-R,RRJR'R RR RR&R>RoRCRfRIRAR+RERR7R5RaR?R RRRgRRBRiR,R-RDRR RRZR'RnRWRXR RR RR&R>RoRCRfRIRAR+RERRVRYRhR7R5RaRR.RqRmR?RRRUR RRRRDRBR@R-R,R8RRJR'R RR RR&R>RoRCRfRIRAR+RERR?R5RaR7R RRRRDRBRlRkRR6RR8R;R:RR RR0R/RJR-R,R@RpR'R RR RR&R>RoRCRfRIRAR+RERRjRRaR?R5RR7R9R.RqR RRR6RRDRBR-R,RRJR'R RR RR&R>RoRCRfRIRAR+RERR5RaR RRRRBRR-R,R'R RR RR&R>RoRCRfRIRAR+RERR RRRRDRRBR-R,RR RR'R RR RR&R>RoRCRfRIRAR+RERRRaRRRbR RRRRDRBRR0R/R-R,R'R RR RR&R>RoRCRfRIRAR+RERR.R5RaRqRR RRRBRrRR-R,R=R'R RR RR&R>RoRCRfRIRAR+RERRRoRCRfRIRAR+RERRqR RRRRRRDRBR6RR@R2R0R/R-R,RRJR'R RR RR&R>RoRCRfRIRAR+RERRR5RaR?R1ReR.RqRR RRRTRRRBRR-R,RJR4R'R RR RR&R>RoRCRfRIRAR+RERR3R?R5RaRSRR RRRRDRBRrRpR@RHRRJR\R]R-R,R'R RR RR&R>RoRCRfRIRAR+RERR[RqR?R5RaRGR R RRRBRR-R,R'R RR RR&R>RoRCRfRIRAR+RERR RRRgRDRR,R'R RR RR&R>RoRCRfRIRAR+RERR RRRgRRDRBRR-R,RJR'R RR RR&R>RoRCRfRIRAR+RERR RRRDR`RBRR-R,RR'R RR RR&R>RoRCRfRIRAR+RERR_R^RURR RRRgRDRBRdRcRR,R'R RR RR&R>RoRCRfRIRAR+RERRbR RRRgRDRRBR,R-RR'RXR RR RR&R>RoRCRfRIRAR+RERRVRYRhR7R5RaRR.RqRmR?RRRUR RRRDRBR,RR'R RR RR&R>RoRCRfRIRAR+RERR RRRFRDRBRR,R'R RR RR&R>RoRCRfRIRAR+RERR RRRgRRDRBRR-R,RRRiR'R RR RR&R>RoRCRfRIRAR+RERRhRR RRRDR-R,RRBR'R RR RR&R>RoRCRfRIRAR+RERR RRRR'R RR RR&R>RoRCRfRIRAR+RERR RRRgRRDRR'R RR RR&R>RoRCRfRIRAR+RERR RRRDRBR,RR'R RR RR&R>RoRCRfRIRAR+RERR RRRDRBR-R,RR'R RR RR&R>RoRCRfRIRAR+RERR RRRrRR'R RR RR&R>RoRCRfRIRAR+RERRqR RRRRRuRtR(R'R RR RR&R>RoRCRfRIRAR+RERRsRRaR5RUR#R RRRRDRBR$R,RRJRtRuR'R RR RR&R>RoRCRfRIRAR+RERRsRRaR5RUR#R RRRuRtRRR'R RR RR&R>RoRCRfRIRAR+RERRsRRaR5RUR#R RRRRDRtRuRR RR'R RR RR&R>RoRCRfRIRAR+RERRsRRaR5RUR#R RRRLRRRBRPRR-R,RR RRR\R'R}R|RzR{RyRxR~R RR RR&R>RoRCRfRIRAR+RERR[RqRKRRURROR5RaRQRjRR RwR RRRDRBR,RR'R RR RR&R>RoRCRfRIRAR+RERR RRRDRBR,RR'R RR RR&R>RoRCRfRIRAR+RERR RRRRRRRRutf-8829e2101cb0e0302e8d80b5fd2d8f017d3932120fd973950f97ad4dcc3687367?7zXZ !t/]"k%UJ' ' OXM lzk֋A׾"O%?yjc'DzJ;;A!9'BDVWPrԊ\D9;q0ġ"237Mrڶ&bۯ0 C^!2O^rOnڃ12#=yw!4ф+=+g9"1} K {'_a!t(ɴBg}{H:i ;R׀`W-C{L*{jtP/D~Lu,ye/K\sv+A[N|A;W\а#0荐d[j` X}DX?#pJ31e:쇡 #$OּMvJֶجE 7Z'w4J=]s(NS g11 .+ }'/ocOo 8 6|N̺L4m )b^t!Z̵FZrǩSD`3j6w6"m2u|Ѿ#!'Q:tȿ6Kd`bоFAfmj&0d\{y.@>̺З<|f |cjbVRc3=Tꗣ-%Qw cC&¾spko;f^w/sx9#_$d+E1F[jMͲ7Ļ'l9@zF$~]:պ(RT3[D&sR-ORF?+-s]-: {S9\EI8 QAMz/yEUY׍arpE64ÚV7f,z m+ȞBnuUٔ\  7Έl)ؠlh@b*43m?Nj%fT&.ȾѶ!%AYJ͞6u y񖾃.~.ڪ1|:t94d Y|J]Kc<]Z͸ A ᶔrS t 7k o,Wclҙl:Pʀ~OAs8M'6Iͺ~ &aCvV&=c@Η=t_8ګ9|Bn hYIn!\"̯ ` Od=4Yyy* p:i6%Ʊ y5{b>dE=UfW'qO TBi[ml^>1),!`YޟuXQvBuCOxEkS3a˰bEj*VH#{d.:`䒪'1Q09BMt2𩇊<>7寬RP9`SFD>4nI^>*沜m0r;,#^ZG"I:t3=.qokԩ 8#%J^Kn! $"< n@((@ h[?Xoar-^減5JYv$+#9c?yEp^8g>kBNL b28/NXIU`E䜠iH-&(T_-afB۬}~х)R~ G,QOxxfr]l,*clPʗ`L 0)ܿuqc?K]8naW6dVEFmW8~"~C:Ymiо1@Kg,Z pʥ2X W<Ľ GF?b琪Ё.arTd\͛ -s^] [AY߬3-uMj z&opsKg6|% `+oLYLSnojݔ3I*GE"嗿BBfԤŠRb 71)BK`x$%8=$g-(q&wH&vTnZ|F{LYmħzC&5]1JO{JWy9 2h02=d{kCLҙ_|GåP'$(j[3c)aQaQ(_ufڗۜRWz<šYJ].&\}(IDm5 ܅fSQcWu&;ǯ-Ǹ+Mk'2 xxx[7xK!'<6me.vec'2Y"{B1C.T[ePa F~Ak.~=3p$f">r 9tZ6 ܰXuWZ!-gm Vy h |A,2tS&c|DQI4CRp,p&x Jb3u ELyQ f)4#8_N$K(#rk?, UůYN gDnuWLwpշ~daLXe&LCu_mjh1f*';K kevꠅTy>0Ys-'" .t%/WVgD_hx<8 =054Ļ[{׍W!}Ղu4f;lV$y1;/?騁J }wkA6)ïs#;S"Q2-:}{|yǫ1ËLŷF"3`,_ Sgw LU1"e6Pod/Ȭ%dRGQTk`#\`eZ9(2SqQWMJ#GtnrSiܺq|F{C.,D(+)~~XB[WIBϽK\yw}2Q\*#"i+OlەDi+v exx6Aw"HzVk\aWI~Äs_ؑ`$`&B!A0=ufÄ9v?~ݕ9l&k:[2}qh'6'n85tb7GXC%gS\0V̞V#f)mHbY}JrF|B59'7^ؚ@yk7LlI`6I4?*}MbdHH|Xe9aMl V>sn)+~\htlҐ@( Gg I!̐TTTm40櫷L- `<'"o 7O8ct09:Gc\&hu e12)UP358LM^T,`zZB!/Ѣ\ C<.!~iHז^k*eҁ!ɕ2 Bl,ֵؒۍ<ЛF kEwɟm7ֹ%+P Z2,NBKD(9Tq^=L:4/n h kc s%Iy~N.Cb@DGz@ϟ%df6IF56KS'%lj|ϲW1D>wC"h AIekž<9r\+'Mh@ho*K`W4$G oI.Jc<7o:mΖgyj!#zCE7{NgDU !zoh<-@"5uEހbDŽE5ld^w͇j`TV*ڱ|5&&Yۓw0>uW@YfjM j?).E_}:1, M̓zqx;mӓDɨ6>c_J:&N#o1'c+961aa1di鐪zL8u#+B#Ш4sr;MhnԗlROtQ!ҍYse/ƿhM3]\jLu$׎ZL8A>@cR)#3 cniNCoZ* |̒\pV ΅C9l\vB<8 _ R:Q=^DK ZzvQD^Ck ]Ksέ@铲 ?SDR/xt8&#qJz.9{WRwTMfxm2Q|tjzo0C߯.[M僊:{Յ{ %O: 18Ss;rdsTc:)@' =|@P[-k.EtsLL@M*D3[&)yNad0*`MѬP _N&', JFhnýwqA}skV$mbz| xL;2;'oޛ# q4N\֖tfY!8bFӏLԡ rl5VzAKO+טRckp)}iƿlq2 #8[DdL7u %/ Чo"bV% Ӟ-lÝBD s0oIi %1^#R8Q/gPcxM[*w3mMD>]>aIu+[AҲE|2f~%wIF͈"ZGd?]khJ2'? HϲZtnq %h,U ,f8ݎ@ZҀtc =7+prFԁ_Id'vbMKze8-P7cPN*pҢMcD}o9kSASuuJD~ as˔Q'=*+n}\G%$À/V/-KhVFp//[Au ) @*lɞi |3|(eVglQ0@OUd z(ɬ0jHz%Pss2qOI 1] uН-O tc$Ґ>#F u}N &S i';hԭSH߂dM=V/0 ?2*r'8JE>os~~v cB,mxЇsǃm-X(a[/Qx۫pR:ZqK@ƐEUXNqH1h&ѨǺ/)-BpVcNq/΂/x7Wd3P+/BvFv^Y-%91.q>-V ιSn #UϷݡqtd ."9^'ܑKV# A͕XG@5c <8#u9vjhaXy36 dlp -Dyӏ#[Gxto LDd;1zEYu`B*$#nh~؄_=4U7m]1US>!6 OR38;$RR裐RޯGrD~lKXt41?Dty)xFyz`qPՄk*OA3G#D7Z;/^<.8>"5ՑJp^6Ă09a]U{%%%_]638#A4\pM 킾+m>&5tjq/UP0+Y>K9"/\ω@ F%9#EOم\I,Gr9S@CH}e/\@fbˮ+J Kc.v9 Yq"`~/Gp{a}_>1['˿CbgLJ+8 G3ۙW_Pt 6;.38(50keCU-a,Fvh :a-A~c$%afOL25X9 ڢi]J[,Iqo-N3ͮ) ,P,>7,DI5XJ},TsnK*;%"X ˛u0b*ϑ9gVS2M s C +0o/f+[t֪$J.xcZUGğ&Z\ ( >i>"w",^򩑾# w%R7`+Po6smߑ'*#. >jp/eÁ ?3B 񪋮 xr :8Y4$҉xsSq/<'(<8bA+dE |ʼ4)GWϏۘF" kgOKt6tt\+6B1Ey-{ŐpAJ{s8.&{m}DsLcRjg@l;e1ݛ;{A&#OXGm-a0J DUzH|:M"U! p3FnE!BOJUolx~vj UE^;HTOat#q}N|@uQ+-^ؙ7'ҼkY X̫sIyr=(9hodE$%> G#7[j߸} 蔧Po^.q[yr"GQ U$_At.KཐGZUDܣlh(Ȑ~~O0e 7³=GXP{m䝈H.ud/BRzO pD,_f3]E앑 x\Eyyv, sX0ODMt09 X.+Y^ˢ,osO@OPV. |EȌVbZr2ln/ N 1ۏX:8Lk46?ݒӼ{RcZ C3z`߅\kƾnۢz|A"CԼoE1v D\ʎ$7uQ/x?| 4d$?tky2%y7@Fk[tm 9GMW1Hs9e?Y?n}1'@漩GnՍV+ȋ;]CU>tufoe#˗(Y6< .[ mh(dD!1+- :߭\Ez)Xx+k,}[!]:o$r[*?$@}5 Nf[0VlBm5XqPTgVc:~rr}u0 f/խEEQ]vG&"6a"fev=38޷ b S'I傎WZ9X~pfjsn,[/~) 8^t0T%GMqpJg!J{(^*H~ӍۚAW"_h?t=Eq"3Wعaj4AȦ*>0czdIv}Jll'"SL9ֺR3 T/{[v҉|[\oo Jg/UJu%WA_u*aK%wHOj*$g61zDexGݜV~MdE5 ϙI<,{`bEcs+.yU"X\!5~4ҵܽp]]9dEQluX@v8B.#%?̓7Y-FyQT!yj QcY*"QH+Uj!Բ~ QAJ1yaDZ;!o?|idr`(U8(LcsJn #^z+ 2TLz9`h[5_crr܅@w:C:Q` ꖜ@:t{ E^LǨk>anwZ3pZJz#zJUE tɝ:ܶ.TuRX@>LPR4uqR\PiۋQHs; knSX{C83}֓0؊77|U|e M/Kc3l=oX~H~/+2'zcTZ{GX:S!9oT4^3wZιcXp#^vn@cK^&ypK1}tz0jskR`]7ϣ.t3 ..tGgQo+Q  & 12aKq2t5ڵ 1L?Cy&ef륹|X}IVN֪Ey<М$azY?٥Bni\""#^ޚ=_73PF[.~ FO/: h;jF}KCT-1v켅O!wkyx?l>ѕ@9{U%.pյ*_[ٷRCK~ASnB 1P9~#>µ 3 uPkTàwQG n&n Ƅ\F%L㎐Y,E̕ lij4Tu׭, ߦ ny_/Ί<F)}H6: , `a0?E) 2z͵xQ s&ayfmoNҦ"AWdQ3v@y(z0UDjt1-vrYfEyt_h =㻓c.E"87Ռ\o\ʠe]b +DّF)zdU*MV|⡚~Y`m3* K=g=m=(W'F\n,ph… 29=-^J-l͂WȂK?wW..x 9e2؝B#ear{Rd?UxIxx"ʤ!A8Hݴ;~=Z"{'a) 3"+g~Dfq3l {xi[tZf*-/ȯM,_7o8 9*UKdIK8a,֓Y|,W'oQW=ȅGTD@GI}ݎf$+U%u*sM({y`/vt|"zZj1Kw6"dS:7,'LcT>9:wdqi=ox͌mg:[Gk"]r_vq^Y,xܻ'Z2~1vucIK.G0]~m_x=tsSMJqMN@>%B}7!~ətCxŒ~ lHhLiF&!η) _GD/iWiGV Ţ{ac85<|_d<όqjQ.QAyF_" bq XmcD^}37J<.9N&- dV4{djz]-^fJ;@Bp tyPPGx^&- 4+䬍M9n~YhW~o+ĉni$38nxA$0X䶌Gt4[Ά, 3hhn|銑3ԠcN=Y+)FOh{78 eFց/G Z!FEctT=ro:}YupQ8% )z B|AW:Q:?^ڛP=4|h}5+=ޜZ5J>$Ӓ^ X5xJI:wJ\bu|q5X|=MѪȗQ^ن0f tipo4):t^/Rs態YU s^C A daԝ09=KRGMbp0Z'5\imj[3kE$߼Ju_ur/% zAxA-L }ΙXx g+{g*]"E͛k%/ѾsswԠ8ϒNڿkڬiKg`b]F,cU<#=Wmt] دw8ވƭiO9/>wA:]rimU`d>*^ȴ'%D2(bw br2ܵ|֎Sq0}OV ~r`7̵͇[Lu^+6g5Ic|ty@acp뀏;Z,RyPRY@-Ђpf+$t}Pɱh\»1̫e}>yS>lL9]RиS\_LD;Z\dҀą6nm4{v *)AtwØluRˎv!BFДZ "B~H!_Gk|II~)ldL-#,Ed[X5\Ioi>I9J<//q8lG 8r #nER0$d'9$pNUѽ T6δP\DJy*Ae"ml /~]~{'OcCzD`\ ඄O<s# *{Bisa}pLK7bkEUê%XVQnf"hfJMl\`da-fEިӼߵm̎Pgj4tV;wkPH$䗣fr2)DYR,IbgSHX? }OWx#gXP26ϫ{ϭcH`(dÑ4z7)JiUC{v4òMĸ9j8v2t)*tVd-pj|nMupD(C960"{gW2 8"Ԝιx-P^?"So8 Gƍ{G_CHl32t0)HU}tȋ&ʢQcFM6CJbUӣIwY}MjF1ɸD0J6QP Ԝ/=gr5a'9Mu2Uog'ݯ#`(TVb̅VܠΧ v?͂z6*mC` Fan)m$w1,WCٮչFx朐C"e6QȒ-WYVn_U껓id=f1g>I'C"}<$~sm0LS|#!5S[#H͸|xf,~BN\9WYy@=r@"|+8W++. 8DXI6$?%ߺ#CI *qk{Wy+i˯@;͕{l `6p;+&Is\xwR=r`A<SPnFpr#j ٱF.}Ðs,\DVKT G:bÈVHS`Tv" {@x&ܱpQK?t{;1ٸާKN?9x{HBoYGQ?x?ÝH;R`چ1yDNN{6IVdqf:ǓyJ*e/>2Ip>++g3DM3!uD Ymu @8٫U²!=/EmK 3uB7)+J.^p?͈灮dF&t&տQ -E`=„9N|V}Jaуt!% mP$hhe.g6!e#6٠3]R]t2+N/[ W"i"a< Bq_~zd]^#lqs7OkS3T+a?m1M͓OrfVת!(RnBy+KG܄›9D#"O~\D*ZcK83-CJD*0v^XQM ̟ށMbZEouw|R+-"\qşS&K=ڧ䰿XC` w5R JUJ5q{!&Su5zǬ!m@iˡ#jg"$ A,;I)IәsQvj,Dkѷ6b~/I2'R2Q4mq*딹P#xJ>};%Hc@FvlK5J?zz6X:g:Bę7Wå#ٖg3Ơ3Pm;aI7rDcjUMOY2O~U'my݊U5K"7W!UIOnkYn& VR <8eB,O0%]قX!Dú(2,{-5Xyo42j CO#Rs3񥒰ٴJRKկJ ǰ%Ȟ@QD삾nl 삔ł£ H~pnIỷ493)n:Dۉȏ cz v59ghyi!]*c%05ridk^4~vFDr\`X,8!۳mMZ!EUzS kC% 0wr f8gZ19Xzퟝl=nxb`(8Ə?$_cBM`mP젲|lQ_ejGAEM]B3Bԉ 8鷡N3PW? {<}0 [஢6XO.U}4jP+J^r 7Jt%yin ,UUN;F4dx1ԃLC`R^?FzvdJ|Cc 6_" ]tYC5iRFi,?R:4kX kGltRe5()@4̍ oA6"'YaflҾ7ByÈDtI0Cަ z:H;-1(U?S}W_z;=\` x,Ug#A)̓3ݡ(X^yrk^>8B|%b!XKr@)3~ vG9{G;j[o2P(``75mbW|UC]1x#:VҮ"fU'ZBZ _&#/NlӸo’(p."7{dt!5_N?2"BݍvUme`̭R֩"'s[?|H5L͊Yg2SH |D|Z&n&0f|VMW5B)1.5Qp $IYixcF(Z5OHٚZ.lTpFL$p,l(Rx!^:WL24FaƘ̀\Yz%݆M]-6g?9- 4 SʓIX)̀S‹|2P.l"w1B6nHy\A8pus{c ty]d%hT^ 1H5+ЋG)is]f!`J[g'JKM}N4Vt9 N-;G qwYA$\:#?1>)¥Sq;J\'e#HZ]\M6g1ذKn^/D BoiwXIjErcJn=}x!75!g/h\i!̵nE4~ƤSK Qz:ap9#JJJJcib}!=Lgp*O|g<'5s0ZGcNa*b,FDz#Viv^Y o?f,Ci+K(dBZʸ9wkh O1&ԇӬ:m#=m)S;w$0 v7<֍~ޑ ̿Z CwX"ÞxKw@ 6gxp2uOM`%Eϼ#n6EuF}ec`Gua'"zOMe7dt H&)̡9^߲-ӑOD7fo.`vAn&1XAm `2=1ߝ~RS{8w!-<rumWƧo3w<(άvGcWm{\l :WQߓlŸjVz$O~g 9rO6#!Q&H 1~7gw007yľ"ͯ7P=a)(K1 *^*;pA}Kd6^  脯$7%f)b%.NflItxW;4:tao2{?&0V"Lxiډk[-D'$Ȏq &?$ :Za *N@t:0:rc3$hk+̸QpBE"Q,QĖ !>2zP#ՙdI'H_újɻ⸣)Pc #h\r8"zȣ}zlZIZ=PJ" G|0y#Q~\-wh 'A:e@JCJXݨ5ހszhLr4s"Vmdǻp4,7-ֈBq+1p_H\E `eDJ) \+Q*Kǫsu^y'4X%Unp4-AA0Q"AE*,eJt?:@f 7~Mhk|e6 CY5^i2aډ8-%ۡiN3c>ZI. XT1w|i%w{eQ8i}&-X>%'zvT[ҹQ}kYly& ޛ+GӖ-;fTL@.yrD29(sژݭI|dJY-PURvCHׄ_Yϰx553{x žiKWԙ4WlV^I ~sݖ Ky Di=n޺摸BzHWZv,|ޢ;.Ow[YӚs 5Wg̎%[2/d? SN"'(eK!Slrk3*XSZb4>gM͟7V8zOcZg_s n͚Q],&G*ue~ eD!G8Q9e 1}(!HV5|my~*V`Ġ_Bd.īS ̕b8}.舄 !1Xp)QOd1īh[,H:RҲ_O&|в  FٵS(ga`^F_gߡ9AݜթS3F"_ky kE9&O"([ Oir6tPlR&/E7Z24 W(tye '+εe0W;4:A8#ruAXT6l#[rao PW(?a|^QFkŰ*n%>{7MY"I^vHt7$³'=6/`E=HPx6- ޛJx†"nP4U$0W5П+W\^´eʌ@Ȧ$Lf0Ų9طǯ,snBR?bcӬHbothu!GBry)I&,K1a5^Vv/)U ͗<K1Hovǭ15sff>ɷ,6̉l\:ͰJ~ Y)QI;:{U x Xn \BI}[.oJYBbzy|wCM570Xaj31w1 z>1u<`)ק dq8kF)^ ߹!͝4U15ap1#Ib?BXt֫m]푭1$4p68'͙-gݼj2|Q`I`0!a,7X;VZ[c Ui@=7[)ŴGuhp=-Xa5xEP 91|N^G" 6_!?ۆjqoS瀾1hzbkFVp( j1lDD1lj[-H06~<„g5߲o9@AaȸfF7c޶aHCJ|~@cm{/6'b3?V6]q=u[RdcڒpR*=)4.eZ\kBP =祖P T3Q8y |\Q9o}0;fv3wʺn~[Azѯ1}R )KavퟜWpbʥI\[@hޠ"| 8xCde-zzͮj %+dOhiug d^ uDdèU"iN 'Yӽ\},f@pt ]EBRxf^ (O(X!b5o]֠> 2VRDI >Q~E F-~E*dF|@, ٤9iծd͏̧ ZL`kE %Hjej|kXr3Q{XYoP Wȉ{bnp|+~EqM0?[=h@5̽Me^ ϙeR+ѧI"Ii"O]9[1t>]oB[R}5~c`FpsiR?PA ƦFb3"z";pca]q: ZU:)c!FI!ز.[[tcg0AԎîBwzwM%KgN@&U WjvouZ9'/GѶLƎo[)ܺpl鐚+lAKP!?K7l8@J|gҒUdj`.5_ҽ,%1\ mry5j|\JYgx>ac !DymKqlR>p%!iDrg\Xuw-@juˍYRug$N>mPD\qC #ÐWn_B>I$`bE:lĸ5 ɋ1pWd)6=Ppܛh U#=ǟMpΡ=}l=i,Z]fe{}[;vEt1++.(+8}`؉]y5:FB| V݊19\tpLY8͆1@Rѥ68Wd0kpu>/`":ە1I`"A'cw|s u7 ω+֬0VQʦPĞ+t( .y%jP}Wg8w :2%sE찀 !}nH#!sX S,NB ^ l>r-X<{#]$t-̌"I!cNA,_ƓҬx=yw1I4@˪[6=`3% 3\Zq+ۏL_T)yЮH1%M־{=U}exb)}:&3T,:{eO좤@7ߧTX-`ۡ1ғ_i kP-?j6kND|e j*o!ǣug{ՌlF 1NMːo Q60Ӥ-07ϞæM83ro{8&u}+RlqvF&IO1@6 ֚vHЧP| lrh6 ꜗH]a,FȀG܌P;A/Pd}Q)DE>=wӖvc}(yKKh(y^uڲ| ș 4U)7UE7yl.}ɰb)eS36s񎪇//]_0vW+Z3ik3_-j%9Hw&sijO wUSdWAO|*HUh𤕉_q %O%.-ɂK:j^:QI2{l]lo{ (ȱߍ2A4H@𑱈iNP+rHN/39pGjE?FF{/dOd/HpDy!}Sfs~RȭPc> (Jr߰Ŷ é,-c'JW9aD'oTj1%%􇑴AT]V39[>&%C><P5ܲAQid\?Ea7Dz Xy}Cijg3goBᛠ-A=Ix$7F Eu#xfGi^VHJ'9 Ԃ<`s4 Y6{}: { 23X.t}?>G!Uc˝ʬK Po,~1sơ y Bɾz-;'fBe{L|n։~8yUu./v׺MšΙ, lG/=n(W#3c'C>M|!%O=uWୋ?cLhQfuwj፟&l*ȩ JV9rog,2|oj/,>U]Ň FkP&h"RTi#I/5Dtpn1o=NkPrb|xHʼn=>a̔(S*{:jkb>z,롘OA=ε-c?6,!V.4kH0~It pނ.av^Q YZ@:s9(܉ ֶ,U5-]"aْcczbKQ:u3b V~4GR;]i̎A7\&Xw%:獖\+Z8s ^}֖,,l:an/O|~h\D9uE\[,ߍtj *s!gJd[*A<iǙ=?sۼf;wq"L-\kH(ryPhc[,`NoLrz(2Kq[ų!M)dDzA'|a^Pv3T~|֮FR׹A] ^ļč_2'w +#n^pN;nC?&i5͹~D8+Q&5\qT0 x_%4G੐DlXo}Prg@T-=9`Fה$Ñ.%z*,P=8=4`N4:)T n =)sԞqd^ TчBtҭL}1ǺoFXJMu+D21 qG곹V+.b&ƻIJє=@q DM=CuPpJ#\_G{V{,4]4bZ3u:a4m$JYa}ê+: :)܎AV$IYK݀^!=޽B>dji/or#k Y =,͙içtzh̺0X( EXQ91~ُ{h7| [Zv5 K2i4츯/(-"=:RWN +`Qh.D aPo]v:e8 " wyS4, >Yq/GOQo8:|! IrLm:siF(E./qNYQ*S68<;A] !f#lSi󏓺]*,:$9ϷqC}30{x)~9\CYp&xzѡƽljDmr+{0)Zo Pc晧¸rKG+ph|LF 3& oa2NFÃہTZD}v8B% .jY  jbp0Yq{^N[/xR`ހ0膚٩^b6{V m Q:aFSX=z V }K"lȜ:ܲ$ xemg|;=[fD+˛p 665}+Den4,ǫ)% L0(h5Ӧ>lS֢z?3 l0mmNNZv}:qA1h>AsE9j 5s㼗S4%LrK718sO ^IK}QʡOIIaPnNp\k?(o1BVw fzjH(ڙmIMy|qnwS ʕi )hlS~*]%Q2 =: P~yoz6~GSqa'K+r"i"?9].X$Pk]qlO +TJƍH0^NDWp*ТMn'Ӵ~ $`DPޔ'>Ec%-Kĸqj5p7~36?-sLz1$<цw yPgؚu;Ym z.+ًIJ6).7$vž1Ɲdu[5A{$LÅ-K1=ww^bBFLuFS&)SÆU80.NSw=wWg:ǡ#l/Ni[R @q95>Q> —ս&aĠ?``ADL1ęp y<]"ԣ0:=7߀KR71Wa *9S|n؂HQx#ǁľH0h3& P0C`Xt0{.l rѮxa4"7%ak&%xǑ{wRΕ4%kA>* ij9ͪ -\dUm !TljdBM_%+RsT> H&X( Q)kAp[ <֭M"ti2vHQS}w"S:m{TEƥf`&z2L9qhV$O?;:Q1iYcF, >q/ Q;o˲~ݫ3*[e*|H#(P}7 Kj`)w1Xwdz~]ֵlpKk>t4oA -ˬ߯|!~HQw!2Ha'{,cHgNaC'JǾWsx~e,ыcN wwx┍VGh* bJ= :ŷ{xg?-;CQ?#!z/.]zߧoVwn߷MM2hg$Zwظ@~q}oE;a(S+ 9_ Guއlبy}c7qsدS[%fӸ'-Cx06%Kͧm{Y vq`xD.nG z=D7QdγCmڧ8P=w.' ݖ [K?w4f3VcSۛ# Ƶ Ԫ%u?_ L:=4ί밫"Ûp,WOuV,Gdp#,p *xS6fx@R +4(}=!YT3+G^gGƂVi)\ 2ŵ1&Zm1V}hfkR3ڞ^;vT\u`xג&/9&jĢ*yEC܅fV2g83K`~QJ-o͉ҔޞOR/.K_@/iC(B2AMߢ hc a@S0PQ=*ָhΨ[fC(ZCYN*0ly yp}"'? u6HT-V~ t8zJT?M$Ru'<m=#yؐQje<QTTc.!!6vz14y65i|w !;䟒Y ];MLv7bn+)pe.o|.;xOTO& ]8A9ȕѫP4i-w$&hHwjkgvE2P~#AѦ*(ջoz":f+gM%hNpqe1Ckf:@oU' UE߫8 mNoV}R~oڮ{qڕ25{BtgyN<*u}F.v`jn%ħ5劁wA6FepsEY7r5!CcҽSDȘtDLxRc@.S6 Xk.}!<2(v%/E8Emx.4Ikasz;fhib Vi4Js<*=9JH|?G!W+KrdMԒ3:~jP=fsy otDK.Lv_Lq %ӹj0o'X֠BLXmęӫ:"F񏏗ߡc3QrijмymZ(dP:jڣrv ` us[s ^I|"s6kQ`Mҭg䇇P2<߆!9CQַcv+ז& AAy2DQfxkIp'խ0a\QǬu"~~dr7Q#"޲?eIgZrÐJ3kIREeTc8i}YyWSF^3> u7_]..F37p"@~i2Mt1~@ w'wW|˯o3vJ(Ar Lζ>[/׀e$.g67l:L_cv#@:ײ<̣x<ULu 5Y$u,z •TQDŽn, $6of#ž=~ & N¸ɑe(= x뎻)Dl`&E[hwX)pa[WA6ĀDŽ!c\R" 1!3dr? 2|D!o ]GJ7=t=1,Aik4  -uI^!J{HqKO9JEm/Y2-W;iFMa-F;Nsj `7y1{(p a-9bdprmKL."T3 {\)9G^j2g5طfum}Υ}o!dOE*oGT49v5"k.{Ne;и: 3[E0$tWwY sXy2n\v Hub+uFh)r R֐N~0z_MxɠMaGy_.]s%|ΚgJLe\zըn+S9 [l.d)lM~('P]gԵ! ՏH%:cf=ږp*&"$_cg}FB5}e9 @n260jbcJ vσZ1MV(B1KG-^ l.d/j=/:DW,L1p*Lg|K vqfXcù@紺 Xzc5n['c<%եYs0MRDͶW3:vV(͛ CWndo bvfFG9zT t>7[j?34/߰.ea9l h/'GBx0u5R`A <փ@ 9ꥌݸhoOR`S vx2e}gRNI×lK@!lQ~5ٙmա3g4- NX.ul4N16<nQawf"Z,樶(kO0ZaϤMkqT'O]>NưDUn $[] J+:aP4Mm p!8a9\ҊHq׷Dn¼ݫ{= %OJ[-|!v[M-iKeL *.5+nm[1Y$H?UMr<RՅs4Lam>:!Lx `o]W&\Fܯm=\lDǛ@#5 t܄ nD-pFI ]lvi9p\ƲZuO)}t1PvrD/<kٺ˽D,n@@=#bRIO;3ByvѺ3d+M;>XtF(^*:yuVb[&?DբgyYaF&:F[0?az64?(y(XT&OwX/ ^6z`VgīC]vx c7Tbr"r(^/_6eV\k5[hpNܭsA[|rg0Kz!PؙL& _`Vg nD_LxZ拡oxmK5hf&fk&wFͧJ!?:l71_P*uΌa"Z=,g^M ű=zϱpx;ڑN p^u$<-`f )yn[Z VV7vydTA i]M r{UV`k=gQbC_1BJϤeJm4yZI cg01zp2)yȀXջz#j91W0 I;n{Hed;O%u :hJ[tLxE&TV'NkIK)MC<`'$Lg {`[d~B瞁ޟE0:LdzMVRȿxwQfZ]vRRx-mY<=_'~|Va_c^=p -=7)r\\bm\̭ŝ~*ͦU+~t Y&0R{RkԃVdn6%c3f"PKݼ%8QoU㇧J̷+K9͸An!>BjCL * $|ˇ؜z( CucDigSTV/i^vr1 k\Si|+]U8OFN1[/RQ"@eT3É5oX>]#ӕ.ZuW<Fr[]}Y+$4#@k|+|lEڄ LZRe:uR (ng#/H:0Wko=ݫoew-ݢunAo ϰ6?x5=Pcp8.vW,ema1&{ %}"#7IfyC$`Rc罺[P eNB;.d%}\ U .8f#PI7AMܲ[`p -25-EP Lcس\ Ř&iHT\#Cn+@S$Fjʴ3aԵL6XiX,˳'gZ 2P4 hS<.aԶ3.v9BlF(Pָ Av!x\,4F&l/&y8ob;V]wz}sAg{șZ+FdcM9tx\e5D灨MYҫr4;>d+їt0B>E-M]knC2قׁ=A*ݮe@o]9sg7))*4gxXJyT%]˭ƨH2;O-> f)G9NqLQ{et'L<3x)k8i*T>xuTrFBt*hbGs?Qpμ8?1zаsU65M+횤xƝd(#㙛?yJvĥ'7kRNʹ ͜.Cl[qѝ3 IOsw?p|y N_wfWoxlN,+K-Yg:wADVU=u;R5܋7(I$/,UVQ؂3]ᘬ{4 Q)OFJ*Y=) .zzN54$&|itxa3˦`:^6/h҆1LO14w{HQL7Ij˒#rsz劣,LjΡ x u͏9f3CN ml\*ddUHYxz:1m.a- OÃP ^?|n鵠FhPڗ9jX0B?f'i# + H|B f.}nK`;iBb!s BDO۰nH~:Z'чl[^=s ӿ(mMo+cɛ(Dngx$Z/ykΘh65R*wfG&ai5nHlPᑋ=2SpvNW&t.9k cu;fp) .R{V13Ë@C=QL,r$dZ$l{8}1N`I$SBc,hImg]w3/]Ghlu4gN[Ը% :wg=B_ :%?|'nkrҗ_ F^x5j$dW:; [p)bP]2nFsߒ5a=QA"G\f#urVp E"U [uMZ>HdgH1 ʰ3 YFnI&PQI< ('b3\TV"z8s*sj8Zl)53E22%Q2%f_J,רfi$t PjjxNaIh8g҅(ѰdbNEzM]y$Ax Q3ep}?MTy=edIYŨQm5)E 7ɿ `˧`}Gue2#< gX1ƍ )B !Qt #̵uT;sםӵO/{ KY䙆Ji\?r6FqUG LTfx?><ގ1~F]뀛 9)+x/GLZՔC&anNlk%SpIC&}Ǟ ֙'k/ĀDg.ͣ8 }/KEp>egɠAFfQ%#o::{EpL98_ܓF+5!Rhy1x7qfI]pɣYqSS) ͬa úL~b|[Ж;{뜋ZL_J vXB˸8LL@ϊ'950WC"[i7#aMB\ ]qEU۩!-,?ƅAE2U6.O yz/&}MX*f7 L'IED--qN{ϴ|FU+ʥ`f0[G;QpGXʩ#@.{΂GDm-řt0Gir>!~EO,D ^ȭ;mK<~!{z{ lYY59C4]})]GMu ?a e(\P+񴩽fR} ô=M60n^a-Ho}Ҡc-Kw8[' wp)U8f{/iSvbiLqS: CۙE0 3P0PsOx~hb'P\!D5c2X-aQ~ϱ ].=ĸX8(|H3}_H25@xq-E/IAr[;Hw/=Wr3)vpg܎aDN&HG%,V6n؉{CU?5ŒST-ZĂ.k´G~ƺn!_U^a׎KTUI: 2 U:e <5lIe]9Mz[mʎ]wc}3!B ZO~/w.+,D?:Nxs{˯`>Ԥ4T:<$^HUo#:;kL0?ьs W/k4c+,u{Ѽ,"ry\mLԏI\ۋv0=4*$yIb/` ~-=_ m~{N.X.HH@}#w)MmrD[ӯti|J[!qLd$UOZcrԟ.U`K_Vca \z(+?أbÓcIq0KRX,黿\%ǍRi{,ecg'еnVr. e=n5"hxv)t=V[-xoKJG9TtgH&Wݧ\,C& [W.vŜ;K.Wi4ֲ?v0@PM@BPZRۜe,@T j ?/9 'IVi8$ԆUT7hd Jٟcd2!_Nyi| Fdy.bב4#7`[%j[l*(bcU,_H4n`#Ut@3(%?5,)olkvB7vְ۪FӹV$L97MmsZyJO+{D\w^Ii9Q bG$o9x^O?tgDE~߷9, ecpRP8xwil3=7u(5Y􈢂q;l޴0酔V%/UWq/eCy&kW܈ڙHuJ:| C?c3DO4B^Ē͛kvЇҤF_% 󌇑]`Ͱ:J7G:Lc$/bE |Ɏ0;KL!m^񻋴ubbNlgRf 1 +]u_);J)Ɛ$wm6Nw?)"Qt Nb>5畟jPj@V֟Afx;sĬVqM(ylzcepvOt y䨦iWlCߖ*< '뀛r6.}wڛ rdXɶ TT$92s?L 7#`VӅa)o>  SOToEl ("đX^ZB;q86Jh0Ӯ*\ex{H<\  )v>?ft_fN'ÌB']xVUj3*Zz긐Mw0Fvx03&tnyτ 5~'ۡ'HGvoS3(D5Mg4LMJXWtIuȡ5}#>(je(W)M]ΑFێ"5u$ jd|{,vbnLE Ͷ,`@Ws;\BFwA'1jw݆tl֣@ TQ{Yv=ssv)F*_>gD'e@p{Y>P&`kLiϯ}+ݏ%bd'd4.h>b`)0k N'R6A 7Y] >ĵve:՘ pd*O6fyTb_GȜ,)H U}v]<5V{28tD9"(UlMg&G SӶC) AWI]>moaKI' ^.ӗjG+[<'캐|/:HYuޯ>m 7q]BR ,gŹKޯʉPJM*j }t΋M1Eq6p_Tx'}L@^2xNA.8!G8p>#t '{bV Ԉv\`e*i5͙ (2%lTc8G8#5[\,rlLdƒۚ!7y+[f[os{+(9Hx0ҭ,h$§5 aJq%6'*WǔLa paLgH`h#8u@BH6Xs?|G/cXdnays3kD$)[S/19SFO fJX _KSҕb!,[Ɓi9`{|/Ⱦ|.3]͖K/ՁDG9q jR^-]JyɕyQ(\K-Ȏ ds@6@}e*a&dF(1,nQ9D"M*L>ǔ} ]&5E.3U=33B8sk0Ւ: J6yb]L>,1]?ϼ2);&{)~`]ʑэW&e*dkA c~*%Wi"%o3"oY,o>I%FUXCE3z1<)'/+6Fi@ j !:`!5DIQʑW9~IXZh% |qm =bkʵRIREia;Wv Dg h_Y+f)gR =G<2{Rw /u~FNqO2,\82q]~!Fsi4fpaٍC2~M!9Rm~5TY#_/P!wi8 \쾇#.&ܪH1G[`7NQq=.9Ui:o:68 CAS!4z ;K)DŽBOm\ S }3.4qj][t5]PKQ2wY8ۊ##6>__Y /AW$j6ZY5rߛԳ "Zy'I:hѨ,|Ԇ{B6͑GK)d{\kĶDK=uӦFu}8H6YΎ?06&S{?2zn\k$iӥM&%)8aR4|7FRcpMwG*_sʴFa]}^!#?`mCTu):>[k4_t. {e1r-FsImȵ`bh@Jpym?!n^ȂNvhv06X? h8XyRv@ ۳n~'˵E w>i{J uaiS7JxDѸOfv(GIo|PyW0ҿ /lzuaz 4cBbdu1k\R+/Ї3p_bxDM<ٹӊ'j'XS&.^n:4g)oRLD睏qFvu|:߶ReԚ4hCH~VJo~8˱s(*?~1_*yLZ` juVRL`F f^"?.@MU6=t4H4JbH_?^ r_@ ,@GvO0hķu(L?-x^D=&)^>%y'p*A~P6c0.į\+gۻ)abY"ArvgEX*RK=F]'Y۝'y:Uu؅C>iRz|l<";7ic ;}7Urgjq͇yoΦ;er8ňPgYoЀUuJ7NZ'}iwWNjӴ"7trOuR,4V<>IƫbߥNwq4} 7 ~$O ij- xM/bJIc886l_}(j{nk,b8Qw3RG)^F;>DOoy4oH|`#CrJ^R}Ṛ{&?5i^j4L iS7" x U\\uܺ@nS!-@/0m!,x:ٓo+{~J\ْUf8$vvQ2=uX6?XJIw<6%h8OygoUY32h{QwgvEl8t#7Pw-7㞅(9 Te BYV h䦬ѩ׮*d A`AQ)I.9O]$uErLe-pm:qRcs5귰 d?(](|S$;n7A{~Nmn@vR)F_)Yb|uv5 Ϲss2Naf"`G^ pEXr``|k0 Q~D+0N ϣͬn+g'}/ ʭπ3y&.0]UPgߏ+j,='|yфAMe룞a~_ngPf%щ K&K$)}>=8/t`rαH%}vi;Z*o0wm(vHah|j }A?`NcAl5(w0RBiz.gJtz㨞2+F1#c .VǷؗyrMy.Q qʈ@y1mR1G..bMxx@yB%C,م_Q"s&~[AJ *9m30S=Q0<țz kL$+ OXKDpA(\46dxΓeMF0@YH8^.B:.}NRRe,MZO_W Y|CaRw3|dC,7A-בSI'?zRm RLZvsMj!H z嬽t`@ϋ*nMnxֿd 6nWGv:^ͧ^wݠ]qzwNXzWwB4+d( /Q^v+\۵TI(1dIݍ=a8L2{ KurCR+/tUYne9 ҡRRdw>z8ó(){(3J39|w ?퍟&tʯLŞK.EA^,NҦ$n@ih_7 j3<=\]6LQyE-2QroMB0UM dN{F1ϓOw0yRbn,/>3`:RcEĦgKԙ) LU%䓀(L2 ^+KL*/F@-oˉC$/(Wc!専[[Enh7hrIn7{7j yMA` !֣āoBI8(QxG>8r EҪywNP )*|2z1䦟-+i Oυp#.!x-[)/֊7N{YjT%ty(LT"޶̗|!CGnf`jru3%+;4\+JL`LUJ'JqB}hǏa.zo܌kwr?ժmrid a*I0O4W|3}sIąˆ(m"lb P bG }!F,yꚧq 5Ya;hzٿNzJBU"3Xbd@#v,7y pNA7s\n0$إi Ӽ3;f?f4؆QO\ T ?raⰏRkԤ݇#;fW9X<9Do3zpw-Rg}_5soU47֟E!XCo2XzL:% 3C< {YMn;zFf)T3Eia9]gUhƂ$DK%QT+ѐ:5 W׿J& b뱲?ҋ*%S[W?&mA)̰~P%}L@1lDWن!@A|=cdsjhtq$'J!V1^ ^R`-R(\6[AQ^ u^:>%f)Goéw++hH@!P'Rym LA\`VgL*S$# Df'>֌B7){z LMZ=tMhX!`,܈q*̪.Y%{ "Q.?o$j Ϫ5R ȏ&.+a|:n'Xi^OTe{gk*N}`XQ{3p (> F(g>2Xkrzgt݃v= %TU[NaCFQmV=P-?Uzzޓ5*`^Un 9!a! ,UJTU [9k r6fM@16;3i,j F.iq#Y"Ϋ!D6B^2s ktU+]`L^! 4h.KB엙6}ѥ IX%D41^X/|zyu+]R J<d#] JGwFc {Vt\c=I{Yfx-ܽfKbf`[d4ə*LJߥJKAGAp)7_?OzjGNQ i3/ePm+7 u56 '#OnS7@uGq{tO)Gf(,@ l'򿌗C\mߚIr.EU{3qwjxɢyTcHco Tx ANy﹒tmm+0qBrm@z3/UDl˹7zda8lOjپ.V#iHRll{}#\ށ?uRfXQvѥn*BX_5|pß^.M9PAN߬30>OT)e lPgq\>JD*"'HgdZ\^{)Eߕ^.%oߵiԯ~J5A*bu|g% BZq~iW`bwF|R!)fV)J?^0 (4]$5%6j0}f _L%uȹBd_$.vFsQ5K1?^NV9TMMhy8/}|iׄoHBU؜zi9oϲ30h=eO. 7Zwkۘ`\~OI~=VRIVC0limtBd=hU%=u?,@So&糦Cbv~L ,Ix0}]!L̴? |Gu6pxAZ, Gw^,NHiO.]_ w6Y!blCu+JY='Z\uO1im|}eR%f۳Ah`6~wxv^.8jq>q)9aXXu un"rDpRC..@ K2^N~Ai괌:.QlgI0%QFH(DO1E?XNd]3YedULxx}˪҄AB UUd!V*EP~ ݆'5d8gգ\qV"49\2,asnSH_(5r)RW nM04CM=n0Ԁ KۖeX#ʮeIwn(\CWL8U,RX :򿧾XT'PG1DKއjT{/Gtv|2Z[5w3Ζ+. R'?.Z_ޢ^ED5r8nԊ: 2"a:+J\xf*Zy09˃Xۻu _w+}[߿g jT g *mD Qғqb&`O9LGwO*ѐ~|;_jÃEdW6u,!;m h+G<pSJ!QrPw]ڮVkD{n0 `P9B20yli˲CXR^=ܖ?<Uv& ؘҤX&O-{!`v1 ՗gvg ĵ[T= RPU\xYԗb`3R2аX`K.1aUT aV%3NV7dOU9 ڸ"^P1=s$~M3 yƥ!i6nQTi"6^y Hk œeTC6XH8A?-IRxSB%Sݼ Zy^K[N3n,Y {ynr4}P)ZH8јo9,z kvhkYttl[)ӽLiuIkr1Gbs(v\I~*ղi}Ē6pNuq}+m r>_@JTp쪾0yɤutL~l FSҎQ>,|]xH3zآb}P?H Yx&ފ%s=oN}B7 YNLjoC<~$:*!iЕO*}8 t.(Sȝ 3tБƁy&̶O3&"Zd࿮#`ǜ̴;jOZɇ:\p4 f U,>D$WE $E)[r@T]:7PDQ(kYj6 xLŠdJ .̊D aURce}D@V/:$Y|XHh#06qKHmeC.h=GRء@C!y{IYLG!,P#B"w[!r`leD`2=RPr6pe2GR5RArv`tB)^p o`ނ_6ͫOa4ieFcnŃ0%*e:)!ʦoZy8xM< }wD^ha9e0 t\vB̢qRe,Ad2L:pZyL^`|{ʁCP_2m# AA)yh3l=i uˢy䫎 #Ktuqs aœFHe/rF^8>O{1 Vu5eDø'ajPCr/2N![J"D]24jM7a\=d~R $׿ Kh}3=|RI%OS*u^%WpQ O"˟39 ٜ\n8͒^?{0 |._N぀=rF t"{Et5R[|ĥCnN}K'\QG{i-G[/jT p+XzilD AAk|c]h0&+ʁ8Vx0rA0pLL)ǪJ~7« A)}L /~FKT+op֡( (yy %DV+bm˴#M3 3?Rk)4]i+a%Vs=?}fȡ M:15FsvL@/WZ/FgLh3l`Uc1ʀSk^j 01^]geƽh1SyB^0Ќ{&mqKczIۄ+E 3vLZY)2 Ld-֩?K0%FM*bڴV$Fb0MAg(ĴL>TW_2,szc;#*87Ɗ4PZ>IOї[7KSTEw^puj/2NQMecp?;D#102Y\v-j tIU< t+'7܏\kmx94KW|`zU+]*Ty(&os!^Ejۃ P3od|DY]~/`\ƴKV6EFu`Mӯ<̮F$vu"` w믫 t&éyF|xhBΊ3,P qu!CwmՋE#ni_%6 r]4>]cK'ԏsoCkF%͊y?z0f U@\W3#TQAA3A&wwZ=D$Bc2B?lK 3;SD`嵅=&:4V~DwcM]U6Wc%-KdK ,щj-W+!Tp ul~-)Chsg=PIӇLӻŅn%O6^!aN#ROJ~5ӵM'ܫ#8#G޽B"L~s~SidO:Ib U6 >.~XLgfp+=wˀ$[ ĬZ%yo YRԬ1ͫF*ih+d\r};bUoiwlӝ}f`gnsx>T9Fcqs sǐl.px']@ةrj١>: =-:Qep^dT:U[!ap_(5NBH~U>Ƀx&\~] kxr:)y":Hu/_ݓ-> OBIhbXB_aǵve\(GdL&' <%=:%"dӞ}t E₎?m"֦[NWJ)zH9ݼƄcSg^Olww.RZX&oP>vAYa~07 xHsxdMK ܖ 7GlSz!`՚_QpG,o2n7"Q,n)wɇ>VI@~ [?Q ^1&ș"P-~Ls֗[) `B'f$Nk~f߾'_Ntk. +K[$͎Jq3#\ oCIX",Ednqk t"5eg 15߆{?'Ʈmb!7$[$mvÄ[;qqtް|/`y1,>(G#::=_t'; -r=JcfPC(&#FAQ|~j6pj ,C#/.[g`1Gs:sukܫEwVlbZ,Ru@ē#ZïB.牦. < k/1WxstKO~/V .s2RZURL.U฼+!.PDuˍ$*|=~.|ʜQbGR(ƶ?튣 pxD#.?a(WW.ʜj !lc]k uvGnGwI&=$@`_o5H=\6}Ug ٚ% t=MCASOy[׹F<& M3VG.2*KdvI/.^mFeC ;Q\{&,F{RX*h ]1Txo)=FȞv]{3? Vœi0d `{JUu?qկd?!G2~5dC#õQqi~RX|\5H?+S6"b&[EՄ`2-?|hgV1 '-(6 Mb0ec @+n4Eo yQjdאȖ&sTo@@C9DEnmw5>G/rǶҪ'#T'2{LL%j! ހ4"xB3AJ L6\)fiAXJ\sw=ĹS = g`$@DK~9SFycTŪ;R &M)[qPeP;6;ȐV/RWX g_mg[<|졺\cW2_ u_&gs~炽 ֌3 <>Nʏ#-cīBF}O;lA;\g/Q6S*Ɍ+d‡A+;$S n g'q0M!6[(pOviŞ NoMx(f׃hTg?%IDG72Zkux'籭 BI%@؄$) |CwQo6>IJSRLJH[㗐$ͅUrp-_jT̓ك.f:~;]"o, c1 7}~~[g`Jt|{Dڀa Z|[)*њ ,2B\;=0I}|󑏬8a*Y ~BY?oChaP~keZ@}`6WtΆ䒼 -=42 ya7\$U_9V.hz~{P ۄ|QfH_q>Ak$ʨ;C!-Кxf2 i-79ҹ:{5F%Ufr1fq7YR-|LWR:H%Wtxe$#,]1IFm+nvղ 9{65vGeqr+ypB E>tJLWB3tߐ3Z>yž*"m*V9Pxs%eQ`qJNRj (-kCC|7'LIQ)XGlakm/!ڍJcR骋˙.zai}hc\ A^'G7zgO&B"}Yoޛxϫ 嬶@%+-ĮGEi1s=[8ԨAu a!J%43{1"^yKKMwnj<ww1oP aٴHyG t]'d`Rhg-UQҜ<1X_Gϔˉ_{kӱԷnԫBrLkbFhܰ*fs6N%u9%m$\lU*y`6sU쯐Y,|yʂ| Z}V>:+X sl( 4H*~gWc]sd n""O2ab.<@T( UÁxV[ 24g.oc Z.%9Wl5LP^HjM1&V%uDĪg"2E8ԩ1yK2bBfj]-7ϾoQ#l·?ߊ܍/v/_|$OnH"Vn^DH3yBg?\1 $:ĽUj@IfZimEJ%_[#" pGs1B"Z!`_=7QBJu~o]/Ǔf 9~$6ySZ',Gw{,G&Xȷ=J湑 J%]A $ <-g4b'Q Яmil$y?M1OSdu;NT݊7:TnN驴".Mf԰`ӱ/&M9-ɟ>\Xe2!xDe0`,;p`&K7MW^iAE ?,RƷ-$++ՄD{- дxMb8%qC'́C:ִPgQf9–Z gzWD܀zg@Մ6ol:Q 8κzE}?06<хAĤ^X LO8?-muGI*64&MƐ(.)i< jBZ/Mr1̏ ޸!ΔMY慢]1[턅B?-p"Y񮖮(Ok ?H8i nk7Qa>ggh,¥|s%8[ۑy8+cpOT#w*_]Q5H/^3L_a08orus $rˉU~e;Vx&~?d0@Ni䤛y2h@W,,A7ガ?bRbJ$< lM5 Ğ>Ua2tA9|fUʼn_ZzNwl@Kuspy%dyu)>'O_qò;9FWP=oݮq5fÛ0]0MwA749aڈ] պpgY:T~LN#Km-~-w}>aC\3~KqyRlCHWUlA!Q>q 7j('BSTWB2+OC0) J>=9o%|}uݙųWtD/ $o\Mfܔ,febEl.^P}i |Ԧ}vT FSa7|E=TyttޤP[PKKGQ:a[Cy$0Yʸ丏gb.W˩sG(eGOݬTdŽ-D%JK)̒/6ܫ]vYEX]ueRA֠Pl/,} #w`bpzA&RsMbN%^lBoد@ȶEE.F1~B^̩_$mNnYE&o8}5}9)l4ݙ3jNmSA~BDpAXz $ VǠp6Inb7p{t;{fO\ }lҺv;FvG1Yew M&.z!ӉGs'>g*NvF 6$'-;!f=%I ˚bk!yI." i>C pItZ!\= XޔH'#wF yjMN&Z ^cr XR f$-S>UE".0 Ţ]jBz腐 pubjS]V+r&gwpw"O>&=s W2)?/9M`5,^q;Fo!`\"=o%iĖ6tJsUQ*Bl͟7&ΥKas8cob .7 ͧhl@3U&)v`:yZ՗Ve`)ץ>`ݙ<%ǣM(UwPvSղ0vyUW[y ۪ލra MJcHKC$'~ x[CG~%tgWZQ5Nf}e48Ҙ@3"MA_cO¦7\9Q.t՘vO0' _|l-uS+"r~F09h1= Ilدޚ'K"ux5r M颈H ebAj6V.< V7!{Um0X4z0w[V SH?˗c0tܖg+-8 k-o6Z6CtxNj{jGhǿ ?Lk~nK\eWܙN^FפֿX!]i%guMӎQdIB(b&ْ o]O>6eޠ,D7.IܴCS&_+lduk}9;w5Z ͈ORsvi<Ρmɵg53R|޳(%4MpMh"/HQ\Y\ *E۷d,t*/bu*Z)Ӎ}3Ժg@]?ń 3O+=kʂjpmv0<7>DBsL h#;@tPtM'Ŗre!m9Y]Xشb=uJ< g%4L^Jj!!7.sްhwjj%Lt)/jg⿯,,ģw|*30(Q5WjqAK^j]7*7zNh2-Y׆})PĦ#^:2,6Q)d+2qGn)\sTL)izR7o:ۼ!xEqm\ecbrHĴ@J.݈'=l5<2Ta_Bs3+) f޺CT=Dɂ8Ǫ+d^~})l9ջ2p,5Y;RSJ0 oOݜ :&)ް 2 CD")Ƌ;j,%G+oh@[_6Lcnqj|K=y V-6&q:|D{H[k*/|~p |w: +8#>z\.bo}>A0h~ihcܼ>;͚7Cd\'q:~'`rV]v|ਠ_aDq^8ڛ+SإBu`KCy@CAoXA5si6hV~..קL)0'6ǔv_.=ǖ>*cWt$h}[2(O`a.wi_gFy3K~cj&q+2-9 u~eTk@lX"]&ǰށd2j#>lހ> (wT ;\(<)LH.0:o/@&,~SzGrp8z;Yuŋ`%Hi]m 6/b71dD t*OP$nC%c±@ɘ0hK'WXanȎ JS|ڡtOpW>DfWf rˇhJtc<2$u??J(phk7Y<ۀMIJةR BЀ^ND$-AieVwc(=A9cT*&M& @WhXbl}Bd3s#^ oI_Nh$@{ _` XڑY j;'7_Zx;mNI-2]<IS,zF4V CՈ=ɂwfAYgMye|y;2!Crj+ycɸ)cl22D㹯[:?)n4?{`t9^&~EK<@ RGetoNy` r.(I"XsbaW w(5s&1቉p|Ucbi.!/7zCؘ/g5V]DZz onih%iӂ-hT9nh5X 2!` Ι\^/[5V#el?8Jέ>s@+(ꃑTO7@^CTe'_)-gf,J,0?k'$A|j ^K"{Xޘ$~,bkwK$&ٕMd%G$ M:4º~kFYH06/2 =İ*ɇߌ V>I'?HS0mpo͉$xwdaAj6̛-8ZXl:t&kh>)OTr|=]5)Gdw7) A ǚBHYކA7'ggД wIY+O,,X* : zC9BGU*D48?>u K bJdu ;$C:%zAz֫' q`s+cS3?[FQ6-en,@Kg5 2O;&/t00O)s,8$ݫ r!W'R1;:5+{$ 7 2g Nb;QA^aHKgC ۭIL%ffۭΒY^#F*O0:oHjC~3P>V'*rTEpquq$-MiKl#ח5@pAk#3IFǍ鏻$h羮oF9ɔeG"ʼnz"/>PM  hj~[10$DBNZP,6n;p)wSxe%{*i^T9jy;f*ԟ5'O{F0`b@og$_|kXߩy.Q'a.`Cg8V`ω9rX-NȺ '.?m!$, nXSG3 t\2_gxʍ-[ q^6=~M&7 Z#!7#Cf!G6#:P3 <a/yRdtbM7y:ar1{Fa|0k\]J 7xB*&ZqBܝ>vZ$tDX9K\VYU>0ɠлwm$PFl&UR֒(GpmX؄΀UҸm?ws:!;ăZ1z}/AT(vp,6&E[`nP"sw,f `דͻ.y >7.ok@ƽ1AҁVmYχgwtkˠFK,MC}ި  Tۯc7O*17sagodXHmUd&4(9o`gdx:)Z3g$76͔,F(@{-p4{ Q[FCY1\4:\dF[N:6v `?N"<ßmdr/곮B8zk}xCU;{oN&AЏ\s8]7MAXHncЅ l[-AEVb?+tz şc^lrlM: /t+o6?n%I9&͜՛D1 ٓX2شwE^8N}ie D&]qfzoR$ֽ]{пXq =LM$5$ LJ{Rs` xFtJyl@N}܎M*}LGʝ{kTbGW=F^5!&=k!2ݥ5WX*9:Y *Xu8{sc{m<¿;5K*=o㳣'7`bD{t&f{h1mұh_hCt'_ e`ulsĐ|ʲO̳YU \veGlО1{.g'@6YM辎c5e)ܜvK( ;xjW=KJr3G4SP#[Hs ʩ.i@Izek $&i'RW8Ɇ~GʿO̴v $M(`/ @jj`O֞;OE%u2cV4ҕC:>;W!װ:gK~kWrD!KqR_|jE"AFۙW\@d$u"]q?=)=K+ضIT# Ϝj eN]s uMg}guVqJ;sNsTD˄>#{ׯ^ Ѐ i?pAt-Ϥ w:(S#:m{A$'E6{j/n>יMY 3*ґ_NdqيU>ғ@0_+K?x˫Dw^4yDnxSI UC44V}>y' P`8︪҄{c:4Uf>mŶ£&]No`aQ SutXdWRN$lplGup OM(ݷC[}}IB Jn6OY3SIrp5xkW4N\".r֔,X*ۯ;h=Mںd\43ٰ:@YNH$R͸Zse.؜|SĉO^1oP!'E`=.RPgu^Q;4lT # 8nW G2]Mb6zly-e~/P/'DvI^0? l[b=C}tS03C贙m̢GNڌLcUa:f(c mRQ |* жe -'荴HW)K|{Si4to6hR[R^>a[2NWK֐7|&[bxqzC%J2\B0xf}üſNlK.Eο '^e &kUɛ?^F*fͳh{: _^F_T& ncx^=tONjC|Sׅ#E!P(ΝVS]ݡҠr,2R\pC-G-ZJR؜y0,KWD-Um $uAfC ɱ5I"v()X]gK.N*kZBν)H@<`l@OXKGchHuKR v c peUvx׿OOOOrpLndsu^Y4yoQIݘkq0lͭ\6Y_zWw'4QʢӦZI[͛"Lh6Hiwb/9]czAm=Hf8}w# $~RVՃӫ%o f?+P/;h"@I OvͶٱv_JJǗc`e{;ΦacKjв %xgܩ|$PC%0jQ~ S]/^nL|t}m SO ձQ{mA@'cJ&/&)DDTxQ+Sm"q© (Z)Ka˝4\_q.Ҿ$x֐IvgF;¬PCi)I%.4^ ?<S*_Kb?tG%CWPӠT3w*J~ C]FWe=?63^)2rI[۩ :mY'nj.v ա#3s^u94+8&eUDz <ȁLu V]ZD~lM6".(=5g΅5+!^N91EҾ`i[VEf.h,2H--jDhPqs_c#65hv/FЧPaOC yKMfxa/ev cN@rCZqzCHWE ` xRb& =ZDahbrWzv@m!ƏX>$i&Ff=ɧMӒߍL?Lx|2>dp?Xgg1'Qb'd&7@bū[lmv%3mם{V|U`  )׼\ŗC:Qp3t)ZU Uq#fnV݅[SUh{wF[Djp?Uݠ 5'?֘YIW\\8}8'?G̫8@^#,dcܽWŹ)WQ5O&+_^s#8mS쟙{V96~ޒ0ytD(UܞB92TJdFOFF;[2^f uKۆI|0ZW_adzoqi36˷lM$v#+%;8e\6l#0Ҭ}V& zE2m %3Ze67ߓÆ/lPTMT6dH 7@9Ѧ6qf^4Ɖ`5R>4rOu`l1[_ 7Uيrvv|b ,c1)=W''G- O\cDYy# qH434nBí(_NP$]]Sܷ|xθiy-р. n[Ԭ-S1:PHve`N͹!4R9Z Q{]Q 6WUCYqZ] ilͣ8UTVu=Ƿ()LqK3H*f\;Ra,|_]yeD/+xm5gyԺ#_?u73ͤ' QQd)4)}.(j15>7$% $m- 11Ě5Dxm;*XMMg_!a<()GݳֺόF1="M㏻z&.(!;.FNڨh|͎RT^gB.^wRĞgV C)4lpE|kBCrS}Oxj6@Ǩal=BJ 'eafkm]i{^:eW8ty Jr;fom!0vdIZ#V5iɠE~=䬙?,ӑv 1U.;R LGB? (l76blŞAj5._$UjxX>Bzu'I#!Bu}f ܁Վ|S&Ed^D6hxdET U[V2L׌@bϡiZ/_`LxKE^ur5sɶ1ڑ*5eXMsө~S׷cD+ڭ+wBg3:ݡ1: UNb]RR#aJ+Q)D5^(`Ĉ5Y \n%9O5\.$oFy]^z@iS{?֝thdbX΅gV ਮeKhq~y 5ɰZYRL%)DJÅҨoL30" i"MHXc$ͅC=K6*QK?MxYK{h %uywy'Ũ#]A%wqD?'>]S}վ@ I0ӝ(Yؓo"9z]T&E*…U5+:q&U~5ri mq'0Y&+4铗g-%bkקRE<N8a{0gn90#ɨɩl$% խV:B>Z'S/Ѫ%))D6!.?Yqͅ7;t˻7P(\M;m,=#B j|2 `iu68Ŗ\ì/F+EKboϟlݰՉ~aXqb[<9`#TL pPWLt,?=:t@/s@G D傃P <~ч8|Ԝhd!G[D5FJZTXX^9&T 1&m2-qR6Zp\}4z0ohxN^͖o)_nl)`4?fQPmQq .{oV<7utT|#*LhpOY)AZ[] bǚ&oZU-P@5 xE1PrԘIJ̑=^F$Wdz&$n?S6!CA1+U \Xw_:_T^VXtɀL'vOߚH,B7M迢OLU{-ɉӮ!K8S^FR˒MXşDVsYżlePzV*V?u+h'MMՒC*x/g<#WnY2H3;(XGV2 Xa3gd{\Kڰ-/*-Eԓ؀_a^|O/&niH"Ra uYfm)'P3Fgfa󖄋ttAr>m)^"/B0k;3N#UՎT6q}uW<%`^Y>Cnڄb DnOJzrCsPZŭO.JP;{O lYy4iO"Pm{Gt6;Gt}1 >:l_y&-n[w::ܹF=+p"$at|zWˢ.Ϩcn, KQͮf*u4ܚIvw #4JJc&1{7 uY {^̠a~2//qTOk5FisH!<&/lW%3PtJE'u0n, );GwW#nXDmK:u/V&^.78Bd7~1zo0%'8a:Z!B^bDC"< jZ.{s-vU`k! - H/e'ɔ wt=@-dkɦ;2X")tcZ\?m]$_UP4)(nG?'XP;:}`ub'|4~M祯P7_q_J3OЯLsx@9n XiD;yewXiE hoO'nb= 7z^ơvV9dgk~Ֆo@aD4͍N_{sr 1#Kt&) 'o.|ACqmQKp8]>ohT3b7}9M ";CCJgJS&S]*آRaNk)OHIG[Y0> {x+/ۺ~K5rЅ"鱡s]ZytA[Gg_0>ypRl=X,J;xa`,YQb+<O85 Hgum T0:!P3!`w;$hΌ^D&YT>_ZEzM^kvWjטy1L!t}SFm>67#WlT>P+@c0. kjny;><Ȉl1+`)G*{6E a.H"F`q 'BZi۞Al_1`mwSfM3;o/P<|f!$+XX5`Te,ZfFW|hY r,v/KA_Ŕɜ6 etDHl]wnd0S2y~y3#+TZB矑b~qP }; ZQPmwsF$3;6irn0ѷDlSƱ T$rCI,U8j,K`U|Ba}8_}l7)!a2F:0b Ȉ;^B+huri&0w`ԣ-y-&Mise_wmCNG>rMz  OA΂b~M.y?R1VtkCX昜BwLjho8W$_ZHZUpЏD!Jbd=\̹2W=P$,A7DnoCߨFek}q- _8a ~K5ftkNuo^NFplb(p#mmDiOuc&ϻV)Ѧ _Xꍽp2I9L)<㒨V,{&JQ̐fo*3(6pCԀm 4}䇏B,2޹&,9 ĊRM" Qv`G4=&X8A[/zǃx DSƘF)FHq*; *1J z3w+ҏ۾n +fk~|{4Z/>2NUP&Gj֎u|tl*{dmKAdJ­c2/d]hQqZI$1ܷIoR'a'NP=PR]YTdf$7 ^V]vy Ac*d#aT:gx pY)ĂLdzX1pIfR#a^uL׏HK};'[#?y]EEc,. d҆i`ؖY[W|)%EXo_Ȍ~Ү=nQLp5m! bu)hB̐"mLI7C6ovIJ$r̗9+!^b̜Nv6gwpƸJ(Pٲ=LN SpОYI!{' @!N{T^\|FL0qڠ\>/Նg %t긷pY&ӅjRO0@!e Y=QX0<$Od>J}C]f:p% TU4/\Q;0~5h@R$1^ .KqJSotlɍb1e$bGi3,%;ҽsogNvbQ\̎qϔԬS./7q.6'yƥM'FKfyu^ O}rpZm+NC̩G.; CJD# ۚ-oB͹crγ  e/Gi.'N{*`qRwn~D_NVcAӴ^#hmRr#݅JĄTT37Y𔚷ʒz5}ևiMx|,Սmp]{gɦ%7M[ Xol>B`j eE@; +ss d3[x%L4t6Wo?A]|yru!& HFWbp}眎}Ǩ`#Ktwc_" t*ͳf.XC^Ka2mal`xϕW/% T/мZMUŠh&{ʿa5cQEi S/ y!RRFk($ 4:,g+|J*lb|a,H*~FwBV}Kګ aip[ ʞKM,"#3 fFHkjDO+pp C\fMϙB}_mTYS ,jgVby  Ol,(oe?q-zdͺ$ i*ڽ't}_^g[[h25݉ieOb-ʞN[NY*59#P}d'",ҹ|˸"\j#gg͊@<3Y_I:%kQY  f3(wU |ff*p-0etAtM!ޫfuX!b I \o4 Nx[d͗)~Hwɼ 6obj"_󄷇wPGD1S>2SqDtv9‘_hT[ib(6g& Dc'Rr/#<.tKmX80wv?OcD=y1MT: 8! Ɨ_S}mdNBcyi-z=]hch35A^-2O`d ?8wNjaC,5$LQO8j۽@)蚌H<{LMZ>kn>ݼo(Urm^VD,kK10o,E nJ^Wa"o{Ub#u\ث#屰<_ 'Rr@7f^6*-3C6KH́v2. e]4UN`7c*Gu9ŇUQՇB)!6>KRyygTx ۭ0RHcFg#9ČBkU7z NDX{s;U?Mx:;zZnҐԋL$cF,o̎m]]gGcW1qavN,ib E*b %#FGeKR`%piڽ+qP|<0Z7 @ȶӗ&k+CWpw0SxIYv;]h|? @RC"6 +YIXҊxPc4g ͏GKR~|56~À[7GS 4@h35mgEPL( % c[+F?B/հ?Zޤ I]C{"`Øi"Xd9(v 2]5XYW3!UܐѳMBIhEt _J`1\Sx$>e!u-BDreΞc681Jךs#Do* HB~vu@zCُQKN IopGCwY65Xi Rw^aΦ{Jjٮ,)7h:!5örY{uUʝut튅:<("">:!qX&[E=L4C%8}>URH!Z(2Ԫ}C'q: b N|f631"oaƄX 0u)`F Aa^0^8jyC.FTȶlA+Q/JQ^H|&_wk_Y/(bI6YOA2XUn|)++Ò+b:}2VC VWTT"7yZxv|DN88c&8N!>=7f9**ٞ~q=&0>0GZZ }BJ&{Kyb橲0Sm2p֧469 i-YB_eS(VkŸ0Ž!*tJ^R 6@[Ȕ7KA#[2V 8/Ky=iSb rWx좵eh焻NɅ *§Ģ883grƁlc{س(oߚ*vcQtYWvLz6 E-aingH/n κIipr؃#gFI6PAkzϻmeNZyqk8NNqcv^˹pq;=5biʕ/ìVϱ _ y7HǤ&KȮ~~6O>+PU$^}׳<P0WߒDIG%9gY5<5=u_|OWX!"(׆U+Sג*aXP4neܖ` d|uA"JSa}-f'BL>ކ"4 R_NDk(7t SA>f_0DXDP rK5~wzvQ:utg.)R!p؃&uL0AŲMöofķ=oF%z؅(70G ?+?eB|(ytP5K Jm)p}S\_}9.` IaBC = dJ7 @"+ B!&O1Ԃ99`<҆WyNIbFiyW f=W QpW+"4@birJ N%0]BN MXsi$X уq4Sف6~vl'r6h}dz'@ht.iM)"fCSKO{TRӐʅ So>QNvvHSͅsRKNiT=q?nv W<g=0ލh#c)S.ևvpf2 2+;N '`d.SE7Λx`hlWa_$x!#L b{ٝ%˝I$0|9Wx֌kLٛ:cat戢_UCya$q;[_'`dXbPJjN f U#눬 MbX;̏:}ES{w1fjUTp"6:]Upn^F[W0 lE1`(쪴sO>Uv…\k2Em"TBb "/e C@R7f)|uZ0Wx_,kP~#`'08?˅KU^e N'S8w"jg}ړs.YCs>-k.pֈëB08NQ/̓F8j(ĚGd|NodͻID"%B^FgעGY%ػG0JͧႫ@j-#PWX(laP%ԫKKea+ NRG\dE@Abz " LzO-ԶJM6Y"RNHOݔKgDfbMcĻIv T 66Gsh$E!I?ҟNL@P6%gKPu(/ n:&6٦s2Mr 8.(bj&8[?+3+ [;GM靛M}B"̧ `;Uz!o1/W1DΖQHc?@,(,c^ d0t$dd ᪳ gSCBܸSKpM|=" 1^ `xemF5 =*a&$oH)\@a`RU94=HFX aFէ:vqѰ崀E$wU>/C5ǤEDf!8Q8TuWO#EL3yԴ񔢗*S,ޡB LKQT=%{nuP_z#)Ć 5JUDa 뾡C4 _FK@A>y ~ !jfJ<dt>HFOP<P̏j$jweDSQFE>_N5L +P xf/bC,(7S.XQ%̘ū''\nypʉctG)U/93.K$!;Tji>FȌˏWp{`B SN(zs;WhOThma^$[+XyEmS!)PfbABmLs{t.8:.!;t )#L/+教C+DyY{[ m͘o 2"Ds2a[EOzPT|}N2f6|mmB)eopPq-EZ אH bq Bqo@WHy64zmi̙Xey0,j4p+X!X.ޣ;KVEBHB600YʼņvkT j VrT·B-އ={1[ ӄja4G7o Ӱ`~N {j86V+*`YfY~/3!]=@8^L-:~w4}8ld8 OĆ CoK;͏⸠l89|5T7'?K ? tuCewhl ēa`/>a0 w_+6 :34'hcP풯s*,hXZ9+7IYM:[T - YR794:NOhw6r)kw#],`̕IU4S|u]3v* ppa|aV R./*KGUpfU^F:VfB5sL^kds8y[KR;SJ+d a0Fi(6,{'jՅi ֔31uDb^rB.f.xYC/V*sR7p~4SE3. zS:ԭVcHvAJPlWk! Ck}?ϥUs A53|ɊXMw%*́y Hڃ]:/yiˎÂR 83"I@;MZ~:3һjq[Y+=s5xN0qpjK#Yybٜ؆ed j傳u u'ݵ7a<0&XCL4ǧӥ R${ϟ|&3^'qd1ۉ1p/l9^8qstVGXȪ( \-xP~b1< E7+%<dK_ qvc-t<2$ pAF-P~h3D"3wW{uS*{Fov7#(u'>Ԇ +pW,Rybn|&mf7ſ ON:0~燊K6Xh*J) mZ4Q{5{Y7)b.6%FhY2$'ӋdG=!By5' Ek&w$vª( Tu=|2+NC{_=0!v5v}5?~E˞ÍeF~nGm-fS 8T{-. ez/N̒<|;G=~TǥsʀM<Jn%IjǏ԰'Mդ!]alWKbW!`Hv5?"E?W0 v,ʁCۡzxm-8RI쳃:f{Q,2 փ~vr{Cs$ԁNfry+;ra2=)?MMzBxK*Ku{G.%t$QO12w;Umn*~mtc4.[L7G"4I -%kTAw@Ә.r򄔜O_.icg)pc3JwSTɹ(H~gcbR.=Tz?IhCۓYo.L8F OfH^IE|lj|D: .S!vNH!_op ko)p: w}ŝ`gAօ |{k9IKqsSCzҞC.K%~Mː}wL=TK;hx=|{!5NN^JC)v͔N݌O;`(FL2DEA kLO T7/wn Z{ =A CTЮK*uʘz (=a vzxpu9tnN fڑuLXyu>g'oFk,,M馬ӑ}@|F0t:FKbMh{\+L&gj5Ƿ2g#XH~P\/vfD"k4ljPu ~܌G^ /(+IYn0[դpSȷ\!«Wj+2XUoF/AMu{`T9ߒL@ZC}pWP1H2ɤId1au#T( |1ZЩ;h/ Ӊ`;#$@(<$C"-\;Wec9]!6-n+ھЕL8#]q\Rk1$+. h7/gˆ.Kg]_!8nʱR1GE2L:@" ŴAA~k #B̿Y>yۜL-?~{kRg+NLtqU$b@yMZ=5 {~ +kA=`$d_՛:QuZoaq]-j]nkx) gZ(_ v[Bs_[:m_P M(d3E|{y X#$~kC QddD\G(Vr]c޶F-8,p\zK@1"yq% o93r 1!zQMLDy-ӎV[5H>;]tL _S'Q+RZn̦2eź\$4N*z F{Z[~K5r>rU[j n˸_[6a4Seq:jq֙nvҬdy~},Oj)ojM^_ٍ)먱Lvl/l`'1-V썐J0 T.YALBm%_\۳d3)({&)U }Y|{?y#s,Q2K7`Zza?f~sA+[ "N+xYZ/!Ԫ;2봀WOj=b ˠ۶BkEg+k 15?bQ,HgN<9@zL¬N;.f#vvĉ5Q|0LNr IQsT"Z .I[WtTF:/14B\}ąnxkwS8m<0 \WJ]՜m..?,o{j!zԡ _1ɐH4pAIYY|+OCRν}s6}d.mSUw\SB':0*dx {^qw]<4Z(*+qt+!2QF Z-KJKHmL-3\kj IĖKNfo;d1KWq1B-{:bTטL~rK*e.Kd8㭁Zo 줥5%JW .@ ~uz?3y\ HS\j&G{w '=Ckh3_eEh.R(̚ z ֱ lN1zm3U~MTɬڑ,:e>{o:X7'z;WNt"FՃG_D-H+6kZTK 2}f,$gsV\A@~K 2,;p#%85ܶ3?ߋdDSO| z 5K0gحYq /PPOBޤ 8Sj KqRF;">tFHΨvR;fv {bDsP]ty H7{ѭB87 J <11H  -\_: Ɋ"+/ďw&CG{p!U-NF[f|&s{*II:_1\b~_ֱHkPK#-WHr߃Rgxru'b歔Ikfi@JaCC\)u9޻܄$Ry.%/L1;.U' !R8*&MPy*J>2]UTt-jtˉB7vIL]?0I' k-cco>0hm q[!@<x_J%!&X7nLІC /WRs AՠW 9ʽb}a$&(a'tǜBu,#dѕo"| ͎|g=fD~ϑ}7ӻdS6"r[nP}n=+b&9oKEӴz=j)VT\j% ĩ$ :7Or3Ea?]d"oc BslI\K_X;]<3&ϸυv:Fry+ o=zO#˝aG=/zOM}ESA@F DaG2 iҦ?iwZ?`t_.l E5Kr/?߫MWD . 8nKJnYtYn(:q^̚;n3z! "DZŬ |tr>F#LU>|6ӂmlV(.@|tߤaXunή|ZWB;cgIHazʡk4p:NO{-bAz*zeK_w!\ŲsvƊ5@ >GV k8]S1B [B9 lbeS&mq|U>prS3`|l %_XJ1 gr3jIpŭM+i\߀Xܬ4?Dbeh}nJ7@lcZ?8yIZE28;#0]hʒ]ŧeߦJqAmo.*7&( yJgI %Ɔp"k?9i3BUM~]5oV)DaOT]BѺ b4R؆a|k` u2:bP$ h9?`S5Wie?Va7B{ p§n ;BSA|d;ɤ-{VX=0T$2wDSܭ"t@0z3=Ί[keMjYN,/ ĸSX8D#*>ɜ`au-1~XJ$ >{%3k;˩ng^ jk6N)S,ޕYNRS,!J"u$6ž5?#I)?FTj9׃w2+WsCڂ M Q/bM ;A޵#`lum!դX.7+%y<wRX953zǍG=m[EdQP4i`n*Lĉm3KS}+Rzs&JElK`r  1tLՁO:(3u\M$nFQ`/jV1/DaAqM!Ebm& mOT]vlY=32tGZFC]{/nNȰ l^/%'2/m1S5 ԰YzU`4C;Gs~C=ğ]m n7y@Gg\I= 8Brlw+O5ƐSt4P y 숚ר9gMq49S6S~znT ϺkbzG VSˡS]0>A@xZCZmr`н`8ي S'0KF@3qE҉F6im {K _\5ɖ}X®Ag+0wɬ)27ak}j#hH e}^ld`j4Ls,EGQِ|C0p1 s=[j\#Q@%: e"-i%%]d`i-&eeg=sclxY҃`u~Җ4h=^&rS š~LGfNȫӄ" e_g{ ˘u8 tXNA&,\'BG< ?Zak~wwT*x9Ҭ ["3_F)~_# ี̋g[]+3)>]ş'f!@S%w2…qEt?h^) ^fF%+"b)~J.aP:Qp)Wnt|I "e P)]P|"Ic$m^c8GbYtBsrގ͝eLCiSv :?@j΀$%4b>Bckr T :vxO{ 3Ρj;,ѡ?!] r.?ٙtPZyA}Bi2Wl##ozdOU*7ΆCVp4fegݹR?5Xѓb3FIJcJ]H#(z,b? k\YQҀZ W.z4nJ;N)QDlqrU٦:5$o%*Vk3ϕf?WP>y]gE5]0-ld)ϫȼsnky5qgfYJnF G5h!&㟐*-Sekgg/saZn" #W @7`ͶW:Pr!!dePo $wY7_d!a`Wqxn}q ;x7rYwɵi_Ʃ@ ' ~UM{W8ZN1!zi>t.r$` 3D!%:塥=*d3y i[΢1Η@0T?J(I2\8J_4it1omY240,qK"W5İ"2.ߥnnL@Pnėsdm+z#__-EKx"a.;>6Z \i+[x678  c@Y Ah&s.;Ӯ^]uFM(Hgߠ%;5p}Y#$>.i)Dbjs 9 %Tn*{ow'[sG'm0(9$q0#ezxO,)Gs %38h  m?[8rz˙ښ HQϏޘa@a9Vhڍ ch죓0Hނ Ӟ9D!ih__Ñ牻%#BW:_ɗj5K;Q >4_j36 %LdfVbZx`*Cv(N eodܡ$؂xdQ/Bm!Tf) *DmrN ԯfDl+3)<>5餑CأM +*9:ի%\5jE,W 2H 5QNÑti1ߌJ~Z_Uٶk(NFIrZnidkʭ%e2޿Xc5SoY5g-Wфkpnwh7 6n'֛80I`Av\BB;1uqJZ8E YM#Ͻ~tT:N @bB>; 11"$5|OG:%*$)ԗ+|P!.|8b. F@\$nQ( Is9A=;iprMߝ&gL6ܼT[^p?%E$gP7+whOQ]Wvf*Qaxqw2# @.P`j #S>?lҊ6xp- )a3; >9Jml&W NP3 J_#""8_tl!SwQt|W~n?N;Mb7F /h6AtN~N/^ޡU]Cx.GYߑB%*- :Z5PSfXvQLiT<}Cocbg]%/Ɋ CW쓽Ex`#8% DhܺgGN?W̉"g.28 הۑ+zCǽ}y,H(6so-o@˫M#S5h"l+| w)¹\R7K㚺E+XCX̗ȮYRĨ]qgni&U`'<3_T~@L0e~e M_w_lx2-m0{>΢: 0 ~8 ᨛ;zYƌ[s1sno5yiS,~z{5P2Xsg _N ɝ/Ùc Kbv7+mc{sMD