From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D217CD116F1 for ; Sat, 29 Nov 2025 13:45:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5427710E1E1; Sat, 29 Nov 2025 13:44:59 +0000 (UTC) Received: from outboundhk.mxmail.xiaomi.com (outboundhk.mxmail.xiaomi.com [118.143.206.90]) by gabe.freedesktop.org (Postfix) with ESMTP id E06BE10E8D6 for ; Fri, 28 Nov 2025 13:14:16 +0000 (UTC) X-CSE-ConnectionGUID: Y4ER6VcLSJOvWJRhks5mJA== X-CSE-MsgGUID: uRmt4h+KTeW8ygKVJnoCGw== X-IronPort-AV: E=Sophos;i="6.20,232,1758556800"; d="scan'208,217";a="133946740" From: =?utf-8?B?6auY57+U?= To: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "Barry Song" <21cnbao@gmail.com>, Xiang Gao CC: "sumit.semwal@linaro.org" , "rostedt@goodmis.org" , "mhiramat@kernel.org" , "linux-media@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "mathieu.desnoyers@efficios.com" , "dhowells@redhat.com" , "kuba@kernel.org" , "brauner@kernel.org" , "akpm@linux-foundation.org" , "linux-trace-kernel@vger.kernel.org" Subject: =?utf-8?B?562U5aSNOiBbRXh0ZXJuYWwgTWFpbF1SZTogW1BBVENIIHY0XSBkbWEtYnVm?= =?utf-8?Q?:_add_some_tracepoints_to_debug.?= Thread-Topic: [External Mail]Re: [PATCH v4] dma-buf: add some tracepoints to debug. Thread-Index: AQHcYEnd4IpRqaBhyECRpZTvR0kz77UHTxuAgAC+eq8= Date: Fri, 28 Nov 2025 13:14:14 +0000 Message-ID: <1b9645fdaf324b2e8e9370e548883d49@xiaomi.com> References: <20251128085215.550100-1-gxxa03070307@gmail.com> , In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.237.8.164] Content-Type: multipart/alternative; boundary="_000_1b9645fdaf324b2e8e9370e548883d49xiaomicom_" MIME-Version: 1.0 X-Mailman-Approved-At: Sat, 29 Nov 2025 13:44:58 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" --_000_1b9645fdaf324b2e8e9370e548883d49xiaomicom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiBUaGlua2luZyBtb3JlIGFib3V0IGl0IEkgd2FzIHdvbmRlcmluZyBpZiB3ZSByZWFsbHkgbmVl ZCB0aGUgdXNlcnNwYWNlIGFzc2lnbmVkIG5hbWUgaW4gdGhlIHRyYWNlcG9pbnQgaW4gdGhlIGZp cnN0IHBsYWNlLg0KPiBUaGUgaW5vIHNob3VsZCBiZSBzdWZmaWNpZW50IHRvIHVuaXF1ZWx5IGlk ZW50aWZ5IGVhY2ggZG1hLWJ1ZiwgdHJhY2luZyB0aGUgbmFtZSBzaG91bGQgb25seSBiZSBwcmlu dGVkIGlmIGl0J3MgY2hhbmdpbmcgb3Igb3RoZXJ3aXNlIHdlIHNwYW0gdGhlIHRyYWNlbG9nIHF1 aXRlIGEgYml0IHdpdGggaXQuDQoNCk1hbnkgdGhyZWFkcyB1c2UgZG1hYnVmICJxY29tLHN5c3Rl bSIuIElmIHRoZXJlIGlzIGEgdXNlcnNwYWNlIG5hbWUsIHdlIGNhbiBpbW1lZGlhdGVseSBmaW5k IHRoZSBkbWFidWYgSSdtIHVzaW5nLiBJdCBtaWdodCBpbmRlZWQgbm90IGJlIG5lY2Vzc2FyeSBp biBvdGhlciBzY2VuYXJpb3MuDQoNCg0KPiBCVFcgV2UgZG9uJ3QgaGF2ZSBhbnkgaWRlbnRpZmlj YXRpb24gZm9yIGFuIGF0dGFjaG1lbnQsIHNvIHdoZW4gbXVsdGlwbGUgZGV2aWNlcyBhdHRhY2gg dG8gdGhlIHNhbWUgRE1BLWJ1ZiB0aGUgdHJhY2Ugd291bGQgYmUgcXVpdGUgbWVhbmluZ2xlc3Mu IFdlIHNob3VsZCBwcm9iYWJseSBmaXggdGhhdC4NCg0KVGhpcyByZXF1aXJlcyBzb21lIHRob3Vn aHQuDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCuWPkeS7tuS6ujogQ2hy aXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0K5Y+R6YCB5pe26Ze0OiAy MDI15bm0MTHmnIgyOOaXpSAxNzozOTozMQ0K5pS25Lu25Lq6OiBCYXJyeSBTb25nOyBYaWFuZyBH YW8NCuaKhOmAgTogc3VtaXQuc2Vtd2FsQGxpbmFyby5vcmc7IHJvc3RlZHRAZ29vZG1pcy5vcmc7 IG1oaXJhbWF0QGtlcm5lbC5vcmc7IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZzsgZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsg bWF0aGlldS5kZXNub3llcnNAZWZmaWNpb3MuY29tOyBkaG93ZWxsc0ByZWRoYXQuY29tOyBrdWJh QGtlcm5lbC5vcmc7IGJyYXVuZXJAa2VybmVsLm9yZzsgYWtwbUBsaW51eC1mb3VuZGF0aW9uLm9y ZzsgbGludXgtdHJhY2Uta2VybmVsQHZnZXIua2VybmVsLm9yZzsg6auY57+UDQrkuLvpopg6IFtF eHRlcm5hbCBNYWlsXVJlOiBbUEFUQ0ggdjRdIGRtYS1idWY6IGFkZCBzb21lIHRyYWNlcG9pbnRz IHRvIGRlYnVnLg0KDQpb5aSW6YOo6YKu5Lu2XSDmraTpgq7ku7bmnaXmupDkuo7lsI/nsbPlhazl j7jlpJbpg6jvvIzor7fosKjmhY7lpITnkIbjgILoi6Xlr7npgq7ku7blronlhajmgKflrZjnlpHv vIzor7flsIbpgq7ku7bovazlj5Hnu5ltaXNlY0B4aWFvbWkuY29t6L+b6KGM5Y+N6aaIDQoNCk9u IDExLzI4LzI1IDEwOjMxLCBCYXJyeSBTb25nIHdyb3RlOg0KPiBPbiBGcmksIE5vdiAyOCwgMjAy NSBhdCA0OjUz4oCvUE0gWGlhbmcgR2FvIDxneHhhMDMwNzAzMDdAZ21haWwuY29tPiB3cm90ZToN Cj4+DQo+PiBGcm9tOiBnYW94aWFuZzE3IDxnYW94aWFuZzE3QHhpYW9taS5jb20+DQo+Pg0KPj4g SSB3YW50IHRvIHRyYWNrIHRoZSBzdGF0dXMgb2YgZG1hYnVmIGluIHJlYWwgdGltZSBpbiB0aGUg cHJvZHVjdGlvbiBlbnZpcm9ubWVudC4NCj4+IEJ1dCBub3cgd2UgY2FuIG9ubHkgY2hlY2sgaXQg YnkgdHJhdmVyc2luZyB0aGUgZmQgaW4gdGhlIHByb2Nlc3Mgb3IgZG1hYnVmX2xpc3QuDQo+DQo+ IG1pZ2h0IGJlOg0KPg0KPiBTaW5jZSB3ZSBjYW4gb25seSBpbnNwZWN0IGRtYWJ1ZiBieSBpdGVy YXRpbmcgb3ZlciBwcm9jZXNzIEZEcyBvciB0aGUNCj4gZG1hYnVmX2xpc3QsIHdlIG5lZWQgdG8g YWRkIG91ciBvd24gdHJhY2Vwb2ludHMgdG8gdHJhY2sgaXRzIHN0YXR1cyBpbg0KPiByZWFsIHRp bWUgaW4gcHJvZHVjdGlvbi4NCj4NCj4+DQo+PiBGb3IgZXhhbXBsZToNCj4+ICAgIGJpbmRlcjoz MDMxXzQtMTgzNDggICBbMDA1XSAuLi4xLiAgIDU0NS41NjgyNzU6IGRtYV9idWZfZXhwb3J0OiBl eHBfbmFtZT1xY29tLHN5c3RlbSBuYW1lPShudWxsKSBzaXplPTIxNzA4OCBpbm89Mjc1MA0KPj4g ICAgYmluZGVyOjMwMzFfNC0xODM0OCAgIFswMDVdIC4uLjEuICAgNTQ1LjU2ODI4NDogZG1hX2J1 Zl9mZDogZXhwX25hbWU9cWNvbSxzeXN0ZW0gbmFtZT0obnVsbCkgc2l6ZT0yMTcwODggaW5vPTI3 NTAgZmQ9OA0KPj4gICAgYmluZGVyOjMwMzFfNC0xODM0OCAgIFswMDVdIC4uLjEuICAgNTQ1LjU2 ODM5OTogZG1hX2J1Zl9tbWFwX2ludGVybmFsOiBleHBfbmFtZT1xY29tLHN5c3RlbSBuYW1lPXFj b20sc3lzdGVtIHNpemU9Mjg2NzIgaW5vPTI3NTENCj4+ICAgICAga3dvcmtlci81OjEtMTMwICAg ICBbMDA1XSAuLi4xLiAgIDU0NS41NzAxOTM6IGRtYV9idWZfcHV0OiBleHBfbmFtZT1xY29tLHN5 c3RlbSBuYW1lPWFiIHNpemU9Mjg2NzIgaW5vPTI3NTENCj4+ICAgICBSZW5kZXJUaHJlYWQtMTg4 OTEgICBbMDA1XSAuLi4xLiAgIDU0NS42MDI5OTQ6IGRtYV9idWZfZ2V0OiBleHBfbmFtZT1xY29t LHN5c3RlbSBuYW1lPWFiIHNpemU9MjE3MDg4IGlubz0yNzUwIGZkPTEwODcNCj4+ICAgICBSZW5k ZXJUaHJlYWQtOTQwOSAgICBbMDAwXSAubi4xLiAgIDU0NS43NDUwMDQ6IGRtYV9idWZfZHluYW1p Y19hdHRhY2g6IGV4cF9uYW1lPXFjb20sc3lzdGVtIG5hbWU9YWIgc2l6ZT0yMTcwODggaW5vPTI3 NTAgaXNfZHluYW1pYz0wIGRldl9uYW1lPWtnc2wtM2QwDQo+PiAgICAgUmVuZGVyVGhyZWFkLTk0 MDkgICAgWzAwNV0gLi4uMS4gICA1NDUuNzQ3ODAyOiBkbWFfYnVmX2RldGFjaDogZXhwX25hbWU9 cWNvbSxzeXN0ZW0gbmFtZT1icSBzaXplPTEyNzcxMzI4IGlubz0yNzY0IGlzX2R5bmFtaWM9MCBk ZXZfbmFtZT1rZ3NsLTNkMA0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IFhpYW5nIEdhbyA8Z2FveGlh bmcxN0B4aWFvbWkuY29tPg0KPj4gLS0tDQo+PiAgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyAg ICAgIHwgIDQ4ICsrKysrKysrKy0NCj4+ICBpbmNsdWRlL3RyYWNlL2V2ZW50cy9kbWFfYnVmLmgg fCAxNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAgMiBmaWxlcyBjaGFu Z2VkLCAyMDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBpbmNsdWRlL3RyYWNlL2V2ZW50cy9kbWFfYnVmLmgNCj4+DQo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMNCj4+ IGluZGV4IDJiY2Y5Y2VjYTk5Ny4uNmUwNGUxMmYxNDllIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVy cy9kbWEtYnVmL2RtYS1idWYuYw0KPj4gKysrIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYw0K Pj4gQEAgLTM1LDYgKzM1LDkgQEANCj4+DQo+PiAgI2luY2x1ZGUgImRtYS1idWYtc3lzZnMtc3Rh dHMuaCINCj4+DQo+PiArI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTDQo+PiArI2luY2x1ZGUg PHRyYWNlL2V2ZW50cy9kbWFfYnVmLmg+DQo+PiArDQo+PiAgc3RhdGljIGlubGluZSBpbnQgaXNf ZG1hX2J1Zl9maWxlKHN0cnVjdCBmaWxlICopOw0KPj4NCj4+ICBzdGF0aWMgREVGSU5FX01VVEVY KGRtYWJ1Zl9saXN0X211dGV4KTsNCj4+IEBAIC0yMjAsNiArMjIzLDExIEBAIHN0YXRpYyBpbnQg ZG1hX2J1Zl9tbWFwX2ludGVybmFsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSkNCj4+ICAgICAgICAgICAgIGRtYWJ1Zi0+c2l6ZSA+PiBQQUdFX1NISUZUKQ0K Pj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4NCj4+ICsgICAgICAgaWYgKHRy YWNlX2RtYV9idWZfbW1hcF9pbnRlcm5hbF9lbmFibGVkKCkpIHsNCj4+ICsgICAgICAgICAgICAg ICBndWFyZChzcGlubG9jaykoJmRtYWJ1Zi0+bmFtZV9sb2NrKTsNCj4+ICsgICAgICAgICAgICAg ICB0cmFjZV9kbWFfYnVmX21tYXBfaW50ZXJuYWwoZG1hYnVmKTsNCj4+ICsgICAgICAgfQ0KPj4g Kw0KPj4gICAgICAgICByZXR1cm4gZG1hYnVmLT5vcHMtPm1tYXAoZG1hYnVmLCB2bWEpOw0KPj4g IH0NCj4+DQo+PiBAQCAtNzQ1LDYgKzc1MywxMSBAQCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9l eHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKQ0KPj4NCj4+ ICAgICAgICAgX19kbWFfYnVmX2xpc3RfYWRkKGRtYWJ1Zik7DQo+Pg0KPj4gKyAgICAgICBpZiAo dHJhY2VfZG1hX2J1Zl9leHBvcnRfZW5hYmxlZCgpKSB7DQo+PiArICAgICAgICAgICAgICAgZ3Vh cmQoc3BpbmxvY2spKCZkbWFidWYtPm5hbWVfbG9jayk7DQo+PiArICAgICAgICAgICAgICAgdHJh Y2VfZG1hX2J1Zl9leHBvcnQoZG1hYnVmKTsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPg0KPiBwZXJo YXBzIGEgbWFjcm8gc2ltaWxhciB0byB0aGUgb25lIGJlbG93DQo+DQo+ICNkZWZpbmUgRE1BX0JV Rl9UUkFDRShGVU5DLCAuLi4pICAgICAgICAgICAgICAgICAgXA0KPiAgICAgZG8geyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICAgICBpZiAoRlVOQyMj X2VuYWJsZWQoKSkgeyAgICAgICAgICAgICAgICAgICBcDQo+ICAgICAgICAgICAgIGd1YXJkKHNw aW5sb2NrKSgmZG1hYnVmLT5uYW1lX2xvY2spOyBcDQo+ICAgICAgICAgICAgIEZVTkMoX19WQV9B UkdTX18pOyAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgICAgIH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIH0gd2hpbGUgKDApDQo+DQo+DQo+IFRo aXMgd291bGQgaGVscCB1cyBhdm9pZCBkdXBsaWNhdGluZyBhIGxvdCBvZiBjb2RlLg0KPg0KPiBj b3VsZCBiZToNCj4gRE1BX0JVRl9UUkFDRSh0cmFjZV9kbWFfYnVmX3B1dCwgZG1hYnVmKTsNCj4g RE1BX0JVRl9UUkFDRSh0cmFjZV9kbWFfYnVmX2F0dGFjaCwgZG1hYnVmLCBkZXYpOw0KPg0KPiA/ DQoNClRoaW5raW5nIG1vcmUgYWJvdXQgaXQgSSB3YXMgd29uZGVyaW5nIGlmIHdlIHJlYWxseSBu ZWVkIHRoZSB1c2Vyc3BhY2UgYXNzaWduZWQgbmFtZSBpbiB0aGUgdHJhY2Vwb2ludCBpbiB0aGUg Zmlyc3QgcGxhY2UuDQoNClRoZSBpbm8gc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gdW5pcXVlbHkg aWRlbnRpZnkgZWFjaCBkbWEtYnVmLCB0cmFjaW5nIHRoZSBuYW1lIHNob3VsZCBvbmx5IGJlIHBy aW50ZWQgaWYgaXQncyBjaGFuZ2luZyBvciBvdGhlcndpc2Ugd2Ugc3BhbSB0aGUgdHJhY2Vsb2cg cXVpdGUgYSBiaXQgd2l0aCBpdC4NCg0KQlRXIFdlIGRvbid0IGhhdmUgYW55IGlkZW50aWZpY2F0 aW9uIGZvciBhbiBhdHRhY2htZW50LCBzbyB3aGVuIG11bHRpcGxlIGRldmljZXMgYXR0YWNoIHRv IHRoZSBzYW1lIERNQS1idWYgdGhlIHRyYWNlIHdvdWxkIGJlIHF1aXRlIG1lYW5pbmdsZXNzLiBX ZSBzaG91bGQgcHJvYmFibHkgZml4IHRoYXQuDQoNClJlZ2FyZHMsDQpDaHJpc3RpYW4uDQoNCg== --_000_1b9645fdaf324b2e8e9370e548883d49xiaomicom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVu dD0iTWljcm9zb2Z0IEV4Y2hhbmdlIFNlcnZlciI+DQo8IS0tIGNvbnZlcnRlZCBmcm9tIHRleHQg LS0+PHN0eWxlPjwhLS0gLkVtYWlsUXVvdGUgeyBtYXJnaW4tbGVmdDogMXB0OyBwYWRkaW5nLWxl ZnQ6IDRwdDsgYm9yZGVyLWxlZnQ6ICM4MDAwMDAgMnB4IHNvbGlkOyB9IC0tPjwvc3R5bGU+DQo8 L2hlYWQ+DQo8Ym9keT4NCjxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+ DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHN0eWxlPSIiPg0KPCEtLQ0KcA0KCXttYXJnaW4tdG9w OjA7DQoJbWFyZ2luLWJvdHRvbTowfQ0KLS0+DQo8L3N0eWxlPg0KPGRpdiBkaXI9Imx0ciI+DQo8 ZGl2IGlkPSJ4X2RpdnRhZ2RlZmF1bHR3cmFwcGVyIiBkaXI9Imx0ciIgc3R5bGU9ImZvbnQtc2l6 ZToxMnB0OyBjb2xvcjojMDAwMDAwOyBmb250LWZhbWlseTpDYWxpYnJpLEhlbHZldGljYSxzYW5z LXNlcmlmIj4NCjxwPjxzcGFuIHN0eWxlPSJjb2xvcjpyZ2IoMzMsMzMsMzMpOyBmb250LWZhbWls eTomcXVvdDtNaWNyb3NvZnQgWWFIZWkgVUkmcXVvdDssJnF1b3Q7TWljcm9zb2Z0IFlhSGVpJnF1 b3Q7LOW+rui9r+mbhem7kSxTaW1TdW4s5a6L5L2TLHNhbnMtc2VyaWYsc2VyaWYsRW1vamlGb250 OyBmb250LXNpemU6MTMuMzMzM3B4Ij4mZ3Q7Jm5ic3A7VGhpbmtpbmcgbW9yZSBhYm91dCBpdCBJ IHdhcyB3b25kZXJpbmcgaWYgd2UgcmVhbGx5IG5lZWQgdGhlIHVzZXJzcGFjZSBhc3NpZ25lZCBu YW1lIGluIHRoZSB0cmFjZXBvaW50DQogaW4gdGhlIGZpcnN0IHBsYWNlLjwvc3Bhbj48YnIgc3R5 bGU9ImNvbG9yOnJnYigzMywzMywzMyk7IGZvbnQtZmFtaWx5OiZxdW90O01pY3Jvc29mdCBZYUhl aSBVSSZxdW90OywmcXVvdDtNaWNyb3NvZnQgWWFIZWkmcXVvdDss5b6u6L2v6ZuF6buRLFNpbVN1 bizlrovkvZMsc2Fucy1zZXJpZixzZXJpZixFbW9qaUZvbnQ7IGZvbnQtc2l6ZToxMy4zMzMzcHgi Pg0KPHNwYW4gc3R5bGU9ImNvbG9yOnJnYigzMywzMywzMyk7IGZvbnQtZmFtaWx5OiZxdW90O01p Y3Jvc29mdCBZYUhlaSBVSSZxdW90OywmcXVvdDtNaWNyb3NvZnQgWWFIZWkmcXVvdDss5b6u6L2v 6ZuF6buRLFNpbVN1bizlrovkvZMsc2Fucy1zZXJpZixzZXJpZixFbW9qaUZvbnQ7IGZvbnQtc2l6 ZToxMy4zMzMzcHgiPiZndDsmbmJzcDtUaGUgaW5vIHNob3VsZCBiZSBzdWZmaWNpZW50IHRvIHVu aXF1ZWx5IGlkZW50aWZ5IGVhY2ggZG1hLWJ1ZiwgdHJhY2luZyB0aGUgbmFtZSBzaG91bGQgb25s eSBiZSBwcmludGVkIGlmDQogaXQncyBjaGFuZ2luZyBvciBvdGhlcndpc2Ugd2Ugc3BhbSB0aGUg dHJhY2Vsb2cgcXVpdGUgYSBiaXQgd2l0aCBpdC48L3NwYW4+PGJyPg0KPC9wPg0KPHA+PHNwYW4+ TWFueSB0aHJlYWRzIHVzZSBkbWFidWYgJnF1b3Q7cWNvbSxzeXN0ZW0mcXVvdDsuIElmIHRoZXJl IGlzIGEgdXNlcnNwYWNlIG5hbWUsIHdlIGNhbiBpbW1lZGlhdGVseSBmaW5kIHRoZSBkbWFidWYg SSdtIHVzaW5nLiZuYnNwO0l0IG1pZ2h0IGluZGVlZCBub3QgYmUgbmVjZXNzYXJ5IGluIG90aGVy IHNjZW5hcmlvcy48L3NwYW4+PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OlBvcHBpbnMt TWVkaXVtOyBmb250LXNpemU6MTRweDsgY29sb3I6cmdiKDMzLDMzLDMzKSI+PC9zcGFuPjwvcD4N CjxwPjxzcGFuPjxicj4NCjwvc3Bhbj48L3A+DQo8cD48c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6 cmdiKDMzLDMzLDMzKTsgZm9udC1mYW1pbHk6JnF1b3Q7TWljcm9zb2Z0IFlhSGVpIFVJJnF1b3Q7 LCZxdW90O01pY3Jvc29mdCBZYUhlaSZxdW90Oyzlvq7ova/pm4Xpu5EsU2ltU3VuLOWui+S9kyxz YW5zLXNlcmlmLHNlcmlmLEVtb2ppRm9udDsgZm9udC1zaXplOjEzLjMzMzNweCI+Jmd0OyZuYnNw O0JUVyBXZSBkb24ndCBoYXZlIGFueSBpZGVudGlmaWNhdGlvbiBmb3IgYW4gYXR0YWNobWVudCwg c28gd2hlbiBtdWx0aXBsZSBkZXZpY2VzIGF0dGFjaCB0byB0aGUgc2FtZQ0KIERNQS1idWYgdGhl IHRyYWNlIHdvdWxkIGJlIHF1aXRlIG1lYW5pbmdsZXNzLiBXZSBzaG91bGQgcHJvYmFibHkgZml4 IHRoYXQuPC9zcGFuPjwvc3Bhbj48L3A+DQo8cD48c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6cmdi KDMzLDMzLDMzKTsgZm9udC1mYW1pbHk6JnF1b3Q7TWljcm9zb2Z0IFlhSGVpIFVJJnF1b3Q7LCZx dW90O01pY3Jvc29mdCBZYUhlaSZxdW90Oyzlvq7ova/pm4Xpu5EsU2ltU3VuLOWui+S9kyxzYW5z LXNlcmlmLHNlcmlmLEVtb2ppRm9udDsgZm9udC1zaXplOjEzLjMzMzNweCI+PC9zcGFuPjwvcD4N CjxkaXY+VGhpcyByZXF1aXJlcyBzb21lIHRob3VnaHQuPC9kaXY+DQo8YnI+DQo8L3NwYW4+DQo8 cD48L3A+DQo8L2Rpdj4NCjxociB0YWJpbmRleD0iLTEiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1i bG9jazsgd2lkdGg6OTglIj4NCjxkaXYgaWQ9InhfZGl2UnBseUZ3ZE1zZyIgZGlyPSJsdHIiPjxm b250IGZhY2U9IkNhbGlicmksIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIiBzdHlsZT0iZm9u dC1zaXplOjExcHQiPjxiPuWPkeS7tuS6ujo8L2I+IENocmlzdGlhbiBLw7ZuaWcgJmx0O2Nocmlz dGlhbi5rb2VuaWdAYW1kLmNvbSZndDs8YnI+DQo8Yj7lj5HpgIHml7bpl7Q6PC9iPiAyMDI15bm0 MTHmnIgyOOaXpSAxNzozOTozMTxicj4NCjxiPuaUtuS7tuS6ujo8L2I+IEJhcnJ5IFNvbmc7IFhp YW5nIEdhbzxicj4NCjxiPuaKhOmAgTo8L2I+IHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnOyByb3N0 ZWR0QGdvb2RtaXMub3JnOyBtaGlyYW1hdEBrZXJuZWwub3JnOyBsaW51eC1tZWRpYUB2Z2VyLmtl cm5lbC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGxpbnV4LWtlcm5lbEB2 Z2VyLmtlcm5lbC5vcmc7IG1hdGhpZXUuZGVzbm95ZXJzQGVmZmljaW9zLmNvbTsgZGhvd2VsbHNA cmVkaGF0LmNvbTsga3ViYUBrZXJuZWwub3JnOyBicmF1bmVyQGtlcm5lbC5vcmc7DQogYWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZzsgbGludXgtdHJhY2Uta2VybmVsQHZnZXIua2VybmVsLm9yZzsg 6auY57+UPGJyPg0KPGI+5Li76aKYOjwvYj4gW0V4dGVybmFsIE1haWxdUmU6IFtQQVRDSCB2NF0g ZG1hLWJ1ZjogYWRkIHNvbWUgdHJhY2Vwb2ludHMgdG8gZGVidWcuPC9mb250Pg0KPGRpdj4mbmJz cDs8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8Zm9udCBzaXplPSIyIj48c3BhbiBzdHlsZT0iZm9u dC1zaXplOjEwcHQ7Ij4NCjxkaXYgY2xhc3M9IlBsYWluVGV4dCI+W+WklumDqOmCruS7tl0g5q2k 6YKu5Lu25p2l5rqQ5LqO5bCP57Gz5YWs5Y+45aSW6YOo77yM6K+36LCo5oWO5aSE55CG44CC6Iul 5a+56YKu5Lu25a6J5YWo5oCn5a2Y55aR77yM6K+35bCG6YKu5Lu26L2s5Y+R57uZbWlzZWNAeGlh b21pLmNvbei/m+ihjOWPjemmiDxicj4NCjxicj4NCk9uIDExLzI4LzI1IDEwOjMxLCBCYXJyeSBT b25nIHdyb3RlOjxicj4NCiZndDsgT24gRnJpLCBOb3YgMjgsIDIwMjUgYXQgNDo1M+KAr1BNIFhp YW5nIEdhbyAmbHQ7Z3h4YTAzMDcwMzA3QGdtYWlsLmNvbSZndDsgd3JvdGU6PGJyPg0KJmd0OyZn dDs8YnI+DQomZ3Q7Jmd0OyBGcm9tOiBnYW94aWFuZzE3ICZsdDtnYW94aWFuZzE3QHhpYW9taS5j b20mZ3Q7PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyBJIHdhbnQgdG8gdHJhY2sgdGhlIHN0 YXR1cyBvZiBkbWFidWYgaW4gcmVhbCB0aW1lIGluIHRoZSBwcm9kdWN0aW9uIGVudmlyb25tZW50 Ljxicj4NCiZndDsmZ3Q7IEJ1dCBub3cgd2UgY2FuIG9ubHkgY2hlY2sgaXQgYnkgdHJhdmVyc2lu ZyB0aGUgZmQgaW4gdGhlIHByb2Nlc3Mgb3IgZG1hYnVmX2xpc3QuPGJyPg0KJmd0Ozxicj4NCiZn dDsgbWlnaHQgYmU6PGJyPg0KJmd0Ozxicj4NCiZndDsgU2luY2Ugd2UgY2FuIG9ubHkgaW5zcGVj dCBkbWFidWYgYnkgaXRlcmF0aW5nIG92ZXIgcHJvY2VzcyBGRHMgb3IgdGhlPGJyPg0KJmd0OyBk bWFidWZfbGlzdCwgd2UgbmVlZCB0byBhZGQgb3VyIG93biB0cmFjZXBvaW50cyB0byB0cmFjayBp dHMgc3RhdHVzIGluPGJyPg0KJmd0OyByZWFsIHRpbWUgaW4gcHJvZHVjdGlvbi48YnI+DQomZ3Q7 PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyBGb3IgZXhhbXBsZTo8YnI+DQomZ3Q7Jmd0OyZu YnNwOyZuYnNwOyZuYnNwOyBiaW5kZXI6MzAzMV80LTE4MzQ4Jm5ic3A7Jm5ic3A7IFswMDVdIC4u LjEuJm5ic3A7Jm5ic3A7IDU0NS41NjgyNzU6IGRtYV9idWZfZXhwb3J0OiBleHBfbmFtZT1xY29t LHN5c3RlbSBuYW1lPShudWxsKSBzaXplPTIxNzA4OCBpbm89Mjc1MDxicj4NCiZndDsmZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGJpbmRlcjozMDMxXzQtMTgzNDgmbmJzcDsmbmJzcDsgWzAwNV0gLi4u MS4mbmJzcDsmbmJzcDsgNTQ1LjU2ODI4NDogZG1hX2J1Zl9mZDogZXhwX25hbWU9cWNvbSxzeXN0 ZW0gbmFtZT0obnVsbCkgc2l6ZT0yMTcwODggaW5vPTI3NTAgZmQ9ODxicj4NCiZndDsmZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGJpbmRlcjozMDMxXzQtMTgzNDgmbmJzcDsmbmJzcDsgWzAwNV0gLi4u MS4mbmJzcDsmbmJzcDsgNTQ1LjU2ODM5OTogZG1hX2J1Zl9tbWFwX2ludGVybmFsOiBleHBfbmFt ZT1xY29tLHN5c3RlbSBuYW1lPXFjb20sc3lzdGVtIHNpemU9Mjg2NzIgaW5vPTI3NTE8YnI+DQom Z3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBrd29ya2VyLzU6MS0xMzAmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgWzAwNV0gLi4uMS4mbmJzcDsmbmJzcDsgNTQ1LjU3MDE5Mzog ZG1hX2J1Zl9wdXQ6IGV4cF9uYW1lPXFjb20sc3lzdGVtIG5hbWU9YWIgc2l6ZT0yODY3MiBpbm89 Mjc1MTxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFJlbmRlclRocmVhZC0x ODg5MSZuYnNwOyZuYnNwOyBbMDA1XSAuLi4xLiZuYnNwOyZuYnNwOyA1NDUuNjAyOTk0OiBkbWFf YnVmX2dldDogZXhwX25hbWU9cWNvbSxzeXN0ZW0gbmFtZT1hYiBzaXplPTIxNzA4OCBpbm89Mjc1 MCBmZD0xMDg3PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgUmVuZGVyVGhy ZWFkLTk0MDkmbmJzcDsmbmJzcDsmbmJzcDsgWzAwMF0gLm4uMS4mbmJzcDsmbmJzcDsgNTQ1Ljc0 NTAwNDogZG1hX2J1Zl9keW5hbWljX2F0dGFjaDogZXhwX25hbWU9cWNvbSxzeXN0ZW0gbmFtZT1h YiBzaXplPTIxNzA4OCBpbm89Mjc1MCBpc19keW5hbWljPTAgZGV2X25hbWU9a2dzbC0zZDA8YnI+ DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBSZW5kZXJUaHJlYWQtOTQwOSZuYnNw OyZuYnNwOyZuYnNwOyBbMDA1XSAuLi4xLiZuYnNwOyZuYnNwOyA1NDUuNzQ3ODAyOiBkbWFfYnVm X2RldGFjaDogZXhwX25hbWU9cWNvbSxzeXN0ZW0gbmFtZT1icSBzaXplPTEyNzcxMzI4IGlubz0y NzY0IGlzX2R5bmFtaWM9MCBkZXZfbmFtZT1rZ3NsLTNkMDxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0 OyZndDsgU2lnbmVkLW9mZi1ieTogWGlhbmcgR2FvICZsdDtnYW94aWFuZzE3QHhpYW9taS5jb20m Z3Q7PGJyPg0KJmd0OyZndDsgLS0tPGJyPg0KJmd0OyZndDsmbmJzcDsgZHJpdmVycy9kbWEtYnVm L2RtYS1idWYuYyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB8Jm5ic3A7IDQ4ICYjNDM7 JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOy08YnI+DQomZ3Q7Jmd0OyZu YnNwOyBpbmNsdWRlL3RyYWNlL2V2ZW50cy9kbWFfYnVmLmggfCAxNjAgJiM0MzsmIzQzOyYjNDM7 JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYj NDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQz OyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7PGJyPg0KJmd0OyZndDsmbmJzcDsg MiBmaWxlcyBjaGFuZ2VkLCAyMDcgaW5zZXJ0aW9ucygmIzQzOyksIDEgZGVsZXRpb24oLSk8YnI+ DQomZ3Q7Jmd0OyZuYnNwOyBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS90cmFjZS9ldmVudHMv ZG1hX2J1Zi5oPGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM8YnI+DQomZ3Q7 Jmd0OyBpbmRleCAyYmNmOWNlY2E5OTcuLjZlMDRlMTJmMTQ5ZSAxMDA2NDQ8YnI+DQomZ3Q7Jmd0 OyAtLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPGJyPg0KJmd0OyZndDsgJiM0MzsmIzQz OyYjNDM7IGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzxicj4NCiZndDsmZ3Q7IEBAIC0zNSw2 ICYjNDM7MzUsOSBAQDxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsmbmJzcDsgI2luY2x1ZGUg JnF1b3Q7ZG1hLWJ1Zi1zeXNmcy1zdGF0cy5oJnF1b3Q7PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7 Jmd0OyAmIzQzOyNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUzxicj4NCiZndDsmZ3Q7ICYjNDM7 I2luY2x1ZGUgJmx0O3RyYWNlL2V2ZW50cy9kbWFfYnVmLmgmZ3Q7PGJyPg0KJmd0OyZndDsgJiM0 Mzs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyBzdGF0aWMgaW5saW5lIGludCBpc19kbWFfYnVmX2ZpbGUo c3RydWN0IGZpbGUgKik7PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyBzdGF0aWMg REVGSU5FX01VVEVYKGRtYWJ1Zl9saXN0X211dGV4KTs8YnI+DQomZ3Q7Jmd0OyBAQCAtMjIwLDYg JiM0MzsyMjMsMTEgQEAgc3RhdGljIGludCBkbWFfYnVmX21tYXBfaW50ZXJuYWwoc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTxicj4NCiZndDsmZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IGRtYWJ1Zi0mZ3Q7c2l6ZSAmZ3Q7Jmd0OyBQQUdFX1NISUZUKTxicj4NCiZndDsm Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtRUlOVkFM Ozxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgaWYgKHRyYWNlX2RtYV9idWZfbW1hcF9pbnRlcm5hbF9lbmFibGVkKCkp IHs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBndWFyZChz cGlubG9jaykoJmFtcDtkbWFidWYtJmd0O25hbWVfbG9jayk7PGJyPg0KJmd0OyZndDsgJiM0Mzsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdHJhY2VfZG1hX2J1Zl9tbWFwX2ludGVybmFsKGRt YWJ1Zik7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgfTxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIGRtYWJ1Zi0mZ3Q7b3BzLSZn dDttbWFwKGRtYWJ1Ziwgdm1hKTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyB9PGJyPg0KJmd0OyZndDs8 YnI+DQomZ3Q7Jmd0OyBAQCAtNzQ1LDYgJiM0Mzs3NTMsMTEgQEAgc3RydWN0IGRtYV9idWYgKmRt YV9idWZfZXhwb3J0KGNvbnN0IHN0cnVjdCBkbWFfYnVmX2V4cG9ydF9pbmZvICpleHBfaW5mbyk8 YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IF9fZG1hX2J1Zl9saXN0X2FkZChkbWFidWYpOzxicj4NCiZndDsm Z3Q7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgaWYgKHRyYWNlX2RtYV9idWZfZXhwb3J0X2VuYWJsZWQoKSkgezxicj4NCiZndDsmZ3Q7ICYj NDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGd1YXJkKHNwaW5sb2NrKSgmYW1wO2RtYWJ1 Zi0mZ3Q7bmFtZV9sb2NrKTs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyB0cmFjZV9kbWFfYnVmX2V4cG9ydChkbWFidWYpOzxicj4NCiZndDsmZ3Q7ICYjNDM7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+DQomZ3Q7Jmd0OyAmIzQz Ozxicj4NCiZndDs8YnI+DQomZ3Q7IHBlcmhhcHMgYSBtYWNybyBzaW1pbGFyIHRvIHRoZSBvbmUg YmVsb3c8YnI+DQomZ3Q7PGJyPg0KJmd0OyAjZGVmaW5lIERNQV9CVUZfVFJBQ0UoRlVOQywgLi4u KSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBcPGJyPg0KJmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkbyB7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFw8YnI+DQom Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChG VU5DIyNfZW5hYmxlZCgpKSB7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IFw8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGd1YXJkKHNwaW5sb2NrKSgm YW1wO2RtYWJ1Zi0mZ3Q7bmFtZV9sb2NrKTsgXDxicj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgRlVO QyhfX1ZBX0FSR1NfXyk7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IFw8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IH0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgXDxicj4NCiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgfSB3aGlsZSAoMCk8YnI+DQomZ3Q7PGJyPg0KJmd0Ozxicj4NCiZndDsgVGhp cyB3b3VsZCBoZWxwIHVzIGF2b2lkIGR1cGxpY2F0aW5nIGEgbG90IG9mIGNvZGUuPGJyPg0KJmd0 Ozxicj4NCiZndDsgY291bGQgYmU6PGJyPg0KJmd0OyBETUFfQlVGX1RSQUNFKHRyYWNlX2RtYV9i dWZfcHV0LCBkbWFidWYpOzxicj4NCiZndDsgRE1BX0JVRl9UUkFDRSh0cmFjZV9kbWFfYnVmX2F0 dGFjaCwgZG1hYnVmLCBkZXYpOzxicj4NCiZndDs8YnI+DQomZ3Q7ID88YnI+DQo8YnI+DQpUaGlu a2luZyBtb3JlIGFib3V0IGl0IEkgd2FzIHdvbmRlcmluZyBpZiB3ZSByZWFsbHkgbmVlZCB0aGUg dXNlcnNwYWNlIGFzc2lnbmVkIG5hbWUgaW4gdGhlIHRyYWNlcG9pbnQgaW4gdGhlIGZpcnN0IHBs YWNlLjxicj4NCjxicj4NClRoZSBpbm8gc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gdW5pcXVlbHkg aWRlbnRpZnkgZWFjaCBkbWEtYnVmLCB0cmFjaW5nIHRoZSBuYW1lIHNob3VsZCBvbmx5IGJlIHBy aW50ZWQgaWYgaXQncyBjaGFuZ2luZyBvciBvdGhlcndpc2Ugd2Ugc3BhbSB0aGUgdHJhY2Vsb2cg cXVpdGUgYSBiaXQgd2l0aCBpdC48YnI+DQo8YnI+DQpCVFcgV2UgZG9uJ3QgaGF2ZSBhbnkgaWRl bnRpZmljYXRpb24gZm9yIGFuIGF0dGFjaG1lbnQsIHNvIHdoZW4gbXVsdGlwbGUgZGV2aWNlcyBh dHRhY2ggdG8gdGhlIHNhbWUgRE1BLWJ1ZiB0aGUgdHJhY2Ugd291bGQgYmUgcXVpdGUgbWVhbmlu Z2xlc3MuIFdlIHNob3VsZCBwcm9iYWJseSBmaXggdGhhdC48YnI+DQo8YnI+DQpSZWdhcmRzLDxi cj4NCkNocmlzdGlhbi48YnI+DQo8YnI+DQo8L2Rpdj4NCjwvc3Bhbj48L2ZvbnQ+DQo8L2JvZHk+ DQo8L2h0bWw+DQo= --_000_1b9645fdaf324b2e8e9370e548883d49xiaomicom_--