From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0054.outbound.protection.outlook.com [157.55.234.54]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 4923521F318 for ; Tue, 24 Nov 2015 01:13:05 -0800 (PST) Received: from VI1PR07MB0942.eurprd07.prod.outlook.com (10.161.110.147) by VI1PR07MB1184.eurprd07.prod.outlook.com (10.163.168.157) with Microsoft SMTP Server (TLS) id 15.1.331.20; Tue, 24 Nov 2015 09:13:01 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kevin@darbyshire-bryant.me.uk; Received: from [172.20.10.7] (213.205.251.230) by VI1PR07MB0942.eurprd07.prod.outlook.com (10.161.110.147) with Microsoft SMTP Server (TLS) id 15.1.331.20; Tue, 24 Nov 2015 09:12:58 +0000 To: "cake@lists.bufferbloat.net" From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <56542A13.3010307@darbyshire-bryant.me.uk> Date: Tue, 24 Nov 2015 09:12:51 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms080309090104060201040007" X-Originating-IP: [213.205.251.230] X-ClientProxiedBy: DB4PR05CA0005.eurprd05.prod.outlook.com (25.160.40.15) To VI1PR07MB0942.eurprd07.prod.outlook.com (25.161.110.147) X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0942; 2:goDhDDR63NiWtxxooWUaChcCTXnkRQukjY4/eGuKbN1oMn4IxnAaKwTKrBwKYV403Er/Y+43tTUrEd2rxzZYV2BxVUExhvS96NKFfImmnl0N/nhv16O4mOCK6Rf8tyHcfxbQ4677xjfq0mEVGOmXAQ==; 3:yyjuWJ31FmVuDrdXc9ES11jezrT2sXcGCKJsSCtCIRYlz0/xXK8pTOO5CHJXiIoS9oFcyNEzgHyxjLnQGAoeSYQo//w/hUXRgjBOtU/L/6/VJrU2/zQfJPzuf9pp+9fJ; 25:I0HNOrpo1o1hF6djFLOcR1uhnR9jI6oi/7kuGibQex5iocAFotkS/WkChYOwgoo9UMHCfzNfPsjGEFhfwzVQ6oBAndbqwODJluaTWU6pcThS1ttBSx958Q7IOadx6qs0KeSYIvCu3aNqNeamjqOBvV7y3s/0WTlH0H56Y7xal4i5/cl5aN1ZQdaV2Fc5u0FeMDGKQmNcoDZOG8ttMzdA8ZvfMvFke32uUalAmfs17kuEWPG44fi+IXvTeB8S47xDVPJ15L07DjGkkbTLTlGlkg==; 4:VBbD+BGoav0bYq8SVbAZZngD1bOeqlZPtWwSHyLKv9l8yivzx1tHmf70EfV3gDJOhi/OUNhTC/vJ/jYTFG4sLGS0Mgr11Lg0y5di+NB88hfz6wwhwbUxriwNifeXNsznQmF9E+z5EWggGRnkP4HgPWHpFt9DqfTdkQ+k5oboMij9hmEyaujhhC88fZ6ZxYxUIC+aDLC9WFr9OnoTFj4/FmDzwWzI/frbaj5bIiIeR+xvlivqTamDiw8Lo+G4R5J8QWV31j5UaVMZg2WQ/7u6i8fTbufMFA8F1r6WCKiQeTQ7p5OkYVGiOySP7ZnEDuxa4p1CIv9uXHId8Sv0/R+HG1jj/2jYHzbBF7v9QI3W1NYj+zeeuDluwLcIohKFuhLq X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR07MB0942; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(3002001)(10201501046); SRVR:VI1PR07MB0942; BCL:0; PCL:0; RULEID:; SRVR:VI1PR07MB0942; X-Forefront-PRVS: 0770F75EA9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(6009001)(189002)(199003)(110136002)(189998001)(5001920100001)(50986999)(36756003)(54356999)(4001350100001)(2501003)(107886002)(87266999)(81156007)(80316001)(92566002)(6116002)(65816999)(5004730100002)(33656002)(64126003)(97736004)(101416001)(5890100001)(5007970100001)(5000100001)(59896002)(3846002)(122386002)(77096005)(5008740100001)(99136001)(5001960100002)(66066001)(40100003)(65956001)(450100001)(568964002)(65806001)(105586002)(512874002)(87976001)(106356001)(586003)(229853001)(74482002)(42186005)(86362001)(84326002)(2351001)(83506001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB0942; H:[172.20.10.7]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: darbyshire-bryant.me.uk does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR07MB0942; 23:k/+QZeaU9+Nmt5BMW6B6Oz1A8v7Vc+880jWc7ZiuN?= =?us-ascii?Q?SIIQyic11BGYB7CHOf6JkXwyntDV2aCx1+Ez9BA7K8dZ/e8JvSfoUSTmBcDH?= =?us-ascii?Q?PmCunUEGMOM4ZnrplgmN3krKGCaUxPlLKpN1Eyl40KwWFfS3cEimladnVuWI?= =?us-ascii?Q?bMw5OtG3KhlWfKANAm+t/CWx/EItmiGJ9EUkhkHuDvzgG4ueFIHmIHhBwply?= =?us-ascii?Q?c6cLHV8HNLZ0yJ+fGhPsQzoVUjaJMJJETmPqDsKBJ7mei2bhqaKITtcCx6Jw?= =?us-ascii?Q?0rKHygeQ9E7a0oLeR2tqWN/CjkB3h52/EWM5N38P+LHmZRUDgtYzyGhMMkWL?= =?us-ascii?Q?W0HFM+OaS9gZwqK7Pa4Jm3FxrebEjeXqIy3C7lPQ3rqKnKjT/qU6zQHLQSnq?= =?us-ascii?Q?GkR4mEOz+uyNtcPdfu+1ZWiQDyT206/wQ6DPYFpuGYAosYsomU91M5rLMxn7?= =?us-ascii?Q?s4IdF0eU68EFiNcOQr6LI2QaQfKucbv9dGAJo6rnTPKvK3785kEILgmttE7y?= =?us-ascii?Q?froV+/t+4xY0BV2dZOEm9biIWGzjOAHXvOBjkcugha5CcgFbYrLU1/ZcoJil?= =?us-ascii?Q?LSoUg1F9sfeJLzGiB76H9jGEBKvKnT3iu0Om3sNCGOWiOA2VQ2ydg7lH0Urs?= =?us-ascii?Q?Nm+i5zmD8eMRVHorfp6uRruxEcwr02iAxSSfc8QpuEMzOyAhB15MqL0E5A41?= =?us-ascii?Q?cXSHfQ/TFESh2qKMEHgMReQJVv8vtc2zo43BkmMje80us0/qGU2rIGn+eAG4?= =?us-ascii?Q?u5Gqx0x7aGEu7x16T35oCOp+zTgpe6/R7uG7iVs13Omif5qeR/Tku9PlH78m?= =?us-ascii?Q?FKN4GWj97Bl+VUBSnTAoL2hCl4BwFXBxQ8xEbYTxS7eeOsaLSsJuZrUc0rj+?= =?us-ascii?Q?0UegnO5J0kVf5vp5jJ3w4uKT7MZLhMg4Y9qejORTHcxIow+qFnL1c96lndAS?= =?us-ascii?Q?zN0mfojdUxtleP+ipwd1zHB5F8RYFeolyCK6Iyqqpmb55CU0nK1/oxV17y33?= =?us-ascii?Q?WiWDTesgqp368nBX6l3MAMiE34/8Z1/kaeF9Ml2OjvzpdvwmT+vuT/gCQfwx?= =?us-ascii?Q?KBM0OejydsxWLhMY/aFD6lhRB+T1PaIIt3IM3J8IoPZFQ9h2/8ptDQMFA+VL?= =?us-ascii?Q?eAC4VNeEq2iP/jG3JLUF2mjDTEUGeYcFb19xVeXb5LSKbtum2i/zZsTcmNmW?= =?us-ascii?Q?nqyBY/y0mkIrYf2ZjlzP66CXaXzI7VYFlH5+qpIDQzV8OheyKf+5dzSF+yVo?= =?us-ascii?Q?0y4nmc2NGR/MveyYqvezUlqUGytFxhW7ru6mMfInlaAGNlbs/gB+Iq3tycDA?= =?us-ascii?Q?14J82ffiFOrRWER87D3NQuhOBg554qWhOrbLI23nJ3H?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0942; 5:DCyDaa0oWgX7dNdpn+XGHa3td5W6DWeRpsuBJAfYNhzUePaLKwPJk1QXM+cLBoo79E8wRE5S3Gvo3Dhrtw/zrPS5S1MK1/u7DTEjxUES3pruLqRpCQ/QfhYWJftnD+9MQ6locKZ/oX9/qOyqF1oSxQ==; 24:5lAjKlpMP5wRFiR9IOr7SNaYS7diV9BJjAXeW22aZhWHkQRJwtDF/aPMcNJR4QrXvpr+AXW1yMnhaJTP5yLv4ADD03nT+X/WfDvpaDq/y3c= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2015 09:12:58.2312 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB0942 X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB1184; 2:qtQGufkzGw0AMg52CXlQNt8enhaXJgGQuAZTaQBGsEby/frPLGz7aDm39kkaI6oe7wpbLLwJSWbKR02T9ku7hTWKBkogjGbxOL5pHhPfuZjOSdTXBvCbtgSj5H3u8LWWfmvqFFOMk8SyveHTlatpgg==; 23:GmOPEqzmM2KOx6tOBivQH+dD2hTRj72TtJ7dcL1Pv8WVAOynLufoxeQasZLgTFO/8BQHEAJcuVoTBWaB/IEMXhwoHdCWatgrjZQVxHcUKnSoXxlIPZu4jymY98u8mm3oIMlGL/OCcFQNZvgF2Kg881dPZpWFo1pVUZRExWWDT3eaxfPTpGcKv+APkrkGabLR X-OriginatorOrg: darbyshire-bryant.me.uk Subject: [Cake] GSO peel behaviour tweaks X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Nov 2015 09:13:29 -0000 --------------ms080309090104060201040007 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I've just pushed 2 commits related to GSO peeling behaviour to master. 1st tweak is at worst benign and at best removes a multiply compare for every packet enqueued. I'd like to think the optimiser in the compiler would have done what I've done explicitly (in essence check this is a gso packet 1st before thinking about peeling it) but when I checked on x86_64 there was a definite difference in produced code. 2nd tweak is *not* benign. In essence this forces peeling if either ATM framing or packet overhead is specified. Previously only ATM framing forced peeling. I think this is more correct but unfortunately will be slower. Commits can be reverted - feel free :-) --------------ms080309090104060201040007 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC DYEwggY0MIIEHKADAgECAgEeMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYD VQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0 ZSBTaWduaW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe Fw0wNzEwMjQyMTAxNTVaFw0xNzEwMjQyMTAxNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UE ChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUg U2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0 ZSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHCYPMzi3YGrEp pC4Tq5a+ijKDjKaIQZZVR63UbxIP6uq/I0fhCu+cQhoUfE6ERKKnu8zPf1Jwuk0tsvVCk6U9 b+0UjM0dLep3ZdE1gblK/1FwYT5Pipsu2yOMluLqwvsuz9/9f1+1PKHG/FaR/wpbfuIqu54q zHDYeqiUfsYzoVflR80DAC7hmJ+SmZnNTWyUGHJbBpA8Q89lGxahNvuryGaC/o2/ceD2uYDX 9U8Eg5DpIpGQdcbQeGarV04WgAUjjXX5r/2dabmtxWMZwhZna//jdiSyrrSMTGKkDiXm6/3/ 4ebfeZuCYKzN2P8O2F/Xe2AC/Y7zeEsnR7FOp+uXAgMBAAGjggGtMIIBqTAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUU3Ltkpzg2ssBXHx+ljVO8tS4UYIw HwYDVR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsG AQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6 Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8v d3d3LnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wu Y29tL3Nmc2NhLmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIB FiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRw Oi8vd3d3LnN0YXJ0c3NsLmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4IC AQAKgwh9eKssBly4Y4xerhy5I3dNoXHYfYa8PlVLL/qtXnkFgdtY1o95CfegFJTwqBBmf8py TUnFsukDFUI22zF5bVHzuJ+GxhnSqN2sD1qetbYwBYK2iyYA5Pg7Er1A+hKMIzEzcduRkIMm CeUTyMyikfbUFvIBivtvkR8ZFAk22BZy+pJfAoedO61HTz4qSfQoCRcLN5A0t4DkuVhTMXIz uQ8CnykhExD6x4e6ebIbrjZLb7L+ocR0y4YjCl/Pd4MXU91y0vTipgr/O75CDUHDRHCCKBVm z/Rzkc/b970MEeHt5LC3NiWTgBSvrLEuVzBKM586YoRD9Dy3OHQgWI270g+5MYA8GfgI/EPT 5G7xPbCDz+zjdH89PeR3U4So4lSXur6H6vp+m9TQXPF3a0LwZrp8MQ+Z77U1uL7TelWO5lAp sbAonrqASfTpaprFVkL4nyGH+NHST2ZJPWIBk81i6Vw0ny0qZW2Niy/QvVNKbb43A43ny076 khXO7cNbBIRdJ/6qQNq9Bqb5C0Q5nEsFcj75oxQRqlKf6TcvGbjxkJh8BYtv9ePsXklAxtm8 J7GCUBthHSQgepbkOexhJ0wP8imUkyiPHQ0GvEnd83129fZjoEhdGwXV27ioRKbj/cIq7JRX un0NbeY+UdMYu9jGfIpDLtUUGSgsg2zMGs5R4jCCB0UwggYtoAMCAQICAw5ySjANBgkqhkiG 9w0BAQsFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNV BAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0 Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBMB4XDTE1MDYyMDIw MzA1MloXDTE2MDYyMDE0MjY0N1owVjEmMCQGA1UEAwwda2V2aW5AZGFyYnlzaGlyZS1icnlh bnQubWUudWsxLDAqBgkqhkiG9w0BCQEWHWtldmluQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVr MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAugCNtDhytCJ9HOfenUHr/vUGUECv PL1IJXgHMl4cIJmwgLOkXhIcTMxHnX+kFweqvT+eDWv1hzA9yMWhvjLFC4eLoFaV0xiAat8O XQ7t3MwKY5DW0mB1dOnjiFIcc/XMwyYI4KfEGnFMJQkzon0rDVpkl/Q1f/hu1sELO7Zc6TFL wuuDuiP7S73zrz50TRoq0+Ob3x0uOMW2uVwVzf6NLwHgBE2LFleMXblyUMx0IlIcLan2nWiI Vsa3XYd+C6KAGGwlmO4VAZ25KuX7hkj8f82lSapvtKTtvrSoDghXlHH2JXiIQX+Sn0UgOmbX 1KyOe9vN7WzQ+tpPRzpFRffnnnp1VQye3wVRPBumjDxQSFTOhUtslnvbefUQSPw6p5w9ZiXI GJICLkX/MkYN/TwGCvuUG2PxBybSR1A2I5ap+VI/zGSG3XGVEA69SOZQyD+8YjJZfaY2nCu+ DuM64JrJUi2CvX6fwcdHNschJNrrfetpnrx3JrGnG9o+pWuUG1phBg+KKN2bhrdzY79qm7ha 86EMKSUOn5nBdGY3YxdXq/naoUQeOCUV2JMFGOulu7sKpiWcz7HVFacXjd9ebisVLv+jOwll z14BWRb87s1+LBEJn/Ybn3ekhtgyEAhB4kgj0scl4hI8xCU6zrZyDnbXmxSvDXbClZA0PACt f/jhGvUCAwEAAaOCAuMwggLfMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQG CCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQULkW2CpDiQpRNumQ7wdspjFfgX+AwHwYD VR0jBBgwFoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwKAYDVR0RBCEwH4Eda2V2aW5AZGFyYnlz aGlyZS1icnlhbnQubWUudWswggFMBgNVHSAEggFDMIIBPzCCATsGCysGAQQBgbU3AQIDMIIB KjAuBggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjCB9wYI KwYBBQUHAgIwgeowJxYgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwAwIBARqB vlRoaXMgY2VydGlmaWNhdGUgd2FzIGlzc3VlZCBhY2NvcmRpbmcgdG8gdGhlIENsYXNzIDEg VmFsaWRhdGlvbiByZXF1aXJlbWVudHMgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeSwgcmVs aWFuY2Ugb25seSBmb3IgdGhlIGludGVuZGVkIHB1cnBvc2UgaW4gY29tcGxpYW5jZSBvZiB0 aGUgcmVseWluZyBwYXJ0eSBvYmxpZ2F0aW9ucy4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov L2NybC5zdGFydHNzbC5jb20vY3J0dTEtY3JsLmNybDCBjgYIKwYBBQUHAQEEgYEwfzA5Bggr BgEFBQcwAYYtaHR0cDovL29jc3Auc3RhcnRzc2wuY29tL3N1Yi9jbGFzczEvY2xpZW50L2Nh MEIGCCsGAQUFBzAChjZodHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9jZXJ0cy9zdWIuY2xhc3Mx LmNsaWVudC5jYS5jcnQwIwYDVR0SBBwwGoYYaHR0cDovL3d3dy5zdGFydHNzbC5jb20vMA0G CSqGSIb3DQEBCwUAA4IBAQBicQWe98eF/o09TXFsExc+WSyYjt3oSnXyocLzXQp82CQhIg21 5RqNZ1e+hsO7tq8S6hdItUDbKpecpIV59+57ke1zVl2slTRIT19fhYINHH78rVVRPzuHoiDt MXnGrp9hbq3Cz8P4mm8INKDiYK46kyplRAQ3ZMouPG1lsnDzgQAvbCj74H8yAp7fK8if6cxs 28BCUmdP8D3c6M1ffdNNaqNT+4Z3mtOujXXg7zOfmXN0Zg/mEtZ0NrWE2uICGdWjTv9KZiI7 fi4hk2CRpCL63qzmu6BwtcgtwhgYYtuAk2N43+SiyDkyLKGAcjEor3t5f9HivN29E0F0MXTH 1OdgMYIFDTCCBQkCAQEwgZQwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBM dGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYD VQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQID DnJKMA0GCWCGSAFlAwQCAwUAoIICSTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG SIb3DQEJBTEPFw0xNTExMjQwOTEyNTFaME8GCSqGSIb3DQEJBDFCBECCepws1RVX4YeDVxFP KwB8mfCIKP1IgZYYLeSfJoNJKb8LEZlP5bcPv4j8dXbUsNHi/+itJQ/yT9ql6pDeUpBoMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgBPghecvOYA7Fn91k7uvhg2LFbU8LmL iwpd/DbBCMIdyIKCIxAmH12M8cOGdTMOXXfql9jqGwczndxJJbipbpm//SQKLMG4J+SmIzvt MU5LU43Eq6LaMQIu5oJYHTc7whUIRK3xIoSmbgzwwXpEO1vBr41Wv6LQ3WBTnMe7bsXmQrsz kt3hE+vSg+manV44yaR7ZRCsOKo3yWcD9oWGTJ5zLqkCRDgwaV74SJiz8t8vFueg9dSg2OgJ TMG5woZ1t3f2FojoDmwgcWyTGYkAyQdopNoPgF4rotdmYPVYyyp2hlRUcyCn6ZyOObqZJQE6 uNMrXarDVh+hy0YkgFdi6bzLndzcPJn5j5+AFGZLdT0BlQRKpgItGICpkT/9020n2iOc3P2f KXPH5uql9VJ7kjC3YLJpXY9nj5/M0AcgA3o6QE4wIIGcM1SEOAspoqZa7pLTLCtYW7/5YeZ8 Dfern0YaHba6sK0N4zvkyXa/Xv95KSMiBStKG2EE0dGnpBFHnsT5W8k3eqCANCnU24OgluH7 nx5+f8mqozdT89y4CSaFuhAMQlCwpljBZSSTPki3wDHgi1u9SK65Rjk5ySHRXTw9auUiz332 3felRXsR9M6cnq1ho4exepGSTIpZcQxCjCibi3NgQOKqLGNGHGz4ANYJmd2Cw1hfLnWK/0Vw +H6D4QAAAAAAAA== --------------ms080309090104060201040007--