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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3D76C433B4 for ; Tue, 18 May 2021 07:19:15 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5393361285 for ; Tue, 18 May 2021 07:19:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5393361285 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liu0Y-0003WB-Eb for qemu-devel@archiver.kernel.org; Tue, 18 May 2021 03:19:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59594) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1litzW-000216-1J; Tue, 18 May 2021 03:18:10 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:2947) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1litzP-0002sT-RG; Tue, 18 May 2021 03:18:09 -0400 Received: from dggems702-chm.china.huawei.com (unknown [172.30.72.58]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4FknLb5zvGzQp15; Tue, 18 May 2021 15:14:31 +0800 (CST) Received: from dggpemm500018.china.huawei.com (7.185.36.111) by dggems702-chm.china.huawei.com (10.3.19.179) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 18 May 2021 15:18:00 +0800 Received: from lhreml703-chm.china.huawei.com (10.201.108.52) by dggpemm500018.china.huawei.com (7.185.36.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2176.2; Tue, 18 May 2021 15:17:59 +0800 Received: from lhreml703-chm.china.huawei.com ([10.201.68.198]) by lhreml703-chm.china.huawei.com ([10.201.68.198]) with mapi id 15.01.2176.012; Tue, 18 May 2021 08:17:57 +0100 From: Salil Mehta To: "wangyanan (Y)" , Andrew Jones Subject: RE: [RFC PATCH v2 5/6] hw/arm/virt-acpi-build: Add PPTT table Thread-Topic: [RFC PATCH v2 5/6] hw/arm/virt-acpi-build: Add PPTT table Thread-Index: AQHXMDzb5q8WzYljr0ilpO+8Rxsx7Krg+0EAgAgNE7A= Date: Tue, 18 May 2021 07:17:56 +0000 Message-ID: References: <20210413080745.33004-1-wangyanan55@huawei.com> <20210413080745.33004-6-wangyanan55@huawei.com> <1551b7d6-e010-e5c7-47e1-c347ca78a1db@huawei.com> In-Reply-To: <1551b7d6-e010-e5c7-47e1-c347ca78a1db@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.47.31.227] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.191; envelope-from=salil.mehta@huawei.com; helo=szxga05-in.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "linuxarm@openeuler.org" , "Michael S . Tsirkin" , "qemu-devel@nongnu.org" , Linuxarm , Shannon Zhao , Igor Mammedov , "qemu-arm@nongnu.org" , Alistair Francis , "Zengtao \(B\)" , yangyicong , yuzenghui , "Wanghaibin \(D\)" , zhukeqian , "lijiajie \(H\)" , David Gibson Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" PiBGcm9tOiBRZW11LWFybSBbbWFpbHRvOnFlbXUtYXJtLWJvdW5jZXMrc2FsaWwubWVodGE9aHVh d2VpLmNvbUBub25nbnUub3JnXQ0KPiBPbiBCZWhhbGYgT2Ygd2FuZ3lhbmFuIChZKQ0KPiBTZW50 OiBUaHVyc2RheSwgTWF5IDEzLCAyMDIxIDY6MTAgQU0NCj4gDQo+IEhpIERyZXcsDQo+IA0KPiBJ IGdvdCBhIHF1ZXN0aW9uIGJlbG93LCBhbmQgaG9wZSB5b3VyIHJlcGx5LiBUaGFua3MhDQo+IE9u IDIwMjEvNC8xMyAxNjowNywgWWFuYW4gV2FuZyB3cm90ZToNCj4gPiBBZGQgdGhlIFByb2Nlc3Nv ciBQcm9wZXJ0aWVzIFRvcG9sb2d5IFRhYmxlIChQUFRUKSB0byBwcmVzZW50DQo+ID4gQ1BVIHRv cG9sb2d5IGluZm9ybWF0aW9uIHRvIEFDUEkgZ3Vlc3RzLiBOb3RlLCB3aGlsZSBhIERUIGJvb3QN Cj4gPiBMaW51eCBndWVzdCB3aXRoIGEgbm9uLWZsYXQgQ1BVIHRvcG9sb2d5IHdpbGwgc2VlIHNv Y2tldCBhbmQNCj4gPiBjb3JlIElEcyBiZWluZyBzZXF1ZW50aWFsIGludGVnZXJzIHN0YXJ0aW5n IGZyb20gemVybywgZS5nLg0KPiA+IHdpdGggLXNtcCA0LHNvY2tldHM9Mixjb3Jlcz0yLHRocmVh ZHM9MQ0KPiA+DQo+ID4gYSBEVCBib290IHByb2R1Y2VzDQo+ID4NCj4gPiAgIGNwdTogIDAgcGFj a2FnZV9pZDogIDAgY29yZV9pZDogIDANCj4gPiAgIGNwdTogIDEgcGFja2FnZV9pZDogIDAgY29y ZV9pZDogIDENCj4gPiAgIGNwdTogIDIgcGFja2FnZV9pZDogIDEgY29yZV9pZDogIDANCj4gPiAg IGNwdTogIDMgcGFja2FnZV9pZDogIDEgY29yZV9pZDogIDENCj4gPg0KPiA+IGFuIEFDUEkgYm9v dCBwcm9kdWNlcw0KPiA+DQo+ID4gICBjcHU6ICAwIHBhY2thZ2VfaWQ6IDM2IGNvcmVfaWQ6ICAw DQo+ID4gICBjcHU6ICAxIHBhY2thZ2VfaWQ6IDM2IGNvcmVfaWQ6ICAxDQo+ID4gICBjcHU6ICAy IHBhY2thZ2VfaWQ6IDk2IGNvcmVfaWQ6ICAyDQo+ID4gICBjcHU6ICAzIHBhY2thZ2VfaWQ6IDk2 IGNvcmVfaWQ6ICAzDQo+ID4NCj4gPiBUaGlzIGlzIGR1ZSB0byBzZXZlcmFsIHJlYXNvbnM6DQo+ ID4NCj4gPiAgIDEpIERUIGNwdSBub2RlcyBkbyBub3QgaGF2ZSBhbiBlcXVpdmFsZW50IGZpZWxk IHRvIHdoYXQgdGhlIFBQVFQNCj4gPiAgICAgIEFDUEkgUHJvY2Vzc29yIElEIG11c3QgYmUsIGku ZS4gc29tZXRoaW5nIGVxdWFsIHRvIHRoZSBNQURUIENQVQ0KPiA+ICAgICAgVUlEIG9yIGVxdWFs IHRvIHRoZSBVSUQgb2YgYW4gQUNQSSBwcm9jZXNzb3IgY29udGFpbmVyLiBJbiBib3RoDQo+ID4g ICAgICBBQ1BJIGNhc2VzIHRob3NlIGFyZSBwbGF0Zm9ybSBkZXBlbmRhbnQgSURzIGFzc2lnbmVk IGJ5IHRoZQ0KPiA+ICAgICAgdmVuZG9yLg0KPiA+DQo+ID4gICAyKSBXaGlsZSBRRU1VIGlzIHRo ZSB2ZW5kb3IgZm9yIGEgZ3Vlc3QsIGlmIHRoZSB0b3BvbG9neSBzcGVjaWZpZXMNCj4gPiAgICAg IFNNVCAoPiAxIHRocmVhZCksIHRoZW4sIHdpdGggQUNQSSwgaXQgaXMgaW1wb3NzaWJsZSB0byBh c3NpZ24gYQ0KPiA+ICAgICAgY29yZS1pZCB0aGUgc2FtZSB2YWx1ZSBhcyBhIHBhY2thZ2UtaWQs IHRodXMgaXQgaXMgbm90IHBvc3NpYmxlDQo+ID4gICAgICB0byBoYXZlIHBhY2thZ2UtaWQ9MCBh bmQgY29yZS1pZD0wLiBUaGlzIGlzIGJlY2F1c2UgcGFja2FnZSBhbmQNCj4gPiAgICAgIGNvcmUg Y29udGFpbmVycyBtdXN0IGJlIGluIHRoZSBzYW1lIEFDUEkgbmFtZXNwYWNlIGFuZCB0aGVyZWZv cmUNCj4gPiAgICAgIG11c3QgaGF2ZSB1bmlxdWUgVUlEcy4NCj4gPg0KPiA+ICAgMykgQUNQSSBw cm9jZXNzb3IgY29udGFpbmVycyBhcmUgbm90IHJlcXVpcmVkIGZvciBQUFRUIHRhYmxlcyB0bw0K PiA+ICAgICAgYmUgdXNlZCBhbmQsIGR1ZSB0byB0aGUgbGltaXRhdGlvbnMgb2Ygd2hpY2ggSURz IGFyZSBzZWxlY3RlZA0KPiA+ICAgICAgZGVzY3JpYmVkIGFib3ZlIGluICgyKSwgdGhleSBhcmUg bm90IGhlbHBmdWwgZm9yIFFFTVUsIHNvIHdlDQo+ID4gICAgICBkb24ndCBidWlsZCB0aGVtIHdp dGggdGhpcyBwYXRjaC4gSW4gdGhlIGFic2VuY2Ugb2YgdGhlbSwgTGludXgNCj4gPiAgICAgIGFz c2lnbnMgaXRzIG93biB1bmlxdWUgSURzLiBUaGUgbWFpbnRhaW5lcnMgaGF2ZSBjaG9zZW4gbm90 IHRvIHVzZQ0KPiA+ICAgICAgY291bnRlcnMgZnJvbSB6ZXJvLCBidXQgcmF0aGVyIEFDUEkgdGFi bGUgb2Zmc2V0cywgd2hpY2ggZXhwbGFpbnMNCj4gPiAgICAgIHdoeSB0aGUgbnVtYmVycyBhcmUg c28gbXVjaCBsYXJnZXIgdGhhbiB3aXRoIERULg0KPiA+DQo+ID4gICA0KSBXaGVuIHRoZXJlIGlz IG5vIFNNVCAodGhyZWFkcz0xKSB0aGUgY29yZSBJRHMgZm9yIEFDUEkgYm9vdCBndWVzdHMNCj4g PiAgICAgIG1hdGNoIHRoZSBsb2dpY2FsIENQVSBJRHMsIGJlY2F1c2UgdGhlc2UgSURzIG11c3Qg YmUgZXF1YWwgdG8gdGhlDQo+ID4gICAgICBNQURUIENQVSBVSUQgKGFzIG5vIHByb2Nlc3NvciBj b250YWluZXJzIGFyZSBwcmVzZW50KSwgYW5kIFFFTVUNCj4gPiAgICAgIHVzZXMgdGhlIGxvZ2lj YWwgQ1BVIElEIGZvciB0aGVzZSBNQURUIElEcy4NCj4gPg0KPiA+IFRlc3RlZC1ieTogSmlhamll IExpIDxsaWppYWppZTExQGh1YXdlaS5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IEpv bmVzIDxkcmpvbmVzQHJlZGhhdC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogWWluZyBGYW5nIDxm YW5neWluZzFAaHVhd2VpLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBZYW5hbiBXYW5nIDx3YW5n eWFuYW41NUBodWF3ZWkuY29tPg0KPiA+IC0tLQ0KPiA+ICAgaHcvYXJtL3ZpcnQtYWNwaS1idWls ZC5jIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICAg MSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9o dy9hcm0vdmlydC1hY3BpLWJ1aWxkLmMgYi9ody9hcm0vdmlydC1hY3BpLWJ1aWxkLmMNCj4gPiBp bmRleCAyYWQ1ZGFkMWJmLi4wM2ZkODEyZDVhIDEwMDY0NA0KPiA+IC0tLSBhL2h3L2FybS92aXJ0 LWFjcGktYnVpbGQuYw0KPiA+ICsrKyBiL2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYw0KPiA+IEBA IC00MzYsNiArNDM2LDY0IEBAIGJ1aWxkX3NyYXQoR0FycmF5ICp0YWJsZV9kYXRhLCBCSU9TTGlu a2VyICpsaW5rZXIsDQo+IFZpcnRNYWNoaW5lU3RhdGUgKnZtcykNCj4gPiAgICAgICAgICAgICAg ICAgICAgdm1zLT5vZW1fdGFibGVfaWQpOw0KPiA+ICAgfQ0KPiA+DQo+ID4gKy8qIFBQVFQgKi8N Cj4gPiArc3RhdGljIHZvaWQNCj4gPiArYnVpbGRfcHB0dChHQXJyYXkgKnRhYmxlX2RhdGEsIEJJ T1NMaW5rZXIgKmxpbmtlciwgVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQ0KPiA+ICt7DQo+ID4gKyAg ICBpbnQgcHB0dF9zdGFydCA9IHRhYmxlX2RhdGEtPmxlbjsNCj4gPiArICAgIGludCB1aWQgPSAw LCBjcHVzID0gMCwgc29ja2V0ID0gMDsNCj4gPiArICAgIE1hY2hpbmVTdGF0ZSAqbXMgPSBNQUNI SU5FKHZtcyk7DQo+ID4gKyAgICB1bnNpZ25lZCBpbnQgc21wX2NvcmVzID0gbXMtPnNtcC5jb3Jl czsNCj4gPiArICAgIHVuc2lnbmVkIGludCBzbXBfdGhyZWFkcyA9IG1zLT5zbXAudGhyZWFkczsN Cj4gPiArDQo+ID4gKyAgICBhY3BpX2RhdGFfcHVzaCh0YWJsZV9kYXRhLCBzaXplb2YoQWNwaVRh YmxlSGVhZGVyKSk7DQo+ID4gKw0KPiA+ICsgICAgZm9yIChzb2NrZXQgPSAwOyBjcHVzIDwgbXMt PnBvc3NpYmxlX2NwdXMtPmxlbjsgc29ja2V0KyspIHsNCj4gPiArICAgICAgICB1aW50MzJfdCBz b2NrZXRfb2Zmc2V0ID0gdGFibGVfZGF0YS0+bGVuIC0gcHB0dF9zdGFydDsNCj4gPiArICAgICAg ICBpbnQgY29yZTsNCj4gPiArDQo+ID4gKyAgICAgICAgYnVpbGRfcHJvY2Vzc29yX2hpZXJhcmNo eV9ub2RlKA0KPiA+ICsgICAgICAgICAgICB0YWJsZV9kYXRhLCAxLCAvKiBQaHlzaWNhbCBwYWNr YWdlICovDQo+ID4gKyAgICAgICAgICAgIDAsIHNvY2tldCwgLyogTm8gcGFyZW50ICovDQo+ID4g KyAgICAgICAgICAgIE5VTEwsIDApOyAgLyogTm8gcHJpdmF0ZSByZXNvdXJjZXMgKi8NCj4gPiAr DQo+ID4gKyAgICAgICAgZm9yIChjb3JlID0gMDsgY29yZSA8IHNtcF9jb3JlczsgY29yZSsrKSB7 DQo+ID4gKyAgICAgICAgICAgIHVpbnQzMl90IGNvcmVfb2Zmc2V0ID0gdGFibGVfZGF0YS0+bGVu IC0gcHB0dF9zdGFydDsNCj4gPiArICAgICAgICAgICAgaW50IHRocmVhZDsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgIGlmIChzbXBfdGhyZWFkcyA8PSAxKSB7DQo+ID4gKyAgICAgICAgICAgICAg ICBidWlsZF9wcm9jZXNzb3JfaGllcmFyY2h5X25vZGUoDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgdGFibGVfZGF0YSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKSB8IC8qIEFD UEkgUHJvY2Vzc29yIElEIHZhbGlkICovDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgKDEgPDwg MyksICAvKiBBQ1BJIDYuMyAtIE5vZGUgaXMgYSBMZWFmICovDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgc29ja2V0X29mZnNldCwgdWlkKyssIC8qIFBhcmVudCBpcyBhIFNvY2tldCAqLw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgIE5VTEwsIDApOyAgLyogTm8gcHJpdmF0ZSByZXNvdXJjZXMg Ki8NCj4gPiArICAgICAgICAgICAgfSBlbHNlIHsNCj4gPiArICAgICAgICAgICAgICAgIGJ1aWxk X3Byb2Nlc3Nvcl9oaWVyYXJjaHlfbm9kZSgNCj4gPiArICAgICAgICAgICAgICAgICAgICB0YWJs ZV9kYXRhLCAwLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHNvY2tldF9vZmZzZXQsIGNvcmUs IC8qIFBhcmVudCBpcyBhIFNvY2tldCAqLw0KPiA+ICsgICAgICAgICAgICAgICAgICAgIE5VTEws IDApOyAvKiBObyBwcml2YXRlIHJlc291cmNlcyAqLw0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgIGZvciAodGhyZWFkID0gMDsgdGhyZWFkIDwgc21wX3RocmVhZHM7IHRocmVhZCsrKSB7DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgYnVpbGRfcHJvY2Vzc29yX2hpZXJhcmNoeV9ub2RlKA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9kYXRhLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAoMSA8PCAxKSB8IC8qIEFDUEkgUHJvY2Vzc29yIElEIHZhbGlkICovDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpIHwgLyogQUNQSSA2LjMgLSBQcm9j ZXNzb3IgaXMgYSBUaHJlYWQgKi8NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwg MyksICAvKiBBQ1BJIDYuMyAtIE5vZGUgaXMgYSBMZWFmICovDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvcmVfb2Zmc2V0LCB1aWQrKywgLyogUGFyZW50IGlzIGEgQ29yZSAqLw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwKTsgIC8qIE5vIHByaXZhdGUgcmVzb3Vy Y2VzICovDQo+ID4gKyAgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiAr ICAgICAgICB9DQo+ID4gKyAgICAgICAgY3B1cyArPSBzbXBfY29yZXMgKiBzbXBfdGhyZWFkczsN Cj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBidWlsZF9oZWFkZXIobGlua2VyLCB0YWJsZV9k YXRhLA0KPiA+ICsgICAgICAgICAgICAgICAgICh2b2lkICopKHRhYmxlX2RhdGEtPmRhdGEgKyBw cHR0X3N0YXJ0KSwgIlBQVFQiLA0KPiA+ICsgICAgICAgICAgICAgICAgIHRhYmxlX2RhdGEtPmxl biAtIHBwdHRfc3RhcnQsIDIsDQo+ID4gKyAgICAgICAgICAgICAgICAgdm1zLT5vZW1faWQsIHZt cy0+b2VtX3RhYmxlX2lkKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgIC8qIEdURFQgKi8NCj4gPiAg IHN0YXRpYyB2b2lkDQo+ID4gICBidWlsZF9ndGR0KEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xp bmtlciAqbGlua2VyLCBWaXJ0TWFjaGluZVN0YXRlICp2bXMpDQo+ID4gQEAgLTcwNyw2ICs3NjUs MTEgQEAgdm9pZCB2aXJ0X2FjcGlfYnVpbGQoVmlydE1hY2hpbmVTdGF0ZSAqdm1zLA0KPiBBY3Bp QnVpbGRUYWJsZXMgKnRhYmxlcykNCj4gPiAgICAgICBhY3BpX2FkZF90YWJsZSh0YWJsZV9vZmZz ZXRzLCB0YWJsZXNfYmxvYik7DQo+ID4gICAgICAgYnVpbGRfbWFkdCh0YWJsZXNfYmxvYiwgdGFi bGVzLT5saW5rZXIsIHZtcyk7DQo+ID4NCj4gPiArICAgIGlmIChtcy0+c21wLmNwdXMgPiAxICYm ICF2bWMtPm5vX2NwdV90b3BvbG9neSkgew0KPiBJJ20gbm90IHJlYWxseSBzdXJlIHdoeSB3ZSBu ZWVkIHRvIGNhcmUgYWJvdXQgIm1zLT5zbXAuY3B1cyA+IDEiIGhlcmU/DQo+IA0KPiBJTU8sIGp1 c3QgbGlrZSBNQURUIGluIHdoaWNoIHdlIGNyZWF0ZSBib3RoIEVOQUJMRUQgYW5kIERJU0FCTEVE DQo+IGdpY2Mgbm9kZXMgbm8gbWF0dGVyIG9mIG51bWJlciBvZiBFTkFCTEVEIG5vZGVzIGlzIG9u ZSBvciBub3QsIHdlDQo+IHNob3VsZCBjcmVhdGUgUFBUVCB0YWJsZSBmb3IgYWxsIHRoZSBwb3Nz aWJsZSBjcHVzIGFuZCBub3QgY2FyZSBhYm91dA0KPiBudW1iZXIgb2Ygc21wIGNwdXMsIHRvby4g VGhpcyB3aWxsIGJlIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoZSBBQ1BJDQo+IHNwZWNpZmljYXRp b24gYW5kIHRoZSBQUFRUIHRhYmxlIHdpbGwgYmUgdXNlZCBmb3IgQUNQSSBjcHUgaG90cGx1ZyBp bg0KPiB0aGUgZnV0dXJlIGV2ZW4gd2l0aMKgICJzbXAuY3B1cyA9PSAxIi4NCg0KDQpBIGh1bWJs ZSByZXF1ZXN0Og0KTGV0IHVzIG5vdCBhbnRpY2lwYXRlIHRoZSBjaGFuZ2VzIG9mIHZjcHUgSG90 cGx1ZyBoZXJlLiBUaGluZ3MgYXJlIGZsdWlkDQp3aXRoIHJlc3BlY3QgdG8gdGhlIHZjcHUgSG90 cGx1ZyByaWdodCBub3cgYW5kIEkgdGhpbmsgaXQgd2lsbCBub3QgYmUNCnJpZ2h0IHRvIGJhc2Ug UFBUVCBUYWJsZSBjaGFuZ2VzIGluIGFudGljaXBhdGlvbiBvZiBzb21ldGhpbmcgd2UgYXJlIG5v dA0Kc3VyZSBvZiB3aGF0IGl0IGxvb2tzIGxpa2UuDQoNCkFueSBzdWNoIGRlY2lzaW9ucyBzaG91 bGQgYmUgcG9zdHBvbmVkIGFuZCBiZSBtYWRlIHBhcnQgb2YgdGhlIGFjdHVhbA0KdmNwdSBIb3Rw bHVnIGNoYW5nZXMgd2hlbihhbmQgaWYgZXZlcikgdGhleSBjb21lIGZvciBBUk02NC4gVGhpcyB3 aWxsDQphbHNvIGVuc3VyZSBwcm9wZXIgcmV2aWV3IG9mIHN1Y2ggY2hhbmdlcyBhbmQgdXNlZnVs IGluIHRoYXQgcGFydGljdWxhcg0KY29udGV4dC4NCg0KDQpUaGFua3MNCg0KPiANCj4gQ2FyZSBv ZiAic21wLmNwdXMgPiAxIiBpbiB0aGUgRFQgY3B1LW1hcCBwYXJ0IG1ha2VzIHNlbnNlIHRvIG1l LA0KPiBiZWNhdXNlIHdlIGFyZSByZXF1aXJlZCB0byBvbmx5IGFkZCBwcmVzZW50IGNwdSBub2Rl cyB0byB0aGUgRFQgYW5kDQo+IExpbnV4IERvYyBzYXlzIHRoYXQgYSBjcHUtbWFwIGlzIG5vdCBu ZWVkZWQgZm9yIHVuaXByb2Nlc3NvciBzeXN0ZW1zLg0KPiANCj4gVGhhbmtzLA0KPiBZYW5hbg0K PiA+ICsgICAgICAgIGFjcGlfYWRkX3RhYmxlKHRhYmxlX29mZnNldHMsIHRhYmxlc19ibG9iKTsN Cj4gPiArICAgICAgICBidWlsZF9wcHR0KHRhYmxlc19ibG9iLCB0YWJsZXMtPmxpbmtlciwgdm1z KTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gICAgICAgYWNwaV9hZGRfdGFibGUodGFibGVfb2Zm c2V0cywgdGFibGVzX2Jsb2IpOw0KPiA+ICAgICAgIGJ1aWxkX2d0ZHQodGFibGVzX2Jsb2IsIHRh Ymxlcy0+bGlua2VyLCB2bXMpOw0KPiA+DQoNCg==