From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0086.outbound.protection.outlook.com [157.55.234.86]) (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 1C2AB21F38C for ; Sat, 3 Oct 2015 12:42:16 -0700 (PDT) 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 HE1PR07MB0939.eurprd07.prod.outlook.com (10.162.27.145) with Microsoft SMTP Server (TLS) id 15.1.280.20; Sat, 3 Oct 2015 19:42:11 +0000 To: From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <56102F88.8070201@darbyshire-bryant.me.uk> Date: Sat, 3 Oct 2015 20:42:00 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms040409000602070008080404" X-Originating-IP: [188.221.218.142] X-ClientProxiedBy: DB3PR01CA0049.eurprd01.prod.exchangelabs.com (10.242.133.152) To HE1PR07MB0939.eurprd07.prod.outlook.com (25.162.27.145) X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0939; 2:b6ZBwzyZ6V/AIqS1EjBnJHM2op9U/ScJDEoKO9FI7lGCWwFK6RDitL/z+CSZCPx1ZUzIvoOilzHO4y1Psk/pY1fdiqa4LnMS4pHv35Pn2yCZXRoGXugNN2KodahZ41jS9KHHfT/7127rsTzAWRMKi2dmmzaqKgu4FlDuf1o6TCs=; 3:eoxDsKJhp5X8LA2YwMGrL/kFTiPC8EqdOjjtx7nRh9OPRORXvbXxt0AcDOxgz6kIN05ouvAtmBJmtib0bP4t4LU8HNAPSTLt5lkxtZ6OVmQmmFdfRsihwWtotRe5G/W3rwjejjWMMPQtHKT5g+SA9+z3I2jknyPyMVSyUbktFl8=; 25:WodCiIY7Jqc8qL4HnqYWfDObj8lg3oadlNvDPm42FBjErHk7A6+CMSSuqHUGQ1udTz803PsXGCNsKlxFK+nmSkZs28+kxEq10IG7QehC6BSLeRXpTMuSwPcZ4jPtRNfxe9AVt68K2X2TQDZGLSOJ4XbzzoPUT/Nj/IxSWAH+FF095YSN3/OwORvZcr86o7Xnh/nW+/LKOcEdc7Z86Dtv9LcJbFzIgl5cXxlcnetbklCQQWSgfQVR/LeYGTXVgkpW; 4:1As0QAc1qysCuN0dYsiaoV/aivvVZ1q61jbrJGM4YdPdDIgvhZWn618FKHFEq6Leu5dXyhjJjOY2I9HeqZFX3bIZuhaO9n7GQKoMcAVkJK+o/Mh8lFf19ItaAtSMPI18z7f/ZEq4SUGz6KjvEGQRNo4l2M4lbYg4H+5ZxPxBUeY20a18AK55MGshfQ2ycwsSjLWAJTiLv4ePqWBa09dJHMvn5XY6WV8lMzqHuF6USD81TiLN3vRK72RDgG6rxnY6kGCi6ZG0TNNB9nbveGTjeWbd1cJVAqaQeIl1H3X/8nm1OPbJ3aXx2f/4qzOonL4aL1Oec4yYnVfqkE8ZlwRwwyQ68b/b6eZhnXgsoHC+qWk= X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(42139001); SRVR:HE1PR07MB0939; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001); SRVR:HE1PR07MB0939; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB0939; X-Forefront-PRVS: 0718908305 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(6009001)(53754006)(199003)(189002)(5004730100002)(87266999)(40100003)(5890100001)(86362001)(74482002)(33656002)(4001540100001)(5001830100001)(42186005)(5001860100001)(81156007)(83506001)(4001350100001)(5008740100001)(84326002)(122386002)(99136001)(46102003)(65816999)(62966003)(50986999)(15975445007)(77156002)(54356999)(77096005)(68736005)(97736004)(65806001)(36756003)(66066001)(5007970100001)(65956001)(92566002)(189998001)(64706001)(64126003)(2351001)(229853001)(59896002)(105586002)(101416001)(19580395003)(106356001)(117156001)(107886002)(80316001)(110136002)(5001960100002)(450100001)(87976001)(568964001)(512874002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR07MB0939; H:[192.168.219.234]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; HE1PR07MB0939; 23:Gygdpb1htQrCkjx7VGjFa2De+Hj59eTN510Mtg8jv?= =?us-ascii?Q?slLO0zBiBJG90gc7LuFCfJsC9s8BDWC1qkWS+grdNHq+fD+7SZIQkbc4fFfe?= =?us-ascii?Q?WjsIQAxf0EIf1WiNDmGIVP8uJEbjssJvl0UdRrtERu3hNmM1S6soyeZeZIRD?= =?us-ascii?Q?lA1ONOx8ws6zoa7els26o0ykWwHtOuBQxMgS4xN0vPTfS3sZUyCQGzWhSINB?= =?us-ascii?Q?spXGNdNTFqmigSeK0uTh/jS0lls6msRAWOyJ8nk5kynb0opcGdijK+BpCIQa?= =?us-ascii?Q?AzHu+KJvq6Flu9SXLKJrjZHUMTAJNAJxxzlx/CoacAYkH4eeB71s7NuJHXAU?= =?us-ascii?Q?Geb6DoXHz2k2eJCxB2uxoZIJdeLimNpBAk1PFzUzD3mwEFuTF18gzr8egh+F?= =?us-ascii?Q?8huT/WX1b4jylUzWQ1jkN8M5fiFrBf3hzg15Nki1uIOosorYcZqKy+yV/KUs?= =?us-ascii?Q?uYbTppHP4i384U1+qQRosYcWRNbtQf1L71yO1CUbrQxasnKm13/eci5bE+G+?= =?us-ascii?Q?ohFh7UW2bmSD6gyed5a3bP0ZIX627S2+/aFCA9xva3fkNfMvC3R2i4vODyxF?= =?us-ascii?Q?qsnk2UbqJ1yXVmTuglo9BL/3Wv4pIEOXecfBXqeRF73Nzbp5s4+SjCIyr/ir?= =?us-ascii?Q?IAXtm3RyyhZ90LIqRboiF0ReI6+fk7cVOUUHV+3Y4dpBfqdPUd7bFCcBR7fL?= =?us-ascii?Q?MRtjh941PkIHd8Ghdrapy2Q9S1HcIp3sk746oyPP4A7lGzJsGlsQv/GgzT4t?= =?us-ascii?Q?WuQ5JK4hcDUS2ZUqZsubzK26RYPPHhli38Hf5DHquf+wriQFnoX+5LB1Hl36?= =?us-ascii?Q?JG3lG6lOhlrupNZdl72haiRFL6NjqXtJDPjATwz9gQDMhn0Jf5BOcAbPiiBg?= =?us-ascii?Q?4h7XRn6qM4xzlEbrZ9RFbXpp0NBOWiIwdTH1KJNtgKYbaF6iKujU1thfT3HP?= =?us-ascii?Q?o3ijFpTr8lq8CRbGy5ThAxKa8kxHNDkki7roev05s4FpWlK3acjH0/w3VAA3?= =?us-ascii?Q?JQuBZ8jSJbEmDQCNk3ZhnWgq5NTsVWp0ydqlMzp+OL8tEMAqdd6EqjyL8h56?= =?us-ascii?Q?E7K6ZCGSUYUzYB1k9GtexDLe14PeiXWct/N8VfBG+kE3E9WanuKjfSnmZGqS?= =?us-ascii?Q?yafW6CO4DmQS0JvU8bhbSC45MEmHs9mWU1ta1Kdguy0XW6ylx8v4XG6ekxEG?= =?us-ascii?Q?uVHn5HAkVl9QxrvvWhJVsNPr70dMSQcAnCo5Sakd6NPjClkmi8SUkRAqa6xS?= =?us-ascii?Q?UPH5YPvUJpurzrE7tEfAgQP/sqxuu54igBv46ei/EQQYWCY73VUxHysc2hVl?= =?us-ascii?Q?eNPQvvgwDiG7szCQnMZDE7wzAcWKuEWLw5rFkeznoU9HmomSqfC3+Gx7sgyi?= =?us-ascii?Q?tQ3JMET+/cK69Ij0gE1I/jV2YF1ERNvUXOxOaI2us+9Evjk/WAR/+xyLEZu1?= =?us-ascii?Q?iRQc4p5uP0fM/bEaAImhXVH46sIoQ366hyVosLedjSemZTJJPTKGFHkesJOy?= =?us-ascii?Q?lsVbOi8M2shPKch6y9VoYUOuWHtPzqjTxE=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0939; 5:+1/X9R3bCsTNXsxYJUrcSWH6oOeIQIa18Mw+6KGr7+QgDaEAfr8XtuwgCCZVSm8X0lrnswJMvqYZXsfhah9ksyXrWbH81pIlHB14tSOSEbP/M3+ECo+laqScHJe7Ct8YZqSLp+Yhd7F1MBDyivI3vA==; 24:nVmt26OkSgSKhO/nDNcBIizWiHXPMfVPcwUUoqvHO7eVu3zFGj7SInyciAggS+b01iZiVxIIrjh4y2Vfm/O3P2fbonIZTEgr0qt7dQQCQrc=; 20:y7+77XkXRSD3QgCQYe7Zp8pkge1MXwdee1qkvgZmuCQmCG0+kA7UaVTohGnHmIs9z4G3T97v4m8P+mHS+tYh/Q== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2015 19:42:11.9757 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB0939 Subject: [Cake] cake review comments cake_drop 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: Sat, 03 Oct 2015 19:42:39 -0000 --------------ms040409000602070008080404 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello All, On 18th Aug (before I'd subscribed to the list), Dave posted a message about reviewing cake https://lists.bufferbloat.net/pipermail/cake/2015-August/000364.html In it he mentioned a change to cake_drop: " I would like cake_drop to be evaluated with some less exaustive search. It also looks wrong for(j=3D0; j < CAKE_MAX_CLASSES; j++) { fqcd =3D &q->classes[j]; CAKE_MAX_CLASSES should actually be q->class_cnt here; I think. I am unsure if other references to it are correct in face of changes, on cleanup" After making the change and nearly submitting a pull request I've thought about this some more and to be blunt it makes me nervous. My concern is what happens if cake is changed from say a diffserv8 config to a single class(bin) config and for whatever reason 'cake_drop' is called. with diffserv8 the fat flow is likely to be in a class(bin) higher than the first....cake_drop would now only check the first class for the fat flow and possibly not find anything to drop.... I fear what happens next! Kevin --------------ms040409000602070008080404 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 SIb3DQEJBTEPFw0xNTEwMDMxOTQyMDBaME8GCSqGSIb3DQEJBDFCBEBZShcRD/YrsX/976rQ iA+o790/EApI8Vgti97ggm/6qTamSvEtmP/nKAXndC3+s0/wHKWdE46cqdfMn5/NrLnuMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgBd5B13OcHi1cVESAdfy2GWtIy/05xY 4PkMnJVUSQY9DBOJfY+AwbGmCdfZ0Ta5CUmd9k9x3eJQEaC1NHi61uoA2AFfOE6b83yftD17 wWEdOPVTWQp1ZzulOAtl1UOa9YPt1dva8s3FvNkQ5Q6idZWi0gdEnGe7yKWsxmuC/Uf7Vjgb 3KRAEiC1YU9C2rZWAABaQ1na8n9eNXl+bDH4LvOB2I5J/7SloKJJV1CIlrq+p9xKYCdNjSa4 ABTX2wdx3UXG98Rtejs3AwZMkQfQZjQHyleAJNpL2udeqwGO72DctKkwTpU8RpjNFFRHLXbB jHPMei6WQmfTfaD2yAvMkIirMcyWT3l/nAnRCVorGNin1niYmSE8AlX/tz3+dULXmULpzfkc 6RK5x0lAz1xZH+F//YGBo+2+Q/CApXe1WIJLdCHf+W+jigj/9F7jUqET2tcRdJmTm95726O3 GoztI0pWFLopiVAjAwjU42PD7VxDU91noGF0ex9QU0tlt6RVMXzfVgIeZ3vOi7otMQPR715b izTB5i+G1bygUQ0reFNJBEUN/em8ktXZIrBVAKdvC+L5o+CYOBa5AlJgxQF0D2KgLy/7naYN jPXgaVwQobpvS5zBWp5yRzVAo99lRCaIaTIgR4LxtkNIHaNgodO50I0aDhK64xBshtJV7+VG 2ocfWgAAAAAAAA== --------------ms040409000602070008080404--