From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0EF8B455CC; Wed, 10 Jul 2024 07:17:05 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D4372402DE; Wed, 10 Jul 2024 07:17:04 +0200 (CEST) Received: from office2.cesnet.cz (office2.cesnet.cz [78.128.248.237]) by mails.dpdk.org (Postfix) with ESMTP id 6E3A6402AF for ; Wed, 10 Jul 2024 07:17:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cesnet.cz; s=office2-2020; t=1720588622; bh=jvTYouCX/YEap++kVi/K/gFhA8SbgqrQ/xsdgRZUuNg=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=NdzL6RmGvAm57UGV3TY/4bkLKDG2gtlSW7oOyoOiupIoQwx+pv5IioN/XlO8uK9kP OwNCqUIP31a29q4sOWJBHqsshU9X4oipaZjWGKdhEM2QYkuGFdT6pKlL/mPag6waWk nEjGj3jzlOaQ3jMWxlY/K//VtmpM1g8H3U0LWjvWiVIFuZEJpCEmvUFjS6Ct2xIpbq xGZXsj+ahb9rEXmfZ9VxR/IyIad74I7+rGWeXbKPMMQdtI8y2RxwJeKVcrQltg0CEG v6JDlBJU9wyQsZFz3KvfFC+gB/3Z/FfHthBiIQ3MHSPYStMECMOWh/Q2XIw7rtIoXf 942AmyeZytihQ== Received: from [IPV6:2001:67c:1220:80e:d7:f286:c295:1238] (unknown [IPv6:2001:67c:1220:80e:d7:f286:c295:1238]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by office2.cesnet.cz (Postfix) with ESMTPSA id 1D98B1180072; Wed, 10 Jul 2024 07:16:59 +0200 (CEST) Message-ID: <8a192297-1867-4d97-bcdc-9efad20e9c8f@cesnet.cz> Date: Wed, 10 Jul 2024 07:16:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/2] net/bonding: introduce direct link bonding mode To: "lihuisong (C)" , dev@dpdk.org Cc: Chas Williams , "Min Hu (Connor)" , Ferruh Yigit References: <20240412122740.104121-1-vojanec@cesnet.cz> <726f09fd-4341-297b-5676-812d514f99bc@huawei.com> Content-Language: cs, en-US From: Kamil Vojanec In-Reply-To: <726f09fd-4341-297b-5676-812d514f99bc@huawei.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms060001040601080801070306" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This is a cryptographically signed message in MIME format. --------------ms060001040601080801070306 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGksDQoNCj4gSSBkb24ndCBmaW5kIHRoZSAnZGlyZWN0JyBtb2RlIGluIGxhdGVzdCBMaW51 eC4gRG8geW91IGhhdmUgYSBwbGFuIHRvIA0KPiBkbyB0aGlzIGluIExpbnV4DQpObywgSSB3 YXMgbm90IHBsYW5uaW5nIG9uIGFueSBMaW51eCBrZXJuZWwgY29udHJpYnV0aW9ucy4NCj4g SUlVQywgdGhlICdkaXJlY3QnIG1vZGUganVzdCB0byBsZXQgdGhlIHBhY2tldHMgZnJvbSBv bmUgcG9ydCBzZW5kIG91dCANCj4gYXQgdGhlIHNhbWUgcG9ydCwgcmlnaHQ/DQo+IElmIGl0 IGlzLCB3aHkgZG8geW91IGludHJvZHVjZSB0aGlzIG5ldyBtb2RlPyBJdCBkb2Vzbid0IHNl ZW0gdG8gaGF2ZSANCj4gYW55dGhpbmcgdG8gZG8gd2l0aCBib25kaW5nLiANCkluZGVlZCwg dGhlIGJhc2UgZnVuY3Rpb25hbGl0eSBpcyB0byBmb3J3YXJkIHBhY2tldHMgdG8gdGhlIHNh bWUgcG9ydCANCnRoZXkgd2VyZSByZWNlaXZlZCBvbi4gVGhlIG1haW4gdXNlLWNhc2UgaXMg dG8gYWxsb3cgYXBwbGljYXRpb25zIHVzZSANCm9uZSBhZ2dyZWdhdGVkIChib25kaW5nKSBw b3J0IGVuc3VyZSB0aGF0IHBhY2tldCBmb3J3YXJkaW5nIGlzIGFsd2F5cyANCnRoZSBzYW1l Lg0KDQpJIGZpbmQgaXQgYSBsb3Qgc2ltcGxlciB0byB1c2UgYSBib25kaW5nIHBvcnQgd2hl bmV2ZXIgSSBoYXZlIGFuIA0KYXBwbGljYXRpb24gdGhhdCB1c2VzIG11bHRpcGxlIHBvcnRz LiBJdCBtZWFucyBJIGRvbid0IGhhdmUgdG8gDQpjb25maWd1cmUsIHN0YXJ0IGFuZCBzdG9w IGFsbCB0aGUgcG9ydHM7IHRoZSBib25kaW5nIFBNRCBpcyBhIHBlcmZlY3QgDQphYnN0cmFj dGlvbiBmb3IgdGhhdC4NCg0KS2FtaWwNCg0KT24gNy8xMC8yNCAwNTo0OSwgbGlodWlzb25n IChDKSB3cm90ZToNCj4gSGkgS2FtaWwsDQo+DQo+IOWcqCAyMDI0LzQvMTIgMjA6MjcsIEth bWlsIFZvamFuZWMg5YaZ6YGTOg0KPj4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGJvbmRpbmcg bW9kZTogJ2RpcmVjdCcuIFRoZSBwdXJwb3NlIG9mIHRoaXMgbW9kZQ0KPj4gaXMgdG8gcmVk aXJlY3Qgb3V0cHV0IHBhY2tldHMgdG8gdGhlIHNhbWUgbWVtYmVyIHBvcnQgb24gd2hpY2gg dGhleSB3ZXJlDQo+PiByZWNlaXZlZC4gSW4gY2FzZSB0aGUgcmVxdWVzdGVkIHBvcnQgaXMg bm90IGFtb25nIHRoZSBtZW1iZXIgcG9ydHMsDQo+PiByb3VuZCByb2JpbiBUWCBtb2RlIGlz IHVzZWQgYXMgYSBmYWxsYmFjay4NCj4gSSBkb24ndCBmaW5kIHRoZSAnZGlyZWN0JyBtb2Rl IGluIGxhdGVzdCBMaW51eC4gRG8geW91IGhhdmUgYSBwbGFuIHRvIA0KPiBkbyB0aGlzIGlu IExpbnV4Pw0KPiBJbiBhZGRpdGlvbiwgYWxsIHRoZSBib25kaW5nIG1vZGUgaGF2ZSBiZWVu IHN1cHBvcnRlZCBpbiBEUERLLg0KPiBJIGFtIG5vdCBzdXJlIGlmIGl0IGlzIG9rIGZvciB1 cyB0byBhZGQgYW55IG5ldyBtb2RlIGZvciBvdXIgYXBwbGljYXRpb24uDQo+DQo+IElJVUMs IHRoZSAnZGlyZWN0JyBtb2RlIGp1c3QgdG8gbGV0IHRoZSBwYWNrZXRzIGZyb20gb25lIHBv cnQgc2VuZCBvdXQgDQo+IGF0IHRoZSBzYW1lIHBvcnQsIHJpZ2h0Pw0KPiBJZiBpdCBpcywg d2h5IGRvIHlvdSBpbnRyb2R1Y2UgdGhpcyBuZXcgbW9kZT8gSXQgZG9lc24ndCBzZWVtIHRv IGhhdmUgDQo+IGFueXRoaW5nIHRvIGRvIHdpdGggYm9uZGluZy4NCj4gQXBwbGljYXRpb24g YWxzbyBjYW4gdmVyeSBzaW1wbHkgZG8gdGhhdCBhbnl3YXkuDQo+DQo+IC9IdWlzb25nDQo+ Pg0KPj4gU2lnbmVkLW9mZi1ieTogS2FtaWwgVm9qYW5lYyA8dm9qYW5lY0BjZXNuZXQuY3o+ DQo+PiAtLS0NCj4+IMKgIGFwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nLmPCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHwgMjA1ICsrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gwqAgZHJp dmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmQuaMKgwqDCoMKgwqAgfMKgwqAgNSArDQo+ PiDCoCBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9hcmdzLmMgfMKgwqAgMSAr DQo+PiDCoCBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQuY8KgIHzCoCA1 MCArKysrKy0NCj4+IMKgIDQgZmlsZXMgY2hhbmdlZCwgMjU4IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0L3Rlc3RfbGlua19i b25kaW5nLmMgYi9hcHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZy5jDQo+PiBpbmRleCA0ZDU0 NzA2YzIxLi4yNTRjYWNmNWFhIDEwMDY0NA0KPj4gLS0tIGEvYXBwL3Rlc3QvdGVzdF9saW5r X2JvbmRpbmcuYw0KPj4gKysrIGIvYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmcuYw0KPj4g QEAgLTIxMzQsNiArMjEzNCwyMDggQEAgDQo+PiB0ZXN0X3JvdW5kcm9iaW5fdmVyaWZ5X3Bv bGxpbmdfbWVtYmVyX2xpbmtfc3RhdHVzX2NoYW5nZSh2b2lkKQ0KPj4gwqDCoMKgwqDCoCBy ZXR1cm4gcmVtb3ZlX21lbWJlcnNfYW5kX3N0b3BfYm9uZGluZ19kZXZpY2UoKTsNCj4+IMKg IH0NCj4+IMKgICsvKiogRGlyZWN0IG1vZGUgVGVzdHMgKi8NCj4+ICsNCj4+ICtzdGF0aWMg aW50DQo+PiArdGVzdF9kaXJlY3RfdHhfYnVyc3Rfc2luZ2xlX21lbWJlcih2b2lkKQ0KPj4g K3sNCj4+ICvCoMKgwqAgdW5zaWduZWQgaW50IGk7DQo+PiArwqDCoMKgIGludCBtZW1iZXJf cG9ydF9pZDsNCj4+ICvCoMKgwqAgc3RydWN0IHJ0ZV9ldGhfc3RhdHMgcG9ydF9zdGF0czsN Cj4+ICvCoMKgwqAgc3RydWN0IHJ0ZV9tYnVmICpwa3RzW01BWF9QS1RfQlVSU1RdOw0KPj4g K8KgwqDCoCBjb25zdCB1bnNpZ25lZCBpbnQgYnVyc3Rfc2l6ZSA9IDIwOw0KPj4gKw0KPj4g K8KgwqDCoCBURVNUX0FTU0VSVChidXJzdF9zaXplIDw9IE1BWF9QS1RfQlVSU1QsDQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiQnVyc3Qgc2l6ZSBzcGVjaWZpZWQgaXMgZ3JlYXRl ciB0aGFuIHN1cHBvcnRlZC4iKTsNCj4+ICsNCj4+ICvCoMKgwqAgVEVTVF9BU1NFUlRfU1VD Q0VTUyhpbml0aWFsaXplX2JvbmRpbmdfZGV2aWNlX3dpdGhfbWVtYmVycygNCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIEJPTkRJTkdfTU9ERV9ESVJFQ1QsIDAsIDEsIDEpLA0KPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIkZhaWxlZCB0byBpbml0aWFsaXplIGJvbmRpbmcg ZGV2aWNlIHdpdGggc2luZ2xlIG1lbWJlciIpOw0KPj4gKw0KPj4gK8KgwqDCoCAvKiBHZW5l cmF0ZSBidXJzdCBvZiB0ZXN0IHBhY2tldHMgKi8NCj4+ICvCoMKgwqAgVEVTVF9BU1NFUlRf RVFVQUwoZ2VuZXJhdGVfdGVzdF9idXJzdChwa3RzLCBidXJzdF9zaXplLCAwLCAxLCAwLCAN Cj4+IDAsIDApLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGludCkgYnVyc3Rfc2l6 ZSwgIkZhaWxlZCB0byBnZW5lcmF0ZSB0ZXN0IGJ1cnN0Iik7DQo+PiArDQo+PiArwqDCoMKg IG1lbWJlcl9wb3J0X2lkID0gdGVzdF9wYXJhbXMtPm1lbWJlcl9wb3J0X2lkc1swXTsNCj4+ ICsNCj4+ICvCoMKgwqAgLyogU2V0IHRoZSAncG9ydCcgbWJ1ZiBhdHRyaWJ1dGUgdG8gdGhl IGFwcHJvcHJpYXRlIHZhbHVlICovDQo+PiArwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBidXJz dF9zaXplOyBpKyspDQo+PiArwqDCoMKgwqDCoMKgwqAgcGt0c1tpXS0+cG9ydCA9IG1lbWJl cl9wb3J0X2lkOw0KPj4gKw0KPj4gK8KgwqDCoCAvKiBTZW5kIGJ1cnN0IG9uIGJvbmRpbmcg cG9ydCAqLw0KPj4gK8KgwqDCoCBURVNUX0FTU0VSVF9FUVVBTChydGVfZXRoX3R4X2J1cnN0 KA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGVzdF9wYXJhbXMtPmJvbmRpbmdfcG9y dF9pZCwgMCwgcGt0cywgYnVyc3Rfc2l6ZSksDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBidXJzdF9zaXplLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlRYIGJ1cnN0IGZh aWxlZCIpOw0KPj4gKw0KPj4gK8KgwqDCoCAvKiBWZXJpZnkgc3RhdHMgb24gYm9uZGluZyBw b3J0ICovDQo+PiArwqDCoMKgIHJ0ZV9ldGhfc3RhdHNfZ2V0KHRlc3RfcGFyYW1zLT5ib25k aW5nX3BvcnRfaWQsICZwb3J0X3N0YXRzKTsNCj4+ICvCoMKgwqAgVEVTVF9BU1NFUlRfRVFV QUwocG9ydF9zdGF0cy5vcGFja2V0cywgYnVyc3Rfc2l6ZSwNCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICJCb25kaW5nIHBvcnQgKCVkKSBvcGFja2V0cyB2YWx1ZSAoJXUpIG5vdCBh cyBleHBlY3RlZCANCj4+ICgldSlcbiIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0 ZXN0X3BhcmFtcy0+Ym9uZGluZ19wb3J0X2lkLCAodW5zaWduZWQgaW50KSANCj4+IHBvcnRf c3RhdHMub3BhY2tldHMsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidXJzdF9zaXpl KTsNCj4+ICsNCj4+ICvCoMKgwqAgLyogVmVyaWZ5IHN0YXRzIG9uIG1lbWJlciBwb3J0ICov DQo+PiArwqDCoMKgIHJ0ZV9ldGhfc3RhdHNfZ2V0KG1lbWJlcl9wb3J0X2lkLCAmcG9ydF9z dGF0cyk7DQo+PiArwqDCoMKgIFRFU1RfQVNTRVJUX0VRVUFMKHBvcnRfc3RhdHMub3BhY2tl dHMsIGJ1cnN0X3NpemUsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiTWVtYmVyIHBv cnQgKCVkKSBvcGFja2V0cyB2YWx1ZSAoJXUpIG5vdCBhcyBleHBlY3RlZCANCj4+ICgldSlc biIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtZW1iZXJfcG9ydF9pZCwgKHVuc2ln bmVkIGludCkgcG9ydF9zdGF0cy5vcGFja2V0cywNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGJ1cnN0X3NpemUpOw0KPj4gKw0KPj4gK8KgwqDCoCAvKiBQdXQgYWxsIG1lbWJlcnMg ZG93biBhbmQgdHJ5IHRvIHRyYW5zbWl0ICovDQo+PiArIHZpcnR1YWxfZXRoZGV2X3NpbXVs YXRlX2xpbmtfc3RhdHVzX2ludGVycnVwdChtZW1iZXJfcG9ydF9pZCwgMCk7DQo+PiArDQo+ PiArwqDCoMKgIC8qIFRyeSB0byBzZW5kIGJ1cnN0IG9uIGJvbmRpbmcgcG9ydCAqLw0KPj4g KyBURVNUX0FTU0VSVF9FUVVBTChydGVfZXRoX3R4X2J1cnN0KHRlc3RfcGFyYW1zLT5ib25k aW5nX3BvcnRfaWQsIDAsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwa3RzLCBidXJz dF9zaXplKSwgMCwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJUWCBidXJzdCByZXR1 cm5lZCB1bmV4cGVjdGVkIHZhbHVlIik7DQo+PiArDQo+PiArwqDCoMKgIC8qIENsZWFuIHVw IGFuZCByZW1vdmUgbWVtYmVycyBmcm9tIGJvbmRpbmcgZGV2aWNlICovDQo+PiArwqDCoMKg IHJldHVybiByZW1vdmVfbWVtYmVyc19hbmRfc3RvcF9ib25kaW5nX2RldmljZSgpOw0KPj4g K30NCj4+ICsNCj4+ICtzdGF0aWMgaW50DQo+PiArdGVzdF9kaXJlY3RfdHhfYnVyc3RfbXVs dGlwbGVfbWVtYmVyc19zaW5nbGVfdHgodm9pZCkNCj4+ICt7DQo+PiArwqDCoMKgIHVuc2ln bmVkIGludCBpOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgcnRlX2V0aF9zdGF0cyBwb3J0X3N0YXRz Ow0KPj4gK8KgwqDCoCBzdHJ1Y3QgcnRlX21idWYgKnBrdHNbTUFYX1BLVF9CVVJTVF07DQo+ PiArwqDCoMKgIGNvbnN0IHVuc2lnbmVkIGludCBudW1fbWVtYmVycyA9IDQ7DQo+PiArwqDC oMKgIGNvbnN0IHVuc2lnbmVkIGludCBidXJzdF9zaXplID0gMjA7DQo+PiArwqDCoMKgIGNv bnN0IGludCBleHBfbWVtYmVyX3BvcnRfaWQgPSB0ZXN0X3BhcmFtcy0+bWVtYmVyX3BvcnRf aWRzWzBdOw0KPj4gK8KgwqDCoCBpbnQgY21lbWJlcl9wb3J0X2lkOw0KPj4gK8KgwqDCoCB1 bnNpZ25lZCBpbnQgZXhwZWN0ZWRfcGt0czsNCj4+ICsNCj4+ICsNCj4+ICvCoMKgwqAgVEVT VF9BU1NFUlQoYnVyc3Rfc2l6ZSA8PSBNQVhfUEtUX0JVUlNULA0KPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIkJ1cnN0IHNpemUgc3BlY2lmaWVkIGlzIGdyZWF0ZXIgdGhhbiBzdXBw b3J0ZWQuIik7DQo+PiArDQo+PiArwqDCoMKgIFRFU1RfQVNTRVJUX1NVQ0NFU1MoaW5pdGlh bGl6ZV9ib25kaW5nX2RldmljZV93aXRoX21lbWJlcnMoDQo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBCT05ESU5HX01PREVfRElSRUNULCAwLCBudW1fbWVtYmVycywgMSksDQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiRmFpbGVkIHRvIGluaXRpYWxpemUgYm9uZGluZyBk ZXZpY2Ugd2l0aCBzaW5nbGUgbWVtYmVyIik7DQo+PiArDQo+PiArwqDCoMKgIC8qIEdlbmVy YXRlIGJ1cnN0IG9mIHRlc3QgcGFja2V0cyAqLw0KPj4gK8KgwqDCoCBURVNUX0FTU0VSVF9F UVVBTChnZW5lcmF0ZV90ZXN0X2J1cnN0KA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cGt0cywgYnVyc3Rfc2l6ZSwgMCwgMSwgMCwgMCwgMCksDQo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAoaW50KSBidXJzdF9zaXplLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IkZhaWxlZCB0byBnZW5lcmF0ZSB0ZXN0IGJ1cnN0Iik7DQo+PiArDQo+PiArDQo+PiArwqDC oMKgIC8qIFNldCB0aGUgJ3BvcnQnIG1idWYgYXR0cmlidXRlIHRvIHRoZSBhcHByb3ByaWF0 ZSB2YWx1ZSAqLw0KPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgYnVyc3Rfc2l6ZTsgaSsr KQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHBrdHNbaV0tPnBvcnQgPSBleHBfbWVtYmVyX3BvcnRf aWQ7DQo+PiArDQo+PiArwqDCoMKgIC8qIFNlbmQgYnVyc3Qgb24gYm9uZGluZyBwb3J0ICov DQo+PiArwqDCoMKgIFRFU1RfQVNTRVJUX0VRVUFMKHJ0ZV9ldGhfdHhfYnVyc3QoDQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0ZXN0X3BhcmFtcy0+Ym9uZGluZ19wb3J0X2lkLCAw LCBwa3RzLCBidXJzdF9zaXplKSwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1cnN0 X3NpemUsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiVFggYnVyc3QgZmFpbGVkIik7 DQo+PiArDQo+PiArwqDCoMKgIC8qIFZlcmlmeSBzdGF0cyBvbiBib25kaW5nIHBvcnQgKi8N Cj4+ICvCoMKgwqAgcnRlX2V0aF9zdGF0c19nZXQodGVzdF9wYXJhbXMtPmJvbmRpbmdfcG9y dF9pZCwgJnBvcnRfc3RhdHMpOw0KPj4gK8KgwqDCoCBURVNUX0FTU0VSVF9FUVVBTChwb3J0 X3N0YXRzLm9wYWNrZXRzLCBidXJzdF9zaXplLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgIkJvbmRpbmcgcG9ydCAoJWQpIG9wYWNrZXRzIHZhbHVlICgldSkgbm90IGFzIGV4cGVj dGVkIA0KPj4gKCV1KVxuIiwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRlc3RfcGFy YW1zLT5ib25kaW5nX3BvcnRfaWQsICh1bnNpZ25lZCBpbnQpIA0KPj4gcG9ydF9zdGF0cy5v cGFja2V0cywNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1cnN0X3NpemUpOw0KPj4g Kw0KPj4gK8KgwqDCoCAvKiBWZXJpZnkgbWVtYmVyIHBvcnRzIHR4IHN0YXRzICovDQo+PiAr wqDCoMKgIGZvciAoaSA9IDA7IGkgPCB0ZXN0X3BhcmFtcy0+Ym9uZGluZ19tZW1iZXJfY291 bnQ7IGkrKykgew0KPj4gK8KgwqDCoMKgwqDCoMKgIGNtZW1iZXJfcG9ydF9pZCA9IHRlc3Rf cGFyYW1zLT5tZW1iZXJfcG9ydF9pZHNbaV07DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAg aWYgKGNtZW1iZXJfcG9ydF9pZCA9PSBleHBfbWVtYmVyX3BvcnRfaWQpDQo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBleHBlY3RlZF9wa3RzID0gYnVyc3Rfc2l6ZTsNCj4+ICvCoMKg wqDCoMKgwqDCoCBlbHNlDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleHBlY3RlZF9w a3RzID0gMDsNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCBydGVfZXRoX3N0YXRzX2dldChj bWVtYmVyX3BvcnRfaWQsICZwb3J0X3N0YXRzKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBURVNU X0FTU0VSVF9FUVVBTChwb3J0X3N0YXRzLm9wYWNrZXRzLA0KPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAodWludDY0X3QpZXhwZWN0ZWRfcGt0cywNCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIk1lbWJlciBQb3J0ICglZCkgb3BhY2tldHMgdmFs dWUgKCV1KSBub3QgYXMgDQo+PiBleHBlY3RlZCAoJXUpXG4iLA0KPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB0ZXN0X3BhcmFtcy0+Ym9uZGluZ19wb3J0X2lkLCAodW5z aWduZWQgDQo+PiBpbnQpcG9ydF9zdGF0cy5vcGFja2V0cywNCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZXhwZWN0ZWRfcGt0cyk7DQo+PiArwqDCoMKgIH0NCj4+ICsN Cj4+ICvCoMKgwqAgLyogUHV0IGFsbCBtZW1iZXJzIGRvd24gYW5kIHRyeSBhbmQgdHJhbnNt aXQgKi8NCj4+ICvCoMKgwqAgZm9yIChpID0gMDsgaSA8IHRlc3RfcGFyYW1zLT5ib25kaW5n X21lbWJlcl9jb3VudDsgaSsrKSB7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmlydHVhbF9ldGhk ZXZfc2ltdWxhdGVfbGlua19zdGF0dXNfaW50ZXJydXB0KA0KPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB0ZXN0X3BhcmFtcy0+bWVtYmVyX3BvcnRfaWRzW2ldLCAwKTsN Cj4+ICvCoMKgwqAgfQ0KPj4gKw0KPj4gK8KgwqDCoCAvKiBUcnkgdG8gc2VuZCBidXJzdCBv biBib25kaW5nIHBvcnQgKi8NCj4+ICsgVEVTVF9BU1NFUlRfRVFVQUwocnRlX2V0aF90eF9i dXJzdCh0ZXN0X3BhcmFtcy0+Ym9uZGluZ19wb3J0X2lkLCAwLA0KPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcGt0cywgYnVyc3Rfc2l6ZSksIDAsDQo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAiVFggYnVyc3QgcmV0dXJuZWQgdW5leHBlY3RlZCB2YWx1ZSIpOw0KPj4gKw0K Pj4gK8KgwqDCoCAvKiBDbGVhbiB1cCBhbmQgcmVtb3ZlIG1lbWJlcnMgZnJvbSBib25kaW5n IGRldmljZSAqLw0KPj4gK8KgwqDCoCByZXR1cm4gcmVtb3ZlX21lbWJlcnNfYW5kX3N0b3Bf Ym9uZGluZ19kZXZpY2UoKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludA0KPj4gK3Rl c3RfZGlyZWN0X3R4X2J1cnN0X211bHRpcGxlX21lbWJlcnNfcnJfZmFsbGJhY2sodm9pZCkN Cj4+ICt7DQo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBpOw0KPj4gK8KgwqDCoCBzdHJ1Y3Qg cnRlX2V0aF9zdGF0cyBwb3J0X3N0YXRzOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgcnRlX21idWYg KnBrdHNbTUFYX1BLVF9CVVJTVF07DQo+PiArwqDCoMKgIGNvbnN0IHVuc2lnbmVkIGludCBu dW1fbWVtYmVycyA9IDQ7DQo+PiArwqDCoMKgIGNvbnN0IHVuc2lnbmVkIGludCBwa3RzX3Bl cl9tZW1iZXIgPSAyMDsNCj4+ICvCoMKgwqAgY29uc3QgdW5zaWduZWQgaW50IGJ1cnN0X3Np emUgPSBudW1fbWVtYmVycyAqIHBrdHNfcGVyX21lbWJlcjsNCj4+ICsNCj4+ICsNCj4+ICvC oMKgwqAgVEVTVF9BU1NFUlQoYnVyc3Rfc2l6ZSA8PSBNQVhfUEtUX0JVUlNULA0KPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgIkJ1cnN0IHNpemUgc3BlY2lmaWVkIGlzIGdyZWF0ZXIg dGhhbiBzdXBwb3J0ZWQuIik7DQo+PiArDQo+PiArwqDCoMKgIFRFU1RfQVNTRVJUX1NVQ0NF U1MoaW5pdGlhbGl6ZV9ib25kaW5nX2RldmljZV93aXRoX21lbWJlcnMoDQo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBCT05ESU5HX01PREVfRElSRUNULCAwLCBudW1fbWVtYmVycywg MSksDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiRmFpbGVkIHRvIGluaXRpYWxpemUg Ym9uZGluZyBkZXZpY2Ugd2l0aCBzaW5nbGUgbWVtYmVyIik7DQo+PiArDQo+PiArwqDCoMKg IC8qIEdlbmVyYXRlIGJ1cnN0IG9mIHRlc3QgcGFja2V0cyAqLw0KPj4gK8KgwqDCoCBURVNU X0FTU0VSVF9FUVVBTChnZW5lcmF0ZV90ZXN0X2J1cnN0KA0KPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgcGt0cywgYnVyc3Rfc2l6ZSwgMCwgMSwgMCwgMCwgMCksDQo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAoaW50KSBidXJzdF9zaXplLA0KPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgIkZhaWxlZCB0byBnZW5lcmF0ZSB0ZXN0IGJ1cnN0Iik7DQo+PiArDQo+PiAr DQo+PiArwqDCoMKgIC8qIFNldCB0aGUgJ3BvcnQnIG1idWYgYXR0cmlidXRlIHRvIHRoZSBh cHByb3ByaWF0ZSB2YWx1ZSAqLw0KPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgYnVyc3Rf c2l6ZTsgaSsrKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHBrdHNbaV0tPnBvcnQgPSBSVEVfTUFY X0VUSFBPUlRTOw0KPj4gKw0KPj4gK8KgwqDCoCAvKiBTZW5kIGJ1cnN0IG9uIGJvbmRpbmcg cG9ydCAqLw0KPj4gK8KgwqDCoCBURVNUX0FTU0VSVF9FUVVBTChydGVfZXRoX3R4X2J1cnN0 KA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGVzdF9wYXJhbXMtPmJvbmRpbmdfcG9y dF9pZCwgMCwgcGt0cywgYnVyc3Rfc2l6ZSksDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBidXJzdF9zaXplLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlRYIGJ1cnN0IGZh aWxlZCIpOw0KPj4gKw0KPj4gK8KgwqDCoCAvKiBWZXJpZnkgc3RhdHMgb24gYm9uZGluZyBw b3J0ICovDQo+PiArwqDCoMKgIHJ0ZV9ldGhfc3RhdHNfZ2V0KHRlc3RfcGFyYW1zLT5ib25k aW5nX3BvcnRfaWQsICZwb3J0X3N0YXRzKTsNCj4+ICvCoMKgwqAgVEVTVF9BU1NFUlRfRVFV QUwocG9ydF9zdGF0cy5vcGFja2V0cywgYnVyc3Rfc2l6ZSwNCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICJCb25kaW5nIHBvcnQgKCVkKSBvcGFja2V0cyB2YWx1ZSAoJXUpIG5vdCBh cyBleHBlY3RlZCANCj4+ICgldSlcbiIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0 ZXN0X3BhcmFtcy0+Ym9uZGluZ19wb3J0X2lkLCAodW5zaWduZWQgaW50KSANCj4+IHBvcnRf c3RhdHMub3BhY2tldHMsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidXJzdF9zaXpl KTsNCj4+ICsNCj4+ICvCoMKgwqAgLyogVmVyaWZ5IG1lbWJlciBwb3J0cyB0eCBzdGF0cyAq Lw0KPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgdGVzdF9wYXJhbXMtPmJvbmRpbmdfbWVt YmVyX2NvdW50OyBpKyspIHsNCj4+ICvCoMKgwqDCoMKgwqDCoCBydGVfZXRoX3N0YXRzX2dl dCh0ZXN0X3BhcmFtcy0+bWVtYmVyX3BvcnRfaWRzW2ldLCANCj4+ICZwb3J0X3N0YXRzKTsN Cj4+ICvCoMKgwqDCoMKgwqDCoCBURVNUX0FTU0VSVF9FUVVBTChwb3J0X3N0YXRzLm9wYWNr ZXRzLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodWludDY0X3QpcGt0 c19wZXJfbWVtYmVyLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiTWVt YmVyIFBvcnQgKCVkKSBvcGFja2V0cyB2YWx1ZSAoJXUpIG5vdCBhcyANCj4+IGV4cGVjdGVk ICgldSlcbiIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRlc3RfcGFy YW1zLT5ib25kaW5nX3BvcnRfaWQsICh1bnNpZ25lZCANCj4+IGludClwb3J0X3N0YXRzLm9w YWNrZXRzLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwa3RzX3Blcl9t ZW1iZXIpOw0KPj4gK8KgwqDCoCB9DQo+PiArDQo+PiArwqDCoMKgIC8qIFB1dCBhbGwgbWVt YmVycyBkb3duIGFuZCB0cnkgYW5kIHRyYW5zbWl0ICovDQo+PiArwqDCoMKgIGZvciAoaSA9 IDA7IGkgPCB0ZXN0X3BhcmFtcy0+Ym9uZGluZ19tZW1iZXJfY291bnQ7IGkrKykgew0KPj4g K8KgwqDCoMKgwqDCoMKgIHZpcnR1YWxfZXRoZGV2X3NpbXVsYXRlX2xpbmtfc3RhdHVzX2lu dGVycnVwdCgNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGVzdF9wYXJh bXMtPm1lbWJlcl9wb3J0X2lkc1tpXSwgMCk7DQo+PiArwqDCoMKgIH0NCj4+ICsNCj4+ICvC oMKgwqAgLyogVHJ5IHRvIHNlbmQgYnVyc3Qgb24gYm9uZGluZyBwb3J0ICovDQo+PiArIFRF U1RfQVNTRVJUX0VRVUFMKHJ0ZV9ldGhfdHhfYnVyc3QodGVzdF9wYXJhbXMtPmJvbmRpbmdf cG9ydF9pZCwgMCwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBrdHMsIGJ1cnN0X3Np emUpLCAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlRYIGJ1cnN0IHJldHVybmVk IHVuZXhwZWN0ZWQgdmFsdWUiKTsNCj4+ICsNCj4+ICvCoMKgwqAgLyogQ2xlYW4gdXAgYW5k IHJlbW92ZSBtZW1iZXJzIGZyb20gYm9uZGluZyBkZXZpY2UgKi8NCj4+ICvCoMKgwqAgcmV0 dXJuIHJlbW92ZV9tZW1iZXJzX2FuZF9zdG9wX2JvbmRpbmdfZGV2aWNlKCk7DQo+PiArfQ0K Pj4gwqAgwqAgLyoqIEFjdGl2ZSBCYWNrdXAgTW9kZSBUZXN0cyAqLw0KPj4gwqAgQEAgLTUx NzQsNiArNTM3Niw5IEBAIHN0YXRpYyBzdHJ1Y3QgdW5pdF90ZXN0X3N1aXRlIA0KPj4gbGlu a19ib25kaW5nX3Rlc3Rfc3VpdGXCoCA9IHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBURVNU X0NBU0UodGVzdF9yb3VuZHJvYmluX3ZlcmlmeV9tYWNfYXNzaWdubWVudCksDQo+PiBURVNU X0NBU0UodGVzdF9yb3VuZHJvYmluX3ZlcmlmeV9tZW1iZXJfbGlua19zdGF0dXNfY2hhbmdl X2JlaGF2aW91ciksDQo+PiBURVNUX0NBU0UodGVzdF9yb3VuZHJvYmluX3ZlcmlmeV9wb2xs aW5nX21lbWJlcl9saW5rX3N0YXR1c19jaGFuZ2UpLA0KPj4gK8KgwqDCoMKgwqDCoMKgIFRF U1RfQ0FTRSh0ZXN0X2RpcmVjdF90eF9idXJzdF9zaW5nbGVfbWVtYmVyKSwNCj4+ICsgVEVT VF9DQVNFKHRlc3RfZGlyZWN0X3R4X2J1cnN0X211bHRpcGxlX21lbWJlcnNfc2luZ2xlX3R4 KSwNCj4+ICsgVEVTVF9DQVNFKHRlc3RfZGlyZWN0X3R4X2J1cnN0X211bHRpcGxlX21lbWJl cnNfcnJfZmFsbGJhY2spLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIFRFU1RfQ0FTRSh0ZXN0 X2FjdGl2ZWJhY2t1cF90eF9idXJzdCksDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgVEVTVF9D QVNFKHRlc3RfYWN0aXZlYmFja3VwX3J4X2J1cnN0KSwNCj4+IFRFU1RfQ0FTRSh0ZXN0X2Fj dGl2ZWJhY2t1cF92ZXJpZnlfcHJvbWlzY3VvdXNfZW5hYmxlX2Rpc2FibGUpLA0KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kLmggDQo+PiBiL2Ry aXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kLmgNCj4+IGluZGV4IGYxMDE2NWYyYzYu LjgyZDY2NDQ1MDAgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9l dGhfYm9uZC5oDQo+PiArKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZC5o DQo+PiBAQCAtODMsNiArODMsMTEgQEAgZXh0ZXJuICJDIiB7DQo+PiDCoMKgICogaW5mb3Jt YXRpb24gZnJvbSBpdC4gV2hlbiBBUlAgcmVwbHkgZnJvbSB0aGF0IHBlZXIgaXMgcmVjZWl2 ZWQsIA0KPj4gaXRzIE1BQyBpcw0KPj4gwqDCoCAqIHN0b3JlZCwgb25lIG9mIG1lbWJlciBN QUNzIGFzc2lnbmVkIGFuZCBBUlAgcmVwbHkgc2VuZCB0byB0aGF0IA0KPj4gcGVlci4NCj4+ IMKgwqAgKi8NCj4+ICsjZGVmaW5lIEJPTkRJTkdfTU9ERV9ESVJFQ1TCoMKgwqAgKDcpDQo+ PiArLyoqPCBEaXJlY3QgYm9uZGluZyBtb2RlIChNb2RlIDcpDQo+PiArICogSW4gdGhpcyBt b2RlLCBhbGwgcGFja2V0cyBhcmUgdHJhbnNtaXR0ZWQgdXNpbmcgdGhlIHNhbWUgbWVtYmVy IA0KPj4gcG9ydCBvbiB3aGljaA0KPj4gKyAqIGl0IHdhcyByZWNlaXZlZC4gVGhpcyBpcyBk ZWNpZGVkIGJhc2VkIG9uIHRoZSAncG9ydCcgZmllbGQgb2YgDQo+PiAncnRlX21idWYnLg0K Pj4gKyAqLw0KPj4gwqAgwqAgLyogQmFsYW5jZSBNb2RlIFRyYW5zbWl0IFBvbGljaWVzICov DQo+PiDCoCAjZGVmaW5lIEJBTEFOQ0VfWE1JVF9QT0xJQ1lfTEFZRVIywqDCoMKgwqDCoMKg wqAgKDApDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2Jv bmRfYXJncy5jIA0KPj4gYi9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9hcmdz LmMNCj4+IGluZGV4IGJkZWM1ZDYxZDQuLjQ0ZTIwNTY4ZGIgMTAwNjQ0DQo+PiAtLS0gYS9k cml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9hcmdzLmMNCj4+ICsrKyBiL2RyaXZl cnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX2FyZ3MuYw0KPj4gQEAgLTE1OCw2ICsxNTgs NyBAQCBib25kX2V0aGRldl9wYXJzZV9tZW1iZXJfbW9kZV9rdmFyZyhjb25zdCBjaGFyIA0K Pj4gKmtleSBfX3J0ZV91bnVzZWQsDQo+PiDCoMKgwqDCoMKgIGNhc2UgQk9ORElOR19NT0RF XzgwMjNBRDoNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfVExCOg0KPj4gwqDC oMKgwqDCoCBjYXNlIEJPTkRJTkdfTU9ERV9BTEI6DQo+PiArwqDCoMKgIGNhc2UgQk9ORElO R19NT0RFX0RJUkVDVDoNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+IMKg wqDCoMKgwqAgZGVmYXVsdDoNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBSVEVfQk9ORF9MT0co RVJSLCAiSW52YWxpZCBtZW1iZXIgbW9kZSB2YWx1ZSAoJXMpIA0KPj4gc3BlY2lmaWVkIiwg dmFsdWUpOw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9i b25kX3BtZC5jIA0KPj4gYi9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQu Yw0KPj4gaW5kZXggYzQwZDE4ZDEyOC4uNTdhYzU4NzljNCAxMDA2NDQNCj4+IC0tLSBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX3BtZC5jDQo+PiArKysgYi9kcml2ZXJz L25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQuYw0KPj4gQEAgLTU3OCw5ICs1NzgsMTQg QEAgYm9uZF9ldGhkZXZfcnhfYnVyc3RfYWxiKHZvaWQgKnF1ZXVlLCBzdHJ1Y3QgDQo+PiBy dGVfbWJ1ZiAqKmJ1ZnMsIHVpbnQxNl90IG5iX3BrdHMpDQo+PiDCoMKgwqDCoMKgIHJldHVy biBuYl9yZWN2X3BrdHM7DQo+PiDCoCB9DQo+PiDCoCArZW51bSB0eF9tZW1iZXJfcG9wdWxh dGVfbW9kZSB7DQo+PiArwqDCoMKgIFJSX09OTFksDQo+PiArwqDCoMKgIERJUkVDVF9XSVRI X1JSX0ZBTExCQUNLLA0KPj4gK307DQo+PiArDQo+PiDCoCBzdGF0aWMgdWludDE2X3QNCj4+ IC1ib25kX2V0aGRldl90eF9idXJzdF9yb3VuZF9yb2Jpbih2b2lkICpxdWV1ZSwgc3RydWN0 IHJ0ZV9tYnVmICoqYnVmcywNCj4+IC3CoMKgwqDCoMKgwqDCoCB1aW50MTZfdCBuYl9wa3Rz KQ0KPj4gK2JvbmRfZXRoZGV2X3R4X2J1cnN0X3JyX2dlbmVyaWModm9pZCAqcXVldWUsIHN0 cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsDQo+PiArwqDCoMKgwqDCoMKgwqAgdWludDE2X3QgbmJf cGt0cywgZW51bSB0eF9tZW1iZXJfcG9wdWxhdGVfbW9kZSBwb3BfbW9kZSkNCj4+IMKgIHsN Cj4+IMKgwqDCoMKgwqAgc3RydWN0IGJvbmRfZGV2X3ByaXZhdGUgKmludGVybmFsczsNCj4+ IMKgwqDCoMKgwqAgc3RydWN0IGJvbmRfdHhfcXVldWUgKmJkX3R4X3E7DQo+PiBAQCAtNTk0 LDcgKzU5OSw3IEBAIGJvbmRfZXRoZGV2X3R4X2J1cnN0X3JvdW5kX3JvYmluKHZvaWQgKnF1 ZXVlLCANCj4+IHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsDQo+PiDCoMKgwqDCoMKgIHVpbnQx Nl90IG51bV90eF90b3RhbCA9IDAsIG51bV90eF9tZW1iZXI7DQo+PiDCoCDCoMKgwqDCoMKg IHN0YXRpYyBpbnQgbWVtYmVyX2lkeDsNCj4+IC3CoMKgwqAgaW50IGksIGNtZW1iZXJfaWR4 ID0gMCwgdHhfZmFpbF90b3RhbCA9IDA7DQo+PiArwqDCoMKgIGludCBpLCBqLCBjbWVtYmVy X2lkeCA9IDAsIHR4X2ZhaWxfdG90YWwgPSAwOw0KPj4gwqAgwqDCoMKgwqDCoCBiZF90eF9x ID0gKHN0cnVjdCBib25kX3R4X3F1ZXVlICopcXVldWU7DQo+PiDCoMKgwqDCoMKgIGludGVy bmFscyA9IGJkX3R4X3EtPmRldl9wcml2YXRlOw0KPj4gQEAgLTYxMSw2ICs2MTYsMTcgQEAg Ym9uZF9ldGhkZXZfdHhfYnVyc3Rfcm91bmRfcm9iaW4odm9pZCAqcXVldWUsIA0KPj4gc3Ry dWN0IHJ0ZV9tYnVmICoqYnVmcywNCj4+IMKgwqDCoMKgwqAgLyogUG9wdWxhdGUgbWVtYmVy cyBtYnVmIHdpdGggd2hpY2ggcGFja2V0cyBhcmUgdG8gYmUgc2VudCBvbiANCj4+IGl0wqAg Ki8NCj4+IMKgwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IG5iX3BrdHM7IGkrKykgew0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgIGNtZW1iZXJfaWR4ID0gKG1lbWJlcl9pZHggKyBpKSAlIG51 bV9vZl9tZW1iZXJzOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChwb3BfbW9kZSA9 PSBESVJFQ1RfV0lUSF9SUl9GQUxMQkFDSykgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLyogVHJ5IHRvIGZpbmQgY29ycmVjdCBtZW1iZXIgaW5kZXggKi8NCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGZvciAoaiA9IDA7IGogPCBudW1fb2ZfbWVtYmVyczsgaisrKSB7 DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChidWZzW2ldLT5wb3J0 ID09IG1lbWJlcnNbal0pIHsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjbWVtYmVyX2lkeCA9IGo7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIH0NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+ICvCoMKgwqDCoMKgwqDC oCB9DQo+PiArDQo+PiBtZW1iZXJfYnVmc1tjbWVtYmVyX2lkeF1bKG1lbWJlcl9uYl9wa3Rz W2NtZW1iZXJfaWR4XSkrK10gPSBidWZzW2ldOw0KPj4gwqDCoMKgwqDCoCB9DQo+PiDCoCBA QCAtNjQ2LDYgKzY2MiwyMCBAQCBib25kX2V0aGRldl90eF9idXJzdF9yb3VuZF9yb2Jpbih2 b2lkICpxdWV1ZSwgDQo+PiBzdHJ1Y3QgcnRlX21idWYgKipidWZzLA0KPj4gwqDCoMKgwqDC oCByZXR1cm4gbnVtX3R4X3RvdGFsOw0KPj4gwqAgfQ0KPj4gwqAgK3N0YXRpYyB1aW50MTZf dA0KPj4gK2JvbmRfZXRoZGV2X3R4X2J1cnN0X3JvdW5kX3JvYmluKHZvaWQgKnF1ZXVlLCBz dHJ1Y3QgcnRlX21idWYgKipidWZzLA0KPj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQxNl90IG5i X3BrdHMpDQo+PiArew0KPj4gK8KgwqDCoCByZXR1cm4gYm9uZF9ldGhkZXZfdHhfYnVyc3Rf cnJfZ2VuZXJpYyhxdWV1ZSwgYnVmcywgbmJfcGt0cywgDQo+PiBSUl9PTkxZKTsNCj4+ICt9 DQo+PiArDQo+PiArc3RhdGljIHVpbnQxNl90DQo+PiArYm9uZF9ldGhkZXZfdHhfYnVyc3Rf ZGlyZWN0KHZvaWQgKnF1ZXVlLCBzdHJ1Y3QgcnRlX21idWYgKipidWZzLA0KPj4gK8KgwqDC oMKgwqDCoMKgIHVpbnQxNl90IG5iX3BrdHMpDQo+PiArew0KPj4gK8KgwqDCoCByZXR1cm4g Ym9uZF9ldGhkZXZfdHhfYnVyc3RfcnJfZ2VuZXJpYyhxdWV1ZSwgYnVmcywgbmJfcGt0cywg DQo+PiBESVJFQ1RfV0lUSF9SUl9GQUxMQkFDSyk7DQo+PiArfQ0KPj4gKw0KPj4gwqAgc3Rh dGljIHVpbnQxNl90DQo+PiDCoCBib25kX2V0aGRldl90eF9idXJzdF9hY3RpdmVfYmFja3Vw KHZvaWQgKnF1ZXVlLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBydGVfbWJ1ZiAq KmJ1ZnMsIHVpbnQxNl90IG5iX3BrdHMpDQo+PiBAQCAtMTU1MSw2ICsxNTgxLDcgQEAgbWFj X2FkZHJlc3NfbWVtYmVyc191cGRhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2IA0KPj4gKmJvbmRp bmdfZXRoX2RldikNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfUk9VTkRfUk9C SU46DQo+PiDCoMKgwqDCoMKgIGNhc2UgQk9ORElOR19NT0RFX0JBTEFOQ0U6DQo+PiDCoMKg wqDCoMKgIGNhc2UgQk9ORElOR19NT0RFX0JST0FEQ0FTVDoNCj4+ICvCoMKgwqAgY2FzZSBC T05ESU5HX01PREVfRElSRUNUOg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAoaSA9IDA7 IGkgPCBpbnRlcm5hbHMtPm1lbWJlcl9jb3VudDsgaSsrKSB7DQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpZiAocnRlX2V0aF9kZXZfZGVmYXVsdF9tYWNfYWRkcl9zZXQoDQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZXJuYWxz LT5tZW1iZXJzW2ldLnBvcnRfaWQsDQo+PiBAQCAtMTY0OCw2ICsxNjc5LDEwIEBAIGJvbmRf ZXRoZGV2X21vZGVfc2V0KHN0cnVjdCBydGVfZXRoX2RldiANCj4+ICpldGhfZGV2LCB1aW50 OF90IG1vZGUpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZXRoX2Rldi0+dHhfcGt0X2J1cnN0 ID0gYm9uZF9ldGhkZXZfdHhfYnVyc3RfYWxiOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGV0 aF9kZXYtPnJ4X3BrdF9idXJzdCA9IGJvbmRfZXRoZGV2X3J4X2J1cnN0X2FsYjsNCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+ICvCoMKgwqAgY2FzZSBCT05ESU5HX01PREVf RElSRUNUOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGV0aF9kZXYtPnR4X3BrdF9idXJzdCA9IGJv bmRfZXRoZGV2X3R4X2J1cnN0X2RpcmVjdDsNCj4+ICvCoMKgwqDCoMKgwqDCoCBldGhfZGV2 LT5yeF9wa3RfYnVyc3QgPSBib25kX2V0aGRldl9yeF9idXJzdDsNCj4+ICvCoMKgwqDCoMKg wqDCoCBicmVhazsNCj4+IMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gLTE7DQo+PiDCoMKgwqDCoMKgIH0NCj4+IEBAIC0yNTgxLDYgKzI2MTYs NyBAQCBib25kX2V0aGRldl9saW5rX3VwZGF0ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgDQo+PiAq ZXRoZGV2LCBpbnQgd2FpdF90b19jb21wbGV0ZSkNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05E SU5HX01PREVfQkFMQU5DRToNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfVExC Og0KPj4gwqDCoMKgwqDCoCBjYXNlIEJPTkRJTkdfTU9ERV9BTEI6DQo+PiArwqDCoMKgIGNh c2UgQk9ORElOR19NT0RFX0RJUkVDVDoNCj4+IMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCAvKioNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgICogSW4gdGhl c2VzIG1vZGUgdGhlIG1heGltdW0gdGhlb3JldGljYWwgbGluayBzcGVlZCBpcyB0aGUgDQo+ PiBzdW0NCj4+IEBAIC0yNjc4LDYgKzI3MTQsNyBAQCBib25kX2V0aGRldl9wcm9taXNjdW91 c19lbmFibGUoc3RydWN0IA0KPj4gcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQo+PiDCoMKgwqDC oMKgIGNhc2UgQk9ORElOR19NT0RFX1JPVU5EX1JPQklOOg0KPj4gwqDCoMKgwqDCoCBjYXNl IEJPTkRJTkdfTU9ERV9CQUxBTkNFOg0KPj4gwqDCoMKgwqDCoCBjYXNlIEJPTkRJTkdfTU9E RV9CUk9BRENBU1Q6DQo+PiArwqDCoMKgIGNhc2UgQk9ORElOR19NT0RFX0RJUkVDVDoNCj4+ IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfODAyM0FEOiB7DQo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgdW5zaWduZWQgaW50IG1lbWJlcl9vayA9IDA7DQo+PiDCoCBAQCAtMjczMiw2 ICsyNzY5LDcgQEAgYm9uZF9ldGhkZXZfcHJvbWlzY3VvdXNfZGlzYWJsZShzdHJ1Y3QgDQo+ PiBydGVfZXRoX2RldiAqZGV2KQ0KPj4gwqDCoMKgwqDCoCBjYXNlIEJPTkRJTkdfTU9ERV9S T1VORF9ST0JJTjoNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfQkFMQU5DRToN Cj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfQlJPQURDQVNUOg0KPj4gK8KgwqDC oCBjYXNlIEJPTkRJTkdfTU9ERV9ESVJFQ1Q6DQo+PiDCoMKgwqDCoMKgIGNhc2UgQk9ORElO R19NT0RFXzgwMjNBRDogew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBt ZW1iZXJfb2sgPSAwOw0KPj4gwqAgQEAgLTI3OTAsNiArMjgyOCw3IEBAIGJvbmRfZXRoZGV2 X3Byb21pc2N1b3VzX3VwZGF0ZShzdHJ1Y3QgDQo+PiBydGVfZXRoX2RldiAqZGV2KQ0KPj4g wqDCoMKgwqDCoCBjYXNlIEJPTkRJTkdfTU9ERV9CQUxBTkNFOg0KPj4gwqDCoMKgwqDCoCBj YXNlIEJPTkRJTkdfTU9ERV9CUk9BRENBU1Q6DQo+PiDCoMKgwqDCoMKgIGNhc2UgQk9ORElO R19NT0RFXzgwMjNBRDoNCj4+ICvCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfRElSRUNUOg0K Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qIEFzIHByb21pc2N1b3VzIG1vZGUgaXMgcHJvcGFn YXRlZCB0byBhbGwgbWVtYmVycyBmb3IgdGhlc2UNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg ICogbW9kZSwgbm8gbmVlZCB0byB1cGRhdGUgZm9yIGJvbmRpbmcgZGV2aWNlLg0KPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqAgKi8NCj4+IEBAIC0yODI1LDYgKzI4NjQsNyBAQCBib25kX2V0 aGRldl9hbGxtdWx0aWNhc3RfZW5hYmxlKHN0cnVjdCANCj4+IHJ0ZV9ldGhfZGV2ICpldGhf ZGV2KQ0KPj4gwqDCoMKgwqDCoCBjYXNlIEJPTkRJTkdfTU9ERV9ST1VORF9ST0JJTjoNCj4+ IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfQkFMQU5DRToNCj4+IMKgwqDCoMKgwqAg Y2FzZSBCT05ESU5HX01PREVfQlJPQURDQVNUOg0KPj4gK8KgwqDCoCBjYXNlIEJPTkRJTkdf TU9ERV9ESVJFQ1Q6DQo+PiDCoMKgwqDCoMKgIGNhc2UgQk9ORElOR19NT0RFXzgwMjNBRDog ew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBtZW1iZXJfb2sgPSAwOw0K Pj4gwqAgQEAgLTI4NzksNiArMjkxOSw3IEBAIGJvbmRfZXRoZGV2X2FsbG11bHRpY2FzdF9k aXNhYmxlKHN0cnVjdCANCj4+IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KPj4gwqDCoMKgwqDC oCBjYXNlIEJPTkRJTkdfTU9ERV9ST1VORF9ST0JJTjoNCj4+IMKgwqDCoMKgwqAgY2FzZSBC T05ESU5HX01PREVfQkFMQU5DRToNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVf QlJPQURDQVNUOg0KPj4gK8KgwqDCoCBjYXNlIEJPTkRJTkdfTU9ERV9ESVJFQ1Q6DQo+PiDC oMKgwqDCoMKgIGNhc2UgQk9ORElOR19NT0RFXzgwMjNBRDogew0KPj4gwqDCoMKgwqDCoMKg wqDCoMKgIHVuc2lnbmVkIGludCBtZW1iZXJfb2sgPSAwOw0KPj4gwqAgQEAgLTI5MzYsNiAr Mjk3Nyw3IEBAIGJvbmRfZXRoZGV2X2FsbG11bHRpY2FzdF91cGRhdGUoc3RydWN0IA0KPj4g cnRlX2V0aF9kZXYgKmRldikNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfQkFM QU5DRToNCj4+IMKgwqDCoMKgwqAgY2FzZSBCT05ESU5HX01PREVfQlJPQURDQVNUOg0KPj4g wqDCoMKgwqDCoCBjYXNlIEJPTkRJTkdfTU9ERV84MDIzQUQ6DQo+PiArwqDCoMKgIGNhc2Ug Qk9ORElOR19NT0RFX0RJUkVDVDoNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBBcyBhbGxt dWx0aWNhc3QgbW9kZSBpcyBwcm9wYWdhdGVkIHRvIGFsbCBtZW1iZXJzIGZvciB0aGVzZQ0K Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBtb2RlLCBubyBuZWVkIHRvIHVwZGF0ZSBmb3Ig Ym9uZGluZyBkZXZpY2UuDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLw0KPj4gQEAgLTMz NjUsNiArMzQwNyw4IEBAIGJvbmRfbW9kZV9uYW1lKHVpbnQ4X3QgbW9kZSkNCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCByZXR1cm4gIlRMQiI7DQo+PiDCoMKgwqDCoMKgIGNhc2UgQk9ORElO R19NT0RFX0FMQjoNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gIkFMQiI7DQo+PiAr wqDCoMKgIGNhc2UgQk9ORElOR19NT0RFX0RJUkVDVDoNCj4+ICvCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gIkRJUkVDVCI7DQo+PiDCoMKgwqDCoMKgIGRlZmF1bHQ6DQo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgcmV0dXJuICJVbmtub3duIjsNCj4+IMKgwqDCoMKgwqAgfQ0K --------------ms060001040601080801070306 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC DWcwggZ5MIIEYaADAgECAhBPDiJIpZ2uf5YS4aKrZamyMA0GCSqGSIb3DQEBDAUAMEYxCzAJ BgNVBAYTAk5MMRkwFwYDVQQKExBHRUFOVCBWZXJlbmlnaW5nMRwwGgYDVQQDExNHRUFOVCBQ ZXJzb25hbCBDQSA0MB4XDTI0MDcwODAwMDAwMFoXDTI2MDcwODIzNTk1OVowgd4xCzAJBgNV BAYTAkNaMR4wHAYDVQQIDBVQcmFoYSwgSGxhdm7DrSBtxJtzdG8xODA2BgNVBAoML0NFU05F VCwgesOham1vdsOpIHNkcnXFvmVuw60gcHLDoXZuaWNrw71jaCBvc29iMRkwFwYDVQRhExBO VFJDWi02MzggMzkgMTcyMSAwHgYJKoZIhvcNAQkBFhF2b2phbmVjQGNlc25ldC5jejEQMA4G A1UEBBMHVm9qYW5lYzEOMAwGA1UEKhMFS2FtaWwxFjAUBgNVBAMTDUthbWlsIFZvamFuZWMw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpXa79vz2a0HSuvHOAz1Rm4wYEnQwO 2OvlrC0T+28e4/psLYQILiRt+pFkNXzKWNiWPA1gTe539ia5vL6DDIdHmv/9Azo2AFaAUb3b i0KciVu/NkNDdz/N4w+Sx+XL3WUkg6e8C0p98f5Oo0R1Umh6PCxaoNO2x3JHCH46b7tojaZd xZpKJUA3NYGPHHV/4vajzQHjmcflobwCFImBy6hgNzGEUJsryXQ5W2cjyfF7obFS3KW5g+nA Lwc6DLy4Hrr2T2zbrE4wxuyhxBFhQvEqvvZShRyorUepU9+VvE03Gvphtqw+UcKGVVJ1vlkh O5IqtGQc6zzb6O97oCKmruNlAgMBAAGjggHIMIIBxDAfBgNVHSMEGDAWgBRpAKHHIVj44MUb ILAK3adRvxPZ5DAdBgNVHQ4EFgQUUmkRzoyy03Y7iH7iUkfc2cRhYX0wDgYDVR0PAQH/BAQD AgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMCMFAGA1Ud IARJMEcwOgYMKwYBBAGyMQECAQoEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc2VjdGlnby5j b20vU01JTUVDUFMwCQYHZ4EMAQUDAjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vR0VBTlQu Y3JsLnNlY3RpZ28uY29tL0dFQU5UUGVyc29uYWxDQTQuY3JsMHgGCCsGAQUFBwEBBGwwajA9 BggrBgEFBQcwAoYxaHR0cDovL0dFQU5ULmNydC5zZWN0aWdvLmNvbS9HRUFOVFBlcnNvbmFs Q0E0LmNydDApBggrBgEFBQcwAYYdaHR0cDovL0dFQU5ULm9jc3Auc2VjdGlnby5jb20wNQYD VR0RBC4wLIEXS2FtaWwuVm9qYW5lY0BjZXNuZXQuY3qBEXZvamFuZWNAY2VzbmV0LmN6MA0G CSqGSIb3DQEBDAUAA4ICAQBEgjY/QWOlBX+hcrFMb5C4AWP2xhEq5qLHncX4QIyH2MBmjVJB kkYLvm+wQ9pEi9fMiSDZ7sYS2rBAtO/zn1TnAvCqgP0HizqE5/KZSranBrKo7hQ+sP2NDqr3 1XfqBDibbUTKIRCcYXVW2QYRQeABtx6voMVLaTAdgpCPm/tY2R+gcrmwPopuyHgppuKBg07/ AbI/zhxDS41Ypd8EyiCrSUZzJIVpyd/4zh0COmV1ZVppv3EW4sj2R6OXc5cPk8VnzqWz0o/2 a8zZ8A88NZDhdewRTk2rDQqPQnnANuhcWsp85OoZwkYBf7WlHVRBcAUV2YVB+oAHiubk+R4j y00aUAnsslRjWAuAaHgR5CY9vUrIiOdujD0J7jkL+JsK+W7vc8JduJHfmRQZ3M7C9GUPw+oL 6Kh0mqV9gWjsIG/6/T/J4gqimqkHCckDuHvLwxqp2EInRKELYOsyXjAg8/yqcZk50CFnj0oR D5KJqOYgMA34ef4Upr5rQHb2ResP1r8a9xY1xUO5LjAhFSyM/lXEYBgEhqumdvi7l9CokcIa T+BgGtn+jV76f5hG+qxziR5Mev+OaVT0C28fR1yXnV4yKXXOQ64L0frPWjaLwawoUABNabAk 83kMatV5UkQxFv9IhdiR+wGY6sY2HF83jEx+KZApJrvG1uLuKAxl/BzMbTCCBuYwggTOoAMC AQICEDECcNQ1vpskmvhW0OHihUkwDQYJKoZIhvcNAQEMBQAwgYgxCzAJBgNVBAYTAlVTMRMw EQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhl IFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRp b24gQXV0aG9yaXR5MB4XDTIwMDIxODAwMDAwMFoXDTMzMDUwMTIzNTk1OVowRjELMAkGA1UE BhMCTkwxGTAXBgNVBAoTEEdFQU5UIFZlcmVuaWdpbmcxHDAaBgNVBAMTE0dFQU5UIFBlcnNv bmFsIENBIDQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzSuIiXidb6QRbFAQ1 MiAUrrTSMUDGzVDAHqFEyq+eSmF/LZDeYpszai2kQsqWATz/cBA9gGjunvJ45G48ycC4D6gw ZFvbBt5JotxlunBeB8K+crGar3v+RCQ4VfvToX07v+HTJ6EeEONR3IzJPTMyzgAwENGsAWf9 va9HePQFJiChCzXqhKpp0zen53S+8f9itEy06GS8aku7Mvyb4tMBBa9An3Y3ALIqIeymg/iY s8m9WkSkMyekNtFRB1+1KlnNUpM05G8+sY9EucnQQRUIdHzYsvqjP3XlaSuB4Jj0ia66UGfi 5Wx31mm5sKAz8Re9UGVWIqq6wKFKxkSfuO4iwYiIPJoiGEux3dqabwFLduAroDF1IxE40PqG IdPXzYuZ/wL6BEfFAb0xy8bfm5S9G7y/ts9mIlFpPtkLZ/nQ/iVOWdsu9ale/nK/uGF47xsx eW2LIvB4sH5U2+D4ad8vpNbcCrXIXXKtkBnNHgxumNNZ0R1Isq/Pz7TALCxxDzWdsM7AO32/ Jn7R4ldtGRZmKpJyfACDn8HU1QPhOtiWsjifrMWnanJhQ6K7M/5qz8BmfPrca+MUrr1Y4NHZ b9MrgPtWKQQyGDXy+G5F/iHGdZk7LS+F8NH+Ddolt2wZpz52JqGMTDPIH5Qok4LLO95wbxtn +79Tw+wQxmDTuIg+LwIDAQABo4IBizCCAYcwHwYDVR0jBBgwFoAUU3m/WqorSs9UgOHYm8Cd 8rIDZsswHQYDVR0OBBYEFGkAocchWPjgxRsgsArdp1G/E9nkMA4GA1UdDwEB/wQEAwIBhjAS BgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA4BgNV HSAEMTAvMC0GBFUdIAAwJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMw UAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT QUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUFBwEBBGowaDA/BggrBgEFBQcw AoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJTQUFkZFRydXN0Q0EuY3J0 MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBDAUA A4ICAQAKBU57DY8fEzkA/W/sYsbD7e0XquMBzHjcP0eXXXRD4EAEAGCWSs+QRL9XIxmx+52z x9wMa8YTejlR+NKejiyKPTF0q63zMxrO/z/hUwo8IDcRRLS0NSgvTW6AN2rCXJe5iLN5fIfY gIBB9cy1L6trPuZ/vjUJm87nQ7ExQzGqWN5F9U8MlAk0c5iLanG7GCMoNjHiF1n0baj6guUe G7n5qcwOQTyDS19+NEqfwjUPUGasN1ZH8h1sE6PrzvRpti+rKzWpiU+i2/k3l2b5fFDy+Wu9 jv6R9BoBh47es/UMzwEZ2kSrIVVr4jSukk+FpmR5ZbtwiYNAV6sdb1srMGsILzXlrdasSE2n GHvZklk2zUdgn7b01MHq67g0mNozGmT6Dam41Kbhv25WMFs871XqwVIb4gGoT1yRf/VePMm1 jwauqijhKJFvrNweGnebGPeipaLxIo2iEA4qdRztEg/qyzWGogXK/TFdmivg322fMPQWjQkM hRGMM8SCjlZN22L8x0ZOYoVA2rHJm5P25IjZe+HPyn7ikJiSJmqlqFmUeowXF3D1dFlCCs/5 yC06RYRqI2REFu+28t2nswIvY6xCFAR0RtS8Mz2yXNld0js2MmiRUGrc7imWzdUPbPcv9sdU F7SsERGPIzYL8dIiHzit+YCoGCSXMg6peF37hHNp1TGCAzYwggMyAgEBMFowRjELMAkGA1UE BhMCTkwxGTAXBgNVBAoTEEdFQU5UIFZlcmVuaWdpbmcxHDAaBgNVBAMTE0dFQU5UIFBlcnNv bmFsIENBIDQCEE8OIkilna5/lhLhoqtlqbIwDQYJYIZIAWUDBAIBBQCgggGtMBgGCSqGSIb3 DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI0MDcxMDA1MTY1OFowLwYJKoZI hvcNAQkEMSIEIAp1F8BwYHPrSFBb7Wbi70VX5lhzVvTqAzq4p2ooq4XKMGkGCSsGAQQBgjcQ BDFcMFowRjELMAkGA1UEBhMCTkwxGTAXBgNVBAoTEEdFQU5UIFZlcmVuaWdpbmcxHDAaBgNV BAMTE0dFQU5UIFBlcnNvbmFsIENBIDQCEE8OIkilna5/lhLhoqtlqbIwagYJKoZIhvcNAQkP MV0wWzALBglghkgBZQMEASowCwYJYIZIAWUDBAECMAsGCWCGSAFlAwQCATALBglghkgBZQME AgIwCwYJYIZIAWUDBAIDMAsGCWCGSAFlAwQCBDALBgkqhkiG9w0BAQEwawYLKoZIhvcNAQkQ AgsxXKBaMEYxCzAJBgNVBAYTAk5MMRkwFwYDVQQKExBHRUFOVCBWZXJlbmlnaW5nMRwwGgYD VQQDExNHRUFOVCBQZXJzb25hbCBDQSA0AhBPDiJIpZ2uf5YS4aKrZamyMA0GCSqGSIb3DQEB AQUABIIBAH0D+94nUDd1FuSEPsvnlRBMrAFh3PLMGcItcqy58aBq/Y9oCBEd2X7yRZVHlzEm GQ0ZMGN7wRedM06/5lakuh+1vL7BRihKhIsEjngOfACWeh91ffkYDojdJLXxhoGOr/a18hUA IuXXaj2oVaHTxH2exgy39y2KFwftC5T08tvh8b1OoTMDQSTfH+InxRxkBdX/zU3JVFLemv2g EPpHzCrZa+qFFUjmpjn3qm8pziJaL/3sX5TyoXeEkjsP606RuCe7l4Gf7bOocTzjb1+6XJRy 8rGYijhP+amZ5vHOtOHi/MlAwbUekDl2g2ZLLyEVdU1h5UV+6QSG51ewMUsbqycAAAAAAAA= --------------ms060001040601080801070306--