From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0097.outbound.protection.outlook.com [157.55.234.97]) (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 1683D21F671 for ; Fri, 27 Nov 2015 06:33:33 -0800 (PST) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kevin@darbyshire-bryant.me.uk; Received: from [192.168.219.234] (188.221.218.142) by HE1PR07MB0937.eurprd07.prod.outlook.com (10.162.27.143) with Microsoft SMTP Server (TLS) id 15.1.331.20; Fri, 27 Nov 2015 14:33:28 +0000 To: From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <565869B2.8060505@darbyshire-bryant.me.uk> Date: Fri, 27 Nov 2015 14:33:22 +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="------------ms020706050503040608040602" X-Originating-IP: [188.221.218.142] X-ClientProxiedBy: HE1PR05CA0024.eurprd05.prod.outlook.com (25.162.181.34) To HE1PR07MB0937.eurprd07.prod.outlook.com (25.162.27.143) X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0937; 2:tt3kT2IvC7ccoSSS/XM5hK1/c67W67gA86VmnaLWGLB8kl3g9VyZ+hPbOSGtwnDEv/pC9AMKVmbfjSZRouF7wPGPPKcYKavlBGt4XwQTabwwDXWtfbFqa0Ics3vBI5LpKm/yGUXu8y8Ajp0BfXDZYQ==; 3:m83be2J7Gg4VVW9/tZWt9AIhnxM1xUQfkBSHJjkmCajCH4H9tffTE8UZZX1dfrOnJ8rH8CmenRSIPtuP3LgDUHuSrMDGbe/1Qhl/6pYgAXTdKY6MQEb2oifwVy2h6UmG; 25:70BVW7Abae1r6HOL0QemLNO3PB3FvfSNwwpJyo4Uzadsk9xF/iiEc7htIOs/aW4003669+2rI6iqjgRVMLSZMmVCR4yZjFwZ119LHV/UU5OjL9jQziFopXslmREUKeQhBRXrSysU1n0AEaH3/qeWLaeDEn08wj9w+nt0dyFEv+mxwBd6AFYRowSNQI5vjPntjdFYeWERPU22ZR16k+Cv50QHaUmdtDbcXWvMqrLFjNcogipuGVfXkCWQfJhEwETR8oxHUeKaENSq8Pe3eXQmMw==; 4:KTC90hw+goIHQ7b7rrLBGqzqcFLL1VP7h3f6WZRdN9o+fXBiy+S5c8DR7ZFme0J4YI3RVbaZOBg4H1cMZS/HTkkcP0iNBbVsDUFZloZzqVS5f+3WCyDgODU034OzThbhI4F86mY14JMhMpoyMFwbU1OmLcyb5XUfJg80r05RGfz2gh9pvCX5jGhwPHeMEEr6hmsWe780ceXaB/efzc2hy3Rx+WKjt4wcvaSVdU934e9r2IkfcxxiCh0lXoA/HVYs03i8GEw/mE6MNqTDdHuds2jROMX0G7FjIgqXJURv03bRP3H7+5AJP+xVAJRUOA+dTgh5XbazLeZIkR293LqMwv6FfMvIWTq2Cn+mzYAF6S2+bIP3AN/uRu3f/DyQaP1I X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR07MB0937; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046); SRVR:HE1PR07MB0937; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB0937; X-Forefront-PRVS: 0773BB46AC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6049001)(243025005)(189002)(199003)(122386002)(5008740100001)(87266999)(65816999)(117156001)(33656002)(87976001)(80316001)(101416001)(99136001)(19300405004)(107886002)(5001960100002)(59896002)(74482002)(97736004)(5890100001)(36756003)(110136002)(1096002)(92566002)(81156007)(4001350100001)(189998001)(40100003)(64126003)(15975445007)(5004730100002)(512874002)(65956001)(568964002)(77096005)(3846002)(229853001)(54356999)(586003)(6116002)(50986999)(86362001)(106356001)(450100001)(65806001)(2351001)(19580395003)(575784001)(84326002)(83506001)(42186005)(105586002)(66066001)(562404015); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR07MB0937; H:[192.168.219.234]; 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; HE1PR07MB0937; 23:3bHgXogKaPlto6PbWdCro7AoQ6cYeQ+ur1FY6b7mp?= =?us-ascii?Q?JCCOkDDXjl8Es8U/L62jHBEQUatOL9vXOPW4Rdq4XvFToHFvhnV5ca5Vhfau?= =?us-ascii?Q?VCg8QkXeS7JYd9M0VRX/N/wMq3v4ZxlfzY/D+usd93R3xKERuaDxmJEkjYIb?= =?us-ascii?Q?uPoP7/qGgOBFL+opwVZHTFG1LgGsPpfxfEWT9kDvmMJeJvUhz+XSsvlBL6/u?= =?us-ascii?Q?lQ/4TNc36EO2J9d+HcqdWRKXKwiEodarb7cvWn/I2nMnep8+7yPqPR+gLYJ3?= =?us-ascii?Q?kr2BmWZr/9LHa7BBc6wqsHG83jpKMkYkOfwoQo/9NwUrhPTVhE/pyPJxYVxL?= =?us-ascii?Q?+E3fOKTDegMypaJm94xL3lRxfP1YfFfSchGiN2X7lu0KgjM5lLlw5uEvxy9y?= =?us-ascii?Q?xjJdM3hm5SB3UW5Rk1Rz99JMtazER+j2c9grS/Dbn0EUis/a7VxtkPalvil7?= =?us-ascii?Q?w3Hq2wS5e3f3FrUZ8ssUtNx281vdvH3rb1H36pvmur+wn2dFuk58XDbu0KtV?= =?us-ascii?Q?lx8a69CrhbgViX5wcynEZ0i5a0WnAjafI52wJcTqSRQ0uWh5G+Z0GDZmvOf2?= =?us-ascii?Q?F4VD5cj3ZpaFqXm6eOGuBOZAJonuQLNVzXQpfkfm3hCF6e9OxEjAk36mbpAb?= =?us-ascii?Q?OdMgCutLKAUGmZneQV3pAmhJMBDwXRbEJ50dq6byQGHQAGvJqvvvq8PS7WdM?= =?us-ascii?Q?3jKvvVDfhHbd2QHHjzNOG2x2mM6eXV9J7rvHiLEe8xfcic9pK9ll+l/twYNI?= =?us-ascii?Q?RNtgiIu4whRw6hOtHjySFyf43PDOVhyLMKFKTf85kdyrsRtBlmz28408TQNl?= =?us-ascii?Q?/+fuKdNlOcJCEUXrGMnCjG9ApumfWl5Hb3vsxjWgpUAW5Gy1TIE1Eh1dwfET?= =?us-ascii?Q?P1NMKK+gbR7PqrNk+I4EiBpoWuhXlpRoG/WzRJLENNBgfAxH1Oh9ckMi5ekF?= =?us-ascii?Q?bKnNziG+Huo3i1hsilTBRfQXnEgOq9VvKYGXoV/VjsYvGpYfX/UOMR19HkOq?= =?us-ascii?Q?BiOJEd0DtZVY03rfvEpL0GGi1NgC3JhSfjt6XGdJ2Tt/h3xmSrfOvABoMcc1?= =?us-ascii?Q?pF4sBPtBhgmgP3Yvod0DkCES/Y5xo6NIPvL9ePuQFJj3d+opy9ybXT/2/1hk?= =?us-ascii?Q?x6Ey95ca7hYt8Dvb2aAjI+XO7ZfLQ5SDZDrpSGY6KYq0rlQfZcR4iz65bsv9?= =?us-ascii?Q?wAmsLVidmoHMoTsvUdWsvr7HT5WIpmpkI07g/TA9phxW2hfUswPa5yLJ1UUD?= =?us-ascii?Q?sxbET0KUqcy26BBFXvBC0zIkoaElH2UvONR7AIwXmZgD2IgurpOqnSl6iBPc?= =?us-ascii?Q?tV3OeoeuQFN7CZVUQgJe2eLTPoTq+bk0dG2AR5zdOlaAEgCd6XC0/Vhf+JPb?= =?us-ascii?Q?VXlSYAAittinuLK9I4aKi3VdLwDuMCuimDMM7d7AyyAuw3FpYAYFHOPliNia?= =?us-ascii?Q?kg5JdzWnw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0937; 5:vwMNWfP2lzsoaaG+MAwBlL4G/hpPeT32riNGAQSnGP0w1UZ2p+5o0+qbbdEzgmaYlDeZyqAWzFGahroUVSSvC8rCoYtLJ0ZqECQMs//b8YOiN97GzOySLnR/OF6/olxHYOawa5S/2eaaqEGLmFxJ9A==; 24:qIFtAfHzhbkVqVswnhH64OZquYwgpvTYQq+4u0H93amDoMFLc3b5mpwDaceIZzjxBRoGTlrQHt+CCxw+hGH+HzmjFghhpDfPrXJKUyoQJmM= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2015 14:33:28.7975 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB0937 Subject: [Cake] Same flow 'optimization' did not look correct 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: Fri, 27 Nov 2015 14:33:56 -0000 --------------ms020706050503040608040602 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I've been pondering this commit and wonder if we're throwing out baby with bathwater: https://github.com/dtaht/sch_cake/commit/90e792115f10fa2a31327208302e66c0= ab3f2251 The original code, to paraphrase in something resembling English went: 1. I've just enqueud a packet & Oh sh*t we're over our q_disc buffer limit, we'd better do something about it, hmmm 2. Whilst we're over this limit, go look through our flows (cake_drop) and kill something, if that something was in the same flow as the thing we just enqueued then set a flag 'cos these guys are part of the problem! Keep track of how many things we killed. 3 Now we're below the limit and finished killing packets, return back to our caller - if we killed stuff in the same flow the caller is sending, then return 'NET_XMIT_CN' (we're congested), else just say 'happy as Larr= y' *//* NET_XMIT_CN is special. It does not guarantee that this packet is lost. It/* */* indicates that the device will soon be dropping packets, or already drops/* */* some packets of the same priority; prompting us to send less aggressively. *//* What I do agree looked odd in the original code was the 'dropped - same_flow': We haven't dropped any more or fewer packets just 'cos we found one or more in 'the same flow'. - qdisc_tree_decrease_qlen(sch, dropped - same_flow); <--????????= + qdisc_tree_decrease_qlen(sch, dropped); Incidentally, a search of 'NET_XMIT_CN' turned up http://www.bufferbloat.net/issues/398.pdf --------------ms020706050503040608040602 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 SIb3DQEJBTEPFw0xNTExMjcxNDMzMjJaME8GCSqGSIb3DQEJBDFCBEAO6A9EDyQdG9bNWv6L W6kR+oFMPzUFxXlFv8+hRmKgmGXUhTBHf3RopdUb309g+odJFj9YNIy5i5Ft0ejFYrhjMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgAe5PkVvexfZRJtllcM3ymvPojWFDzO ehLsC81sGVEdOPru9+1vECWT8DQiZqZZw4xkd3H0bbFnXhZnZeIVqLeFFHeaCN/R1TbQ+405 XI//5dZ4tiqA/EN97RsP1ybWR6IwLgUrnjEGH40KNlCY/OdmLVLtIGF8Dz5TfBnBjZ1son68 XczGT2+wVEXpuxFLXZmYFZNWdrteY3POAxtSnmYmy34bq7MJk8BVd73Binx5HXrqh2qnq528 8MJixngzUZVLGzfK01xgQYjCYhcamXXHJBF1M+879BpsX9jJeDgLTe+BfAxxK51UQ7ET2ak6 LrJWQF9l5Vo1aRLnD9BvUwD06gquDLPPjSmwM7qsiejtlc3flGqRDejlmKlOs+j7PiHacWgk OR1tMh3r8y1D8XPvru53iTu0xiWQ2Uu32FX9h0RnH0TOMCJ8ejK3vnX4NaC1lXNVkveoXwHh esd/f6APRqSC1YmCiqOQ22aj016d19tDAYzq1wQporjAjsWg7Nh6e5vAjexzSwHqfNoHjd+2 ib3qzXqRHE3GLtsvpz2Cf3J0olmkFTtsjn3YPFfJOqXhZMS2KnQ548ErNMTSrz8O4YnvrU4B tcuIG83P0cudsnBY1V6jqvWfHNckt/mJDYzKoj3YRPAylAuDuVu1KOzQJhJ7GkqVD6neBZGT PJH1WAAAAAAAAA== --------------ms020706050503040608040602--