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=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 7017EC433E0 for ; Tue, 5 Jan 2021 02:08:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E72E922515 for ; Tue, 5 Jan 2021 02:08:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727708AbhAECIa (ORCPT ); Mon, 4 Jan 2021 21:08:30 -0500 Received: from rtits2.realtek.com ([211.75.126.72]:42349 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726391AbhAECI3 (ORCPT ); Mon, 4 Jan 2021 21:08:29 -0500 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.73 with qID 10527XcN4021994, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexmbs03.realtek.com.tw[172.21.6.96]) by rtits2.realtek.com.tw (8.15.2/2.70/5.88) with ESMTPS id 10527XcN4021994 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 5 Jan 2021 10:07:33 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXMBS03.realtek.com.tw (172.21.6.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 5 Jan 2021 10:07:32 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::ecca:80ca:53:e833]) by RTEXMBS04.realtek.com.tw ([fe80::ecca:80ca:53:e833%12]) with mapi id 15.01.2106.006; Tue, 5 Jan 2021 10:07:32 +0800 From: Pkshih To: Kai-Heng Feng CC: "Larry.Finger@lwfinger.net" , "linux-wireless@vger.kernel.org" , "hugh.chao@canonical.com" , "ethan.hsieh@canonical.com" Subject: RE: 802.11ac AP mode support on Realtek 8821AE? Thread-Topic: 802.11ac AP mode support on Realtek 8821AE? Thread-Index: AQHW2fh5IvEZMJBzZUWoIZotvMuBPqoGCFqAgACnLICAB7jzAIAAG/MAgAnSqAA= Date: Tue, 5 Jan 2021 02:07:32 +0000 Message-ID: References: <1609294366.3846.3.camel@realtek.com> In-Reply-To: Accept-Language: en-US, zh-TW Content-Language: zh-TW X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [172.21.69.213] Content-Type: multipart/mixed; boundary="_002_c429df24468b413b885acc14cc196dacrealtekcom_" MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org --_002_c429df24468b413b885acc14cc196dacrealtekcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEthaS1IZW5nIEZlbmcgW21h aWx0bzprYWkuaGVuZy5mZW5nQGNhbm9uaWNhbC5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgRGVj ZW1iZXIgMzAsIDIwMjAgMTE6NTMgQU0NCj4gVG86IFBrc2hpaA0KPiBDYzogTGFycnkuRmluZ2Vy QGx3ZmluZ2VyLm5ldDsgbGludXgtd2lyZWxlc3NAdmdlci5rZXJuZWwub3JnOyBodWdoLmNoYW9A Y2Fub25pY2FsLmNvbTsNCj4gZXRoYW4uaHNpZWhAY2Fub25pY2FsLmNvbQ0KPiBTdWJqZWN0OiBS ZTogODAyLjExYWMgQVAgbW9kZSBzdXBwb3J0IG9uIFJlYWx0ZWsgODgyMUFFPw0KPiANCj4gT24g V2VkLCBEZWMgMzAsIDIwMjAgYXQgMTA6MTMgQU0gUGtzaGloIDxwa3NoaWhAcmVhbHRlay5jb20+ IHdyb3RlOg0KPiA+DQo+ID4gT24gRnJpLCAyMDIwLTEyLTI1IGF0IDEyOjE2ICswODAwLCBLYWkt SGVuZyBGZW5nIHdyb3RlOg0KPiA+ID4gT24gRnJpLCBEZWMgMjUsIDIwMjAgYXQgMjoxOCBBTSBM YXJyeSBGaW5nZXIgPExhcnJ5LkZpbmdlckBsd2Zpbmdlci5uZXQ+DQo+ID4gPiB3cm90ZToNCj4g PiA+ID4NCj4gPiA+ID4gT24gMTIvMjQvMjAgNzoyNiBBTSwgS2FpLUhlbmcgRmVuZyB3cm90ZToN Cj4gPiA+ID4gPiBIaSBQaW5nLUtlLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gV2UndmUgZm91bmQg dGhhdCB3aGVuIGNyZWF0aW5nIDVHIEFQIG9uIDg4MjFBRSwgaXQncyBub3Qgb24gb3RoZXINCj4g PiA+ID4gPiBkZXZpY2VzJyB3aWZpIGxpc3QuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIZXJlJ3Mg dGhlIHN0ZXBzIEkgdXNlZCB0byBjcmVhdGUgYW4gQVA6DQo+ID4gPiA+ID4gJCBubWNsaSBjIGFk ZCB0eXBlIHdpZmkgaWZuYW1lIHdscDNzMCBjb24tbmFtZSBoZWxsbyBhdXRvY29ubmVjdCBubyBz c2lkDQo+ID4gPiBoZWxsbw0KPiA+ID4gPiA+ICQgbm1jbGkgYyBtb2RpZnkgaGVsbG8gODAyLTEx LXdpcmVsZXNzLm1vZGUgYXAgaXB2NC5tZXRob2Qgc2hhcmVkDQo+ID4gPiA+ID4gODAyLTExLXdp cmVsZXNzLmJhbmQgYQ0KPiA+ID4gPiA+ICQgbm1jbGkgY29ubmVjdGlvbiB1cCBoZWxsbw0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gSWYgd2UgY2hhbmdlICI4MDItMTEtd2lyZWxlc3MuYmFuZCIgdG8g ImJnIiwgdGhlbiB0aGUgQVAgY2FuIGJlDQo+ID4gPiA+ID4gc2Nhbm5lZCBieSBvdGhlciBkZXZp Y2VzLg0KPiA+ID4gPiA+IERvZXMgODgyMUFFIGhhdmUgaGFyZHdhcmUgY2FwYWJpbGl0eSB0byBz dXBwb3J0IDVHIEFQPw0KPiA+DQo+ID4gWWVzLCBpdCBoYXMgaGFyZHdhcmUgY2FwYWJpbGl0eSBv ZiA1RyBBUC4NCj4gPg0KPiA+IEkgd2FudCB0byBtYWtlIHN1cmUgd2hpY2ggY2hpcCB5b3UgdXNl LiA4ODIxQUUgd2l0aCBydGx3aWZpLCBvciA4ODIxQ0Ugd2l0aA0KPiA+IHJ0dzg4Pw0KPiANCj4g ODgyMUFFIHdpdGggcnRsd2lmaSBoZXJlLg0KPiANCg0KSSdtIG5vdCBhbiBleHBlcnQgaW4gbmV0 d29yay1tYW5hZ2VyLCBzbyBJIHRyeSB0byBicmluZyB1cCA1RyBzb2Z0YXAgd2l0aCBob3N0YXBk LA0KYW5kIHRoZW4gbXkgY2VsbHBob25lIGNhbiBjb25uZWN0IHRvIGl0IGFuZCBwaW5nIG9rLg0K Q291bGQgeW91IHRyeSBpdCB3aXRoIGF0dGFjaGVkIGhvc3RhcGQgY29uZmlndXJhdGlvbiBmaWxl Pw0KDQpJIHVzZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gYnV0IGNoYW5nZSBiZWxvdw0KaW50ZXJm YWNlPXdsYW4wDQpzc2lkPXRlc3QtODgyMWFlDQpod19tb2RlPWENCmNoYW5uZWw9MTQ5DQoNClRo ZSBkcml2ZXIgSSB1c2UgaXMgYnVpbHQtaW4gaW4ga2VybmVsIDUuOS4xMC4NClRoZSBob3N0YXAg aXMgaG9zdGFwXzJfOS0xNzMxLWc1NmExZGY3MWUgKGp1c3QgbGlzdCB0aGUgdmVyc2lvbiBJIHVz ZTsgSSBiZWxpZXZlIG90aGVyIHZlcnNpb24gYWxzbyB3b3JrKQ0KDQotLS0NClBpbmctS2UNCg0K DQo= --_002_c429df24468b413b885acc14cc196dacrealtekcom_ Content-Type: application/octet-stream; name="hostapd-8821ae-test.conf" Content-Description: hostapd-8821ae-test.conf Content-Disposition: attachment; filename="hostapd-8821ae-test.conf"; size=99799; creation-date="Tue, 05 Jan 2021 01:58:15 GMT"; modification-date="Tue, 05 Jan 2021 01:56:25 GMT" Content-Transfer-Encoding: base64 IyMjIyMgaG9zdGFwZCBjb25maWd1cmF0aW9uIGZpbGUgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEVtcHR5IGxpbmVzIGFuZCBsaW5lcyBzdGFydGluZyB3 aXRoICMgYXJlIGlnbm9yZWQKCiMgQVAgbmV0ZGV2aWNlIG5hbWUgKHdpdGhvdXQgJ2FwJyBwb3N0 Zml4LCBpLmUuLCB3bGFuMCB1c2VzIHdsYW4wYXAgZm9yCiMgbWFuYWdlbWVudCBmcmFtZXMgd2l0 aCB0aGUgSG9zdCBBUCBkcml2ZXIpOyB3bGFuMCB3aXRoIG1hbnkgbmw4MDIxMSBkcml2ZXJzCiMg Tm90ZTogVGhpcyBhdHRyaWJ1dGUgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlIHZhbHVlcyBzdXBw bGllZCB3aXRoIHRoZSAnLWknCiMgY29tbWFuZCBsaW5lIHBhcmFtZXRlci4KaW50ZXJmYWNlPXds YW4wCgojIEluIGNhc2Ugb2YgYXRoZXJvcyBhbmQgbmw4MDIxMSBkcml2ZXIgaW50ZXJmYWNlcywg YW4gYWRkaXRpb25hbAojIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLCBicmlkZ2UsIG1heSBiZSB1 c2VkIHRvIG5vdGlmeSBob3N0YXBkIGlmIHRoZQojIGludGVyZmFjZSBpcyBpbmNsdWRlZCBpbiBh IGJyaWRnZS4gVGhpcyBwYXJhbWV0ZXIgaXMgbm90IHVzZWQgd2l0aCBIb3N0IEFQCiMgZHJpdmVy LiBJZiB0aGUgYnJpZGdlIHBhcmFtZXRlciBpcyBub3Qgc2V0LCB0aGUgZHJpdmVycyB3aWxsIGF1 dG9tYXRpY2FsbHkKIyBmaWd1cmUgb3V0IHRoZSBicmlkZ2UgaW50ZXJmYWNlIChhc3N1bWluZyBz eXNmcyBpcyBlbmFibGVkIGFuZCBtb3VudGVkIHRvCiMgL3N5cykgYW5kIHRoaXMgcGFyYW1ldGVy IG1heSBub3QgYmUgbmVlZGVkLgojCiMgRm9yIG5sODAyMTEsIHRoaXMgcGFyYW1ldGVyIGNhbiBi ZSB1c2VkIHRvIHJlcXVlc3QgdGhlIEFQIGludGVyZmFjZSB0byBiZQojIGFkZGVkIHRvIHRoZSBi cmlkZ2UgYXV0b21hdGljYWxseSAoYnJjdGwgbWF5IHJlZnVzZSB0byBkbyB0aGlzIGJlZm9yZSBo b3N0YXBkCiMgaGFzIGJlZW4gc3RhcnRlZCB0byBjaGFuZ2UgdGhlIGludGVyZmFjZSBtb2RlKS4g SWYgbmVlZGVkLCB0aGUgYnJpZGdlCiMgaW50ZXJmYWNlIGlzIGFsc28gY3JlYXRlZC4KI2JyaWRn ZT1icjAKCiMgRHJpdmVyIGludGVyZmFjZSB0eXBlIChob3N0YXAvd2lyZWQvbm9uZS9ubDgwMjEx L2JzZCk7CiMgZGVmYXVsdDogaG9zdGFwKS4gbmw4MDIxMSBpcyB1c2VkIHdpdGggYWxsIExpbnV4 IG1hYzgwMjExIGRyaXZlcnMuCiMgVXNlIGRyaXZlcj1ub25lIGlmIGJ1aWxkaW5nIGhvc3RhcGQg YXMgYSBzdGFuZGFsb25lIFJBRElVUyBzZXJ2ZXIgdGhhdCBkb2VzCiMgbm90IGNvbnRyb2wgYW55 IHdpcmVsZXNzL3dpcmVkIGRyaXZlci4KIyBkcml2ZXI9aG9zdGFwCgojIERyaXZlciBpbnRlcmZh Y2UgcGFyYW1ldGVycyAobWFpbmx5IGZvciBkZXZlbG9wbWVudCB0ZXN0aW5nIHVzZSkKIyBkcml2 ZXJfcGFyYW1zPTxwYXJhbXM+CgojIGhvc3RhcGQgZXZlbnQgbG9nZ2VyIGNvbmZpZ3VyYXRpb24K IwojIFR3byBvdXRwdXQgbWV0aG9kOiBzeXNsb2cgYW5kIHN0ZG91dCAob25seSB1c2FibGUgaWYg bm90IGZvcmtpbmcgdG8KIyBiYWNrZ3JvdW5kKS4KIwojIE1vZHVsZSBiaXRmaWVsZCAoT1JlZCBi aXRmaWVsZCBvZiBtb2R1bGVzIHRoYXQgd2lsbCBiZSBsb2dnZWQ7IC0xID0gYWxsCiMgbW9kdWxl cyk6CiMgYml0IDAgKDEpID0gSUVFRSA4MDIuMTEKIyBiaXQgMSAoMikgPSBJRUVFIDgwMi4xWAoj IGJpdCAyICg0KSA9IFJBRElVUwojIGJpdCAzICg4KSA9IFdQQQojIGJpdCA0ICgxNikgPSBkcml2 ZXIgaW50ZXJmYWNlCiMgYml0IDUgKDMyKSA9IElBUFAKIyBiaXQgNiAoNjQpID0gTUxNRQojCiMg TGV2ZWxzIChtaW5pbXVtIHZhbHVlIGZvciBsb2dnZWQgZXZlbnRzKToKIyAgMCA9IHZlcmJvc2Ug ZGVidWdnaW5nCiMgIDEgPSBkZWJ1Z2dpbmcKIyAgMiA9IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMK IyAgMyA9IG5vdGlmaWNhdGlvbgojICA0ID0gd2FybmluZwojCmxvZ2dlcl9zeXNsb2c9LTEKbG9n Z2VyX3N5c2xvZ19sZXZlbD0yCmxvZ2dlcl9zdGRvdXQ9LTEKbG9nZ2VyX3N0ZG91dF9sZXZlbD0y CgojIEludGVyZmFjZSBmb3Igc2VwYXJhdGUgY29udHJvbCBwcm9ncmFtLiBJZiB0aGlzIGlzIHNw ZWNpZmllZCwgaG9zdGFwZAojIHdpbGwgY3JlYXRlIHRoaXMgZGlyZWN0b3J5IGFuZCBhIFVOSVgg ZG9tYWluIHNvY2tldCBmb3IgbGlzdGVuaW5nIHRvIHJlcXVlc3RzCiMgZnJvbSBleHRlcm5hbCBw cm9ncmFtcyAoQ0xJL0dVSSwgZXRjLikgZm9yIHN0YXR1cyBpbmZvcm1hdGlvbiBhbmQKIyBjb25m aWd1cmF0aW9uLiBUaGUgc29ja2V0IGZpbGUgd2lsbCBiZSBuYW1lZCBiYXNlZCBvbiB0aGUgaW50 ZXJmYWNlIG5hbWUsIHNvCiMgbXVsdGlwbGUgaG9zdGFwZCBwcm9jZXNzZXMvaW50ZXJmYWNlcyBj YW4gYmUgcnVuIGF0IHRoZSBzYW1lIHRpbWUgaWYgbW9yZQojIHRoYW4gb25lIGludGVyZmFjZSBp cyB1c2VkLgojIC92YXIvcnVuL2hvc3RhcGQgaXMgdGhlIHJlY29tbWVuZGVkIGRpcmVjdG9yeSBm b3Igc29ja2V0cyBhbmQgYnkgZGVmYXVsdCwKIyBob3N0YXBkX2NsaSB3aWxsIHVzZSBpdCB3aGVu IHRyeWluZyB0byBjb25uZWN0IHdpdGggaG9zdGFwZC4KY3RybF9pbnRlcmZhY2U9L3Zhci9ydW4v aG9zdGFwZAoKIyBBY2Nlc3MgY29udHJvbCBmb3IgdGhlIGNvbnRyb2wgaW50ZXJmYWNlIGNhbiBi ZSBjb25maWd1cmVkIGJ5IHNldHRpbmcgdGhlCiMgZGlyZWN0b3J5IHRvIGFsbG93IG9ubHkgbWVt YmVycyBvZiBhIGdyb3VwIHRvIHVzZSBzb2NrZXRzLiBUaGlzIHdheSwgaXQgaXMKIyBwb3NzaWJs ZSB0byBydW4gaG9zdGFwZCBhcyByb290IChzaW5jZSBpdCBuZWVkcyB0byBjaGFuZ2UgbmV0d29y awojIGNvbmZpZ3VyYXRpb24gYW5kIG9wZW4gcmF3IHNvY2tldHMpIGFuZCBzdGlsbCBhbGxvdyBH VUkvQ0xJIGNvbXBvbmVudHMgdG8gYmUKIyBydW4gYXMgbm9uLXJvb3QgdXNlcnMuIEhvd2V2ZXIs IHNpbmNlIHRoZSBjb250cm9sIGludGVyZmFjZSBjYW4gYmUgdXNlZCB0bwojIGNoYW5nZSB0aGUg bmV0d29yayBjb25maWd1cmF0aW9uLCB0aGlzIGFjY2VzcyBuZWVkcyB0byBiZSBwcm90ZWN0ZWQg aW4gbWFueQojIGNhc2VzLiBCeSBkZWZhdWx0LCBob3N0YXBkIGlzIGNvbmZpZ3VyZWQgdG8gdXNl IGdpZCAwIChyb290KS4gSWYgeW91CiMgd2FudCB0byBhbGxvdyBub24tcm9vdCB1c2VycyB0byB1 c2UgdGhlIGNvbnRyb24gaW50ZXJmYWNlLCBhZGQgYSBuZXcgZ3JvdXAKIyBhbmQgY2hhbmdlIHRo aXMgdmFsdWUgdG8gbWF0Y2ggd2l0aCB0aGF0IGdyb3VwLiBBZGQgdXNlcnMgdGhhdCBzaG91bGQg aGF2ZQojIGNvbnRyb2wgaW50ZXJmYWNlIGFjY2VzcyB0byB0aGlzIGdyb3VwLgojCiMgVGhpcyB2 YXJpYWJsZSBjYW4gYmUgYSBncm91cCBuYW1lIG9yIGdpZC4KI2N0cmxfaW50ZXJmYWNlX2dyb3Vw PXdoZWVsCmN0cmxfaW50ZXJmYWNlX2dyb3VwPTAKCgojIyMjIyBJRUVFIDgwMi4xMSByZWxhdGVk IGNvbmZpZ3VyYXRpb24gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoj IFNTSUQgdG8gYmUgdXNlZCBpbiBJRUVFIDgwMi4xMSBtYW5hZ2VtZW50IGZyYW1lcwpzc2lkPXRl c3QtODgyMWFlCiMgQWx0ZXJuYXRpdmUgZm9ybWF0cyBmb3IgY29uZmlndXJpbmcgU1NJRAojIChk b3VibGUgcXVvdGVkIHN0cmluZywgaGV4ZHVtcCwgcHJpbnRmLWVzY2FwZWQgc3RyaW5nKQojc3Np ZDI9InRlc3QiCiNzc2lkMj03NDY1NzM3NAojc3NpZDI9UCJoZWxsb1xudGhlcmUiCgojIFVURi04 IFNTSUQ6IFdoZXRoZXIgdGhlIFNTSUQgaXMgdG8gYmUgaW50ZXJwcmV0ZWQgdXNpbmcgVVRGLTgg ZW5jb2RpbmcKI3V0Zjhfc3NpZD0xCgojIENvdW50cnkgY29kZSAoSVNPL0lFQyAzMTY2LTEpLiBV c2VkIHRvIHNldCByZWd1bGF0b3J5IGRvbWFpbi4KIyBTZXQgYXMgbmVlZGVkIHRvIGluZGljYXRl IGNvdW50cnkgaW4gd2hpY2ggZGV2aWNlIGlzIG9wZXJhdGluZy4KIyBUaGlzIGNhbiBsaW1pdCBh dmFpbGFibGUgY2hhbm5lbHMgYW5kIHRyYW5zbWl0IHBvd2VyLgojIFRoZXNlIHR3byBvY3RldHMg YXJlIHVzZWQgYXMgdGhlIGZpcnN0IHR3byBvY3RldHMgb2YgdGhlIENvdW50cnkgU3RyaW5nCiMg KGRvdDExQ291bnRyeVN0cmluZykKI2NvdW50cnlfY29kZT1VUwoKIyBUaGUgdGhpcmQgb2N0ZXQg b2YgdGhlIENvdW50cnkgU3RyaW5nIChkb3QxMUNvdW50cnlTdHJpbmcpCiMgVGhpcyBwYXJhbWV0 ZXIgaXMgdXNlZCB0byBzZXQgdGhlIHRoaXJkIG9jdGV0IG9mIHRoZSBjb3VudHJ5IHN0cmluZy4K IwojIEFsbCBlbnZpcm9ubWVudHMgb2YgdGhlIGN1cnJlbnQgZnJlcXVlbmN5IGJhbmQgYW5kIGNv dW50cnkgKGRlZmF1bHQpCiNjb3VudHJ5Mz0weDIwCiMgT3V0ZG9vciBlbnZpcm9ubWVudCBvbmx5 CiNjb3VudHJ5Mz0weDRmCiMgSW5kb29yIGVudmlyb25tZW50IG9ubHkKI2NvdW50cnkzPTB4NDkK IyBOb25jb3VudHJ5IGVudGl0eSAoY291bnRyeV9jb2RlPVhYKQojY291bnRyeTM9MHg1OAojIElF RUUgODAyLjExIHN0YW5kYXJkIEFubmV4IEUgdGFibGUgaW5kaWNhdGlvbjogMHgwMSAuLiAweDFm CiMgQW5uZXggRSwgVGFibGUgRS00IChHbG9iYWwgb3BlcmF0aW5nIGNsYXNzZXMpCiNjb3VudHJ5 Mz0weDA0CgojIEVuYWJsZSBJRUVFIDgwMi4xMWQuIFRoaXMgYWR2ZXJ0aXNlcyB0aGUgY291bnRy eV9jb2RlIGFuZCB0aGUgc2V0IG9mIGFsbG93ZWQKIyBjaGFubmVscyBhbmQgdHJhbnNtaXQgcG93 ZXIgbGV2ZWxzIGJhc2VkIG9uIHRoZSByZWd1bGF0b3J5IGxpbWl0cy4gVGhlCiMgY291bnRyeV9j b2RlIHNldHRpbmcgbXVzdCBiZSBjb25maWd1cmVkIHdpdGggdGhlIGNvcnJlY3QgY291bnRyeSBm b3IKIyBJRUVFIDgwMi4xMWQgZnVuY3Rpb25zLgojIChkZWZhdWx0OiAwID0gZGlzYWJsZWQpCiNp ZWVlODAyMTFkPTEKCiMgRW5hYmxlIElFRUUgODAyLjExaC4gVGhpcyBlbmFibGVzIHJhZGFyIGRl dGVjdGlvbiBhbmQgREZTIHN1cHBvcnQgaWYKIyBhdmFpbGFibGUuIERGUyBzdXBwb3J0IGlzIHJl cXVpcmVkIG9uIG91dGRvb3IgNSBHSHogY2hhbm5lbHMgaW4gbW9zdCBjb3VudHJpZXMKIyBvZiB0 aGUgd29ybGQuIFRoaXMgY2FuIGJlIHVzZWQgb25seSB3aXRoIGllZWU4MDIxMWQ9MS4KIyAoZGVm YXVsdDogMCA9IGRpc2FibGVkKQojaWVlZTgwMjExaD0xCgojIEFkZCBQb3dlciBDb25zdHJhaW50 IGVsZW1lbnQgdG8gQmVhY29uIGFuZCBQcm9iZSBSZXNwb25zZSBmcmFtZXMKIyBUaGlzIGNvbmZp ZyBvcHRpb24gYWRkcyBQb3dlciBDb25zdHJhaW50IGVsZW1lbnQgd2hlbiBhcHBsaWNhYmxlIGFu ZCBDb3VudHJ5CiMgZWxlbWVudCBpcyBhZGRlZC4gUG93ZXIgQ29uc3RyYWludCBlbGVtZW50IGlz IHJlcXVpcmVkIGJ5IFRyYW5zbWl0IFBvd2VyCiMgQ29udHJvbC4gVGhpcyBjYW4gYmUgdXNlZCBv bmx5IHdpdGggaWVlZTgwMjExZD0xLgojIFZhbGlkIHZhbHVlcyBhcmUgMC4uMjU1LgojbG9jYWxf cHdyX2NvbnN0cmFpbnQ9MwoKIyBTZXQgU3BlY3RydW0gTWFuYWdlbWVudCBzdWJmaWVsZCBpbiB0 aGUgQ2FwYWJpbGl0eSBJbmZvcm1hdGlvbiBmaWVsZC4KIyBUaGlzIGNvbmZpZyBvcHRpb24gZm9y Y2VzIHRoZSBTcGVjdHJ1bSBNYW5hZ2VtZW50IGJpdCB0byBiZSBzZXQuIFdoZW4gdGhpcwojIG9w dGlvbiBpcyBub3Qgc2V0LCB0aGUgdmFsdWUgb2YgdGhlIFNwZWN0cnVtIE1hbmFnZW1lbnQgYml0 IGRlcGVuZHMgb24gd2hldGhlcgojIERGUyBvciBUUEMgaXMgcmVxdWlyZWQgYnkgcmVndWxhdG9y eSBhdXRob3JpdGllcy4gVGhpcyBjYW4gYmUgdXNlZCBvbmx5IHdpdGgKIyBpZWVlODAyMTFkPTEg YW5kIGxvY2FsX3B3cl9jb25zdHJhaW50IGNvbmZpZ3VyZWQuCiNzcGVjdHJ1bV9tZ210X3JlcXVp cmVkPTEKCiMgT3BlcmF0aW9uIG1vZGUgKGEgPSBJRUVFIDgwMi4xMWEgKDUgR0h6KSwgYiA9IElF RUUgODAyLjExYiAoMi40IEdIeiksCiMgZyA9IElFRUUgODAyLjExZyAoMi40IEdIeiksIGFkID0g SUVFRSA4MDIuMTFhZCAoNjAgR0h6KTsgYS9nIG9wdGlvbnMgYXJlIHVzZWQKIyB3aXRoIElFRUUg ODAyLjExbiAoSFQpLCB0b28sIHRvIHNwZWNpZnkgYmFuZCkuIEZvciBJRUVFIDgwMi4xMWFjIChW SFQpLCB0aGlzCiMgbmVlZHMgdG8gYmUgc2V0IHRvIGh3X21vZGU9YS4gV2hlbiB1c2luZyBBQ1Mg KHNlZSBjaGFubmVsIHBhcmFtZXRlciksIGEKIyBzcGVjaWFsIHZhbHVlICJhbnkiIGNhbiBiZSB1 c2VkIHRvIGluZGljYXRlIHRoYXQgYW55IHN1cHBvcnQgYmFuZCBjYW4gYmUgdXNlZC4KIyBUaGlz IHNwZWNpYWwgY2FzZSBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIG9ubHkgd2l0aCBkcml2ZXJzIHdp dGggd2hpY2gKIyBvZmZsb2FkZWQgQUNTIGlzIHVzZWQuCiMgRGVmYXVsdDogSUVFRSA4MDIuMTFi CiNod19tb2RlPWcKaHdfbW9kZT1hCgojIENoYW5uZWwgbnVtYmVyIChJRUVFIDgwMi4xMSkKIyAo ZGVmYXVsdDogMCwgaS5lLiwgbm90IHNldCkKIyBQbGVhc2Ugbm90ZSB0aGF0IHNvbWUgZHJpdmVy cyBkbyBub3QgdXNlIHRoaXMgdmFsdWUgZnJvbSBob3N0YXBkIGFuZCB0aGUKIyBjaGFubmVsIHdp bGwgbmVlZCB0byBiZSBjb25maWd1cmVkIHNlcGFyYXRlbHkgd2l0aCBpd2NvbmZpZy4KIwojIElm IENPTkZJR19BQ1MgYnVpbGQgb3B0aW9uIGlzIGVuYWJsZWQsIHRoZSBjaGFubmVsIGNhbiBiZSBz ZWxlY3RlZAojIGF1dG9tYXRpY2FsbHkgYXQgcnVuIHRpbWUgYnkgc2V0dGluZyBjaGFubmVsPWFj c19zdXJ2ZXkgb3IgY2hhbm5lbD0wLCBib3RoIG9mCiMgd2hpY2ggd2lsbCBlbmFibGUgdGhlIEFD UyBzdXJ2ZXkgYmFzZWQgYWxnb3JpdGhtLgojY2hhbm5lbD0xCmNoYW5uZWw9MTQ5CgojIEFDUyB0 dW5pbmcgLSBBdXRvbWF0aWMgQ2hhbm5lbCBTZWxlY3Rpb24KIyBTZWU6IGh0dHA6Ly93aXJlbGVz cy5rZXJuZWwub3JnL2VuL3VzZXJzL0RvY3VtZW50YXRpb24vYWNzCiMKIyBZb3UgY2FuIGN1c3Rv bWl6ZSB0aGUgQUNTIHN1cnZleSBhbGdvcml0aG0gd2l0aCBmb2xsb3dpbmcgdmFyaWFibGVzOgoj CiMgYWNzX251bV9zY2FucyByZXF1aXJlbWVudCBpcyAxLi4xMDAgLSBudW1iZXIgb2Ygc2NhbnMg dG8gYmUgcGVyZm9ybWVkIHRoYXQKIyBhcmUgdXNlZCB0byB0cmlnZ2VyIHN1cnZleSBkYXRhIGdh dGhlcmluZyBvZiBhbiB1bmRlcmx5aW5nIGRldmljZSBkcml2ZXIuCiMgU2NhbnMgYXJlIHBhc3Np dmUgYW5kIHR5cGljYWxseSB0YWtlIGEgbGl0dGxlIG92ZXIgMTAwbXMgKGRlcGVuZGluZyBvbiB0 aGUKIyBkcml2ZXIpIG9uIGVhY2ggYXZhaWxhYmxlIGNoYW5uZWwgZm9yIGdpdmVuIGh3X21vZGUu IEluY3JlYXNpbmcgdGhpcyB2YWx1ZQojIG1lYW5zIHNhY3JpZmljaW5nIHN0YXJ0dXAgdGltZSBh bmQgZ2F0aGVyaW5nIG1vcmUgZGF0YSB3cnQgY2hhbm5lbAojIGludGVyZmVyZW5jZSB0aGF0IG1h eSBoZWxwIGNob29zaW5nIGEgYmV0dGVyIGNoYW5uZWwuIFRoaXMgY2FuIGFsc28gaGVscCBmaW5l CiMgdHVuZSB0aGUgQUNTIHNjYW4gdGltZSBpbiBjYXNlIGEgZHJpdmVyIGhhcyBkaWZmZXJlbnQg c2NhbiBkd2VsbCB0aW1lcy4KIwojIGFjc19jaGFuX2JpYXMgaXMgYSBzcGFjZS1zZXBhcmF0ZWQg bGlzdCBvZiA8Y2hhbm5lbD46PGJpYXM+IHBhaXJzLiBJdCBjYW4gYmUKIyB1c2VkIHRvIGluY3Jl YXNlIChvciBkZWNyZWFzZSkgdGhlIGxpa2VsaWhvb2Qgb2YgYSBzcGVjaWZpYyBjaGFubmVsIHRv IGJlCiMgc2VsZWN0ZWQgYnkgdGhlIEFDUyBhbGdvcml0aG0uIFRoZSB0b3RhbCBpbnRlcmZlcmVu Y2UgZmFjdG9yIGZvciBlYWNoIGNoYW5uZWwKIyBnZXRzIG11bHRpcGxpZWQgYnkgdGhlIHNwZWNp ZmllZCBiaWFzIHZhbHVlIGJlZm9yZSBmaW5kaW5nIHRoZSBjaGFubmVsIHdpdGgKIyB0aGUgbG93 ZXN0IHZhbHVlLiBJbiBvdGhlciB3b3JkcywgdmFsdWVzIGJldHdlZW4gMC4wIGFuZCAxLjAgY2Fu IGJlIHVzZWQgdG8KIyBtYWtlIGEgY2hhbm5lbCBtb3JlIGxpa2VseSB0byBiZSBwaWNrZWQgd2hp bGUgdmFsdWVzIGxhcmdlciB0aGFuIDEuMCBtYWtlIHRoZQojIHNwZWNpZmllZCBjaGFubmVsIGxl c3MgbGlrZWx5IHRvIGJlIHBpY2tlZC4gVGhpcyBjYW4gYmUgdXNlZCwgZS5nLiwgdG8gcHJlZmVy CiMgdGhlIGNvbW1vbmx5IHVzZWQgMi40IEdIeiBiYW5kIGNoYW5uZWxzIDEsIDYsIGFuZCAxMSAo d2hpY2ggaXMgdGhlIGRlZmF1bHQKIyBiZWhhdmlvciBvbiAyLjQgR0h6IGJhbmQgaWYgbm8gYWNz X2NoYW5fYmlhcyBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkKS4KIwojIERlZmF1bHRzOgojYWNzX251 bV9zY2Fucz01CiNhY3NfY2hhbl9iaWFzPTE6MC44IDY6MC44IDExOjAuOAoKIyBDaGFubmVsIGxp c3QgcmVzdHJpY3Rpb24uIFRoaXMgb3B0aW9uIGFsbG93cyBob3N0YXBkIHRvIHNlbGVjdCBvbmUg b2YgdGhlCiMgcHJvdmlkZWQgY2hhbm5lbHMgd2hlbiBhIGNoYW5uZWwgc2hvdWxkIGJlIGF1dG9t YXRpY2FsbHkgc2VsZWN0ZWQuCiMgQ2hhbm5lbCBsaXN0IGNhbiBiZSBwcm92aWRlZCBhcyByYW5n ZSB1c2luZyBoeXBoZW4gKCctJykgb3IgaW5kaXZpZHVhbAojIGNoYW5uZWxzIGNhbiBiZSBzcGVj aWZpZWQgYnkgc3BhY2UgKCcgJykgc2VwYXJhdGVkIHZhbHVlcwojIERlZmF1bHQ6IGFsbCBjaGFu bmVscyBhbGxvd2VkIGluIHNlbGVjdGVkIGh3X21vZGUKI2NoYW5saXN0PTEwMCAxMDQgMTA4IDEx MiAxMTYKI2NoYW5saXN0PTEgNiAxMS0xMwoKIyBFeGNsdWRlIERGUyBjaGFubmVscyBmcm9tIEFD UwojIFRoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIGV4Y2x1ZGUgYWxsIERGUyBjaGFubmVscyBm cm9tIHRoZSBBQ1MgY2hhbm5lbCBsaXN0CiMgaW4gY2FzZXMgd2hlcmUgdGhlIGRyaXZlciBzdXBw b3J0cyBERlMgY2hhbm5lbHMuCiNhY3NfZXhjbHVkZV9kZnM9MQoKIyBCZWFjb24gaW50ZXJ2YWwg aW4ga3VzICgxLjAyNCBtcykgKGRlZmF1bHQ6IDEwMDsgcmFuZ2UgMTUuLjY1NTM1KQpiZWFjb25f aW50PTEwMAoKIyBEVElNIChkZWxpdmVyeSB0cmFmZmljIGluZm9ybWF0aW9uIG1lc3NhZ2UpIHBl cmlvZCAocmFuZ2UgMS4uMjU1KToKIyBudW1iZXIgb2YgYmVhY29ucyBiZXR3ZWVuIERUSU1zICgx ID0gZXZlcnkgYmVhY29uIGluY2x1ZGVzIERUSU0gZWxlbWVudCkKIyAoZGVmYXVsdDogMikKZHRp bV9wZXJpb2Q9MgoKIyBNYXhpbXVtIG51bWJlciBvZiBzdGF0aW9ucyBhbGxvd2VkIGluIHN0YXRp b24gdGFibGUuIE5ldyBzdGF0aW9ucyB3aWxsIGJlCiMgcmVqZWN0ZWQgYWZ0ZXIgdGhlIHN0YXRp b24gdGFibGUgaXMgZnVsbC4gSUVFRSA4MDIuMTEgaGFzIGEgbGltaXQgb2YgMjAwNwojIGRpZmZl cmVudCBhc3NvY2lhdGlvbiBJRHMsIHNvIHRoaXMgbnVtYmVyIHNob3VsZCBub3QgYmUgbGFyZ2Vy IHRoYW4gdGhhdC4KIyAoZGVmYXVsdDogMjAwNykKbWF4X251bV9zdGE9MjU1CgojIFJUUy9DVFMg dGhyZXNob2xkOyAtMSA9IGRpc2FibGVkIChkZWZhdWx0KTsgcmFuZ2UgLTEuLjY1NTM1CiMgSWYg dGhpcyBmaWVsZCBpcyBub3QgaW5jbHVkZWQgaW4gaG9zdGFwZC5jb25mLCBob3N0YXBkIHdpbGwg bm90IGNvbnRyb2wKIyBSVFMgdGhyZXNob2xkIGFuZCAnaXdjb25maWcgd2xhbiMgcnRzIDx2YWw+ JyBjYW4gYmUgdXNlZCB0byBzZXQgaXQuCnJ0c190aHJlc2hvbGQ9LTEKCiMgRnJhZ21lbnRhdGlv biB0aHJlc2hvbGQ7IC0xID0gZGlzYWJsZWQgKGRlZmF1bHQpOyByYW5nZSAtMSwgMjU2Li4yMzQ2 CiMgSWYgdGhpcyBmaWVsZCBpcyBub3QgaW5jbHVkZWQgaW4gaG9zdGFwZC5jb25mLCBob3N0YXBk IHdpbGwgbm90IGNvbnRyb2wKIyBmcmFnbWVudGF0aW9uIHRocmVzaG9sZCBhbmQgJ2l3Y29uZmln IHdsYW4jIGZyYWcgPHZhbD4nIGNhbiBiZSB1c2VkIHRvIHNldAojIGl0LgpmcmFnbV90aHJlc2hv bGQ9LTEKCiMgUmF0ZSBjb25maWd1cmF0aW9uCiMgRGVmYXVsdCBpcyB0byBlbmFibGUgYWxsIHJh dGVzIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUuIFRoaXMgY29uZmlndXJhdGlvbgojIGl0ZW0g YWxsb3dzIHRoaXMgbGlzdCBiZSBmaWx0ZXJlZCBzbyB0aGF0IG9ubHkgdGhlIGxpc3RlZCByYXRl cyB3aWxsIGJlIGxlZnQKIyBpbiB0aGUgbGlzdC4gSWYgdGhlIGxpc3QgaXMgZW1wdHksIGFsbCBy YXRlcyBhcmUgdXNlZC4gVGhpcyBsaXN0IGNhbiBoYXZlCiMgZW50cmllcyB0aGF0IGFyZSBub3Qg aW4gdGhlIGxpc3Qgb2YgcmF0ZXMgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIChzdWNoIGVudHJpZXMK IyBhcmUgaWdub3JlZCkuIFRoZSBlbnRyaWVzIGluIHRoaXMgbGlzdCBhcmUgaW4gMTAwIGticHMs IGkuZS4sIDExIE1icHMgPSAxMTAuCiMgSWYgdGhpcyBpdGVtIGlzIHByZXNlbnQsIGF0IGxlYXN0 IG9uZSByYXRlIGhhdmUgdG8gYmUgbWF0Y2hpbmcgd2l0aCB0aGUgcmF0ZXMKIyBoYXJkd2FyZSBz dXBwb3J0cy4KIyBkZWZhdWx0OiB1c2UgdGhlIG1vc3QgY29tbW9uIHN1cHBvcnRlZCByYXRlIHNl dHRpbmcgZm9yIHRoZSBzZWxlY3RlZAojIGh3X21vZGUgKGkuZS4sIHRoaXMgbGluZSBjYW4gYmUg cmVtb3ZlZCBmcm9tIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBtb3N0CiMgY2FzZXMpCiNzdXBwb3J0 ZWRfcmF0ZXM9MTAgMjAgNTUgMTEwIDYwIDkwIDEyMCAxODAgMjQwIDM2MCA0ODAgNTQwCgojIEJh c2ljIHJhdGUgc2V0IGNvbmZpZ3VyYXRpb24KIyBMaXN0IG9mIHJhdGVzIChpbiAxMDAga2Jwcykg dGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIGJhc2ljIHJhdGUgc2V0LgojIElmIHRoaXMgaXRlbSBp cyBub3QgaW5jbHVkZWQsIHVzdWFsbHkgcmVhc29uYWJsZSBkZWZhdWx0IHNldCBpcyB1c2VkLgoj YmFzaWNfcmF0ZXM9MTAgMjAKI2Jhc2ljX3JhdGVzPTEwIDIwIDU1IDExMAojYmFzaWNfcmF0ZXM9 NjAgMTIwIDI0MAoKIyBCZWFjb24gZnJhbWUgVFggcmF0ZSBjb25maWd1cmF0aW9uCiMgVGhpcyBz ZXRzIHRoZSBUWCByYXRlIHRoYXQgaXMgdXNlZCB0byB0cmFuc21pdCBCZWFjb24gZnJhbWVzLiBJ ZiB0aGlzIGl0ZW0gaXMKIyBub3QgaW5jbHVkZWQsIHRoZSBkcml2ZXIgZGVmYXVsdCByYXRlIChs aWtlbHkgbG93ZXN0IHJhdGUpIGlzIHVzZWQuCiMgTGVnYWN5IChDQ0svT0ZETSByYXRlcyk6CiMg ICAgYmVhY29uX3JhdGU9PGxlZ2FjeSByYXRlIGluIDEwMCBrYnBzPgojIEhUOgojICAgIGJlYWNv bl9yYXRlPWh0OjxIVCBNQ1M+CiMgVkhUOgojICAgIGJlYWNvbl9yYXRlPXZodDo8VkhUIE1DUz4K IwojIEZvciBleGFtcGxlLCBiZWFjb25fcmF0ZT0xMCBmb3IgMSBNYnBzIG9yIGJlYWNvbl9yYXRl PTYwIGZvciA2IE1icHMgKE9GRE0pLgojYmVhY29uX3JhdGU9MTAKCiMgU2hvcnQgUHJlYW1ibGUK IyBUaGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBlbmFibGUgb3B0aW9uYWwgdXNlIG9mIHNo b3J0IHByZWFtYmxlIGZvcgojIGZyYW1lcyBzZW50IGF0IDIgTWJwcywgNS41IE1icHMsIGFuZCAx MSBNYnBzIHRvIGltcHJvdmUgbmV0d29yayBwZXJmb3JtYW5jZS4KIyBUaGlzIGFwcGxpZXMgb25s eSB0byBJRUVFIDgwMi4xMWItY29tcGF0aWJsZSBuZXR3b3JrcyBhbmQgdGhpcyBzaG91bGQgb25s eSBiZQojIGVuYWJsZWQgaWYgdGhlIGxvY2FsIGhhcmR3YXJlIHN1cHBvcnRzIHVzZSBvZiBzaG9y dCBwcmVhbWJsZS4gSWYgYW55IG9mIHRoZQojIGFzc29jaWF0ZWQgU1RBcyBkbyBub3Qgc3VwcG9y dCBzaG9ydCBwcmVhbWJsZSwgdXNlIG9mIHNob3J0IHByZWFtYmxlIHdpbGwgYmUKIyBkaXNhYmxl ZCAoYW5kIGVuYWJsZWQgd2hlbiBzdWNoIFNUQXMgZGlzYXNzb2NpYXRlKSBkeW5hbWljYWxseS4K IyAwID0gZG8gbm90IGFsbG93IHVzZSBvZiBzaG9ydCBwcmVhbWJsZSAoZGVmYXVsdCkKIyAxID0g YWxsb3cgdXNlIG9mIHNob3J0IHByZWFtYmxlCiNwcmVhbWJsZT0xCgojIFN0YXRpb24gTUFDIGFk ZHJlc3MgLWJhc2VkIGF1dGhlbnRpY2F0aW9uCiMgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGtpbmQg b2YgYWNjZXNzIGNvbnRyb2wgcmVxdWlyZXMgYSBkcml2ZXIgdGhhdCB1c2VzCiMgaG9zdGFwZCB0 byB0YWtlIGNhcmUgb2YgbWFuYWdlbWVudCBmcmFtZSBwcm9jZXNzaW5nIGFuZCBhcyBzdWNoLCB0 aGlzIGNhbiBiZQojIHVzZWQgd2l0aCBkcml2ZXI9aG9zdGFwIG9yIGRyaXZlcj1ubDgwMjExLCBi dXQgbm90IHdpdGggZHJpdmVyPWF0aGVyb3MuCiMgMCA9IGFjY2VwdCB1bmxlc3MgaW4gZGVueSBs aXN0CiMgMSA9IGRlbnkgdW5sZXNzIGluIGFjY2VwdCBsaXN0CiMgMiA9IHVzZSBleHRlcm5hbCBS QURJVVMgc2VydmVyIChhY2NlcHQvZGVueSBsaXN0cyBhcmUgc2VhcmNoZWQgZmlyc3QpCm1hY2Fk ZHJfYWNsPTAKCiMgQWNjZXB0L2RlbnkgbGlzdHMgYXJlIHJlYWQgZnJvbSBzZXBhcmF0ZSBmaWxl cyAoY29udGFpbmluZyBsaXN0IG9mCiMgTUFDIGFkZHJlc3Nlcywgb25lIHBlciBsaW5lKS4gVXNl IGFic29sdXRlIHBhdGggbmFtZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUKIyBmaWxlcyBjYW4gYmUg cmVhZCBvbiBTSUdIVVAgY29uZmlndXJhdGlvbiByZWxvYWRzLgojYWNjZXB0X21hY19maWxlPS9l dGMvaG9zdGFwZC5hY2NlcHQKI2RlbnlfbWFjX2ZpbGU9L2V0Yy9ob3N0YXBkLmRlbnkKCiMgSUVF RSA4MDIuMTEgc3BlY2lmaWVzIHR3byBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG1zLiBob3N0YXBk IGNhbiBiZQojIGNvbmZpZ3VyZWQgdG8gYWxsb3cgYm90aCBvZiB0aGVzZSBvciBvbmx5IG9uZS4g T3BlbiBzeXN0ZW0gYXV0aGVudGljYXRpb24KIyBzaG91bGQgYmUgdXNlZCB3aXRoIElFRUUgODAy LjFYLgojIEJpdCBmaWVsZHMgb2YgYWxsb3dlZCBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG1zOgoj IGJpdCAwID0gT3BlbiBTeXN0ZW0gQXV0aGVudGljYXRpb24KIyBiaXQgMSA9IFNoYXJlZCBLZXkg QXV0aGVudGljYXRpb24gKHJlcXVpcmVzIFdFUCkKYXV0aF9hbGdzPTMKCiMgU2VuZCBlbXB0eSBT U0lEIGluIGJlYWNvbnMgYW5kIGlnbm9yZSBwcm9iZSByZXF1ZXN0IGZyYW1lcyB0aGF0IGRvIG5v dAojIHNwZWNpZnkgZnVsbCBTU0lELCBpLmUuLCByZXF1aXJlIHN0YXRpb25zIHRvIGtub3cgU1NJ RC4KIyBkZWZhdWx0OiBkaXNhYmxlZCAoMCkKIyAxID0gc2VuZCBlbXB0eSAobGVuZ3RoPTApIFNT SUQgaW4gYmVhY29uIGFuZCBpZ25vcmUgcHJvYmUgcmVxdWVzdCBmb3IKIyAgICAgYnJvYWRjYXN0 IFNTSUQKIyAyID0gY2xlYXIgU1NJRCAoQVNDSUkgMCksIGJ1dCBrZWVwIHRoZSBvcmlnaW5hbCBs ZW5ndGggKHRoaXMgbWF5IGJlIHJlcXVpcmVkCiMgICAgIHdpdGggc29tZSBjbGllbnRzIHRoYXQg ZG8gbm90IHN1cHBvcnQgZW1wdHkgU1NJRCkgYW5kIGlnbm9yZSBwcm9iZQojICAgICByZXF1ZXN0 cyBmb3IgYnJvYWRjYXN0IFNTSUQKaWdub3JlX2Jyb2FkY2FzdF9zc2lkPTAKCiMgRG8gbm90IHJl cGx5IHRvIGJyb2FkY2FzdCBQcm9iZSBSZXF1ZXN0IGZyYW1lcyBmcm9tIHVuYXNzb2NpYXRlZCBT VEEgaWYgdGhlcmUKIyBpcyBubyByb29tIGZvciBhZGRpdGlvbmFsIHN0YXRpb25zIChtYXhfbnVt X3N0YSkuIFRoaXMgY2FuIGJlIHVzZWQgdG8KIyBkaXNjb3VyYWdlIGEgU1RBIGZyb20gdHJ5aW5n IHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgQVAgaWYgdGhlIGFzc29jaWF0aW9uCiMgd291bGQgYmUg cmVqZWN0ZWQgZHVlIHRvIG1heGltdW0gU1RBIGxpbWl0LgojIERlZmF1bHQ6IDAgKGRpc2FibGVk KQojbm9fcHJvYmVfcmVzcF9pZl9tYXhfc3RhPTAKCiMgQWRkaXRpb25hbCB2ZW5kb3Igc3BlY2lm aWMgZWxlbWVudHMgZm9yIEJlYWNvbiBhbmQgUHJvYmUgUmVzcG9uc2UgZnJhbWVzCiMgVGhpcyBw YXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gYWRkIGFkZGl0aW9uYWwgdmVuZG9yIHNwZWNpZmljIGVs ZW1lbnQocykgaW50bwojIHRoZSBlbmQgb2YgdGhlIEJlYWNvbiBhbmQgUHJvYmUgUmVzcG9uc2Ug ZnJhbWVzLiBUaGUgZm9ybWF0IGZvciB0aGVzZQojIGVsZW1lbnQocykgaXMgYSBoZXhkdW1wIG9m IHRoZSByYXcgaW5mb3JtYXRpb24gZWxlbWVudHMgKGlkK2xlbitwYXlsb2FkIGZvcgojIG9uZSBv ciBtb3JlIGVsZW1lbnRzKQojdmVuZG9yX2VsZW1lbnRzPWRkMDQxMTIyMzMwMQoKIyBBZGRpdGlv bmFsIHZlbmRvciBzcGVjaWZpYyBlbGVtZW50cyBmb3IgKFJlKUFzc29jaWF0aW9uIFJlc3BvbnNl IGZyYW1lcwojIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGFkZCBhZGRpdGlvbmFsIHZl bmRvciBzcGVjaWZpYyBlbGVtZW50KHMpIGludG8KIyB0aGUgZW5kIG9mIHRoZSAoUmUpQXNzb2Np YXRpb24gUmVzcG9uc2UgZnJhbWVzLiBUaGUgZm9ybWF0IGZvciB0aGVzZQojIGVsZW1lbnQocykg aXMgYSBoZXhkdW1wIG9mIHRoZSByYXcgaW5mb3JtYXRpb24gZWxlbWVudHMgKGlkK2xlbitwYXls b2FkIGZvcgojIG9uZSBvciBtb3JlIGVsZW1lbnRzKQojYXNzb2NyZXNwX2VsZW1lbnRzPWRkMDQx MTIyMzMwMQoKIyBUWCBxdWV1ZSBwYXJhbWV0ZXJzIChFRENGIC8gYnVyc3RpbmcpCiMgdHhfcXVl dWVfPHF1ZXVlIG5hbWU+XzxwYXJhbT4KIyBxdWV1ZXM6IGRhdGEwLCBkYXRhMSwgZGF0YTIsIGRh dGEzCiMJCShkYXRhMCBpcyB0aGUgaGlnaGVzdCBwcmlvcml0eSBxdWV1ZSkKIyBwYXJhbWV0ZXJz OgojICAgYWlmczogQUlGUyAoZGVmYXVsdCAyKQojICAgY3dtaW46IGN3TWluICgxLCAzLCA3LCAx NSwgMzEsIDYzLCAxMjcsIDI1NSwgNTExLCAxMDIzLCAyMDQ3LCA0MDk1LCA4MTkxLAojCSAgIDE2 MzgzLCAzMjc2NykKIyAgIGN3bWF4OiBjd01heCAoc2FtZSB2YWx1ZXMgYXMgY3dNaW4sIGN3TWF4 ID49IGN3TWluKQojICAgYnVyc3Q6IG1heGltdW0gbGVuZ3RoIChpbiBtaWxsaXNlY29uZHMgd2l0 aCBwcmVjaXNpb24gb2YgdXAgdG8gMC4xIG1zKSBmb3IKIyAgICAgICAgICBidXJzdGluZwojCiMg RGVmYXVsdCBXTU0gcGFyYW1ldGVycyAoSUVFRSA4MDIuMTEgZHJhZnQ7IDExLTAzLTA1MDQtMDMt MDAwZSk6CiMgVGhlc2UgcGFyYW1ldGVycyBhcmUgdXNlZCBieSB0aGUgYWNjZXNzIHBvaW50IHdo ZW4gdHJhbnNtaXR0aW5nIGZyYW1lcwojIHRvIHRoZSBjbGllbnRzLgojCiMgTG93IHByaW9yaXR5 IC8gQUNfQksgPSBiYWNrZ3JvdW5kCiN0eF9xdWV1ZV9kYXRhM19haWZzPTcKI3R4X3F1ZXVlX2Rh dGEzX2N3bWluPTE1CiN0eF9xdWV1ZV9kYXRhM19jd21heD0xMDIzCiN0eF9xdWV1ZV9kYXRhM19i dXJzdD0wCiMgTm90ZTogZm9yIElFRUUgODAyLjExYiBtb2RlOiBjV21pbj0zMSBjV21heD0xMDIz IGJ1cnN0PTAKIwojIE5vcm1hbCBwcmlvcml0eSAvIEFDX0JFID0gYmVzdCBlZmZvcnQKI3R4X3F1 ZXVlX2RhdGEyX2FpZnM9MwojdHhfcXVldWVfZGF0YTJfY3dtaW49MTUKI3R4X3F1ZXVlX2RhdGEy X2N3bWF4PTYzCiN0eF9xdWV1ZV9kYXRhMl9idXJzdD0wCiMgTm90ZTogZm9yIElFRUUgODAyLjEx YiBtb2RlOiBjV21pbj0zMSBjV21heD0xMjcgYnVyc3Q9MAojCiMgSGlnaCBwcmlvcml0eSAvIEFD X1ZJID0gdmlkZW8KI3R4X3F1ZXVlX2RhdGExX2FpZnM9MQojdHhfcXVldWVfZGF0YTFfY3dtaW49 NwojdHhfcXVldWVfZGF0YTFfY3dtYXg9MTUKI3R4X3F1ZXVlX2RhdGExX2J1cnN0PTMuMAojIE5v dGU6IGZvciBJRUVFIDgwMi4xMWIgbW9kZTogY1dtaW49MTUgY1dtYXg9MzEgYnVyc3Q9Ni4wCiMK IyBIaWdoZXN0IHByaW9yaXR5IC8gQUNfVk8gPSB2b2ljZQojdHhfcXVldWVfZGF0YTBfYWlmcz0x CiN0eF9xdWV1ZV9kYXRhMF9jd21pbj0zCiN0eF9xdWV1ZV9kYXRhMF9jd21heD03CiN0eF9xdWV1 ZV9kYXRhMF9idXJzdD0xLjUKIyBOb3RlOiBmb3IgSUVFRSA4MDIuMTFiIG1vZGU6IGNXbWluPTcg Y1dtYXg9MTUgYnVyc3Q9My4zCgojIDgwMi4xRCBUYWcgKD0gVVApIHRvIEFDIG1hcHBpbmdzCiMg V01NIHNwZWNpZmllcyBmb2xsb3dpbmcgbWFwcGluZyBvZiBkYXRhIGZyYW1lcyB0byBkaWZmZXJl bnQgQUNzLiBUaGlzIG1hcHBpbmcKIyBjYW4gYmUgY29uZmlndXJlZCB1c2luZyBMaW51eCBRb1Mv dGMgYW5kIHNjaF9wa3RwcmkubyBtb2R1bGUuCiMgODAyLjFEIFRhZwk4MDIuMUQgRGVzaWduYXRp b24JQWNjZXNzIENhdGVnb3J5CVdNTSBEZXNpZ25hdGlvbgojIDEJCUJLCQkJQUNfQksJCUJhY2tn cm91bmQKIyAyCQktCQkJQUNfQksJCUJhY2tncm91bmQKIyAwCQlCRQkJCUFDX0JFCQlCZXN0IEVm Zm9ydAojIDMJCUVFCQkJQUNfQkUJCUJlc3QgRWZmb3J0CiMgNAkJQ0wJCQlBQ19WSQkJVmlkZW8K IyA1CQlWSQkJCUFDX1ZJCQlWaWRlbwojIDYJCVZPCQkJQUNfVk8JCVZvaWNlCiMgNwkJTkMJCQlB Q19WTwkJVm9pY2UKIyBEYXRhIGZyYW1lcyB3aXRoIG5vIHByaW9yaXR5IGluZm9ybWF0aW9uOiBB Q19CRQojIE1hbmFnZW1lbnQgZnJhbWVzOiBBQ19WTwojIFBTLVBvbGwgZnJhbWVzOiBBQ19CRQoK IyBEZWZhdWx0IFdNTSBwYXJhbWV0ZXJzIChJRUVFIDgwMi4xMSBkcmFmdDsgMTEtMDMtMDUwNC0w My0wMDBlKToKIyBmb3IgODAyLjExYSBvciA4MDIuMTFnIG5ldHdvcmtzCiMgVGhlc2UgcGFyYW1l dGVycyBhcmUgc2VudCB0byBXTU0gY2xpZW50cyB3aGVuIHRoZXkgYXNzb2NpYXRlLgojIFRoZSBw YXJhbWV0ZXJzIHdpbGwgYmUgdXNlZCBieSBXTU0gY2xpZW50cyBmb3IgZnJhbWVzIHRyYW5zbWl0 dGVkIHRvIHRoZQojIGFjY2VzcyBwb2ludC4KIwojIG5vdGUgLSB0eG9wX2xpbWl0IGlzIGluIHVu aXRzIG9mIDMybWljcm9zZWNvbmRzCiMgbm90ZSAtIGFjbSBpcyBhZG1pc3Npb24gY29udHJvbCBt YW5kYXRvcnkgZmxhZy4gMCA9IGFkbWlzc2lvbiBjb250cm9sIG5vdAojIHJlcXVpcmVkLCAxID0g bWFuZGF0b3J5CiMgbm90ZSAtIEhlcmUgY3dNaW4gYW5kIGNtTWF4IGFyZSBpbiBleHBvbmVudCBm b3JtLiBUaGUgYWN0dWFsIGN3IHZhbHVlIHVzZWQKIyB3aWxsIGJlICgyXm4pLTEgd2hlcmUgbiBp cyB0aGUgdmFsdWUgZ2l2ZW4gaGVyZS4gVGhlIGFsbG93ZWQgcmFuZ2UgZm9yIHRoZXNlCiMgd21t X2FjXz8/X3tjd21pbixjd21heH0gaXMgMC4uMTUgd2l0aCBjd21heCA+PSBjd21pbi4KIwp3bW1f ZW5hYmxlZD0xCiMKIyBXTU0tUFMgVW5zY2hlZHVsZWQgQXV0b21hdGljIFBvd2VyIFNhdmUgRGVs aXZlcnkgW1UtQVBTRF0KIyBFbmFibGUgdGhpcyBmbGFnIGlmIFUtQVBTRCBzdXBwb3J0ZWQgb3V0 c2lkZSBob3N0YXBkIChlZy4sIEZpcm13YXJlL2RyaXZlcikKI3VhcHNkX2FkdmVydGlzZW1lbnRf ZW5hYmxlZD0xCiMKIyBMb3cgcHJpb3JpdHkgLyBBQ19CSyA9IGJhY2tncm91bmQKd21tX2FjX2Jr X2N3bWluPTQKd21tX2FjX2JrX2N3bWF4PTEwCndtbV9hY19ia19haWZzPTcKd21tX2FjX2JrX3R4 b3BfbGltaXQ9MAp3bW1fYWNfYmtfYWNtPTAKIyBOb3RlOiBmb3IgSUVFRSA4MDIuMTFiIG1vZGU6 IGNXbWluPTUgY1dtYXg9MTAKIwojIE5vcm1hbCBwcmlvcml0eSAvIEFDX0JFID0gYmVzdCBlZmZv cnQKd21tX2FjX2JlX2FpZnM9Mwp3bW1fYWNfYmVfY3dtaW49NAp3bW1fYWNfYmVfY3dtYXg9MTAK d21tX2FjX2JlX3R4b3BfbGltaXQ9MAp3bW1fYWNfYmVfYWNtPTAKIyBOb3RlOiBmb3IgSUVFRSA4 MDIuMTFiIG1vZGU6IGNXbWluPTUgY1dtYXg9NwojCiMgSGlnaCBwcmlvcml0eSAvIEFDX1ZJID0g dmlkZW8Kd21tX2FjX3ZpX2FpZnM9Mgp3bW1fYWNfdmlfY3dtaW49Mwp3bW1fYWNfdmlfY3dtYXg9 NAp3bW1fYWNfdmlfdHhvcF9saW1pdD05NAp3bW1fYWNfdmlfYWNtPTAKIyBOb3RlOiBmb3IgSUVF RSA4MDIuMTFiIG1vZGU6IGNXbWluPTQgY1dtYXg9NSB0eG9wX2xpbWl0PTE4OAojCiMgSGlnaGVz dCBwcmlvcml0eSAvIEFDX1ZPID0gdm9pY2UKd21tX2FjX3ZvX2FpZnM9Mgp3bW1fYWNfdm9fY3dt aW49Mgp3bW1fYWNfdm9fY3dtYXg9Mwp3bW1fYWNfdm9fdHhvcF9saW1pdD00Nwp3bW1fYWNfdm9f YWNtPTAKIyBOb3RlOiBmb3IgSUVFRSA4MDIuMTFiIG1vZGU6IGNXbWluPTMgY1dtYXg9NCBidXJz dD0xMDIKCiMgU3RhdGljIFdFUCBrZXkgY29uZmlndXJhdGlvbgojCiMgVGhlIGtleSBudW1iZXIg dG8gdXNlIHdoZW4gdHJhbnNtaXR0aW5nLgojIEl0IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAzLCBh bmQgdGhlIGNvcnJlc3BvbmRpbmcga2V5IG11c3QgYmUgc2V0LgojIGRlZmF1bHQ6IG5vdCBzZXQK I3dlcF9kZWZhdWx0X2tleT0wCiMgVGhlIFdFUCBrZXlzIHRvIHVzZS4KIyBBIGtleSBtYXkgYmUg YSBxdW90ZWQgc3RyaW5nIG9yIHVucXVvdGVkIGhleGFkZWNpbWFsIGRpZ2l0cy4KIyBUaGUga2V5 IGxlbmd0aCBzaG91bGQgYmUgNSwgMTMsIG9yIDE2IGNoYXJhY3RlcnMsIG9yIDEwLCAyNiwgb3Ig MzIKIyBkaWdpdHMsIGRlcGVuZGluZyBvbiB3aGV0aGVyIDQwLWJpdCAoNjQtYml0KSwgMTA0LWJp dCAoMTI4LWJpdCksIG9yCiMgMTI4LWJpdCAoMTUyLWJpdCkgV0VQIGlzIHVzZWQuCiMgT25seSB0 aGUgZGVmYXVsdCBrZXkgbXVzdCBiZSBzdXBwbGllZDsgdGhlIG90aGVycyBhcmUgb3B0aW9uYWwu CiMgZGVmYXVsdDogbm90IHNldAojd2VwX2tleTA9MTIzNDU2Nzg5YQojd2VwX2tleTE9InZ3eHl6 Igojd2VwX2tleTI9MDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQKI3dlcF9rZXkzPSIuMi40LjYu OC4wLjIzIgoKIyBTdGF0aW9uIGluYWN0aXZpdHkgbGltaXQKIwojIElmIGEgc3RhdGlvbiBkb2Vz IG5vdCBzZW5kIGFueXRoaW5nIGluIGFwX21heF9pbmFjdGl2aXR5IHNlY29uZHMsIGFuCiMgZW1w dHkgZGF0YSBmcmFtZSBpcyBzZW50IHRvIGl0IGluIG9yZGVyIHRvIHZlcmlmeSB3aGV0aGVyIGl0 IGlzCiMgc3RpbGwgaW4gcmFuZ2UuIElmIHRoaXMgZnJhbWUgaXMgbm90IEFDS2VkLCB0aGUgc3Rh dGlvbiB3aWxsIGJlCiMgZGlzYXNzb2NpYXRlZCBhbmQgdGhlbiBkZWF1dGhlbnRpY2F0ZWQuIFRo aXMgZmVhdHVyZSBpcyB1c2VkIHRvCiMgY2xlYXIgc3RhdGlvbiB0YWJsZSBvZiBvbGQgZW50cmll cyB3aGVuIHRoZSBTVEFzIG1vdmUgb3V0IG9mIHRoZQojIHJhbmdlLgojCiMgVGhlIHN0YXRpb24g Y2FuIGFzc29jaWF0ZSBhZ2FpbiB3aXRoIHRoZSBBUCBpZiBpdCBpcyBzdGlsbCBpbiByYW5nZTsK IyB0aGlzIGluYWN0aXZpdHkgcG9sbCBpcyBqdXN0IHVzZWQgYXMgYSBuaWNlciB3YXkgb2YgdmVy aWZ5aW5nCiMgaW5hY3Rpdml0eTsgaS5lLiwgY2xpZW50IHdpbGwgbm90IHJlcG9ydCBicm9rZW4g Y29ubmVjdGlvbiBiZWNhdXNlCiMgZGlzYXNzb2NpYXRpb24gZnJhbWUgaXMgbm90IHNlbnQgaW1t ZWRpYXRlbHkgd2l0aG91dCBmaXJzdCBwb2xsaW5nCiMgdGhlIFNUQSB3aXRoIGEgZGF0YSBmcmFt ZS4KIyBkZWZhdWx0OiAzMDAgKGkuZS4sIDUgbWludXRlcykKI2FwX21heF9pbmFjdGl2aXR5PTMw MAojCiMgVGhlIGluYWN0aXZpdHkgcG9sbGluZyBjYW4gYmUgZGlzYWJsZWQgdG8gZGlzY29ubmVj dCBzdGF0aW9ucyBiYXNlZCBvbgojIGluYWN0aXZpdHkgdGltZW91dCBzbyB0aGF0IGlkbGUgc3Rh dGlvbnMgYXJlIG1vcmUgbGlrZWx5IHRvIGJlIGRpc2Nvbm5lY3RlZAojIGV2ZW4gaWYgdGhleSBh cmUgc3RpbGwgaW4gcmFuZ2Ugb2YgdGhlIEFQLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcK IyBza2lwX2luYWN0aXZpdHlfcG9sbCB0byAxIChkZWZhdWx0IDApLgojc2tpcF9pbmFjdGl2aXR5 X3BvbGw9MAoKIyBEaXNhc3NvY2lhdGUgc3RhdGlvbnMgYmFzZWQgb24gZXhjZXNzaXZlIHRyYW5z bWlzc2lvbiBmYWlsdXJlcyBvciBvdGhlcgojIGluZGljYXRpb25zIG9mIGNvbm5lY3Rpb24gbG9z cy4gVGhpcyBkZXBlbmRzIG9uIHRoZSBkcml2ZXIgY2FwYWJpbGl0aWVzIGFuZAojIG1heSBub3Qg YmUgYXZhaWxhYmxlIHdpdGggYWxsIGRyaXZlcnMuCiNkaXNhc3NvY19sb3dfYWNrPTEKCiMgTWF4 aW11bSBhbGxvd2VkIExpc3RlbiBJbnRlcnZhbCAoaG93IG1hbnkgQmVhY29uIHBlcmlvZHMgU1RB cyBhcmUgYWxsb3dlZCB0bwojIHJlbWFpbiBhc2xlZXApLiBEZWZhdWx0OiA2NTUzNSAobm8gbGlt aXQgYXBhcnQgZnJvbSBmaWVsZCBzaXplKQojbWF4X2xpc3Rlbl9pbnRlcnZhbD0xMDAKCiMgV0RT ICg0LWFkZHJlc3MgZnJhbWUpIG1vZGUgd2l0aCBwZXItc3RhdGlvbiB2aXJ0dWFsIGludGVyZmFj ZXMKIyAob25seSBzdXBwb3J0ZWQgd2l0aCBkcml2ZXI9bmw4MDIxMSkKIyBUaGlzIG1vZGUgYWxs b3dzIGFzc29jaWF0ZWQgc3RhdGlvbnMgdG8gdXNlIDQtYWRkcmVzcyBmcmFtZXMgdG8gYWxsb3cg bGF5ZXIgMgojIGJyaWRnaW5nIHRvIGJlIHVzZWQuCiN3ZHNfc3RhPTEKCiMgSWYgYnJpZGdlIHBh cmFtZXRlciBpcyBzZXQsIHRoZSBXRFMgU1RBIGludGVyZmFjZSB3aWxsIGJlIGFkZGVkIHRvIHRo ZSBzYW1lCiMgYnJpZGdlIGJ5IGRlZmF1bHQuIFRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0 aGUgd2RzX2JyaWRnZSBwYXJhbWV0ZXIgdG8KIyB1c2UgYSBzZXBhcmF0ZSBicmlkZ2UuCiN3ZHNf YnJpZGdlPXdkcy1icjAKCiMgU3RhcnQgdGhlIEFQIHdpdGggYmVhY29uaW5nIGRpc2FibGVkIGJ5 IGRlZmF1bHQuCiNzdGFydF9kaXNhYmxlZD0wCgojIENsaWVudCBpc29sYXRpb24gY2FuIGJlIHVz ZWQgdG8gcHJldmVudCBsb3ctbGV2ZWwgYnJpZGdpbmcgb2YgZnJhbWVzIGJldHdlZW4KIyBhc3Nv Y2lhdGVkIHN0YXRpb25zIGluIHRoZSBCU1MuIEJ5IGRlZmF1bHQsIHRoaXMgYnJpZGdpbmcgaXMg YWxsb3dlZC4KI2FwX2lzb2xhdGU9MQoKIyBCU1MgTG9hZCB1cGRhdGUgcGVyaW9kIChpbiBCVXMp CiMgVGhpcyBmaWVsZCBpcyB1c2VkIHRvIGVuYWJsZSBhbmQgY29uZmlndXJlIGFkZGluZyBhIEJT UyBMb2FkIGVsZW1lbnQgaW50bwojIEJlYWNvbiBhbmQgUHJvYmUgUmVzcG9uc2UgZnJhbWVzLgoj YnNzX2xvYWRfdXBkYXRlX3BlcmlvZD01MAoKIyBDaGFubmVsIHV0aWxpemF0aW9uIGF2ZXJhZ2lu ZyBwZXJpb2QgKGluIEJVcykKIyBUaGlzIGZpZWxkIGlzIHVzZWQgdG8gZW5hYmxlIGFuZCBjb25m aWd1cmUgY2hhbm5lbCB1dGlsaXphdGlvbiBhdmVyYWdlCiMgY2FsY3VsYXRpb24gd2l0aCBic3Nf bG9hZF91cGRhdGVfcGVyaW9kLiBUaGlzIHNob3VsZCBiZSBpbiBtdWx0aXBsZXMgb2YKIyBic3Nf bG9hZF91cGRhdGVfcGVyaW9kIGZvciBtb3JlIGFjY3VyYXRlIGNhbGN1bGF0aW9uLgojY2hhbl91 dGlsX2F2Z19wZXJpb2Q9NjAwCgojIEZpeGVkIEJTUyBMb2FkIHZhbHVlIGZvciB0ZXN0aW5nIHB1 cnBvc2VzCiMgVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUgaG9zdGFwZCB0byBh ZGQgYSBmaXhlZCBCU1MgTG9hZCBlbGVtZW50CiMgaW50byBCZWFjb24gYW5kIFByb2JlIFJlc3Bv bnNlIGZyYW1lcyBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gVGhlIGZvcm1hdCBpcwojIDxzdGF0aW9u IGNvdW50Pjo8Y2hhbm5lbCB1dGlsaXphdGlvbj46PGF2YWlsYWJsZSBhZG1pc3Npb24gY2FwYWNp dHk+CiNic3NfbG9hZF90ZXN0PTEyOjgwOjIwMDAwCgojIE11bHRpY2FzdCB0byB1bmljYXN0IGNv bnZlcnNpb24KIyBSZXF1ZXN0IHRoYXQgdGhlIEFQIHdpbGwgZG8gbXVsdGljYXN0LXRvLXVuaWNh c3QgY29udmVyc2lvbiBmb3IgQVJQLCBJUHY0LCBhbmQKIyBJUHY2IGZyYW1lcyAocG9zc2libHkg d2l0aGluIDgwMi4xUSkuIElmIGVuYWJsZWQsIHN1Y2ggZnJhbWVzIGFyZSB0byBiZSBzZW50CiMg dG8gZWFjaCBzdGF0aW9uIHNlcGFyYXRlbHksIHdpdGggdGhlIERBIHJlcGxhY2VkIGJ5IHRoZWly IG93biBNQUMgYWRkcmVzcwojIHJhdGhlciB0aGFuIHRoZSBncm91cCBhZGRyZXNzLgojCiMgTm90 ZSB0aGF0IHRoaXMgbWF5IGJyZWFrIGNlcnRhaW4gZXhwZWN0YXRpb25zIG9mIHRoZSByZWNlaXZl ciwgc3VjaCBhcyB0aGUKIyBhYmlsaXR5IHRvIGRyb3AgdW5pY2FzdCBJUCBwYWNrZXRzIHJlY2Vp dmVkIHdpdGhpbiBtdWx0aWNhc3QgTDIgZnJhbWVzLCBvciB0aGUKIyBhYmlsaXR5IHRvIG5vdCBz ZW5kIElDTVAgZGVzdGluYXRpb24gdW5yZWFjaGFibGUgbWVzc2FnZXMgZm9yIHBhY2tldHMgcmVj ZWl2ZWQKIyBpbiBMMiBtdWx0aWNhc3QgKHdoaWNoIGlzIHJlcXVpcmVkLCBidXQgdGhlIHJlY2Vp dmVyIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVuY2UKIyBpZiB0aGlzIG5ldyBvcHRpb24gaXMgZW5h YmxlZCkuCiMKIyBUaGlzIGFsc28gZG9lc24ndCBpbXBsZW1lbnQgdGhlIDgwMi4xMSBETVMgKGRp cmVjdGVkIG11bHRpY2FzdCBzZXJ2aWNlKS4KIwojbXVsdGljYXN0X3RvX3VuaWNhc3Q9MAoKIyBT ZW5kIGJyb2FkY2FzdCBEZWF1dGhlbnRpY2F0aW9uIGZyYW1lIG9uIEFQIHN0YXJ0L3N0b3AKIyBE ZWZhdWx0OiAxIChlbmFibGVkKQojYnJvYWRjYXN0X2RlYXV0aD0xCgojIyMjIyBJRUVFIDgwMi4x MW4gcmVsYXRlZCBjb25maWd1cmF0aW9uICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCgojIGllZWU4MDIxMW46IFdoZXRoZXIgSUVFRSA4MDIuMTFuIChIVCkgaXMgZW5hYmxl ZAojIDAgPSBkaXNhYmxlZCAoZGVmYXVsdCkKIyAxID0gZW5hYmxlZAojIE5vdGU6IFlvdSB3aWxs IGFsc28gbmVlZCB0byBlbmFibGUgV01NIGZvciBmdWxsIEhUIGZ1bmN0aW9uYWxpdHkuCiMgTm90 ZTogaHdfbW9kZT1nICgyLjQgR0h6KSBhbmQgaHdfbW9kZT1hICg1IEdIeikgaXMgdXNlZCB0byBz cGVjaWZ5IHRoZSBiYW5kLgojaWVlZTgwMjExbj0xCgojIGh0X2NhcGFiOiBIVCBjYXBhYmlsaXRp ZXMgKGxpc3Qgb2YgZmxhZ3MpCiMgTERQQyBjb2RpbmcgY2FwYWJpbGl0eTogW0xEUENdID0gc3Vw cG9ydGVkCiMgU3VwcG9ydGVkIGNoYW5uZWwgd2lkdGggc2V0OiBbSFQ0MC1dID0gYm90aCAyMCBN SHogYW5kIDQwIE1IeiB3aXRoIHNlY29uZGFyeQojCWNoYW5uZWwgYmVsb3cgdGhlIHByaW1hcnkg Y2hhbm5lbDsgW0hUNDArXSA9IGJvdGggMjAgTUh6IGFuZCA0MCBNSHoKIwl3aXRoIHNlY29uZGFy eSBjaGFubmVsIGFib3ZlIHRoZSBwcmltYXJ5IGNoYW5uZWwKIwkoMjAgTUh6IG9ubHkgaWYgbmVp dGhlciBpcyBzZXQpCiMJTm90ZTogVGhlcmUgYXJlIGxpbWl0cyBvbiB3aGljaCBjaGFubmVscyBj YW4gYmUgdXNlZCB3aXRoIEhUNDAtIGFuZAojCUhUNDArLiBGb2xsb3dpbmcgdGFibGUgc2hvd3Mg dGhlIGNoYW5uZWxzIHRoYXQgbWF5IGJlIGF2YWlsYWJsZSBmb3IKIwlIVDQwLSBhbmQgSFQ0MCsg dXNlIHBlciBJRUVFIDgwMi4xMW4gQW5uZXggSjoKIwlmcmVxCQlIVDQwLQkJSFQ0MCsKIwkyLjQg R0h6CQk1LTEzCQkxLTcgKDEtOSBpbiBFdXJvcGUvSmFwYW4pCiMJNSBHSHoJCTQwLDQ4LDU2LDY0 CTM2LDQ0LDUyLDYwCiMJKGRlcGVuZGluZyBvbiB0aGUgbG9jYXRpb24sIG5vdCBhbGwgb2YgdGhl c2UgY2hhbm5lbHMgbWF5IGJlIGF2YWlsYWJsZQojCWZvciB1c2UpCiMJUGxlYXNlIG5vdGUgdGhh dCA0MCBNSHogY2hhbm5lbHMgbWF5IHN3aXRjaCB0aGVpciBwcmltYXJ5IGFuZCBzZWNvbmRhcnkK IwljaGFubmVscyBpZiBuZWVkZWQgb3IgY3JlYXRpb24gb2YgNDAgTUh6IGNoYW5uZWwgbWF5YmUg cmVqZWN0ZWQgYmFzZWQKIwlvbiBvdmVybGFwcGluZyBCU1Nlcy4gVGhlc2UgY2hhbmdlcyBhcmUg ZG9uZSBhdXRvbWF0aWNhbGx5IHdoZW4gaG9zdGFwZAojCWlzIHNldHRpbmcgdXAgdGhlIDQwIE1I eiBjaGFubmVsLgojIFNwYXRpYWwgTXVsdGlwbGV4aW5nIChTTSkgUG93ZXIgU2F2ZTogW1NNUFMt U1RBVElDXSBvciBbU01QUy1EWU5BTUlDXQojCShTTVBTIGRpc2FibGVkIGlmIG5laXRoZXIgaXMg c2V0KQojIEhULWdyZWVuZmllbGQ6IFtHRl0gKGRpc2FibGVkIGlmIG5vdCBzZXQpCiMgU2hvcnQg R0kgZm9yIDIwIE1IejogW1NIT1JULUdJLTIwXSAoZGlzYWJsZWQgaWYgbm90IHNldCkKIyBTaG9y dCBHSSBmb3IgNDAgTUh6OiBbU0hPUlQtR0ktNDBdIChkaXNhYmxlZCBpZiBub3Qgc2V0KQojIFR4 IFNUQkM6IFtUWC1TVEJDXSAoZGlzYWJsZWQgaWYgbm90IHNldCkKIyBSeCBTVEJDOiBbUlgtU1RC QzFdIChvbmUgc3BhdGlhbCBzdHJlYW0pLCBbUlgtU1RCQzEyXSAob25lIG9yIHR3byBzcGF0aWFs CiMJc3RyZWFtcyksIG9yIFtSWC1TVEJDMTIzXSAob25lLCB0d28sIG9yIHRocmVlIHNwYXRpYWwg c3RyZWFtcyk7IFJ4IFNUQkMKIwlkaXNhYmxlZCBpZiBub25lIG9mIHRoZXNlIHNldAojIEhULWRl bGF5ZWQgQmxvY2sgQWNrOiBbREVMQVlFRC1CQV0gKGRpc2FibGVkIGlmIG5vdCBzZXQpCiMgTWF4 aW11bSBBLU1TRFUgbGVuZ3RoOiBbTUFYLUFNU0RVLTc5MzVdIGZvciA3OTM1IG9jdGV0cyAoMzgz OSBvY3RldHMgaWYgbm90CiMJc2V0KQojIERTU1MvQ0NLIE1vZGUgaW4gNDAgTUh6OiBbRFNTU19D Q0stNDBdID0gYWxsb3dlZCAobm90IGFsbG93ZWQgaWYgbm90IHNldCkKIyA0MCBNSHogaW50b2xl cmFudCBbNDAtSU5UT0xFUkFOVF0gKG5vdCBhZHZlcnRpc2VkIGlmIG5vdCBzZXQpCiMgTC1TSUcg VFhPUCBwcm90ZWN0aW9uIHN1cHBvcnQ6IFtMU0lHLVRYT1AtUFJPVF0gKGRpc2FibGVkIGlmIG5v dCBzZXQpCiNodF9jYXBhYj1bSFQ0MC1dW1NIT1JULUdJLTIwXVtTSE9SVC1HSS00MF0KCiMgUmVx dWlyZSBzdGF0aW9ucyB0byBzdXBwb3J0IEhUIFBIWSAocmVqZWN0IGFzc29jaWF0aW9uIGlmIHRo ZXkgZG8gbm90KQojcmVxdWlyZV9odD0xCgojIElmIHNldCBub24temVybywgcmVxdWlyZSBzdGF0 aW9ucyB0byBwZXJmb3JtIHNjYW5zIG9mIG92ZXJsYXBwaW5nCiMgY2hhbm5lbHMgdG8gdGVzdCBm b3Igc3RhdGlvbnMgd2hpY2ggd291bGQgYmUgYWZmZWN0ZWQgYnkgNDAgTUh6IHRyYWZmaWMuCiMg VGhpcyBwYXJhbWV0ZXIgc2V0cyB0aGUgaW50ZXJ2YWwgaW4gc2Vjb25kcyBiZXR3ZWVuIHRoZXNl IHNjYW5zLiBTZXR0aW5nIHRoaXMKIyB0byBub24temVybyBhbGxvd3MgMi40IEdIeiBiYW5kIEFQ IHRvIG1vdmUgZHluYW1pY2FsbHkgdG8gYSA0MCBNSHogY2hhbm5lbCBpZgojIG5vIGNvLWV4aXN0 ZW5jZSBpc3N1ZXMgd2l0aCBuZWlnaGJvcmluZyBkZXZpY2VzIGFyZSBmb3VuZC4KI29ic3NfaW50 ZXJ2YWw9MAoKIyMjIyMgSUVFRSA4MDIuMTFhYyByZWxhdGVkIGNvbmZpZ3VyYXRpb24gIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBpZWVlODAyMTFhYzogV2hldGhlciBJ RUVFIDgwMi4xMWFjIChWSFQpIGlzIGVuYWJsZWQKIyAwID0gZGlzYWJsZWQgKGRlZmF1bHQpCiMg MSA9IGVuYWJsZWQKIyBOb3RlOiBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8gZW5hYmxlIFdNTSBmb3Ig ZnVsbCBWSFQgZnVuY3Rpb25hbGl0eS4KIyBOb3RlOiBod19tb2RlPWEgaXMgdXNlZCB0byBzcGVj aWZ5IHRoYXQgNSBHSHogYmFuZCBpcyB1c2VkIHdpdGggVkhULgojaWVlZTgwMjExYWM9MQoKIyB2 aHRfY2FwYWI6IFZIVCBjYXBhYmlsaXRpZXMgKGxpc3Qgb2YgZmxhZ3MpCiMKIyB2aHRfbWF4X21w ZHVfbGVuOiBbTUFYLU1QRFUtNzk5MV0gW01BWC1NUERVLTExNDU0XQojIEluZGljYXRlcyBtYXhp bXVtIE1QRFUgbGVuZ3RoCiMgMCA9IDM4OTUgb2N0ZXRzIChkZWZhdWx0KQojIDEgPSA3OTkxIG9j dGV0cwojIDIgPSAxMTQ1NCBvY3RldHMKIyAzID0gcmVzZXJ2ZWQKIwojIHN1cHBvcnRlZF9jaGFu X3dpZHRoOiBbVkhUMTYwXSBbVkhUMTYwLTgwUExVUzgwXQojIEluZGljYXRlcyBzdXBwb3J0ZWQg Q2hhbm5lbCB3aWR0aHMKIyAwID0gMTYwIE1IeiAmIDgwKzgwIGNoYW5uZWwgd2lkdGhzIGFyZSBu b3Qgc3VwcG9ydGVkIChkZWZhdWx0KQojIDEgPSAxNjAgTUh6IGNoYW5uZWwgd2lkdGggaXMgc3Vw cG9ydGVkCiMgMiA9IDE2MCBNSHogJiA4MCs4MCBjaGFubmVsIHdpZHRocyBhcmUgc3VwcG9ydGVk CiMgMyA9IHJlc2VydmVkCiMKIyBSeCBMRFBDIGNvZGluZyBjYXBhYmlsaXR5OiBbUlhMRFBDXQoj IEluZGljYXRlcyBzdXBwb3J0IGZvciByZWNlaXZpbmcgTERQQyBjb2RlZCBwa3RzCiMgMCA9IE5v dCBzdXBwb3J0ZWQgKGRlZmF1bHQpCiMgMSA9IFN1cHBvcnRlZAojCiMgU2hvcnQgR0kgZm9yIDgw IE1IejogW1NIT1JULUdJLTgwXQojIEluZGljYXRlcyBzaG9ydCBHSSBzdXBwb3J0IGZvciByZWNl cHRpb24gb2YgcGFja2V0cyB0cmFuc21pdHRlZCB3aXRoIFRYVkVDVE9SCiMgcGFyYW1zIGZvcm1h dCBlcXVhbCB0byBWSFQgYW5kIENCVyA9IDgwTWh6CiMgMCA9IE5vdCBzdXBwb3J0ZWQgKGRlZmF1 bHQpCiMgMSA9IFN1cHBvcnRlZAojCiMgU2hvcnQgR0kgZm9yIDE2MCBNSHo6IFtTSE9SVC1HSS0x NjBdCiMgSW5kaWNhdGVzIHNob3J0IEdJIHN1cHBvcnQgZm9yIHJlY2VwdGlvbiBvZiBwYWNrZXRz IHRyYW5zbWl0dGVkIHdpdGggVFhWRUNUT1IKIyBwYXJhbXMgZm9ybWF0IGVxdWFsIHRvIFZIVCBh bmQgQ0JXID0gMTYwTWh6CiMgMCA9IE5vdCBzdXBwb3J0ZWQgKGRlZmF1bHQpCiMgMSA9IFN1cHBv cnRlZAojCiMgVHggU1RCQzogW1RYLVNUQkMtMkJZMV0KIyBJbmRpY2F0ZXMgc3VwcG9ydCBmb3Ig dGhlIHRyYW5zbWlzc2lvbiBvZiBhdCBsZWFzdCAyeDEgU1RCQwojIDAgPSBOb3Qgc3VwcG9ydGVk IChkZWZhdWx0KQojIDEgPSBTdXBwb3J0ZWQKIwojIFJ4IFNUQkM6IFtSWC1TVEJDLTFdIFtSWC1T VEJDLTEyXSBbUlgtU1RCQy0xMjNdIFtSWC1TVEJDLTEyMzRdCiMgSW5kaWNhdGVzIHN1cHBvcnQg Zm9yIHRoZSByZWNlcHRpb24gb2YgUFBEVXMgdXNpbmcgU1RCQwojIDAgPSBOb3Qgc3VwcG9ydGVk IChkZWZhdWx0KQojIDEgPSBzdXBwb3J0IG9mIG9uZSBzcGF0aWFsIHN0cmVhbQojIDIgPSBzdXBw b3J0IG9mIG9uZSBhbmQgdHdvIHNwYXRpYWwgc3RyZWFtcwojIDMgPSBzdXBwb3J0IG9mIG9uZSwg dHdvIGFuZCB0aHJlZSBzcGF0aWFsIHN0cmVhbXMKIyA0ID0gc3VwcG9ydCBvZiBvbmUsIHR3bywg dGhyZWUgYW5kIGZvdXIgc3BhdGlhbCBzdHJlYW1zCiMgNSw2LDcgPSByZXNlcnZlZAojCiMgU1Ug QmVhbWZvcm1lciBDYXBhYmxlOiBbU1UtQkVBTUZPUk1FUl0KIyBJbmRpY2F0ZXMgc3VwcG9ydCBm b3Igb3BlcmF0aW9uIGFzIGEgc2luZ2xlIHVzZXIgYmVhbWZvcm1lcgojIDAgPSBOb3Qgc3VwcG9y dGVkIChkZWZhdWx0KQojIDEgPSBTdXBwb3J0ZWQKIwojIFNVIEJlYW1mb3JtZWUgQ2FwYWJsZTog W1NVLUJFQU1GT1JNRUVdCiMgSW5kaWNhdGVzIHN1cHBvcnQgZm9yIG9wZXJhdGlvbiBhcyBhIHNp bmdsZSB1c2VyIGJlYW1mb3JtZWUKIyAwID0gTm90IHN1cHBvcnRlZCAoZGVmYXVsdCkKIyAxID0g U3VwcG9ydGVkCiMKIyBDb21wcmVzc2VkIFN0ZWVyaW5nIE51bWJlciBvZiBCZWFtZm9ybWVyIEFu dGVubmFzIFN1cHBvcnRlZDoKIyBbQkYtQU5URU5OQS0yXSBbQkYtQU5URU5OQS0zXSBbQkYtQU5U RU5OQS00XQojICAgQmVhbWZvcm1lZSdzIGNhcGFiaWxpdHkgaW5kaWNhdGluZyB0aGUgbWF4aW11 bSBudW1iZXIgb2YgYmVhbWZvcm1lcgojICAgYW50ZW5uYXMgdGhlIGJlYW1mb3JtZWUgY2FuIHN1 cHBvcnQgd2hlbiBzZW5kaW5nIGNvbXByZXNzZWQgYmVhbWZvcm1pbmcKIyAgIGZlZWRiYWNrCiMg SWYgU1UgYmVhbWZvcm1lciBjYXBhYmxlLCBzZXQgdG8gbWF4aW11bSB2YWx1ZSBtaW51cyAxCiMg ZWxzZSByZXNlcnZlZCAoZGVmYXVsdCkKIwojIE51bWJlciBvZiBTb3VuZGluZyBEaW1lbnNpb25z OgojIFtTT1VORElORy1ESU1FTlNJT04tMl0gW1NPVU5ESU5HLURJTUVOU0lPTi0zXSBbU09VTkRJ TkctRElNRU5TSU9OLTRdCiMgQmVhbWZvcm1lcidzIGNhcGFiaWxpdHkgaW5kaWNhdGluZyB0aGUg bWF4aW11bSB2YWx1ZSBvZiB0aGUgTlVNX1NUUyBwYXJhbWV0ZXIKIyBpbiB0aGUgVFhWRUNUT1Ig b2YgYSBWSFQgTkRQCiMgSWYgU1UgYmVhbWZvcm1lciBjYXBhYmxlLCBzZXQgdG8gbWF4aW11bSB2 YWx1ZSBtaW51cyAxCiMgZWxzZSByZXNlcnZlZCAoZGVmYXVsdCkKIwojIE1VIEJlYW1mb3JtZXIg Q2FwYWJsZTogW01VLUJFQU1GT1JNRVJdCiMgSW5kaWNhdGVzIHN1cHBvcnQgZm9yIG9wZXJhdGlv biBhcyBhbiBNVSBiZWFtZm9ybWVyCiMgMCA9IE5vdCBzdXBwb3J0ZWQgb3Igc2VudCBieSBOb24t QVAgU1RBIChkZWZhdWx0KQojIDEgPSBTdXBwb3J0ZWQKIwojIFZIVCBUWE9QIFBTOiBbVkhULVRY T1AtUFNdCiMgSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBBUCBzdXBwb3J0cyBWSFQgVFhP UCBQb3dlciBTYXZlIE1vZGUKIyAgb3Igd2hldGhlciBvciBub3QgdGhlIFNUQSBpcyBpbiBWSFQg VFhPUCBQb3dlciBTYXZlIG1vZGUKIyAwID0gVkhUIEFQIGRvZXNuJ3Qgc3VwcG9ydCBWSFQgVFhP UCBQUyBtb2RlIChPUikgVkhUIFNUQSBub3QgaW4gVkhUIFRYT1AgUFMKIyAgbW9kZQojIDEgPSBW SFQgQVAgc3VwcG9ydHMgVkhUIFRYT1AgUFMgbW9kZSAoT1IpIFZIVCBTVEEgaXMgaW4gVkhUIFRY T1AgcG93ZXIgc2F2ZQojICBtb2RlCiMKIyArSFRDLVZIVCBDYXBhYmxlOiBbSFRDLVZIVF0KIyBJ bmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIFNUQSBzdXBwb3J0cyByZWNlaXZpbmcgYSBWSFQg dmFyaWFudCBIVCBDb250cm9sCiMgZmllbGQuCiMgMCA9IE5vdCBzdXBwb3J0ZWQgKGRlZmF1bHQp CiMgMSA9IHN1cHBvcnRlZAojCiMgTWF4aW11bSBBLU1QRFUgTGVuZ3RoIEV4cG9uZW50OiBbTUFY LUEtTVBEVS1MRU4tRVhQMF0uLltNQVgtQS1NUERVLUxFTi1FWFA3XQojIEluZGljYXRlcyB0aGUg bWF4aW11bSBsZW5ndGggb2YgQS1NUERVIHByZS1FT0YgcGFkZGluZyB0aGF0IHRoZSBTVEEgY2Fu IHJlY3YKIyBUaGlzIGZpZWxkIGlzIGFuIGludGVnZXIgaW4gdGhlIHJhbmdlIG9mIDAgdG8gNy4K IyBUaGUgbGVuZ3RoIGRlZmluZWQgYnkgdGhpcyBmaWVsZCBpcyBlcXVhbCB0bwojIDIgcG93KDEz ICsgTWF4aW11bSBBLU1QRFUgTGVuZ3RoIEV4cG9uZW50KSAtMSBvY3RldHMKIwojIFZIVCBMaW5r IEFkYXB0YXRpb24gQ2FwYWJsZTogW1ZIVC1MSU5LLUFEQVBUMl0gW1ZIVC1MSU5LLUFEQVBUM10K IyBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIFNUQSBzdXBwb3J0cyBsaW5rIGFkYXB0YXRp b24gdXNpbmcgVkhUIHZhcmlhbnQKIyBIVCBDb250cm9sIGZpZWxkCiMgSWYgK0hUQy1WSFRjYXBh YmxlIGlzIDEKIyAgMCA9IChubyBmZWVkYmFjaykgaWYgdGhlIFNUQSBkb2VzIG5vdCBwcm92aWRl IFZIVCBNRkIgKGRlZmF1bHQpCiMgIDEgPSByZXNlcnZlZAojICAyID0gKFVuc29saWNpdGVkKSBp ZiB0aGUgU1RBIHByb3ZpZGVzIG9ubHkgdW5zb2xpY2l0ZWQgVkhUIE1GQgojICAzID0gKEJvdGgp IGlmIHRoZSBTVEEgY2FuIHByb3ZpZGUgVkhUIE1GQiBpbiByZXNwb25zZSB0byBWSFQgTVJRIGFu ZCBpZiB0aGUKIyAgICAgIFNUQSBwcm92aWRlcyB1bnNvbGljaXRlZCBWSFQgTUZCCiMgUmVzZXJ2 ZWQgaWYgK0hUQy1WSFRjYXBhYmxlIGlzIDAKIwojIFJ4IEFudGVubmEgUGF0dGVybiBDb25zaXN0 ZW5jeTogW1JYLUFOVEVOTkEtUEFUVEVSTl0KIyBJbmRpY2F0ZXMgdGhlIHBvc3NpYmlsaXR5IG9m IFJ4IGFudGVubmEgcGF0dGVybiBjaGFuZ2UKIyAwID0gUnggYW50ZW5uYSBwYXR0ZXJuIG1pZ2h0 IGNoYW5nZSBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIGFuIGFzc29jaWF0aW9uCiMgMSA9IFJ4IGFu dGVubmEgcGF0dGVybiBkb2VzIG5vdCBjaGFuZ2UgZHVyaW5nIHRoZSBsaWZldGltZSBvZiBhbiBh c3NvY2lhdGlvbgojCiMgVHggQW50ZW5uYSBQYXR0ZXJuIENvbnNpc3RlbmN5OiBbVFgtQU5URU5O QS1QQVRURVJOXQojIEluZGljYXRlcyB0aGUgcG9zc2liaWxpdHkgb2YgVHggYW50ZW5uYSBwYXR0 ZXJuIGNoYW5nZQojIDAgPSBUeCBhbnRlbm5hIHBhdHRlcm4gbWlnaHQgY2hhbmdlIGR1cmluZyB0 aGUgbGlmZXRpbWUgb2YgYW4gYXNzb2NpYXRpb24KIyAxID0gVHggYW50ZW5uYSBwYXR0ZXJuIGRv ZXMgbm90IGNoYW5nZSBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIGFuIGFzc29jaWF0aW9uCiN2aHRf Y2FwYWI9W1NIT1JULUdJLTgwXVtIVEMtVkhUXQojCiMgUmVxdWlyZSBzdGF0aW9ucyB0byBzdXBw b3J0IFZIVCBQSFkgKHJlamVjdCBhc3NvY2lhdGlvbiBpZiB0aGV5IGRvIG5vdCkKI3JlcXVpcmVf dmh0PTEKCiMgMCA9IDIwIG9yIDQwIE1IeiBvcGVyYXRpbmcgQ2hhbm5lbCB3aWR0aAojIDEgPSA4 MCBNSHogY2hhbm5lbCB3aWR0aAojIDIgPSAxNjAgTUh6IGNoYW5uZWwgd2lkdGgKIyAzID0gODAr ODAgTUh6IGNoYW5uZWwgd2lkdGgKI3ZodF9vcGVyX2Nod2lkdGg9MQojCiMgY2VudGVyIGZyZXEg PSA1IEdIeiArICg1ICogaW5kZXgpCiMgU28gaW5kZXggNDIgZ2l2ZXMgY2VudGVyIGZyZXEgNS4y MTAgR0h6CiMgd2hpY2ggaXMgY2hhbm5lbCA0MiBpbiA1RyBiYW5kCiMKI3ZodF9vcGVyX2NlbnRy X2ZyZXFfc2VnMF9pZHg9NDIKIwojIGNlbnRlciBmcmVxID0gNSBHSHogKyAoNSAqIGluZGV4KQoj IFNvIGluZGV4IDE1OSBnaXZlcyBjZW50ZXIgZnJlcSA1Ljc5NSBHSHoKIyB3aGljaCBpcyBjaGFu bmVsIDE1OSBpbiA1RyBiYW5kCiMKI3ZodF9vcGVyX2NlbnRyX2ZyZXFfc2VnMV9pZHg9MTU5Cgoj IFdvcmthcm91bmQgdG8gdXNlIHN0YXRpb24ncyBuc3RzIGNhcGFiaWxpdHkgaW4gKFJlKUFzc29j aWF0aW9uIFJlc3BvbnNlIGZyYW1lCiMgVGhpcyBtYXkgYmUgbmVlZGVkIHdpdGggc29tZSBkZXBs b3llZCBkZXZpY2VzIGFzIGFuIGludGVyb3BlcmFiaWxpdHkKIyB3b3JrYXJvdW5kIGZvciBiZWFt Zm9ybWluZyBpZiB0aGUgQVAncyBjYXBhYmlsaXR5IGlzIGdyZWF0ZXIgdGhhbiB0aGUKIyBzdGF0 aW9uJ3MgY2FwYWJpbGl0eS4gVGhpcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gYmUg ZW5hYmxlZCBieQojIHNldHRpbmcgdXNlX3N0YV9uc3RzPTEuCiN1c2Vfc3RhX25zdHM9MAoKIyMj IyMgSUVFRSA4MDIuMTFheCByZWxhdGVkIGNvbmZpZ3VyYXRpb24gIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwoKI2llZWU4MDIxMWF4OiBXaGV0aGVyIElFRUUgODAyLjExYXgg KEhFKSBpcyBlbmFibGVkCiMgMCA9IGRpc2FibGVkIChkZWZhdWx0KQojIDEgPSBlbmFibGVkCiNp ZWVlODAyMTFheD0xCgojaGVfc3VfYmVhbWZvcm1lcjogSEUgc2luZ2xlIHVzZXIgYmVhbWZvcm1l ciBzdXBwb3J0CiMgMCA9IG5vdCBzdXBwb3J0ZWQgKGRlZmF1bHQpCiMgMSA9IHN1cHBvcnRlZAoj aGVfc3VfYmVhbWZvcm1lcj0xCgojaGVfc3VfYmVhbWZvcm1lZTogSEUgc2luZ2xlIHVzZXIgYmVh bWZvcm1lZSBzdXBwb3J0CiMgMCA9IG5vdCBzdXBwb3J0ZWQgKGRlZmF1bHQpCiMgMSA9IHN1cHBv cnRlZAojaGVfc3VfYmVhbWZvcm1lZT0xCgojaGVfbXVfYmVhbWZvcm1lcjogSEUgbXVsdGlwbGUg dXNlciBiZWFtZm9ybWVyIHN1cHBvcnQKIyAwID0gbm90IHN1cHBvcnRlZCAoZGVmYXVsdCkKIyAx ID0gc3VwcG9ydGVkCiNoZV9tdV9iZWFtZm9ybWVyPTEKCiMgaGVfYnNzX2NvbG9yOiBCU1MgY29s b3IKIyAwID0gbm8gQlNTIGNvbG9yIChkZWZhdWx0KQojIHVuc2lnbmVkIGludGVnZXIgPSBCU1Mg Y29sb3IKI2hlX2Jzc19jb2xvcj0wCgojaGVfZGVmYXVsdF9wZV9kdXJhdGlvbjogVGhlIGR1cmF0 aW9uIG9mIFBFIGZpZWxkIGluIGFuIEhFIFBQRFUgaW4gdXMKIyBQb3NzaWJsZSB2YWx1ZXMgYXJl IDAgdXMgKGRlZmF1bHQpLCA0IHVzLCA4IHVzLCAxMiB1cywgYW5kIDE2IHVzCiNoZV9kZWZhdWx0 X3BlX2R1cmF0aW9uPTAKCiNoZV90d3RfcmVxdWlyZWQ6IFdoZXRoZXIgVFdUIGlzIHJlcXVpcmVk CiMgMCA9IG5vdCByZXF1aXJlZCAoZGVmYXVsdCkKIyAxID0gcmVxdWlyZWQKI2hlX3R3dF9yZXF1 aXJlZD0wCgojaGVfcnRzX3RocmVzaG9sZDogRHVyYXRpb24gb2YgU1RBIHRyYW5zbWlzc2lvbgoj IDAgPSBub3Qgc2V0IChkZWZhdWx0KQojIHVuc2lnbmVkIGludGVnZXIgPSBkdXJhdGlvbiBpbiB1 bml0cyBvZiAxNiB1cwojaGVfcnRzX3RocmVzaG9sZD0wCgojIyMjIyBJRUVFIDgwMi4xWC0yMDA0 IHJlbGF0ZWQgY29uZmlndXJhdGlvbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CgojIFJlcXVpcmUgSUVFRSA4MDIuMVggYXV0aG9yaXphdGlvbgojaWVlZTgwMjF4PTEKCiMgSUVF RSA4MDIuMVgvRUFQT0wgdmVyc2lvbgojIGhvc3RhcGQgaXMgaW1wbGVtZW50ZWQgYmFzZWQgb24g SUVFRSBTdGQgODAyLjFYLTIwMDQgd2hpY2ggZGVmaW5lcyBFQVBPTAojIHZlcnNpb24gMi4gSG93 ZXZlciwgdGhlcmUgYXJlIG1hbnkgY2xpZW50IGltcGxlbWVudGF0aW9ucyB0aGF0IGRvIG5vdCBo YW5kbGUKIyB0aGUgbmV3IHZlcnNpb24gbnVtYmVyIGNvcnJlY3RseSAodGhleSBzZWVtIHRvIGRy b3AgdGhlIGZyYW1lcyBjb21wbGV0ZWx5KS4KIyBJbiBvcmRlciB0byBtYWtlIGhvc3RhcGQgaW50 ZXJvcGVyYXRlIHdpdGggdGhlc2UgY2xpZW50cywgdGhlIHZlcnNpb24gbnVtYmVyCiMgY2FuIGJl IHNldCB0byB0aGUgb2xkZXIgdmVyc2lvbiAoMSkgd2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24gdmFs dWUuCiNlYXBvbF92ZXJzaW9uPTIKCiMgT3B0aW9uYWwgZGlzcGxheWFibGUgbWVzc2FnZSBzZW50 IHdpdGggRUFQIFJlcXVlc3QtSWRlbnRpdHkuIFRoZSBmaXJzdCBcMAojIGluIHRoaXMgc3RyaW5n IHdpbGwgYmUgY29udmVydGVkIHRvIEFTQ0lJLTAgKG51bCkuIFRoaXMgY2FuIGJlIHVzZWQgdG8K IyBzZXBhcmF0ZSBuZXR3b3JrIGluZm8gKGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGF0dHJpYnV0 ZT12YWx1ZSBwYWlycyk7IHNlZSwKIyBlLmcuLCBSRkMgNDI4NC4KI2VhcF9tZXNzYWdlPWhlbGxv CiNlYXBfbWVzc2FnZT1oZWxsb1wwbmV0d29ya2lkPW5ldHcsbmFzaWQ9Zm9vLHBvcnRpZD0wLE5B SVJlYWxtcz1leGFtcGxlLmNvbQoKIyBXRVAgcmVrZXlpbmcgKGRpc2FibGVkIGlmIGtleSBsZW5n dGhzIGFyZSBub3Qgc2V0IG9yIGFyZSBzZXQgdG8gMCkKIyBLZXkgbGVuZ3RocyBmb3IgZGVmYXVs dC9icm9hZGNhc3QgYW5kIGluZGl2aWR1YWwvdW5pY2FzdCBrZXlzOgojIDUgPSA0MC1iaXQgV0VQ IChhbHNvIGtub3duIGFzIDY0LWJpdCBXRVAgd2l0aCA0MCBzZWNyZXQgYml0cykKIyAxMyA9IDEw NC1iaXQgV0VQIChhbHNvIGtub3duIGFzIDEyOC1iaXQgV0VQIHdpdGggMTA0IHNlY3JldCBiaXRz KQojd2VwX2tleV9sZW5fYnJvYWRjYXN0PTUKI3dlcF9rZXlfbGVuX3VuaWNhc3Q9NQojIFJla2V5 aW5nIHBlcmlvZCBpbiBzZWNvbmRzLiAwID0gZG8gbm90IHJla2V5IChpLmUuLCBzZXQga2V5cyBv bmx5IG9uY2UpCiN3ZXBfcmVrZXlfcGVyaW9kPTMwMAoKIyBFQVBPTC1LZXkgaW5kZXggd29ya2Fy b3VuZCAoc2V0IGJpdDcpIGZvciBXaW5YUCBTdXBwbGljYW50IChuZWVkZWQgb25seSBpZgojIG9u bHkgYnJvYWRjYXN0IGtleXMgYXJlIHVzZWQpCmVhcG9sX2tleV9pbmRleF93b3JrYXJvdW5kPTAK CiMgRUFQIHJlYXV0aGVudGljYXRpb24gcGVyaW9kIGluIHNlY29uZHMgKGRlZmF1bHQ6IDM2MDAg c2Vjb25kczsgMCA9IGRpc2FibGUKIyByZWF1dGhlbnRpY2F0aW9uKS4KI2VhcF9yZWF1dGhfcGVy aW9kPTM2MDAKCiMgVXNlIFBBRSBncm91cCBhZGRyZXNzICgwMTo4MDpjMjowMDowMDowMykgaW5z dGVhZCBvZiBpbmRpdmlkdWFsIHRhcmdldAojIGFkZHJlc3Mgd2hlbiBzZW5kaW5nIEVBUE9MIGZy YW1lcyB3aXRoIGRyaXZlcj13aXJlZC4gVGhpcyBpcyB0aGUgbW9zdCBjb21tb24KIyBtZWNoYW5p c20gdXNlZCBpbiB3aXJlZCBhdXRoZW50aWNhdGlvbiwgYnV0IGl0IGFsc28gcmVxdWlyZXMgdGhh dCB0aGUgcG9ydAojIGlzIG9ubHkgdXNlZCBieSBvbmUgc3RhdGlvbi4KI3VzZV9wYWVfZ3JvdXBf YWRkcj0xCgojIEVBUCBSZS1hdXRoZW50aWNhdGlvbiBQcm90b2NvbCAoRVJQKSBhdXRoZW50aWNh dG9yIChSRkMgNjY5NikKIwojIFdoZXRoZXIgdG8gaW5pdGlhdGUgRUFQIGF1dGhlbnRpY2F0aW9u IHdpdGggRUFQLUluaXRpYXRlL1JlLWF1dGgtU3RhcnQgYmVmb3JlCiMgRUFQLUlkZW50aXR5L1Jl cXVlc3QKI2VycF9zZW5kX3JlYXV0aF9zdGFydD0xCiMKIyBEb21haW4gbmFtZSBmb3IgRUFQLUlu aXRpYXRlL1JlLWF1dGgtU3RhcnQuIE9taXR0ZWQgZnJvbSB0aGUgbWVzc2FnZSBpZiBub3QKIyBz ZXQgKG5vIGxvY2FsIEVSIHNlcnZlcikuIFRoaXMgaXMgYWxzbyB1c2VkIGJ5IHRoZSBpbnRlZ3Jh dGVkIEVBUCBzZXJ2ZXIgaWYKIyBFUlAgaXMgZW5hYmxlZCAoZWFwX3NlcnZlcl9lcnA9MSkuCiNl cnBfZG9tYWluPWV4YW1wbGUuY29tCgojIyMjIyBJbnRlZ3JhdGVkIEVBUCBzZXJ2ZXIgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIE9wdGlvbmFs bHksIGhvc3RhcGQgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gdXNlIGFuIGludGVncmF0ZWQgRUFQIHNl cnZlcgojIHRvIHByb2Nlc3MgRUFQIGF1dGhlbnRpY2F0aW9uIGxvY2FsbHkgd2l0aG91dCBuZWVk IGZvciBhbiBleHRlcm5hbCBSQURJVVMKIyBzZXJ2ZXIuIFRoaXMgZnVuY3Rpb25hbGl0eSBjYW4g YmUgdXNlZCBib3RoIGFzIGEgbG9jYWwgYXV0aGVudGljYXRpb24gc2VydmVyCiMgZm9yIElFRUUg ODAyLjFYL0VBUE9MIGFuZCBhcyBhIFJBRElVUyBzZXJ2ZXIgZm9yIG90aGVyIGRldmljZXMuCgoj IFVzZSBpbnRlZ3JhdGVkIEVBUCBzZXJ2ZXIgaW5zdGVhZCBvZiBleHRlcm5hbCBSQURJVVMgYXV0 aGVudGljYXRpb24KIyBzZXJ2ZXIuIFRoaXMgaXMgYWxzbyBuZWVkZWQgaWYgaG9zdGFwZCBpcyBj b25maWd1cmVkIHRvIGFjdCBhcyBhIFJBRElVUwojIGF1dGhlbnRpY2F0aW9uIHNlcnZlci4KZWFw X3NlcnZlcj0wCgojIFBhdGggZm9yIEVBUCBzZXJ2ZXIgdXNlciBkYXRhYmFzZQojIElmIFNRTGl0 ZSBzdXBwb3J0IGlzIGluY2x1ZGVkLCB0aGlzIGNhbiBiZSBzZXQgdG8gInNxbGl0ZTovcGF0aC90 by9zcWxpdGUuZGIiCiMgdG8gdXNlIFNRTGl0ZSBkYXRhYmFzZSBpbnN0ZWFkIG9mIGEgdGV4dCBm aWxlLgojZWFwX3VzZXJfZmlsZT0vZXRjL2hvc3RhcGQuZWFwX3VzZXIKCiMgQ0EgY2VydGlmaWNh dGUgKFBFTSBvciBERVIgZmlsZSkgZm9yIEVBUC1UTFMvUEVBUC9UVExTCiNjYV9jZXJ0PS9ldGMv aG9zdGFwZC5jYS5wZW0KCiMgU2VydmVyIGNlcnRpZmljYXRlIChQRU0gb3IgREVSIGZpbGUpIGZv ciBFQVAtVExTL1BFQVAvVFRMUwojc2VydmVyX2NlcnQ9L2V0Yy9ob3N0YXBkLnNlcnZlci5wZW0K CiMgUHJpdmF0ZSBrZXkgbWF0Y2hpbmcgd2l0aCB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGZvciBF QVAtVExTL1BFQVAvVFRMUwojIFRoaXMgbWF5IHBvaW50IHRvIHRoZSBzYW1lIGZpbGUgYXMgc2Vy dmVyX2NlcnQgaWYgYm90aCBjZXJ0aWZpY2F0ZSBhbmQga2V5CiMgYXJlIGluY2x1ZGVkIGluIGEg c2luZ2xlIGZpbGUuIFBLQ1MjMTIgKFBGWCkgZmlsZSAoLnAxMi8ucGZ4KSBjYW4gYWxzbyBiZQoj IHVzZWQgYnkgY29tbWVudGluZyBvdXQgc2VydmVyX2NlcnQgYW5kIHNwZWNpZnlpbmcgdGhlIFBG WCBmaWxlIGFzIHRoZQojIHByaXZhdGVfa2V5LgojcHJpdmF0ZV9rZXk9L2V0Yy9ob3N0YXBkLnNl cnZlci5wcnYKCiMgUGFzc3BocmFzZSBmb3IgcHJpdmF0ZSBrZXkKI3ByaXZhdGVfa2V5X3Bhc3N3 ZD1zZWNyZXQgcGFzc3BocmFzZQoKIyBTZXJ2ZXIgaWRlbnRpdHkKIyBFQVAgbWV0aG9kcyB0aGF0 IHByb3ZpZGUgbWVjaGFuaXNtIGZvciBhdXRoZW50aWNhdGVkIHNlcnZlciBpZGVudGl0eSBkZWxp dmVyeQojIHVzZSB0aGlzIHZhbHVlLiBJZiBub3Qgc2V0LCAiaG9zdGFwZCIgaXMgdXNlZCBhcyBh IGRlZmF1bHQuCiNzZXJ2ZXJfaWQ9c2VydmVyLmV4YW1wbGUuY29tCgojIEVuYWJsZSBDUkwgdmVy aWZpY2F0aW9uLgojIE5vdGU6IGhvc3RhcGQgZG9lcyBub3QgeWV0IHN1cHBvcnQgQ1JMIGRvd25s b2FkaW5nIGJhc2VkIG9uIENEUC4gVGh1cywgYQojIHZhbGlkIENSTCBzaWduZWQgYnkgdGhlIENB IGlzIHJlcXVpcmVkIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjYV9jZXJ0IGZpbGUuCiMgVGhpcyBj YW4gYmUgZG9uZSBieSB1c2luZyBQRU0gZm9ybWF0IGZvciBDQSBjZXJ0aWZpY2F0ZSBhbmQgQ1JM IGFuZAojIGNvbmNhdGVuYXRpbmcgdGhlc2UgaW50byBvbmUgZmlsZS4gV2hlbmV2ZXIgQ1JMIGNo YW5nZXMsIGhvc3RhcGQgbmVlZHMgdG8gYmUKIyByZXN0YXJ0ZWQgdG8gdGFrZSB0aGUgbmV3IENS TCBpbnRvIHVzZS4KIyAwID0gZG8gbm90IHZlcmlmeSBDUkxzIChkZWZhdWx0KQojIDEgPSBjaGVj ayB0aGUgQ1JMIG9mIHRoZSB1c2VyIGNlcnRpZmljYXRlCiMgMiA9IGNoZWNrIGFsbCBDUkxzIGlu IHRoZSBjZXJ0aWZpY2F0ZSBwYXRoCiNjaGVja19jcmw9MQoKIyBUTFMgU2Vzc2lvbiBMaWZldGlt ZSBpbiBzZWNvbmRzCiMgVGhpcyBjYW4gYmUgdXNlZCB0byBhbGxvdyBUTFMgc2Vzc2lvbnMgdG8g YmUgY2FjaGVkIGFuZCByZXN1bWVkIHdpdGggYW4KIyBhYmJyZXZpYXRlZCBoYW5kc2hha2Ugd2hl biB1c2luZyBFQVAtVExTL1RUTFMvUEVBUC4KIyAoZGVmYXVsdDogMCA9IHNlc3Npb24gY2FjaGlu ZyBhbmQgcmVzdW1wdGlvbiBkaXNhYmxlZCkKI3Rsc19zZXNzaW9uX2xpZmV0aW1lPTM2MDAKCiMg Q2FjaGVkIE9DU1Agc3RhcGxpbmcgcmVzcG9uc2UgKERFUiBlbmNvZGVkKQojIElmIHNldCwgdGhp cyBmaWxlIGlzIHNlbnQgYXMgYSBjZXJ0aWZpY2F0ZSBzdGF0dXMgcmVzcG9uc2UgYnkgdGhlIEVB UCBzZXJ2ZXIKIyBpZiB0aGUgRUFQIHBlZXIgcmVxdWVzdHMgY2VydGlmaWNhdGUgc3RhdHVzIGlu IHRoZSBDbGllbnRIZWxsbyBtZXNzYWdlLgojIFRoaXMgY2FjaGUgZmlsZSBjYW4gYmUgdXBkYXRl ZCwgZS5nLiwgYnkgcnVubmluZyBmb2xsb3dpbmcgY29tbWFuZAojIHBlcmlvZGljYWxseSB0byBn ZXQgYW4gdXBkYXRlIGZyb20gdGhlIE9DU1AgcmVzcG9uZGVyOgojIG9wZW5zc2wgb2NzcCBcCiMJ LW5vX25vbmNlIFwKIwktQ0FmaWxlIC9ldGMvaG9zdGFwZC5jYS5wZW0gXAojCS1pc3N1ZXIgL2V0 Yy9ob3N0YXBkLmNhLnBlbSBcCiMJLWNlcnQgL2V0Yy9ob3N0YXBkLnNlcnZlci5wZW0gXAojCS11 cmwgaHR0cDovL29jc3AuZXhhbXBsZS5jb206ODg4OC8gXAojCS1yZXNwb3V0IC90bXAvb2NzcC1j YWNoZS5kZXIKI29jc3Bfc3RhcGxpbmdfcmVzcG9uc2U9L3RtcC9vY3NwLWNhY2hlLmRlcgoKIyBD YWNoZWQgT0NTUCBzdGFwbGluZyByZXNwb25zZSBsaXN0IChERVIgZW5jb2RlZCBPQ1NQUmVzcG9u c2VMaXN0KQojIFRoaXMgaXMgc2ltaWxhciB0byBvY3NwX3N0YXBsaW5nX3Jlc3BvbnNlLCBidXQg dGhlIGV4dGVuZGVkIHZlcnNpb24gZGVmaW5lZCBpbgojIFJGQyA2OTYxIHRvIGFsbG93IG11bHRp cGxlIE9DU1AgcmVzcG9uc2VzIHRvIGJlIHByb3ZpZGVkLgojb2NzcF9zdGFwbGluZ19yZXNwb25z ZV9tdWx0aT0vdG1wL29jc3AtbXVsdGktY2FjaGUuZGVyCgojIGRoX2ZpbGU6IEZpbGUgcGF0aCB0 byBESC9EU0EgcGFyYW1ldGVycyBmaWxlIChpbiBQRU0gZm9ybWF0KQojIFRoaXMgaXMgYW4gb3B0 aW9uYWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBzZXR0aW5nIHBhcmFtZXRlcnMgZm9yIGFuCiMg ZXBoZW1lcmFsIERIIGtleSBleGNoYW5nZS4gSW4gbW9zdCBjYXNlcywgdGhlIGRlZmF1bHQgUlNB IGF1dGhlbnRpY2F0aW9uIGRvZXMKIyBub3QgdXNlIHRoaXMgY29uZmlndXJhdGlvbi4gSG93ZXZl ciwgaXQgaXMgcG9zc2libGUgc2V0dXAgUlNBIHRvIHVzZQojIGVwaGVtZXJhbCBESCBrZXkgZXhj aGFuZ2UuIEluIGFkZGl0aW9uLCBjaXBoZXJzIHdpdGggRFNBIGtleXMgYWx3YXlzIHVzZQojIGVw aGVtZXJhbCBESCBrZXlzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGFjaGlldmUgZm9yd2FyZCBzZWNy ZWN5LiBJZiB0aGUgZmlsZQojIGlzIGluIERTQSBwYXJhbWV0ZXJzIGZvcm1hdCwgaXQgd2lsbCBi ZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCBpbnRvIERICiMgcGFyYW1zLiBUaGlzIHBhcmFtZXRl ciBpcyByZXF1aXJlZCBpZiBhbm9ueW1vdXMgRUFQLUZBU1QgaXMgdXNlZC4KIyBZb3UgY2FuIGdl bmVyYXRlIERIIHBhcmFtZXRlcnMgZmlsZSB3aXRoIE9wZW5TU0wsIGUuZy4sCiMgIm9wZW5zc2wg ZGhwYXJhbSAtb3V0IC9ldGMvaG9zdGFwZC5kaC5wZW0gMjA0OCIKI2RoX2ZpbGU9L2V0Yy9ob3N0 YXBkLmRoLnBlbQoKIyBPcGVuU1NMIGNpcGhlciBzdHJpbmcKIwojIFRoaXMgaXMgYW4gT3BlblNT TCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgY29uZmlndXJpbmcgdGhlIGRlZmF1 bHQKIyBjaXBoZXJzLiBJZiBub3Qgc2V0LCB0aGUgdmFsdWUgY29uZmlndXJlZCBhdCBidWlsZCB0 aW1lICgiREVGQVVMVDohRVhQOiFMT1ciCiMgYnkgZGVmYXVsdCkgaXMgdXNlZC4KIyBTZWUgaHR0 cHM6Ly93d3cub3BlbnNzbC5vcmcvZG9jcy9hcHBzL2NpcGhlcnMuaHRtbCBmb3IgT3BlblNTTCBk b2N1bWVudGF0aW9uCiMgb24gY2lwaGVyIHN1aXRlIGNvbmZpZ3VyYXRpb24uIFRoaXMgaXMgYXBw bGljYWJsZSBvbmx5IGlmIGhvc3RhcGQgaXMgYnVpbHQgdG8KIyB1c2UgT3BlblNTTC4KI29wZW5z c2xfY2lwaGVycz1ERUZBVUxUOiFFWFA6IUxPVwoKIyBGcmFnbWVudCBzaXplIGZvciBFQVAgbWV0 aG9kcwojZnJhZ21lbnRfc2l6ZT0xNDAwCgojIEZpbml0ZSBjeWNsaWMgZ3JvdXAgZm9yIEVBUC1w d2QuIE51bWJlciBtYXBzIHRvIGdyb3VwIG9mIGRvbWFpbiBwYXJhbWV0ZXJzCiMgdXNpbmcgdGhl IElBTkEgcmVwb3NpdG9yeSBmb3IgSUtFIChSRkMgMjQwOSkuCiNwd2RfZ3JvdXA9MTkKCiMgQ29u ZmlndXJhdGlvbiBkYXRhIGZvciBFQVAtU0lNIGRhdGFiYXNlL2F1dGhlbnRpY2F0aW9uIGdhdGV3 YXkgaW50ZXJmYWNlLgojIFRoaXMgaXMgYSB0ZXh0IHN0cmluZyBpbiBpbXBsZW1lbnRhdGlvbiBz cGVjaWZpYyBmb3JtYXQuIFRoZSBleGFtcGxlCiMgaW1wbGVtZW50YXRpb24gaW4gZWFwX3NpbV9k Yi5jIHVzZXMgdGhpcyBhcyB0aGUgVU5JWCBkb21haW4gc29ja2V0IG5hbWUgZm9yCiMgdGhlIEhM Ui9BdUMgZ2F0ZXdheSAoZS5nLiwgaGxyX2F1Y19ndykuIEluIHRoaXMgY2FzZSwgdGhlIHBhdGgg dXNlcyAidW5peDoiCiMgcHJlZml4LiBJZiBob3N0YXBkIGlzIGJ1aWx0IHdpdGggU1FMaXRlIHN1 cHBvcnQgKENPTkZJR19TUUxJVEU9eSBpbiAuY29uZmlnKSwKIyBkYXRhYmFzZSBmaWxlIGNhbiBi ZSBkZXNjcmliZWQgd2l0aCBhbiBvcHRpb25hbCBkYj08cGF0aD4gcGFyYW1ldGVyLgojZWFwX3Np bV9kYj11bml4Oi90bXAvaGxyX2F1Y19ndy5zb2NrCiNlYXBfc2ltX2RiPXVuaXg6L3RtcC9obHJf YXVjX2d3LnNvY2sgZGI9L3RtcC9ob3N0YXBkLmRiCgojIEVBUC1TSU0gREIgcmVxdWVzdCB0aW1l b3V0CiMgVGhpcyBwYXJhbWV0ZXIgc2V0cyB0aGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIGEg ZGF0YWJhc2UgcmVxdWVzdCByZXNwb25zZS4KIyBUaGUgcGFyYW1ldGVyIHZhbHVlIGlzIGluIHNl Y29uZHMuCiNlYXBfc2ltX2RiX3RpbWVvdXQ9MQoKIyBFbmNyeXB0aW9uIGtleSBmb3IgRUFQLUZB U1QgUEFDLU9wYXF1ZSB2YWx1ZXMuIFRoaXMga2V5IG11c3QgYmUgYSBzZWNyZXQsCiMgcmFuZG9t IHZhbHVlLiBJdCBpcyBjb25maWd1cmVkIGFzIGEgMTYtb2N0ZXQgdmFsdWUgaW4gaGV4IGZvcm1h dC4gSXQgY2FuIGJlCiMgZ2VuZXJhdGVkLCBlLmcuLCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFu ZDoKIyBvZCAtdHgxIC12IC1OMTYgL2Rldi9yYW5kb20gfCBjb2xybSAxIDggfCB0ciAtZCAnICcK I3BhY19vcGFxdWVfZW5jcl9rZXk9MDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYKCiMg RUFQLUZBU1QgYXV0aG9yaXR5IGlkZW50aXR5IChBLUlEKQojIEEtSUQgaW5kaWNhdGVzIHRoZSBp ZGVudGl0eSBvZiB0aGUgYXV0aG9yaXR5IHRoYXQgaXNzdWVzIFBBQ3MuIFRoZSBBLUlECiMgc2hv dWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIGlzc3Vpbmcgc2VydmVycy4gSW4gdGhlb3J5LCB0aGlz IGlzIGEgdmFyaWFibGUKIyBsZW5ndGggZmllbGQsIGJ1dCBkdWUgdG8gc29tZSBleGlzdGluZyBp bXBsZW1lbnRhdGlvbnMgcmVxdWlyaW5nIEEtSUQgdG8gYmUKIyAxNiBvY3RldHMgaW4gbGVuZ3Ro LCBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byB1c2UgdGhhdCBsZW5ndGggZm9yIHRoZQoj IGZpZWxkIHRvIHByb3ZpZCBpbnRlcm9wZXJhYmlsaXR5IHdpdGggZGVwbG95ZWQgcGVlciBpbXBs ZW1lbnRhdGlvbnMuIFRoaXMKIyBmaWVsZCBpcyBjb25maWd1cmVkIGluIGhleCBmb3JtYXQuCiNl YXBfZmFzdF9hX2lkPTEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmCgojIEVBUC1GQVNU IGF1dGhvcml0eSBpZGVudGlmaWVyIGluZm9ybWF0aW9uIChBLUlELUluZm8pCiMgVGhpcyBpcyBh IHVzZXItZnJpZW5kbHkgbmFtZSBmb3IgdGhlIEEtSUQuIEZvciBleGFtcGxlLCB0aGUgZW50ZXJw cmlzZSBuYW1lCiMgYW5kIHNlcnZlciBuYW1lIGluIGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0LiBU aGlzIGZpZWxkIGlzIGVuY29kZWQgYXMgVVRGLTguCiNlYXBfZmFzdF9hX2lkX2luZm89dGVzdCBz ZXJ2ZXIKCiMgRW5hYmxlL2Rpc2FibGUgZGlmZmVyZW50IEVBUC1GQVNUIHByb3Zpc2lvbmluZyBt b2RlczoKIzAgPSBwcm92aXNpb25pbmcgZGlzYWJsZWQKIzEgPSBvbmx5IGFub255bW91cyBwcm92 aXNpb25pbmcgYWxsb3dlZAojMiA9IG9ubHkgYXV0aGVudGljYXRlZCBwcm92aXNpb25pbmcgYWxs b3dlZAojMyA9IGJvdGggcHJvdmlzaW9uaW5nIG1vZGVzIGFsbG93ZWQgKGRlZmF1bHQpCiNlYXBf ZmFzdF9wcm92PTMKCiMgRUFQLUZBU1QgUEFDLUtleSBsaWZldGltZSBpbiBzZWNvbmRzIChoYXJk IGxpbWl0KQojcGFjX2tleV9saWZldGltZT02MDQ4MDAKCiMgRUFQLUZBU1QgUEFDLUtleSByZWZy ZXNoIHRpbWUgaW4gc2Vjb25kcyAoc29mdCBsaW1pdCBvbiByZW1haW5pbmcgaGFyZAojIGxpbWl0 KS4gVGhlIHNlcnZlciB3aWxsIGdlbmVyYXRlIGEgbmV3IFBBQy1LZXkgd2hlbiB0aGlzIG51bWJl ciBvZiBzZWNvbmRzCiMgKG9yIGZld2VyKSBvZiB0aGUgbGlmZXRpbWUgcmVtYWlucy4KI3BhY19r ZXlfcmVmcmVzaF90aW1lPTg2NDAwCgojIEVBUC1TSU0gYW5kIEVBUC1BS0EgcHJvdGVjdGVkIHN1 Y2Nlc3MvZmFpbHVyZSBpbmRpY2F0aW9uIHVzaW5nIEFUX1JFU1VMVF9JTkQKIyAoZGVmYXVsdDog MCA9IGRpc2FibGVkKS4KI2VhcF9zaW1fYWthX3Jlc3VsdF9pbmQ9MQoKIyBUcnVzdGVkIE5ldHdv cmsgQ29ubmVjdCAoVE5DKQojIElmIGVuYWJsZWQsIFROQyB2YWxpZGF0aW9uIHdpbGwgYmUgcmVx dWlyZWQgYmVmb3JlIHRoZSBwZWVyIGlzIGFsbG93ZWQgdG8KIyBjb25uZWN0LiBOb3RlOiBUaGlz IGlzIG9ubHkgdXNlZCB3aXRoIEVBUC1UVExTIGFuZCBFQVAtRkFTVC4gSWYgYW55IG90aGVyCiMg RUFQIG1ldGhvZCBpcyBlbmFibGVkLCB0aGUgcGVlciB3aWxsIGJlIGFsbG93ZWQgdG8gY29ubmVj dCB3aXRob3V0IFROQy4KI3RuYz0xCgojIEVBUCBSZS1hdXRoZW50aWNhdGlvbiBQcm90b2NvbCAo RVJQKSAtIFJGQyA2Njk2CiMKIyBXaGV0aGVyIHRvIGVuYWJsZSBFUlAgb24gdGhlIEVBUCBzZXJ2 ZXIuCiNlYXBfc2VydmVyX2VycD0xCgojIyMjIyBJRUVFIDgwMi4xMWYgLSBJbnRlci1BY2Nlc3Mg UG9pbnQgUHJvdG9jb2wgKElBUFApICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIEludGVyZmFj ZSB0byBiZSB1c2VkIGZvciBJQVBQIGJyb2FkY2FzdCBwYWNrZXRzCiNpYXBwX2ludGVyZmFjZT1l dGgwCgoKIyMjIyMgUkFESVVTIGNsaWVudCBjb25maWd1cmF0aW9uICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIGZvciBJRUVFIDgwMi4xWCB3aXRoIGV4dGVy bmFsIEF1dGhlbnRpY2F0aW9uIFNlcnZlciwgSUVFRSA4MDIuMTEKIyBhdXRoZW50aWNhdGlvbiB3 aXRoIGV4dGVybmFsIEFDTCBmb3IgTUFDIGFkZHJlc3NlcywgYW5kIGFjY291bnRpbmcKCiMgVGhl IG93biBJUCBhZGRyZXNzIG9mIHRoZSBhY2Nlc3MgcG9pbnQgKHVzZWQgYXMgTkFTLUlQLUFkZHJl c3MpCm93bl9pcF9hZGRyPTEyNy4wLjAuMQoKIyBOQVMtSWRlbnRpZmllciBzdHJpbmcgZm9yIFJB RElVUyBtZXNzYWdlcy4gV2hlbiB1c2VkLCB0aGlzIHNob3VsZCBiZSB1bmlxdWUKIyB0byB0aGUg TkFTIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIFJBRElVUyBzZXJ2ZXIuIFBsZWFzZSBub3RlIHRo YXQgaG9zdGFwZAojIHVzZXMgYSBzZXBhcmF0ZSBSQURJVVMgY2xpZW50IGZvciBlYWNoIEJTUyBh bmQgYXMgc3VjaCwgYSB1bmlxdWUKIyBuYXNfaWRlbnRpZmllciB2YWx1ZSBzaG91bGQgYmUgY29u ZmlndXJlZCBzZXBhcmF0ZWx5IGZvciBlYWNoIEJTUy4gVGhpcyBpcwojIHBhcnRpY3VsYXJseSBp bXBvcnRhbnQgZm9yIGNhc2VzIHdoZXJlIFJBRElVUyBhY2NvdW50aW5nIGlzIHVzZWQKIyAoQWNj b3VudGluZy1Pbi9PZmYgbWVzc2FnZXMgYXJlIGludGVycHJldGVkIGFzIGNsZWFyaW5nIGFsbCBv bmdvaW5nIHNlc3Npb25zCiMgYW5kIHRoYXQgbWF5IGdldCBpbnRlcnByZXRlZCBhcyBhcHBseWlu ZyB0byBhbGwgQlNTZXMgaWYgdGhlIHNhbWUKIyBOQVMtSWRlbnRpZmllciB2YWx1ZSBpcyB1c2Vk LikgRm9yIGV4YW1wbGUsIGEgZnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lCiMgcHJlZml4ZWQg d2l0aCBhIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBCU1MgKGUuZy4sIEJTU0lEKSBjYW4gYmUg dXNlZCBoZXJlLgojCiMgV2hlbiB1c2luZyBJRUVFIDgwMi4xMXIsIG5hc19pZGVudGlmaWVyIG11 c3QgYmUgc2V0IGFuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQKIyA0OCBvY3RldHMgbG9uZy4KIwoj IEl0IGlzIG1hbmRhdG9yeSB0byBjb25maWd1cmUgZWl0aGVyIG93bl9pcF9hZGRyIG9yIG5hc19p ZGVudGlmaWVyIHRvIGJlCiMgY29tcGxpYW50IHdpdGggdGhlIFJBRElVUyBwcm90b2NvbC4gV2hl biB1c2luZyBSQURJVVMgYWNjb3VudGluZywgaXQgaXMKIyBzdHJvbmdseSByZWNvbW1lbmRlZCB0 aGF0IG5hc19pZGVudGlmaWVyIGlzIHNldCB0byBhIHVuaXF1ZSB2YWx1ZSBmb3IgZWFjaAojIEJT Uy4KI25hc19pZGVudGlmaWVyPWFwLmV4YW1wbGUuY29tCgojIFJBRElVUyBjbGllbnQgZm9yY2Vk IGxvY2FsIElQIGFkZHJlc3MgZm9yIHRoZSBhY2Nlc3MgcG9pbnQKIyBOb3JtYWxseSB0aGUgbG9j YWwgSVAgYWRkcmVzcyBpcyBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gY29uZmln dXJlZAojIElQIGFkZHJlc3NlcywgYnV0IHRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gZm9yY2Ug YSBzcGVjaWZpYyBhZGRyZXNzIHRvIGJlCiMgdXNlZCwgZS5nLiwgd2hlbiB0aGUgZGV2aWNlIGhh cyBtdWx0aXBsZSBJUCBhZGRyZXNzZXMuCiNyYWRpdXNfY2xpZW50X2FkZHI9MTI3LjAuMC4xCgoj IFJBRElVUyBhdXRoZW50aWNhdGlvbiBzZXJ2ZXIKI2F1dGhfc2VydmVyX2FkZHI9MTI3LjAuMC4x CiNhdXRoX3NlcnZlcl9wb3J0PTE4MTIKI2F1dGhfc2VydmVyX3NoYXJlZF9zZWNyZXQ9c2VjcmV0 CgojIFJBRElVUyBhY2NvdW50aW5nIHNlcnZlcgojYWNjdF9zZXJ2ZXJfYWRkcj0xMjcuMC4wLjEK I2FjY3Rfc2VydmVyX3BvcnQ9MTgxMwojYWNjdF9zZXJ2ZXJfc2hhcmVkX3NlY3JldD1zZWNyZXQK CiMgU2Vjb25kYXJ5IFJBRElVUyBzZXJ2ZXJzOyB0byBiZSB1c2VkIGlmIHByaW1hcnkgb25lIGRv ZXMgbm90IHJlcGx5IHRvCiMgUkFESVVTIHBhY2tldHMuIFRoZXNlIGFyZSBvcHRpb25hbCBhbmQg dGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmUgc2Vjb25kYXJ5CiMgc2VydmVyIGxpc3RlZC4KI2F1 dGhfc2VydmVyX2FkZHI9MTI3LjAuMC4yCiNhdXRoX3NlcnZlcl9wb3J0PTE4MTIKI2F1dGhfc2Vy dmVyX3NoYXJlZF9zZWNyZXQ9c2VjcmV0MgojCiNhY2N0X3NlcnZlcl9hZGRyPTEyNy4wLjAuMgoj YWNjdF9zZXJ2ZXJfcG9ydD0xODEzCiNhY2N0X3NlcnZlcl9zaGFyZWRfc2VjcmV0PXNlY3JldDIK CiMgUmV0cnkgaW50ZXJ2YWwgZm9yIHRyeWluZyB0byByZXR1cm4gdG8gdGhlIHByaW1hcnkgUkFE SVVTIHNlcnZlciAoaW4KIyBzZWNvbmRzKS4gUkFESVVTIGNsaWVudCBjb2RlIHdpbGwgYXV0b21h dGljYWxseSB0cnkgdG8gdXNlIHRoZSBuZXh0IHNlcnZlcgojIHdoZW4gdGhlIGN1cnJlbnQgc2Vy dmVyIGlzIG5vdCByZXBseWluZyB0byByZXF1ZXN0cy4gSWYgdGhpcyBpbnRlcnZhbCBpcyBzZXQs CiMgcHJpbWFyeSBzZXJ2ZXIgd2lsbCBiZSByZXRyaWVkIGFmdGVyIGNvbmZpZ3VyZWQgYW1vdW50 IG9mIHRpbWUgZXZlbiBpZiB0aGUKIyBjdXJyZW50bHkgdXNlZCBzZWNvbmRhcnkgc2VydmVyIGlz IHN0aWxsIHdvcmtpbmcuCiNyYWRpdXNfcmV0cnlfcHJpbWFyeV9pbnRlcnZhbD02MDAKCgojIElu dGVyaW0gYWNjb3VudGluZyB1cGRhdGUgaW50ZXJ2YWwKIyBJZiB0aGlzIGlzIHNldCAobGFyZ2Vy IHRoYW4gMCkgYW5kIGFjY3Rfc2VydmVyIGlzIGNvbmZpZ3VyZWQsIGhvc3RhcGQgd2lsbAojIHNl bmQgaW50ZXJpbSBhY2NvdW50aW5nIHVwZGF0ZXMgZXZlcnkgTiBzZWNvbmRzLiBOb3RlOiBpZiBz ZXQsIHRoaXMgb3ZlcnJpZGVzCiMgcG9zc2libGUgQWNjdC1JbnRlcmltLUludGVydmFsIGF0dHJp YnV0ZSBpbiBBY2Nlc3MtQWNjZXB0IG1lc3NhZ2UuIFRodXMsIHRoaXMKIyB2YWx1ZSBzaG91bGQg bm90IGJlIGNvbmZpZ3VyZWQgaW4gaG9zdGFwZC5jb25mLCBpZiBSQURJVVMgc2VydmVyIGlzIHVz ZWQgdG8KIyBjb250cm9sIHRoZSBpbnRlcmltIGludGVydmFsLgojIFRoaXMgdmFsdWUgc2hvdWxk IG5vdCBiZSBsZXNzIDYwMCAoMTAgbWludXRlcykgYW5kIG11c3Qgbm90IGJlIGxlc3MgdGhhbgoj IDYwICgxIG1pbnV0ZSkuCiNyYWRpdXNfYWNjdF9pbnRlcmltX2ludGVydmFsPTYwMAoKIyBSZXF1 ZXN0IENoYXJnZWFibGUtVXNlci1JZGVudGl0eSAoUkZDIDQzNzIpCiMgVGhpcyBwYXJhbWV0ZXIg Y2FuIGJlIHVzZWQgdG8gY29uZmlndXJlIGhvc3RhcGQgdG8gcmVxdWVzdCBDVUkgZnJvbSB0aGUK IyBSQURJVVMgc2VydmVyIGJ5IGluY2x1ZGluZyBDaGFyZ2VhYmxlLVVzZXItSWRlbnRpdHkgYXR0 cmlidXRlIGludG8KIyBBY2Nlc3MtUmVxdWVzdCBwYWNrZXRzLgojcmFkaXVzX3JlcXVlc3RfY3Vp PTEKCiMgRHluYW1pYyBWTEFOIG1vZGU7IGFsbG93IFJBRElVUyBhdXRoZW50aWNhdGlvbiBzZXJ2 ZXIgdG8gZGVjaWRlIHdoaWNoIFZMQU4KIyBpcyB1c2VkIGZvciB0aGUgc3RhdGlvbnMuIFRoaXMg aW5mb3JtYXRpb24gaXMgcGFyc2VkIGZyb20gZm9sbG93aW5nIFJBRElVUwojIGF0dHJpYnV0ZXMg YmFzZWQgb24gUkZDIDM1ODAgYW5kIFJGQyAyODY4OiBUdW5uZWwtVHlwZSAodmFsdWUgMTMgPSBW TEFOKSwKIyBUdW5uZWwtTWVkaXVtLVR5cGUgKHZhbHVlIDYgPSBJRUVFIDgwMiksIFR1bm5lbC1Q cml2YXRlLUdyb3VwLUlEICh2YWx1ZQojIFZMQU5JRCBhcyBhIHN0cmluZykuIE9wdGlvbmFsbHks IHRoZSBsb2NhbCBNQUMgQUNMIGxpc3QgKGFjY2VwdF9tYWNfZmlsZSkgY2FuCiMgYmUgdXNlZCB0 byBzZXQgc3RhdGljIGNsaWVudCBNQUMgYWRkcmVzcyB0byBWTEFOIElEIG1hcHBpbmcuCiMgMCA9 IGRpc2FibGVkIChkZWZhdWx0KQojIDEgPSBvcHRpb247IHVzZSBkZWZhdWx0IGludGVyZmFjZSBp ZiBSQURJVVMgc2VydmVyIGRvZXMgbm90IGluY2x1ZGUgVkxBTiBJRAojIDIgPSByZXF1aXJlZDsg cmVqZWN0IGF1dGhlbnRpY2F0aW9uIGlmIFJBRElVUyBzZXJ2ZXIgZG9lcyBub3QgaW5jbHVkZSBW TEFOIElECiNkeW5hbWljX3ZsYW49MAoKIyBQZXItU3RhdGlvbiBBUF9WTEFOIGludGVyZmFjZSBt b2RlCiMgSWYgZW5hYmxlZCwgZWFjaCBzdGF0aW9uIGlzIGFzc2lnbmVkIGl0cyBvd24gQVBfVkxB TiBpbnRlcmZhY2UuCiMgVGhpcyBpbXBsaWVzIHBlci1zdGF0aW9uIGdyb3VwIGtleWluZyBhbmQg ZWJ0YWJsZXMgZmlsdGVyaW5nIG9mIGludGVyLVNUQQojIHRyYWZmaWMgKHdoZW4gcGFzc2VkIHRo cm91Z2ggdGhlIEFQKS4KIyBJZiB0aGUgc3RhIGlzIG5vdCBhc3NpZ25lZCB0byBhbnkgVkxBTiwg dGhlbiBpdHMgQVBfVkxBTiBpbnRlcmZhY2Ugd2lsbCBiZQojIGFkZGVkIHRvIHRoZSBicmlkZ2Ug Z2l2ZW4gYnkgdGhlICJicmlkZ2UiIGNvbmZpZ3VyYXRpb24gb3B0aW9uIChzZWUgYWJvdmUpLgoj IE90aGVyd2lzZSwgaXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgcGVyLVZMQU4gYnJpZGdlLgojIDAg PSBkaXNhYmxlZCAoZGVmYXVsdCkKIyAxID0gZW5hYmxlZAojcGVyX3N0YV92aWY9MAoKIyBWTEFO IGludGVyZmFjZSBsaXN0IGZvciBkeW5hbWljIFZMQU4gbW9kZSBpcyByZWFkIGZyb20gYSBzZXBh cmF0ZSB0ZXh0IGZpbGUuCiMgVGhpcyBsaXN0IGlzIHVzZWQgdG8gbWFwIFZMQU4gSUQgZnJvbSB0 aGUgUkFESVVTIHNlcnZlciB0byBhIG5ldHdvcmsKIyBpbnRlcmZhY2UuIEVhY2ggc3RhdGlvbiBp cyBib3VuZCB0byBvbmUgaW50ZXJmYWNlIGluIHRoZSBzYW1lIHdheSBhcyB3aXRoCiMgbXVsdGlw bGUgQlNTSURzIG9yIFNTSURzLiBFYWNoIGxpbmUgaW4gdGhpcyB0ZXh0IGZpbGUgaXMgZGVmaW5p bmcgYSBuZXcKIyBpbnRlcmZhY2UgYW5kIHRoZSBsaW5lIG11c3QgaW5jbHVkZSBWTEFOIElEIGFu ZCBpbnRlcmZhY2UgbmFtZSBzZXBhcmF0ZWQgYnkKIyB3aGl0ZSBzcGFjZSAoc3BhY2Ugb3IgdGFi KS4KIyBJZiBubyBlbnRyaWVzIGFyZSBwcm92aWRlZCBieSB0aGlzIGZpbGUsIHRoZSBzdGF0aW9u IGlzIHN0YXRpY2FsbHkgbWFwcGVkCiMgdG8gPGJzcy1pZmFjZT4uPHZsYW4taWQ+IGludGVyZmFj ZXMuCiN2bGFuX2ZpbGU9L2V0Yy9ob3N0YXBkLnZsYW4KCiMgSW50ZXJmYWNlIHdoZXJlIDgwMi4x cSB0YWdnZWQgcGFja2V0cyBzaG91bGQgYXBwZWFyIHdoZW4gYSBSQURJVVMgc2VydmVyIGlzCiMg dXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggVkxBTiBhIHN0YXRpb24gaXMgb24uICBob3N0YXBkIGNy ZWF0ZXMgYSBicmlkZ2UgZm9yCiMgZWFjaCBWTEFOLiAgVGhlbiBob3N0YXBkIGFkZHMgYSBWTEFO IGludGVyZmFjZSAoYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnRlcmZhY2UKIyBpbmRpY2F0ZWQgYnkg J3ZsYW5fdGFnZ2VkX2ludGVyZmFjZScpIGFuZCB0aGUgYXBwcm9wcmlhdGUgd2lyZWxlc3MgaW50 ZXJmYWNlCiMgdG8gdGhlIGJyaWRnZS4KI3ZsYW5fdGFnZ2VkX2ludGVyZmFjZT1ldGgwCgojIEJy aWRnZSAocHJlZml4KSB0byBhZGQgdGhlIHdpZmkgYW5kIHRoZSB0YWdnZWQgaW50ZXJmYWNlIHRv LiBUaGlzIGdldHMgdGhlCiMgVkxBTiBJRCBhcHBlbmRlZC4gSXQgZGVmYXVsdHMgdG8gYnJ2bGFu JWQgaWYgbm8gdGFnZ2VkIGludGVyZmFjZSBpcyBnaXZlbgojIGFuZCBiciVzLiVkIGlmIGEgdGFn Z2VkIGludGVyZmFjZSBpcyBnaXZlbiwgcHJvdmlkZWQgJXMgPSB0YWdnZWQgaW50ZXJmYWNlCiMg YW5kICVkID0gVkxBTiBJRC4KI3ZsYW5fYnJpZGdlPWJydmxhbgoKIyBXaGVuIGhvc3RhcGQgY3Jl YXRlcyBhIFZMQU4gaW50ZXJmYWNlIG9uIHZsYW5fdGFnZ2VkX2ludGVyZmFjZXMsIGl0IG5lZWRz CiMgdG8ga25vdyBob3cgdG8gbmFtZSBpdC4KIyAwID0gdmxhbjxYWFg+LCBlLmcuLCB2bGFuMQoj IDEgPSA8dmxhbl90YWdnZWRfaW50ZXJmYWNlPi48WFhYPiwgZS5nLiBldGgwLjEKI3ZsYW5fbmFt aW5nPTAKCiMgQXJiaXRyYXJ5IFJBRElVUyBhdHRyaWJ1dGVzIGNhbiBiZSBhZGRlZCBpbnRvIEFj Y2Vzcy1SZXF1ZXN0IGFuZAojIEFjY291bnRpbmctUmVxdWVzdCBwYWNrZXRzIGJ5IHNwZWNpZnlp bmcgdGhlIGNvbnRlbnRzIG9mIHRoZSBhdHRyaWJ1dGVzIHdpdGgKIyB0aGUgZm9sbG93aW5nIGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gVGhlcmUgY2FuIGJlIG11bHRpcGxlIG9mIHRoZXNlIHRv CiMgYWRkIG11bHRpcGxlIGF0dHJpYnV0ZXMuIFRoZXNlIHBhcmFtZXRlcnMgY2FuIGFsc28gYmUg dXNlZCB0byBvdmVycmlkZSBzb21lCiMgb2YgdGhlIGF0dHJpYnV0ZXMgYWRkZWQgYXV0b21hdGlj YWxseSBieSBob3N0YXBkLgojIEZvcm1hdDogPGF0dHJfaWQ+Wzo8c3ludGF4OnZhbHVlPl0KIyBh dHRyX2lkOiBSQURJVVMgYXR0cmlidXRlIHR5cGUgKGUuZy4sIDI2ID0gVmVuZG9yLVNwZWNpZmlj KQojIHN5bnRheDogcyA9IHN0cmluZyAoVVRGLTgpLCBkID0gaW50ZWdlciwgeCA9IG9jdGV0IHN0 cmluZwojIHZhbHVlOiBhdHRyaWJ1dGUgdmFsdWUgaW4gZm9ybWF0IGluZGljYXRlZCBieSB0aGUg c3ludGF4CiMgSWYgc3ludGF4IGFuZCB2YWx1ZSBwYXJ0cyBhcmUgb21pdHRlZCwgYSBudWxsIHZh bHVlIChzaW5nbGUgMHgwMCBvY3RldCkgaXMKIyB1c2VkLgojCiMgQWRkaXRpb25hbCBBY2Nlc3Mt UmVxdWVzdCBhdHRyaWJ1dGVzCiMgcmFkaXVzX2F1dGhfcmVxX2F0dHI9PGF0dHJfaWQ+Wzo8c3lu dGF4OnZhbHVlPl0KIyBFeGFtcGxlczoKIyBPcGVyYXRvci1OYW1lID0gIk9wZXJhdG9yIgojcmFk aXVzX2F1dGhfcmVxX2F0dHI9MTI2OnM6T3BlcmF0b3IKIyBTZXJ2aWNlLVR5cGUgPSBGcmFtZWQg KDIpCiNyYWRpdXNfYXV0aF9yZXFfYXR0cj02OmQ6MgojIENvbm5lY3QtSW5mbyA9ICJ0ZXN0aW5n IiAodGhpcyBvdmVycmlkZXMgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHZhbHVlKQojcmFk aXVzX2F1dGhfcmVxX2F0dHI9Nzc6czp0ZXN0aW5nCiMgU2FtZSBDb25uZWN0LUluZm8gdmFsdWUg c2V0IGFzIGEgaGV4ZHVtcAojcmFkaXVzX2F1dGhfcmVxX2F0dHI9Nzc6eDo3NDY1NzM3NDY5NmU2 NwoKIwojIEFkZGl0aW9uYWwgQWNjb3VudGluZy1SZXF1ZXN0IGF0dHJpYnV0ZXMKIyByYWRpdXNf YWNjdF9yZXFfYXR0cj08YXR0cl9pZD5bOjxzeW50YXg6dmFsdWU+XQojIEV4YW1wbGVzOgojIE9w ZXJhdG9yLU5hbWUgPSAiT3BlcmF0b3IiCiNyYWRpdXNfYWNjdF9yZXFfYXR0cj0xMjY6czpPcGVy YXRvcgoKIyBEeW5hbWljIEF1dGhvcml6YXRpb24gRXh0ZW5zaW9ucyAoUkZDIDUxNzYpCiMgVGhp cyBtZWNoYW5pc20gY2FuIGJlIHVzZWQgdG8gYWxsb3cgZHluYW1pYyBjaGFuZ2VzIHRvIHVzZXIg c2Vzc2lvbiBiYXNlZCBvbgojIGNvbW1hbmRzIGZyb20gYSBSQURJVVMgc2VydmVyIChvciBzb21l IG90aGVyIGRpc2Nvbm5lY3QgY2xpZW50IHRoYXQgaGFzIHRoZQojIG5lZWRlZCBzZXNzaW9uIGlu Zm9ybWF0aW9uKS4gRm9yIGV4YW1wbGUsIERpc2Nvbm5lY3QgbWVzc2FnZSBjYW4gYmUgdXNlZCB0 bwojIHJlcXVlc3QgYW4gYXNzb2NpYXRlZCBzdGF0aW9uIHRvIGJlIGRpc2Nvbm5lY3RlZC4KIwoj IFRoaXMgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gU2V0IHJhZGl1c19kYXNfcG9ydCB0byBub24t emVybyBVRFAgcG9ydAojIG51bWJlciB0byBlbmFibGUuCiNyYWRpdXNfZGFzX3BvcnQ9Mzc5OQoj CiMgREFTIGNsaWVudCAodGhlIGhvc3QgdGhhdCBjYW4gc2VuZCBEaXNjb25uZWN0L0NvQSByZXF1 ZXN0cykgYW5kIHNoYXJlZCBzZWNyZXQKIyBGb3JtYXQ6IDxJUCBhZGRyZXNzPiA8c2hhcmVkIHNl Y3JldD4KIyBJUCBhZGRyZXNzIDAuMC4wLjAgY2FuIGJlIHVzZWQgdG8gYWxsb3cgcmVxdWVzdHMg ZnJvbSBhbnkgYWRkcmVzcy4KI3JhZGl1c19kYXNfY2xpZW50PTE5Mi4xNjguMS4xMjMgc2hhcmVk IHNlY3JldCBoZXJlCiMKIyBEQVMgRXZlbnQtVGltZXN0YW1wIHRpbWUgd2luZG93IGluIHNlY29u ZHMKI3JhZGl1c19kYXNfdGltZV93aW5kb3c9MzAwCiMKIyBEQVMgcmVxdWlyZSBFdmVudC1UaW1l c3RhbXAKI3JhZGl1c19kYXNfcmVxdWlyZV9ldmVudF90aW1lc3RhbXA9MQojCiMgREFTIHJlcXVp cmUgTWVzc2FnZS1BdXRoZW50aWNhdG9yCiNyYWRpdXNfZGFzX3JlcXVpcmVfbWVzc2FnZV9hdXRo ZW50aWNhdG9yPTEKCiMjIyMjIFJBRElVUyBhdXRoZW50aWNhdGlvbiBzZXJ2ZXIgY29uZmlndXJh dGlvbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMgaG9zdGFwZCBjYW4gYmUgdXNl ZCBhcyBhIFJBRElVUyBhdXRoZW50aWNhdGlvbiBzZXJ2ZXIgZm9yIG90aGVyIGhvc3RzLiBUaGlz CiMgcmVxdWlyZXMgdGhhdCB0aGUgaW50ZWdyYXRlZCBFQVAgc2VydmVyIGlzIGFsc28gZW5hYmxl ZCBhbmQgYm90aAojIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2VzIGFyZSBzaGFyaW5nIHRoZSBzYW1l IGNvbmZpZ3VyYXRpb24uCgojIEZpbGUgbmFtZSBvZiB0aGUgUkFESVVTIGNsaWVudHMgY29uZmln dXJhdGlvbiBmb3IgdGhlIFJBRElVUyBzZXJ2ZXIuIElmIHRoaXMKIyBjb21tZW50ZWQgb3V0LCBS QURJVVMgc2VydmVyIGlzIGRpc2FibGVkLgojcmFkaXVzX3NlcnZlcl9jbGllbnRzPS9ldGMvaG9z dGFwZC5yYWRpdXNfY2xpZW50cwoKIyBUaGUgVURQIHBvcnQgbnVtYmVyIGZvciB0aGUgUkFESVVT IGF1dGhlbnRpY2F0aW9uIHNlcnZlcgojcmFkaXVzX3NlcnZlcl9hdXRoX3BvcnQ9MTgxMgoKIyBU aGUgVURQIHBvcnQgbnVtYmVyIGZvciB0aGUgUkFESVVTIGFjY291bnRpbmcgc2VydmVyCiMgQ29t bWVudGluZyB0aGlzIG91dCBvciBzZXR0aW5nIHRoaXMgdG8gMCBjYW4gYmUgdXNlZCB0byBkaXNh YmxlIFJBRElVUwojIGFjY291bnRpbmcgd2hpbGUgc3RpbGwgZW5hYmxpbmcgUkFESVVTIGF1dGhl bnRpY2F0aW9uLgojcmFkaXVzX3NlcnZlcl9hY2N0X3BvcnQ9MTgxMwoKIyBVc2UgSVB2NiB3aXRo IFJBRElVUyBzZXJ2ZXIgKElQdjQgd2lsbCBhbHNvIGJlIHN1cHBvcnRlZCB1c2luZyBJUHY2IEFQ SSkKI3JhZGl1c19zZXJ2ZXJfaXB2Nj0xCgoKIyMjIyMgV1BBL0lFRUUgODAyLjExaSBjb25maWd1 cmF0aW9uICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBFbmFi bGUgV1BBLiBTZXR0aW5nIHRoaXMgdmFyaWFibGUgY29uZmlndXJlcyB0aGUgQVAgdG8gcmVxdWly ZSBXUEEgKGVpdGhlcgojIFdQQS1QU0sgb3IgV1BBLVJBRElVUy9FQVAgYmFzZWQgb24gb3RoZXIg Y29uZmlndXJhdGlvbikuIEZvciBXUEEtUFNLLCBlaXRoZXIKIyB3cGFfcHNrIG9yIHdwYV9wYXNz cGhyYXNlIG11c3QgYmUgc2V0IGFuZCB3cGFfa2V5X21nbXQgbXVzdCBpbmNsdWRlIFdQQS1QU0su CiMgSW5zdGVhZCBvZiB3cGFfcHNrIC8gd3BhX3Bhc3NwaHJhc2UsIHdwYV9wc2tfcmFkaXVzIG1p Z2h0IHN1ZmZpY2UuCiMgRm9yIFdQQS1SQURJVVMvRUFQLCBpZWVlODAyMXggbXVzdCBiZSBzZXQg KGJ1dCB3aXRob3V0IGR5bmFtaWMgV0VQIGtleXMpLAojIFJBRElVUyBhdXRoZW50aWNhdGlvbiBz ZXJ2ZXIgbXVzdCBiZSBjb25maWd1cmVkLCBhbmQgV1BBLUVBUCBtdXN0IGJlIGluY2x1ZGVkCiMg aW4gd3BhX2tleV9tZ210LgojIFRoaXMgZmllbGQgaXMgYSBiaXQgZmllbGQgdGhhdCBjYW4gYmUg dXNlZCB0byBlbmFibGUgV1BBIChJRUVFIDgwMi4xMWkvRDMuMCkKIyBhbmQvb3IgV1BBMiAoZnVs bCBJRUVFIDgwMi4xMWkvUlNOKToKIyBiaXQwID0gV1BBCiMgYml0MSA9IElFRUUgODAyLjExaS9S U04gKFdQQTIpIChkb3QxMVJTTkFFbmFibGVkKQojIE5vdGUgdGhhdCBXUEEzIGlzIGFsc28gY29u ZmlndXJlZCB3aXRoIGJpdDEgc2luY2UgaXQgdXNlcyBSU04ganVzdCBsaWtlIFdQQTIuCiMgSW4g b3RoZXIgd29yZHMsIGZvciBXUEEzLCB3cGE9MiBpcyB1c2VkIHRoZSBjb25maWd1cmF0aW9uIChh bmQKIyB3cGFfa2V5X21nbXQ9U0FFIGZvciBXUEEzLVBlcnNvbmFsIGluc3RlYWQgb2Ygd3BhX2tl eV9tZ210PVdQQS1QU0spLgojd3BhPTIKCiMgV1BBIHByZS1zaGFyZWQga2V5cyBmb3IgV1BBLVBT Sy4gVGhpcyBjYW4gYmUgZWl0aGVyIGVudGVyZWQgYXMgYSAyNTYtYml0CiMgc2VjcmV0IGluIGhl eCBmb3JtYXQgKDY0IGhleCBkaWdpdHMpLCB3cGFfcHNrLCBvciBhcyBhbiBBU0NJSSBwYXNzcGhy YXNlCiMgKDguLjYzIGNoYXJhY3RlcnMpIHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gUFNLLiBU aGlzIGNvbnZlcnNpb24gdXNlcyBTU0lECiMgc28gdGhlIFBTSyBjaGFuZ2VzIHdoZW4gQVNDSUkg cGFzc3BocmFzZSBpcyB1c2VkIGFuZCB0aGUgU1NJRCBpcyBjaGFuZ2VkLgojIHdwYV9wc2sgKGRv dDExUlNOQUNvbmZpZ1BTS1ZhbHVlKQojIHdwYV9wYXNzcGhyYXNlIChkb3QxMVJTTkFDb25maWdQ U0tQYXNzUGhyYXNlKQojd3BhX3Bzaz0wMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAx MjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmCiN3cGFfcGFzc3BocmFzZT1zZWNyZXQgcGFz c3BocmFzZQoKIyBPcHRpb25hbGx5LCBXUEEgUFNLcyBjYW4gYmUgcmVhZCBmcm9tIGEgc2VwYXJh dGUgdGV4dCBmaWxlIChjb250YWluaW5nIGxpc3QKIyBvZiAoUFNLLE1BQyBhZGRyZXNzKSBwYWly cy4gVGhpcyBhbGxvd3MgbW9yZSB0aGFuIG9uZSBQU0sgdG8gYmUgY29uZmlndXJlZC4KIyBVc2Ug YWJzb2x1dGUgcGF0aCBuYW1lIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBmaWxlcyBjYW4gYmUgcmVh ZCBvbiBTSUdIVVAKIyBjb25maWd1cmF0aW9uIHJlbG9hZHMuCiN3cGFfcHNrX2ZpbGU9L2V0Yy9o b3N0YXBkLndwYV9wc2sKCiMgT3B0aW9uYWxseSwgV1BBIHBhc3NwaHJhc2UgY2FuIGJlIHJlY2Vp dmVkIGZyb20gUkFESVVTIGF1dGhlbnRpY2F0aW9uIHNlcnZlcgojIFRoaXMgcmVxdWlyZXMgbWFj YWRkcl9hY2wgdG8gYmUgc2V0IHRvIDIgKFJBRElVUykKIyAwID0gZGlzYWJsZWQgKGRlZmF1bHQp CiMgMSA9IG9wdGlvbmFsOyB1c2UgZGVmYXVsdCBwYXNzcGhyYXNlL3BzayBpZiBSQURJVVMgc2Vy dmVyIGRvZXMgbm90IGluY2x1ZGUKIwlUdW5uZWwtUGFzc3dvcmQKIyAyID0gcmVxdWlyZWQ7IHJl amVjdCBhdXRoZW50aWNhdGlvbiBpZiBSQURJVVMgc2VydmVyIGRvZXMgbm90IGluY2x1ZGUKIwlU dW5uZWwtUGFzc3dvcmQKI3dwYV9wc2tfcmFkaXVzPTAKCiMgU2V0IG9mIGFjY2VwdGVkIGtleSBt YW5hZ2VtZW50IGFsZ29yaXRobXMgKFdQQS1QU0ssIFdQQS1FQVAsIG9yIGJvdGgpLiBUaGUKIyBl bnRyaWVzIGFyZSBzZXBhcmF0ZWQgd2l0aCBhIHNwYWNlLiBXUEEtUFNLLVNIQTI1NiBhbmQgV1BB LUVBUC1TSEEyNTYgY2FuIGJlCiMgYWRkZWQgdG8gZW5hYmxlIFNIQTI1Ni1iYXNlZCBzdHJvbmdl ciBhbGdvcml0aG1zLgojIFdQQS1QU0sgPSBXUEEtUGVyc29uYWwgLyBXUEEyLVBlcnNvbmFsCiMg V1BBLVBTSy1TSEEyNTYgPSBXUEEyLVBlcnNvbmFsIHVzaW5nIFNIQTI1NgojIFdQQS1FQVAgPSBX UEEtRW50ZXJwcmlzZSAvIFdQQTItRW50ZXJwcmlzZQojIFdQQS1FQVAtU0hBMjU2ID0gV1BBMi1F bnRlcnByaXNlIHVzaW5nIFNIQTI1NgojIFNBRSA9IFNBRSAoV1BBMy1QZXJzb25hbCkKIyBXUEEt RUFQLVNVSVRFLUItMTkyID0gV1BBMy1FbnRlcnByaXNlIHdpdGggMTkyLWJpdCBzZWN1cml0eS9D TlNBIHN1aXRlCiMgRlQtUFNLID0gRlQgd2l0aCBwYXNzcGhyYXNlL1BTSwojIEZULUVBUCA9IEZU IHdpdGggRUFQCiMgRlQtRUFQLVNIQTM4NCA9IEZUIHdpdGggRUFQIHVzaW5nIFNIQTM4NAojIEZU LVNBRSA9IEZUIHdpdGggU0FFCiMgRklMUy1TSEEyNTYgPSBGYXN0IEluaXRpYWwgTGluayBTZXR1 cCB3aXRoIFNIQTI1NgojIEZJTFMtU0hBMzg0ID0gRmFzdCBJbml0aWFsIExpbmsgU2V0dXAgd2l0 aCBTSEEzODQKIyBGVC1GSUxTLVNIQTI1NiA9IEZUIGFuZCBGYXN0IEluaXRpYWwgTGluayBTZXR1 cCB3aXRoIFNIQTI1NgojIEZULUZJTFMtU0hBMzg0ID0gRlQgYW5kIEZhc3QgSW5pdGlhbCBMaW5r IFNldHVwIHdpdGggU0hBMzg0CiMgT1dFID0gT3Bwb3J0dW5pc3RpYyBXaXJlbGVzcyBFbmNyeXB0 aW9uIChhLmsuYS4gRW5oYW5jZWQgT3BlbikKIyBEUFAgPSBEZXZpY2UgUHJvdmlzaW9uaW5nIFBy b3RvY29sCiMgT1NFTiA9IEhvdHNwb3QgMi4wIG9ubGluZSBzaWdudXAgd2l0aCBlbmNyeXB0aW9u CiMgKGRvdDExUlNOQUNvbmZpZ0F1dGhlbnRpY2F0aW9uU3VpdGVzVGFibGUpCiN3cGFfa2V5X21n bXQ9V1BBLVBTSyBXUEEtRUFQCgojIFNldCBvZiBhY2NlcHRlZCBjaXBoZXIgc3VpdGVzIChlbmNy eXB0aW9uIGFsZ29yaXRobXMpIGZvciBwYWlyd2lzZSBrZXlzCiMgKHVuaWNhc3QgcGFja2V0cyku IFRoaXMgaXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBhbGdvcml0aG1zOgojIENDTVAgPSBB RVMgaW4gQ291bnRlciBtb2RlIHdpdGggQ0JDLU1BQyAoQ0NNUC0xMjgpCiMgVEtJUCA9IFRlbXBv cmFsIEtleSBJbnRlZ3JpdHkgUHJvdG9jb2wKIyBDQ01QLTI1NiA9IEFFUyBpbiBDb3VudGVyIG1v ZGUgd2l0aCBDQkMtTUFDIHdpdGggMjU2LWJpdCBrZXkKIyBHQ01QID0gR2Fsb2lzL2NvdW50ZXIg bW9kZSBwcm90b2NvbCAoR0NNUC0xMjgpCiMgR0NNUC0yNTYgPSBHYWxvaXMvY291bnRlciBtb2Rl IHByb3RvY29sIHdpdGggMjU2LWJpdCBrZXkKIyBHcm91cCBjaXBoZXIgc3VpdGUgKGVuY3J5cHRp b24gYWxnb3JpdGhtIGZvciBicm9hZGNhc3QgYW5kIG11bHRpY2FzdCBmcmFtZXMpCiMgaXMgYXV0 b21hdGljYWxseSBzZWxlY3RlZCBiYXNlZCBvbiB0aGlzIGNvbmZpZ3VyYXRpb24uIElmIG9ubHkg Q0NNUCBpcwojIGFsbG93ZWQgYXMgdGhlIHBhaXJ3aXNlIGNpcGhlciwgZ3JvdXAgY2lwaGVyIHdp bGwgYWxzbyBiZSBDQ01QLiBPdGhlcndpc2UsCiMgVEtJUCB3aWxsIGJlIHVzZWQgYXMgdGhlIGdy b3VwIGNpcGhlci4gVGhlIG9wdGlvbmFsIGdyb3VwX2NpcGhlciBwYXJhbWV0ZXIgY2FuCiMgYmUg dXNlZCB0byBvdmVycmlkZSB0aGlzIGF1dG9tYXRpYyBzZWxlY3Rpb24uCiMKIyAoZG90MTFSU05B Q29uZmlnUGFpcndpc2VDaXBoZXJzVGFibGUpCiMgUGFpcndpc2UgY2lwaGVyIGZvciBXUEEgKHYx KSAoZGVmYXVsdDogVEtJUCkKI3dwYV9wYWlyd2lzZT1US0lQIENDTVAKIyBQYWlyd2lzZSBjaXBo ZXIgZm9yIFJTTi9XUEEyIChkZWZhdWx0OiB1c2Ugd3BhX3BhaXJ3aXNlIHZhbHVlKQojcnNuX3Bh aXJ3aXNlPUNDTVAKCiMgT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIGF1dG9tYXRpYyBncm91cCBjaXBo ZXIgc2VsZWN0aW9uCiMgVGhpcyBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBzcGVjaWZpYyBncm91 cCBjaXBoZXIgcmVnYXJkbGVzcyBvZiB3aGljaAojIHBhaXJ3aXNlIGNpcGhlcnMgd2VyZSBlbmFi bGVkIGZvciBXUEEgYW5kIFJTTi4gSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQKIyBvdmVycmlkaW5n IHRoZSBncm91cCBjaXBoZXIgd2l0aCBhbiB1bmV4cGVjdGVkIHZhbHVlIGNhbiByZXN1bHQgaW4K IyBpbnRlcm9wZXJhYmlsaXR5IGlzc3VlcyBhbmQgaW4gZ2VuZXJhbCwgdGhpcyBwYXJhbWV0ZXIg aXMgbWFpbmx5IHVzZWQgZm9yCiMgdGVzdGluZyBwdXJwb3Nlcy4KI2dyb3VwX2NpcGhlcj1DQ01Q CgojIFRpbWUgaW50ZXJ2YWwgZm9yIHJla2V5aW5nIEdUSyAoYnJvYWRjYXN0L211bHRpY2FzdCBl bmNyeXB0aW9uIGtleXMpIGluCiMgc2Vjb25kcy4gKGRvdDExUlNOQUNvbmZpZ0dyb3VwUmVrZXlU aW1lKQojIFRoaXMgZGVmYXVsdHMgdG8gODY0MDAgc2Vjb25kcyAob25jZSBwZXIgZGF5KSB3aGVu IHVzaW5nIENDTVAvR0NNUCBhcyB0aGUKIyBncm91cCBjaXBoZXIgYW5kIDYwMCBzZWNvbmRzIChv bmNlIHBlciAxMCBtaW51dGVzKSB3aGVuIHVzaW5nIFRLSVAgYXMgdGhlCiMgZ3JvdXAgY2lwaGVy Lgojd3BhX2dyb3VwX3Jla2V5PTg2NDAwCgojIFJla2V5IEdUSyB3aGVuIGFueSBTVEEgdGhhdCBw b3NzZXNzZXMgdGhlIGN1cnJlbnQgR1RLIGlzIGxlYXZpbmcgdGhlIEJTUy4KIyAoZG90MTFSU05B Q29uZmlnR3JvdXBSZWtleVN0cmljdCkKI3dwYV9zdHJpY3RfcmVrZXk9MQoKIyBUaGUgbnVtYmVy IG9mIHRpbWVzIEVBUE9MLUtleSBNZXNzYWdlIDEvMiBpbiB0aGUgUlNOIEdyb3VwIEtleSBIYW5k c2hha2UgaXMKI3JldHJpZWQgcGVyIEdUSyBIYW5kc2hha2UgYXR0ZW1wdC4gKGRvdDExUlNOQUNv bmZpZ0dyb3VwVXBkYXRlQ291bnQpCiMgVGhpcyB2YWx1ZSBzaG91bGQgb25seSBiZSBpbmNyZWFz ZWQgd2hlbiBzdGF0aW9ucyBhcmUgY29uc3RhbnRseQojIGRlYXV0aGVudGljYXRlZCBkdXJpbmcg R1RLIHJla2V5aW5nIHdpdGggdGhlIGxvZyBtZXNzYWdlCiMgImdyb3VwIGtleSBoYW5kc2hha2Ug ZmFpbGVkLi4uIi4KIyBZb3Ugc2hvdWxkIGNvbnNpZGVyIHRvIGFsc28gaW5jcmVhc2Ugd3BhX3Bh aXJ3aXNlX3VwZGF0ZV9jb3VudCB0aGVuLgojIFJhbmdlIDEuLjQyOTQ5NjcyOTU7IGRlZmF1bHQ6 IDQKI3dwYV9ncm91cF91cGRhdGVfY291bnQ9NAoKIyBUaW1lIGludGVydmFsIGZvciByZWtleWlu ZyBHTUsgKG1hc3RlciBrZXkgdXNlZCBpbnRlcm5hbGx5IHRvIGdlbmVyYXRlIEdUS3MKIyAoaW4g c2Vjb25kcykuCiN3cGFfZ21rX3Jla2V5PTg2NDAwCgojIE1heGltdW0gbGlmZXRpbWUgZm9yIFBU SyBpbiBzZWNvbmRzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGVuZm9yY2UgcmVrZXlpbmcgb2YKIyBQ VEsgdG8gbWl0aWdhdGUgc29tZSBhdHRhY2tzIGFnYWluc3QgVEtJUCBkZWZpY2llbmNpZXMuCiN3 cGFfcHRrX3Jla2V5PTYwMAoKIyBUaGUgbnVtYmVyIG9mIHRpbWVzIEVBUE9MLUtleSBNZXNzYWdl IDEvNCBhbmQgTWVzc2FnZSAzLzQgaW4gdGhlIFJTTiA0LVdheQojIEhhbmRzaGFrZSBhcmUgcmV0 cmllZCBwZXIgNC1XYXkgSGFuZHNoYWtlIGF0dGVtcHQuCiMgKGRvdDExUlNOQUNvbmZpZ1BhaXJ3 aXNlVXBkYXRlQ291bnQpCiMgUmFuZ2UgMS4uNDI5NDk2NzI5NTsgZGVmYXVsdDogNAojd3BhX3Bh aXJ3aXNlX3VwZGF0ZV9jb3VudD00CgojIFdvcmthcm91bmQgZm9yIGtleSByZWluc3RhbGxhdGlv biBhdHRhY2tzCiMKIyBUaGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBkaXNhYmxlIHJldHJh bnNtaXNzaW9uIG9mIEVBUE9MLUtleSBmcmFtZXMgdGhhdAojIGFyZSB1c2VkIHRvIGluc3RhbGwg a2V5cyAoRUFQT0wtS2V5IG1lc3NhZ2UgMy80IGFuZCBncm91cCBtZXNzYWdlIDEvMikuIFRoaXMK IyBpcyBzaW1pbGFyIHRvIHNldHRpbmcgd3BhX2dyb3VwX3VwZGF0ZV9jb3VudD0xIGFuZAojIHdw YV9wYWlyd2lzZV91cGRhdGVfY291bnQ9MSwgYnV0IHdpdGggbm8gaW1wYWN0IHRvIG1lc3NhZ2Ug MS80IGFuZCB3aXRoCiMgZXh0ZW5kZWQgdGltZW91dCBvbiB0aGUgcmVzcG9uc2UgdG8gYXZvaWQg Y2F1c2luZyBpc3N1ZXMgd2l0aCBzdGF0aW9ucyB0aGF0CiMgbWF5IHVzZSBhZ2dyZXNzaXZlIHBv d2VyIHNhdmluZyBoYXZlIHZlcnkgbG9uZyB0aW1lIGluIHJlcGx5aW5nIHRvIHRoZQojIEVBUE9M LUtleSBtZXNzYWdlcy4KIwojIFRoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIHdvcmsgYXJvdW5k IGtleSByZWluc3RhbGxhdGlvbiBhdHRhY2tzIG9uIHRoZQojIHN0YXRpb24gKHN1cHBsaWNhbnQp IHNpZGUgaW4gY2FzZXMgdGhvc2Ugc3RhdGlvbiBkZXZpY2VzIGNhbm5vdCBiZSB1cGRhdGVkCiMg Zm9yIHNvbWUgcmVhc29uLiBCeSByZW1vdmluZyB0aGUgcmV0cmFuc21pc3Npb25zIHRoZSBhdHRh Y2tlciBjYW5ub3QgY2F1c2UKIyBrZXkgcmVpbnN0YWxsYXRpb24gd2l0aCBhIGRlbGF5ZWQgZnJh bWUgdHJhbnNtaXNzaW9uLiBUaGlzIGlzIHJlbGF0ZWQgdG8gdGhlCiMgc3RhdGlvbiBzaWRlIHZ1 bG5lcmFiaWxpdGllcyBDVkUtMjAxNy0xMzA3NywgQ1ZFLTIwMTctMTMwNzgsIENWRS0yMDE3LTEz MDc5LAojIENWRS0yMDE3LTEzMDgwLCBhbmQgQ1ZFLTIwMTctMTMwODEuCiMKIyBUaGlzIHdvcmth cm91bmQgbWlnaHQgY2F1c2UgaW50ZXJvcGVyYWJpbGl0eSBpc3N1ZXMgYW5kIHJlZHVjZWQgcm9i dXN0bmVzcyBvZgojIGtleSBuZWdvdGlhdGlvbiBlc3BlY2lhbGx5IGluIGVudmlyb25tZW50cyB3 aXRoIGhlYXZ5IHRyYWZmaWMgbG9hZCBkdWUgdG8gdGhlCiMgbnVtYmVyIG9mIGF0dGVtcHRzIHRv IHBlcmZvcm0gdGhlIGtleSBleGNoYW5nZSBpcyByZWR1Y2VkIHNpZ25pZmljYW50bHkuIEFzCiMg c3VjaCwgdGhpcyB3b3JrYXJvdW5kIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgKHVubGVzcyBvdmVy cmlkZGVuIGluIGJ1aWxkCiMgY29uZmlndXJhdGlvbikuIFRvIGVuYWJsZSB0aGlzLCBzZXQgdGhl IHBhcmFtZXRlciB0byAxLgojd3BhX2Rpc2FibGVfZWFwb2xfa2V5X3JldHJpZXM9MQoKIyBFbmFi bGUgSUVFRSA4MDIuMTFpL1JTTi9XUEEyIHByZS1hdXRoZW50aWNhdGlvbi4gVGhpcyBpcyB1c2Vk IHRvIHNwZWVkIHVwCiMgcm9hbWluZyBiZSBwcmUtYXV0aGVudGljYXRpbmcgSUVFRSA4MDIuMVgv RUFQIHBhcnQgb2YgdGhlIGZ1bGwgUlNOCiMgYXV0aGVudGljYXRpb24gYW5kIGtleSBoYW5kc2hh a2UgYmVmb3JlIGFjdHVhbGx5IGFzc29jaWF0aW5nIHdpdGggYSBuZXcgQVAuCiMgKGRvdDExUlNO QVByZWF1dGhlbnRpY2F0aW9uRW5hYmxlZCkKI3Jzbl9wcmVhdXRoPTEKIwojIFNwYWNlIHNlcGFy YXRlZCBsaXN0IG9mIGludGVyZmFjZXMgZnJvbSB3aGljaCBwcmUtYXV0aGVudGljYXRpb24gZnJh bWVzIGFyZQojIGFjY2VwdGVkIChlLmcuLCAnZXRoMCcgb3IgJ2V0aDAgd2xhbjB3ZHMwJy4gVGhp cyBsaXN0IHNob3VsZCBpbmNsdWRlIGFsbAojIGludGVyZmFjZSB0aGF0IGFyZSB1c2VkIGZvciBj b25uZWN0aW9ucyB0byBvdGhlciBBUHMuIFRoaXMgY291bGQgaW5jbHVkZQojIHdpcmVkIGludGVy ZmFjZXMgYW5kIFdEUyBsaW5rcy4gVGhlIG5vcm1hbCB3aXJlbGVzcyBkYXRhIGludGVyZmFjZSB0 b3dhcmRzCiMgYXNzb2NpYXRlZCBzdGF0aW9ucyAoZS5nLiwgd2xhbjApIHNob3VsZCBub3QgYmUg YWRkZWQsIHNpbmNlCiMgcHJlLWF1dGhlbnRpY2F0aW9uIGlzIG9ubHkgdXNlZCB3aXRoIEFQcyBv dGhlciB0aGFuIHRoZSBjdXJyZW50bHkgYXNzb2NpYXRlZAojIG9uZS4KI3Jzbl9wcmVhdXRoX2lu dGVyZmFjZXM9ZXRoMAoKIyBpZWVlODAyMTF3OiBXaGV0aGVyIG1hbmFnZW1lbnQgZnJhbWUgcHJv dGVjdGlvbiAoTUZQKSBpcyBlbmFibGVkCiMgMCA9IGRpc2FibGVkIChkZWZhdWx0KQojIDEgPSBv cHRpb25hbAojIDIgPSByZXF1aXJlZAojaWVlZTgwMjExdz0wCgojIEdyb3VwIG1hbmFnZW1lbnQg Y2lwaGVyIHN1aXRlCiMgRGVmYXVsdDogQUVTLTEyOC1DTUFDIChCSVApCiMgT3RoZXIgb3B0aW9u cyAoZGVwZW5kaW5nIG9uIGRyaXZlciBzdXBwb3J0KToKIyBCSVAtR01BQy0xMjgKIyBCSVAtR01B Qy0yNTYKIyBCSVAtQ01BQy0yNTYKIyBOb3RlOiBBbGwgdGhlIHN0YXRpb25zIGNvbm5lY3Rpbmcg dG8gdGhlIEJTUyB3aWxsIGFsc28gbmVlZCB0byBzdXBwb3J0IHRoZQojIHNlbGVjdGVkIGNpcGhl ci4gVGhlIGRlZmF1bHQgQUVTLTEyOC1DTUFDIGlzIHRoZSBvbmx5IG9wdGlvbiB0aGF0IGlzIGNv bW1vbmx5CiMgYXZhaWxhYmxlIGluIGRlcGxveWVkIGRldmljZXMuCiNncm91cF9tZ210X2NpcGhl cj1BRVMtMTI4LUNNQUMKCiMgQXNzb2NpYXRpb24gU0EgUXVlcnkgbWF4aW11bSB0aW1lb3V0IChp biBUVSA9IDEuMDI0IG1zOyBmb3IgTUZQKQojIChtYXhpbXVtIHRpbWUgdG8gd2FpdCBmb3IgYSBT QSBRdWVyeSByZXNwb25zZSkKIyBkb3QxMUFzc29jaWF0aW9uU0FRdWVyeU1heGltdW1UaW1lb3V0 LCAxLi4uNDI5NDk2NzI5NQojYXNzb2Nfc2FfcXVlcnlfbWF4X3RpbWVvdXQ9MTAwMAoKIyBBc3Nv Y2lhdGlvbiBTQSBRdWVyeSByZXRyeSB0aW1lb3V0IChpbiBUVSA9IDEuMDI0IG1zOyBmb3IgTUZQ KQojICh0aW1lIGJldHdlZW4gdHdvIHN1YnNlcXVlbnQgU0EgUXVlcnkgcmVxdWVzdHMpCiMgZG90 MTFBc3NvY2lhdGlvblNBUXVlcnlSZXRyeVRpbWVvdXQsIDEuLi40Mjk0OTY3Mjk1CiNhc3NvY19z YV9xdWVyeV9yZXRyeV90aW1lb3V0PTIwMQoKIyBkaXNhYmxlX3Bta3NhX2NhY2hpbmc6IERpc2Fi bGUgUE1LU0EgY2FjaGluZwojIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUg Y2FjaGluZyBvZiBQTUtTQSBjcmVhdGVkIHRocm91Z2ggRUFQCiMgYXV0aGVudGljYXRpb24uIFJT TiBwcmVhdXRoZW50aWNhdGlvbiBtYXkgc3RpbGwgZW5kIHVwIHVzaW5nIFBNS1NBIGNhY2hpbmcg aWYKIyBpdCBpcyBlbmFibGVkIChyc25fcHJlYXV0aD0xKS4KIyAwID0gUE1LU0EgY2FjaGluZyBl bmFibGVkIChkZWZhdWx0KQojIDEgPSBQTUtTQSBjYWNoaW5nIGRpc2FibGVkCiNkaXNhYmxlX3Bt a3NhX2NhY2hpbmc9MAoKIyBva2M6IE9wcG9ydHVuaXN0aWMgS2V5IENhY2hpbmcgKGFrYSBQcm9h Y3RpdmUgS2V5IENhY2hpbmcpCiMgQWxsb3cgUE1LIGNhY2hlIHRvIGJlIHNoYXJlZCBvcHBvcnR1 bmlzdGljYWxseSBhbW9uZyBjb25maWd1cmVkIGludGVyZmFjZXMKIyBhbmQgQlNTZXMgKGkuZS4s IGFsbCBjb25maWd1cmF0aW9ucyB3aXRoaW4gYSBzaW5nbGUgaG9zdGFwZCBwcm9jZXNzKS4KIyAw ID0gZGlzYWJsZWQgKGRlZmF1bHQpCiMgMSA9IGVuYWJsZWQKI29rYz0xCgojIFNBRSBwYXNzd29y ZAojIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIHNldCBwYXNzd29yZHMgZm9yIFNBRS4g QnkgZGVmYXVsdCwgdGhlCiMgd3BhX3Bhc3NwaHJhc2UgdmFsdWUgaXMgdXNlZCBpZiB0aGlzIHNl cGFyYXRlIHBhcmFtZXRlciBpcyBub3QgdXNlZCwgYnV0CiMgd3BhX3Bhc3NwaHJhc2UgZm9sbG93 cyB0aGUgV1BBLVBTSyBjb25zdHJhaW50cyAoOC4uNjMgY2hhcmFjdGVycykgZXZlbiB0aG91Z2gK IyBTQUUgcGFzc3dvcmRzIGRvIG5vdCBoYXZlIHN1Y2ggY29uc3RyYWludHMuIElmIHRoZSBCU1Mg ZW5hYmxlZCBib3RoIFNBRSBhbmQKIyBXUEEtUFNLIGFuZCBib3RoIHZhbHVlcyBhcmUgc2V0LCBT QUUgdXNlcyB0aGUgc2FlX3Bhc3N3b3JkIHZhbHVlcyBhbmQgV1BBLVBTSwojIHVzZXMgdGhlIHdw YV9wYXNzcGhyYXNlIHZhbHVlLgojCiMgRWFjaCBzYWVfcGFzc3dvcmQgZW50cnkgaXMgYWRkZWQg dG8gYSBsaXN0IG9mIGF2YWlsYWJsZSBwYXNzd29yZHMuIFRoaXMKIyBjb3JyZXNwb25kcyB0byB0 aGUgZG90MTFSU05BQ29uZmlnUGFzc3dvcmRWYWx1ZUVudHJ5LiBzYWVfcGFzc3dvcmQgdmFsdWUK IyBzdGFydHMgd2l0aCB0aGUgcGFzc3dvcmQgKGRvdDExUlNOQUNvbmZpZ1Bhc3N3b3JkQ3JlZGVu dGlhbCkuIFRoYXQgdmFsdWUgY2FuCiMgYmUgZm9sbG93ZWQgYnkgb3B0aW9uYWwgcGVlciBNQUMg YWRkcmVzcyAoZG90MTFSU05BQ29uZmlnUGFzc3dvcmRQZWVyTWFjKSBhbmQKIyBieSBvcHRpb25h bCBwYXNzd29yZCBpZGVudGlmaWVyIChkb3QxMVJTTkFDb25maWdQYXNzd29yZElkZW50aWZpZXIp LiBJZiB0aGUKIyBwZWVyIE1BQyBhZGRyZXNzIGlzIG5vdCBpbmNsdWRlZCBvciBpcyBzZXQgdG8g dGhlIHdpbGRjYXJkIGFkZHJlc3MKIyAoZmY6ZmY6ZmY6ZmY6ZmY6ZmYpLCB0aGUgZW50cnkgaXMg YXZhaWxhYmxlIGZvciBhbnkgc3RhdGlvbiB0byB1c2UuIElmIGEKIyBzcGVjaWZpYyBwZWVyIE1B QyBhZGRyZXNzIGlzIGluY2x1ZGVkLCBvbmx5IGEgc3RhdGlvbiB3aXRoIHRoYXQgTUFDIGFkZHJl c3MKIyBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgZW50cnkuIElmIHRoZSBwYXNzd29yZCBpZGVudGlm aWVyICh3aXRoIG5vbi16ZXJvIGxlbmd0aCkKIyBpcyBpbmNsdWRlZCwgdGhlIGVudHJ5IGlzIGxp bWl0ZWQgdG8gYmUgdXNlZCBvbmx5IHdpdGggdGhhdCBzcGVjaWZpZWQKIyBpZGVudGlmaWVyLiBU aGUgbGFzdCBtYXRjaGluZyAoYmFzZWQgb24gcGVlciBNQUMgYWRkcmVzcyBhbmQgaWRlbnRpZmll cikgZW50cnkKIyBpcyB1c2VkIHRvIHNlbGVjdCB3aGljaCBwYXNzd29yZCB0byB1c2UuIFNldHRp bmcgc2FlX3Bhc3N3b3JkIHRvIGFuIGVtcHR5CiMgc3RyaW5nIGhhcyBhIHNwZWNpYWwgbWVhbmlu ZyBvZiByZW1vdmluZyBhbGwgcHJldmlvdXNseSBhZGRlZCBlbnRyaWVzLgojIHNhZV9wYXNzd29y ZCB1c2VzIHRoZSBmb2xsb3dpbmcgZW5jb2Rpbmc6CiM8cGFzc3dvcmQvY3JlZGVudGlhbD5bfG1h Yz08cGVlciBtYWM+XVt8aWQ9PGlkZW50aWZpZXI+XQojIEV4YW1wbGVzOgojc2FlX3Bhc3N3b3Jk PXNlY3JldAojc2FlX3Bhc3N3b3JkPXJlYWxseSBzZWNyZXR8bWFjPWZmOmZmOmZmOmZmOmZmOmZm CiNzYWVfcGFzc3dvcmQ9ZXhhbXBsZSBzZWNyZXR8bWFjPTAyOjAzOjA0OjA1OjA2OjA3fGlkPXB3 IGlkZW50aWZpZXIKCiMgU0FFIHRocmVzaG9sZCBmb3IgYW50aS1jbG9nZ2luZyBtZWNoYW5pc20g KGRvdDExUlNOQVNBRUFudGlDbG9nZ2luZ1RocmVzaG9sZCkKIyBUaGlzIHBhcmFtZXRlciBkZWZp bmVzIGhvdyBtYW55IG9wZW4gU0FFIGluc3RhbmNlcyBjYW4gYmUgaW4gcHJvZ3Jlc3MgYXQgdGhl CiMgc2FtZSB0aW1lIGJlZm9yZSB0aGUgYW50aS1jbG9nZ2luZyBtZWNoYW5pc20gaXMgdGFrZW4g aW50byB1c2UuCiNzYWVfYW50aV9jbG9nZ2luZ190aHJlc2hvbGQ9NQoKIyBNYXhpbXVtIG51bWJl ciBvZiBTQUUgc3luY2hyb25pemF0aW9uIGVycm9ycyAoZG90MTFSU05BU0FFU3luYykKIyBUaGUg b2ZmZW5kaW5nIFNBZSBwZWVyIHdpbGwgYmUgZGlzY29ubmVjdGVkIGlmIG1vcmUgdGhhbiB0aGlz IG1hbnkKIyBzeW5jaHJvbml6YXRpb24gZXJyb3JzIGhhcHBlbi4KI3NhZV9zeW5jPTUKCiMgRW5h YmxlZCBTQUUgZmluaXRlIGN5Y2xpYyBncm91cHMKIyBTQUUgaW1wbGVtZW50YXRpb24gYXJlIHJl cXVpcmVkIHRvIHN1cHBvcnQgZ3JvdXAgMTkgKEVDQyBncm91cCBkZWZpbmVkIG92ZXIgYQojIDI1 Ni1iaXQgcHJpbWUgb3JkZXIgZmllbGQpLiBBbGwgZ3JvdXBzIHRoYXQgYXJlIHN1cHBvcnRlZCBi eSB0aGUKIyBpbXBsZW1lbnRhdGlvbiBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LiBUaGlzIGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVyIGNhbiBiZQojIHVzZWQgdG8gc3BlY2lmeSBhIGxpbWl0ZWQgc2V0 IG9mIGFsbG93ZWQgZ3JvdXBzLiBUaGUgZ3JvdXAgdmFsdWVzIGFyZSBsaXN0ZWQKIyBpbiB0aGUg SUFOQSByZWdpc3RyeToKIyBodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2lwc2VjLXJl Z2lzdHJ5L2lwc2VjLXJlZ2lzdHJ5LnhtbCNpcHNlYy1yZWdpc3RyeS05CiNzYWVfZ3JvdXBzPTE5 IDIwIDIxIDI1IDI2CgojIFJlcXVpcmUgTUZQIGZvciBhbGwgYXNzb2NpYXRpb25zIHVzaW5nIFNB RQojIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGVuZm9yY2UgbmVnb3RpYXRpb24gb2Yg TUZQIGZvciBhbGwgYXNzb2NpYXRpb25zCiMgdGhhdCBuZWdvdGlhdGUgdXNlIG9mIFNBRS4gVGhp cyBpcyB1c2VkIGluIGNhc2VzIHdoZXJlIFNBRS1jYXBhYmxlIGRldmljZXMgYXJlCiMga25vd24g dG8gYmUgTUZQLWNhcGFibGUgYW5kIHRoZSBCU1MgaXMgY29uZmlndXJlZCB3aXRoIG9wdGlvbmFs IE1GUAojIChpZWVlODAyMTF3PTEpIGZvciBsZWdhY3kgc3VwcG9ydC4gVGhlIG5vbi1TQUUgc3Rh dGlvbnMgY2FuIGNvbm5lY3Qgd2l0aG91dAojIE1GUCB3aGlsZSBTQUUgc3RhdGlvbnMgYXJlIHJl cXVpcmVkIHRvIG5lZ290aWF0ZSBNRlAgaWYgc2FlX3JlcXVpcmVfbWZwPTEuCiNzYWVfcmVxdWly ZV9tZnA9MAoKIyBGSUxTIENhY2hlIElkZW50aWZpZXIgKDE2LWJpdCB2YWx1ZSBpbiBoZXhkdW1w IGZvcm1hdCkKI2ZpbHNfY2FjaGVfaWQ9MDAxMQoKIyBGSUxTIFJlYWxtIEluZm9ybWF0aW9uCiMg T25lIG9yIG1vcmUgRklMUyByZWFsbXMgbmVlZCB0byBiZSBjb25maWd1cmVkIHdoZW4gRklMUyBp cyBlbmFibGVkLiBUaGlzIGxpc3QKIyBvZiByZWFsbXMgaXMgdXNlZCB0byBkZWZpbmUgd2hpY2gg cmVhbG1zICh1c2VkIGluIGtleU5hbWUtTkFJIGJ5IHRoZSBjbGllbnQpCiMgY2FuIGJlIHVzZWQg d2l0aCBGSUxTIHNoYXJlZCBrZXkgYXV0aGVudGljYXRpb24gZm9yIEVSUC4KI2ZpbHNfcmVhbG09 ZXhhbXBsZS5jb20KI2ZpbHNfcmVhbG09ZXhhbXBsZS5vcmcKCiMgRklMUyBESCBHcm91cCBmb3Ig UEZTCiMgMCA9IFBGUyBkaXNhYmxlZCB3aXRoIEZJTFMgc2hhcmVkIGtleSBhdXRoZW50aWNhdGlv biAoZGVmYXVsdCkKIyAxLTY1NTM1IERIIEdyb3VwIHRvIHVzZSBmb3IgRklMUyBQRlMKI2ZpbHNf ZGhfZ3JvdXA9MAoKIyBPV0UgREggZ3JvdXBzCiMgT1dFIGltcGxlbWVudGF0aW9ucyBhcmUgcmVx dWlyZWQgdG8gc3VwcG9ydCBncm91cCAxOSAoTklTVCBQLTI1NikuIEFsbCBncm91cHMKIyB0aGF0 IGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIChlLmcuLCBncm91cHMgMTksIDIw LCBhbmQgMjEgd2hlbgojIHVzaW5nIE9wZW5TU0wpIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQuIFRo aXMgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgY2FuIGJlCiMgdXNlZCB0byBzcGVjaWZ5IGEgbGlt aXRlZCBzZXQgb2YgYWxsb3dlZCBncm91cHMuIFRoZSBncm91cCB2YWx1ZXMgYXJlIGxpc3RlZAoj IGluIHRoZSBJQU5BIHJlZ2lzdHJ5OgojIGh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMv aXBzZWMtcmVnaXN0cnkvaXBzZWMtcmVnaXN0cnkueG1sI2lwc2VjLXJlZ2lzdHJ5LTEwCiNvd2Vf Z3JvdXBzPTE5IDIwIDIxCgojIE9XRSB0cmFuc2l0aW9uIG1vZGUgY29uZmlndXJhdGlvbgojIFBv aW50ZXIgdG8gdGhlIG1hdGNoaW5nIG9wZW4vT1dFIEJTUwojb3dlX3RyYW5zaXRpb25fYnNzaWQ9 PGJzc2lkPgojIFNTSUQgaW4gc2FtZSBmb3JtYXQgYXMgc3NpZDIgZGVzY3JpYmVkIGFib3ZlLgoj b3dlX3RyYW5zaXRpb25fc3NpZD08U1NJRD4KIyBBbHRlcm5hdGl2ZWx5LCBPV0UgdHJhbnNpdGlv biBtb2RlIEJTU0lEL1NTSUQgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBhCiMgcmVmZXJlbmNlIHRv IGEgQlNTIG9wZXJhdGVkIGJ5IHRoaXMgaG9zdGFwZCBwcm9jZXNzLgojb3dlX3RyYW5zaXRpb25f aWZuYW1lPTxpZm5hbWU+CgojIERIQ1Agc2VydmVyIGZvciBGSUxTIEhMUAojIElmIGNvbmZpZ3Vy ZWQsIGhvc3RhcGQgd2lsbCBhY3QgYXMgYSBESENQIHJlbGF5IGZvciBhbGwgRklMUyBITFAgcmVx dWVzdHMKIyB0aGF0IGluY2x1ZGUgYSBESENQRElTQ09WRVIgbWVzc2FnZSBhbmQgc2VuZCB0aGVt IHRvIHRoZSBzcGVjaWZpYyBESENQCiMgc2VydmVyIGZvciBwcm9jZXNzaW5nLiBob3N0YXBkIHdp bGwgdGhlbiB3YWl0IGZvciBhIHJlc3BvbnNlIGZyb20gdGhhdCBzZXJ2ZXIKIyBiZWZvcmUgcmVw bHlpbmcgd2l0aCAoUmUpQXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWUgdGhhdCBlbmNhcHN1bGF0 ZXMgdGhpcwojIERIQ1AgcmVzcG9uc2UuIG93bl9pcF9hZGRyIGlzIHVzZWQgYXMgdGhlIGxvY2Fs IGFkZHJlc3MgZm9yIHRoZSBjb21tdW5pY2F0aW9uCiMgd2l0aCB0aGUgREhDUCBzZXJ2ZXIuCiNk aGNwX3NlcnZlcj0xMjcuMC4wLjEKCiMgREhDUCBzZXJ2ZXIgVURQIHBvcnQKIyBEZWZhdWx0OiA2 NwojZGhjcF9zZXJ2ZXJfcG9ydD02NwoKIyBESENQIHJlbGF5IFVEUCBwb3J0IG9uIHRoZSBsb2Nh bCBkZXZpY2UKIyBEZWZhdWx0OiA2NzsgMCBtZWFucyBub3QgdG8gYmluZCBhbnkgc3BlY2lmaWMg cG9ydAojZGhjcF9yZWxheV9wb3J0PTY3CgojIERIQ1AgcmFwaWQgY29tbWl0IHByb3h5CiMgSWYg c2V0IHRvIDEsIHRoaXMgZW5hYmxlcyBob3N0YXBkIHRvIGFjdCBhcyBhIERIQ1AgcmFwaWQgY29t bWl0IHByb3h5IHRvCiMgYWxsb3cgdGhlIHJhcGlkIGNvbW1pdCBvcHRpb25zICh0d28gbWVzc2Fn ZSBESENQIGV4Y2hhbmdlKSB0byBiZSB1c2VkIHdpdGggYQojIHNlcnZlciB0aGF0IHN1cHBvcnRz IG9ubHkgdGhlIGZvdXIgbWVzc2FnZSBESENQIGV4Y2hhbmdlLiBUaGlzIGlzIGRpc2FibGVkIGJ5 CiMgZGVmYXVsdCAoPSAwKSBhbmQgY2FuIGJlIGVuYWJsZWQgYnkgc2V0dGluZyB0aGlzIHRvIDEu CiNkaGNwX3JhcGlkX2NvbW1pdF9wcm94eT0wCgojIFdhaXQgdGltZSBmb3IgRklMUyBITFAgKGRv dDExSExQV2FpdFRpbWUpIGluIFRVcwojIGRlZmF1bHQ6IDMwIFRVcyAoPSAzMC43MiBtaWxsaXNl Y29uZHMpCiNmaWxzX2hscF93YWl0X3RpbWU9MzAKCiMjIyMjIElFRUUgODAyLjExciBjb25maWd1 cmF0aW9uICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMg TW9iaWxpdHkgRG9tYWluIGlkZW50aWZpZXIgKGRvdDExRlRNb2JpbGl0eURvbWFpbklELCBNRElE KQojIE1ESUQgaXMgdXNlZCB0byBpbmRpY2F0ZSBhIGdyb3VwIG9mIEFQcyAod2l0aGluIGFuIEVT UywgaS5lLiwgc2hhcmluZyB0aGUKIyBzYW1lIFNTSUQpIGJldHdlZW4gd2hpY2ggYSBTVEEgY2Fu IHVzZSBGYXN0IEJTUyBUcmFuc2l0aW9uLgojIDItb2N0ZXQgaWRlbnRpZmllciBhcyBhIGhleCBz dHJpbmcuCiNtb2JpbGl0eV9kb21haW49YTFiMgoKIyBQTUstUjAgS2V5IEhvbGRlciBpZGVudGlm aWVyIChkb3QxMUZUUjBLZXlIb2xkZXJJRCkKIyAxIHRvIDQ4IG9jdGV0IGlkZW50aWZpZXIuCiMg VGhpcyBpcyBjb25maWd1cmVkIHdpdGggbmFzX2lkZW50aWZpZXIgKHNlZSBSQURJVVMgY2xpZW50 IHNlY3Rpb24gYWJvdmUpLgoKIyBEZWZhdWx0IGxpZmV0aW1lIG9mIHRoZSBQTUstUjAgaW4gc2Vj b25kczsgcmFuZ2UgNjAuLjQyOTQ5NjcyOTUKIyAoZGVmYXVsdDogMTQgZGF5cyAvIDEyMDk2MDAg c2Vjb25kczsgMCA9IGRpc2FibGUgdGltZW91dCkKIyAoZG90MTFGVFIwS2V5TGlmZXRpbWUpCiNm dF9yMF9rZXlfbGlmZXRpbWU9MTIwOTYwMAoKIyBNYXhpbXVtIGxpZmV0aW1lIGZvciBQTUstUjE7 IGFwcGxpZWQgb25seSBpZiBub3QgemVybwojIFBNSy1SMSBpcyByZW1vdmVkIGF0IGxhdGVzdCBh ZnRlciB0aGlzIGxpbWl0LgojIFJlbW92aW5nIGFueSBQTUstUjEgZm9yIGV4cGlyeSBjYW4gYmUg ZGlzYWJsZWQgYnkgc2V0dGluZyB0aGlzIHRvIC0xLgojIChkZWZhdWx0OiAwKQojcjFfbWF4X2tl eV9saWZldGltZT0wCgojIFBNSy1SMSBLZXkgSG9sZGVyIGlkZW50aWZpZXIgKGRvdDExRlRSMUtl eUhvbGRlcklEKQojIDYtb2N0ZXQgaWRlbnRpZmllciBhcyBhIGhleCBzdHJpbmcuCiMgRGVmYXVs dHMgdG8gQlNTSUQuCiNyMV9rZXlfaG9sZGVyPTAwMDEwMjAzMDQwNQoKIyBSZWFzc29jaWF0aW9u IGRlYWRsaW5lIGluIHRpbWUgdW5pdHMgKFRVcyAvIDEuMDI0IG1zOyByYW5nZSAxMDAwLi42NTUz NSkKIyAoZG90MTFGVFJlYXNzb2NpYXRpb25EZWFkbGluZSkKI3JlYXNzb2NpYXRpb25fZGVhZGxp bmU9MTAwMAoKIyBMaXN0IG9mIFIwS0hzIGluIHRoZSBzYW1lIE1vYmlsaXR5IERvbWFpbgojIGZv cm1hdDogPE1BQyBhZGRyZXNzPiA8TkFTIElkZW50aWZpZXI+IDwyNTYtYml0IGtleSBhcyBoZXgg c3RyaW5nPgojIFRoaXMgbGlzdCBpcyB1c2VkIHRvIG1hcCBSMEtILUlEIChOQVMgSWRlbnRpZmll cikgdG8gYSBkZXN0aW5hdGlvbiBNQUMKIyBhZGRyZXNzIHdoZW4gcmVxdWVzdGluZyBQTUstUjEg a2V5IGZyb20gdGhlIFIwS0ggdGhhdCB0aGUgU1RBIHVzZWQgZHVyaW5nIHRoZQojIEluaXRpYWwg TW9iaWxpdHkgRG9tYWluIEFzc29jaWF0aW9uLgojcjBraD0wMjowMTowMjowMzowNDowNSByMGto LTEuZXhhbXBsZS5jb20gMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYwMDAxMDIwMzA0 MDUwNjA3MDgwOTBhMGIwYzBkMGUwZgojcjBraD0wMjowMTowMjowMzowNDowNiByMGtoLTIuZXhh bXBsZS5jb20gMDAxMTIyMzM0NDU1NjY3Nzg4OTlhYWJiY2NkZGVlZmYwMDExMjIzMzQ0NTU2Njc3 ODg5OWFhYmJjY2RkZWVmZgojIEFuZCBzbyBvbi4uIE9uZSBsaW5lIHBlciBSMEtILgojIFdpbGRj YXJkIGVudHJ5OgojIFVwb24gcmVjZWl2aW5nIGEgcmVzcG9uc2UgZnJvbSBSMEtILCBpdCB3aWxs IGJlIGFkZGVkIHRvIHRoaXMgbGlzdCwgc28KIyBzdWJzZXF1ZW50IHJlcXVlc3RzIHdvbid0IGJl IGJyb2FkY2FzdC4gSWYgUjBLSCBkb2VzIG5vdCByZXBseSwgaXQgd2lsbCBiZQojIGJsYWNrbGlz dGVkLgojcjBraD1mZjpmZjpmZjpmZjpmZjpmZiAqIDAwMTEyMjMzNDQ1NTY2Nzc4ODk5YWFiYmNj ZGRlZWZmCgojIExpc3Qgb2YgUjFLSHMgaW4gdGhlIHNhbWUgTW9iaWxpdHkgRG9tYWluCiMgZm9y bWF0OiA8TUFDIGFkZHJlc3M+IDxSMUtILUlEPiA8MjU2LWJpdCBrZXkgYXMgaGV4IHN0cmluZz4K IyBUaGlzIGxpc3QgaXMgdXNlZCB0byBtYXAgUjFLSC1JRCB0byBhIGRlc3RpbmF0aW9uIE1BQyBh ZGRyZXNzIHdoZW4gc2VuZGluZwojIFBNSy1SMSBrZXkgZnJvbSB0aGUgUjBLSC4gVGhpcyBpcyBh bHNvIHRoZSBsaXN0IG9mIGF1dGhvcml6ZWQgUjFLSHMgaW4gdGhlIE1ECiMgdGhhdCBjYW4gcmVx dWVzdCBQTUstUjEga2V5cy4KI3Ixa2g9MDI6MDE6MDI6MDM6MDQ6MDUgMDI6MTE6MjI6MzM6NDQ6 NTUgMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYwMDAxMDIwMzA0MDUwNjA3MDgwOTBh MGIwYzBkMGUwZgojcjFraD0wMjowMTowMjowMzowNDowNiAwMjoxMToyMjozMzo0NDo2NiAwMDEx MjIzMzQ0NTU2Njc3ODg5OWFhYmJjY2RkZWVmZjAwMTEyMjMzNDQ1NTY2Nzc4ODk5YWFiYmNjZGRl ZWZmCiMgQW5kIHNvIG9uLi4gT25lIGxpbmUgcGVyIFIxS0guCiMgV2lsZGNhcmQgZW50cnk6CiMg VXBvbiByZWNlaXZpbmcgYSByZXF1ZXN0IGZyb20gYW4gUjFLSCBub3QgeWV0IGtub3duLCBpdCB3 aWxsIGJlIGFkZGVkIHRvIHRoaXMKIyBsaXN0IGFuZCB0aHVzIHdpbGwgcmVjZWl2ZSBwdXNoIG5v dGlmaWNhdGlvbnMuCiNyMWtoPTAwOjAwOjAwOjAwOjAwOjAwIDAwOjAwOjAwOjAwOjAwOjAwIDAw MTEyMjMzNDQ1NTY2Nzc4ODk5YWFiYmNjZGRlZWZmCgojIFRpbWVvdXQgKHNlY29uZHMpIGZvciBu ZXdseSBkaXNjb3ZlcmVkIFIwS0gvUjFLSCAoc2VlIHdpbGRjYXJkIGVudHJpZXMgYWJvdmUpCiMg U3BlY2lhbCB2YWx1ZXM6IDAgLT4gZG8gbm90IGV4cGlyZQojIFdhcm5pbmc6IGRvIG5vdCBjYWNo ZSBpbXBsaWVzIG5vIHNlcXVlbmNlIG51bWJlciB2YWxpZGF0aW9uIHdpdGggd2lsZGNhcmRzCiNy a2hfcG9zX3RpbWVvdXQ9ODY0MDAgKGRlZmF1bHQgPSAxIGRheSkKCiMgVGltZW91dCAobWlsbGlz ZWNvbmRzKSBmb3IgcmVxdWVzdGluZyBQTUstUjEgZnJvbSBSMEtIIHVzaW5nIFBVTEwgcmVxdWVz dAojIGFuZCBudW1iZXIgb2YgcmV0cmllcy4KI3JraF9wdWxsX3RpbWVvdXQ9MTAwMCAoZGVmYXVs dCA9IDEgc2Vjb25kKQojcmtoX3B1bGxfcmV0cmllcz00IChkZWZhdWx0KQoKIyBUaW1lb3V0IChz ZWNvbmRzKSBmb3Igbm9uIHJlcGx5aW5nIFIwS0ggKHNlZSB3aWxkY2FyZCBlbnRyaWVzIGFib3Zl KQojIFNwZWNpYWwgdmFsdWVzOiAwIC0+IGRvIG5vdCBjYWNoZQojIGRlZmF1bHQ6IDYwIHNlY29u ZHMKI3JraF9uZWdfdGltZW91dD02MAoKIyBOb3RlOiBUaGUgUjBLSC9SMUtIIGtleXMgdXNlZCB0 byBiZSAxMjgtYml0IGluIGxlbmd0aCBiZWZvcmUgdGhlIG1lc3NhZ2UKIyBmb3JtYXQgd2FzIGNo YW5nZWQuIFRoYXQgc2hvcnRlciBrZXkgbGVuZ3RoIGlzIHN0aWxsIHN1cHBvcnRlZCBmb3IgYmFj a3dhcmRzCiMgY29tcGF0aWJpbGl0eSBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlcy4gSWYgc3Vj aCBhIHNob3J0ZXIga2V5IGlzIHVzZWQsIGEKIyAyNTYtYml0IGtleSBpcyBkZXJpdmVkIGZyb20g aXQuIEZvciBuZXcgZGVwbG95bWVudHMsIGNvbmZpZ3VyaW5nIHRoZSAyNTYtYml0CiMga2V5IGlz IHJlY29tbWVuZGVkLgoKIyBXaGV0aGVyIFBNSy1SMSBwdXNoIGlzIGVuYWJsZWQgYXQgUjBLSAoj IDAgPSBkbyBub3QgcHVzaCBQTUstUjEgdG8gYWxsIGNvbmZpZ3VyZWQgUjFLSHMgKGRlZmF1bHQp CiMgMSA9IHB1c2ggUE1LLVIxIHRvIGFsbCBjb25maWd1cmVkIFIxS0hzIHdoZW5ldmVyIGEgbmV3 IFBNSy1SMCBpcyBkZXJpdmVkCiNwbWtfcjFfcHVzaD0xCgojIFdoZXRoZXIgdG8gZW5hYmxlIEZU LW92ZXItRFMKIyAwID0gRlQtb3Zlci1EUyBkaXNhYmxlZAojIDEgPSBGVC1vdmVyLURTIGVuYWJs ZWQgKGRlZmF1bHQpCiNmdF9vdmVyX2RzPTEKCiMgV2hldGhlciB0byBnZW5lcmF0ZSBGVCByZXNw b25zZSBsb2NhbGx5IGZvciBQU0sgbmV0d29ya3MKIyBUaGlzIGF2b2lkcyB1c2Ugb2YgUE1LLVIx IHB1c2gvcHVsbCBmcm9tIG90aGVyIEFQcyB3aXRoIEZULVBTSyBuZXR3b3JrcyBhcwojIHRoZSBy ZXF1aXJlZCBpbmZvcm1hdGlvbiAoUFNLIGFuZCBvdGhlciBzZXNzaW9uIGRhdGEpIGlzIGFscmVh ZHkgbG9jYWxseQojIGF2YWlsYWJsZS4KIyAwID0gZGlzYWJsZWQgKGRlZmF1bHQpCiMgMSA9IGVu YWJsZWQKI2Z0X3Bza19nZW5lcmF0ZV9sb2NhbD0wCgojIyMjIyBOZWlnaGJvciB0YWJsZSAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMg TWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBrZXB0IGluIEFQIHRhYmxlIChlaXRoZXIgZm9yIG5l aWdib3IgdGFibGUgb3IgZm9yCiMgZGV0ZWN0aW5nIE92ZXJsYXBwaW5nIExlZ2FjeSBCU1MgQ29u ZGl0aW9uKS4gVGhlIG9sZGVzdCBlbnRyeSB3aWxsIGJlCiMgcmVtb3ZlZCB3aGVuIGFkZGluZyBh IG5ldyBlbnRyeSB0aGF0IHdvdWxkIG1ha2UgdGhlIGxpc3QgZ3JvdyBvdmVyIHRoaXMKIyBsaW1p dC4gTm90ZSEgV0ZBIGNlcnRpZmljYXRpb24gZm9yIElFRUUgODAyLjExZyByZXF1aXJlcyB0aGF0 IE9MQkMgaXMKIyBlbmFibGVkLCBzbyB0aGlzIGZpZWxkIHNob3VsZCBub3QgYmUgc2V0IHRvIDAg d2hlbiB1c2luZyBJRUVFIDgwMi4xMWcuCiMgZGVmYXVsdDogMjU1CiNhcF90YWJsZV9tYXhfc2l6 ZT0yNTUKCiMgTnVtYmVyIG9mIHNlY29uZHMgb2Ygbm8gZnJhbWVzIHJlY2VpdmVkIGFmdGVyIHdo aWNoIGVudHJpZXMgbWF5IGJlIGRlbGV0ZWQKIyBmcm9tIHRoZSBBUCB0YWJsZS4gU2luY2UgcGFz c2l2ZSBzY2FubmluZyBpcyBub3QgdXN1YWxseSBwZXJmb3JtZWQgZnJlcXVlbnRseQojIHRoaXMg c2hvdWxkIG5vdCBiZSBzZXQgdG8gdmVyeSBzbWFsbCB2YWx1ZS4gSW4gYWRkaXRpb24sIHRoZXJl IGlzIG5vCiMgZ3VhcmFudGVlIHRoYXQgZXZlcnkgc2NhbiBjeWNsZSB3aWxsIHJlY2VpdmUgYmVh Y29uIGZyYW1lcyBmcm9tIHRoZQojIG5laWdoYm9yaW5nIEFQcy4KIyBkZWZhdWx0OiA2MAojYXBf dGFibGVfZXhwaXJhdGlvbl90aW1lPTM2MDAKCiMgTWF4aW11bSBudW1iZXIgb2Ygc3RhdGlvbnMg dG8gdHJhY2sgb24gdGhlIG9wZXJhdGluZyBjaGFubmVsCiMgVGhpcyBjYW4gYmUgdXNlZCB0byBk ZXRlY3QgZHVhbGJhbmQgY2FwYWJsZSBzdGF0aW9ucyBiZWZvcmUgdGhleSBoYXZlCiMgYXNzb2Np YXRlZCwgZS5nLiwgdG8gcHJvdmlkZSBndWlkYW5jZSBvbiB3aGljaCBjb2xvY2F0ZWQgQlNTIHRv IHVzZS4KIyBEZWZhdWx0OiAwIChkaXNhYmxlZCkKI3RyYWNrX3N0YV9tYXhfbnVtPTEwMAoKIyBN YXhpbXVtIGFnZSBvZiBhIHN0YXRpb24gdHJhY2tpbmcgZW50cnkgaW4gc2Vjb25kcwojIERlZmF1 bHQ6IDE4MAojdHJhY2tfc3RhX21heF9hZ2U9MTgwCgojIERvIG5vdCByZXBseSB0byBncm91cC1h ZGRyZXNzZWQgUHJvYmUgUmVxdWVzdCBmcm9tIGEgc3RhdGlvbiB0aGF0IHdhcyBzZWVuIG9uCiMg YW5vdGhlciByYWRpby4KIyBEZWZhdWx0OiBEaXNhYmxlZAojCiMgVGhpcyBjYW4gYmUgdXNlZCB3 aXRoIGVuYWJsZWQgdHJhY2tfc3RhX21heF9udW0gY29uZmlndXJhdGlvbiBvbiBhbm90aGVyCiMg aW50ZXJmYWNlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgaG9zdGFwZCBwcm9jZXNzIHRvIHJlc3Ry aWN0IFByb2JlIFJlcXVlc3QKIyBmcmFtZSBoYW5kbGluZyBmcm9tIHJlcGx5aW5nIHRvIGdyb3Vw LWFkZHJlc3NlZCBQcm9iZSBSZXF1ZXN0IGZyYW1lcyBmcm9tIGEKIyBzdGF0aW9uIHRoYXQgaGFz IGJlZW4gZGV0ZWN0ZWQgdG8gYmUgY2FwYWJsZSBvZiBvcGVyYXRpbmcgb24gYW5vdGhlciBiYW5k LAojIGUuZy4sIHRvIHRyeSB0byByZWR1Y2UgbGlrZWxpaG9vZCBvZiB0aGUgc3RhdGlvbiBzZWxl Y3RpbmcgYSAyLjQgR0h6IEJTUyB3aGVuCiMgdGhlIEFQIG9wZXJhdGVzIGJvdGggYSAyLjQgR0h6 IGFuZCA1IEdIeiBCU1MgY29uY3VycmVudGx5LgojCiMgTm90ZTogRW5hYmxpbmcgdGhpcyBjYW4g Y2F1c2UgY29ubmVjdGl2aXR5IGlzc3VlcyBhbmQgaW5jcmVhc2UgbGF0ZW5jeSBmb3IKIyBkaXNj b3ZlcmluZyB0aGUgQVAuCiNub19wcm9iZV9yZXNwX2lmX3NlZW5fb249d2xhbjEKCiMgUmVqZWN0 IGF1dGhlbnRpY2F0aW9uIGZyb20gYSBzdGF0aW9uIHRoYXQgd2FzIHNlZW4gb24gYW5vdGhlciBy YWRpby4KIyBEZWZhdWx0OiBEaXNhYmxlZAojCiMgVGhpcyBjYW4gYmUgdXNlZCB3aXRoIGVuYWJs ZWQgdHJhY2tfc3RhX21heF9udW0gY29uZmlndXJhdGlvbiBvbiBhbm90aGVyCiMgaW50ZXJmYWNl IGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgaG9zdGFwZCBwcm9jZXNzIHRvIHJlamVjdCBhdXRoZW50 aWNhdGlvbgojIGF0dGVtcHRzIGZyb20gYSBzdGF0aW9uIHRoYXQgaGFzIGJlZW4gZGV0ZWN0ZWQg dG8gYmUgY2FwYWJsZSBvZiBvcGVyYXRpbmcgb24KIyBhbm90aGVyIGJhbmQsIGUuZy4sIHRvIHRy eSB0byByZWR1Y2UgbGlrZWxpaG9vZCBvZiB0aGUgc3RhdGlvbiBzZWxlY3RpbmcgYQojIDIuNCBH SHogQlNTIHdoZW4gdGhlIEFQIG9wZXJhdGVzIGJvdGggYSAyLjQgR0h6IGFuZCA1IEdIeiBCU1Mg Y29uY3VycmVudGx5LgojCiMgTm90ZTogRW5hYmxpbmcgdGhpcyBjYW4gY2F1c2UgY29ubmVjdGl2 aXR5IGlzc3VlcyBhbmQgaW5jcmVhc2UgbGF0ZW5jeSBmb3IKIyBjb25uZWN0aW5nIHdpdGggdGhl IEFQLgojbm9fYXV0aF9pZl9zZWVuX29uPXdsYW4xCgojIyMjIyBXaS1GaSBQcm90ZWN0ZWQgU2V0 dXAgKFdQUykgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoj IFdQUyBzdGF0ZQojIDAgPSBXUFMgZGlzYWJsZWQgKGRlZmF1bHQpCiMgMSA9IFdQUyBlbmFibGVk LCBub3QgY29uZmlndXJlZAojIDIgPSBXUFMgZW5hYmxlZCwgY29uZmlndXJlZAojd3BzX3N0YXRl PTIKCiMgV2hldGhlciB0byBtYW5hZ2UgdGhpcyBpbnRlcmZhY2UgaW5kZXBlbmRlbnRseSBmcm9t IG90aGVyIFdQUyBpbnRlcmZhY2VzCiMgQnkgZGVmYXVsdCwgYSBzaW5nbGUgaG9zdGFwZCBwcm9j ZXNzIGFwcGxpZXMgV1BTIG9wZXJhdGlvbnMgdG8gYWxsIGNvbmZpZ3VyZWQKIyBpbnRlcmZhY2Vz LiBUaGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBkaXNhYmxlIHRoYXQgYmVoYXZpb3IgZm9y IGEgc3Vic2V0CiMgb2YgaW50ZXJmYWNlcy4gSWYgdGhpcyBpcyBzZXQgdG8gbm9uLXplcm8gZm9y IGFuIGludGVyZmFjZSwgV1BTIGNvbW1hbmRzCiMgaXNzdWVkIG9uIHRoYXQgaW50ZXJmYWNlIGRv IG5vdCBhcHBseSB0byBvdGhlciBpbnRlcmZhY2VzIGFuZCBXUFMgb3BlcmF0aW9ucwojIHBlcmZv cm1lZCBvbiBvdGhlciBpbnRlcmZhY2VzIGRvIG5vdCBhZmZlY3QgdGhpcyBpbnRlcmZhY2UuCiN3 cHNfaW5kZXBlbmRlbnQ9MAoKIyBBUCBjYW4gYmUgY29uZmlndXJlZCBpbnRvIGEgbG9ja2VkIHN0 YXRlIHdoZXJlIG5ldyBXUFMgUmVnaXN0cmFyIGFyZSBub3QKIyBhY2NlcHRlZCwgYnV0IHByZXZp b3VzbHkgYXV0aG9yaXplZCBSZWdpc3RyYXJzIChpbmNsdWRpbmcgdGhlIGludGVybmFsIG9uZSkK IyBjYW4gY29udGludWUgdG8gYWRkIG5ldyBFbnJvbGxlZXMuCiNhcF9zZXR1cF9sb2NrZWQ9MQoK IyBVbml2ZXJzYWxseSBVbmlxdWUgSURlbnRpZmllciAoVVVJRDsgc2VlIFJGQyA0MTIyKSBvZiB0 aGUgZGV2aWNlCiMgVGhpcyB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBVVUlEIGZvciB0aGUgaW50ZXJu YWwgV1BTIFJlZ2lzdHJhci4gSWYgdGhlIEFQCiMgaXMgYWxzbyB1c2luZyBVUG5QLCB0aGlzIHZh bHVlIHNob3VsZCBiZSBzZXQgdG8gdGhlIGRldmljZSdzIFVQblAgVVVJRC4KIyBJZiBub3QgY29u ZmlndXJlZCwgVVVJRCB3aWxsIGJlIGdlbmVyYXRlZCBiYXNlZCBvbiB0aGUgbG9jYWwgTUFDIGFk ZHJlc3MuCiN1dWlkPTEyMzQ1Njc4LTlhYmMtZGVmMC0xMjM0LTU2Nzg5YWJjZGVmMAoKIyBOb3Rl OiBJZiB3cGFfcHNrX2ZpbGUgaXMgc2V0LCBXUFMgaXMgdXNlZCB0byBnZW5lcmF0ZSByYW5kb20s IHBlci1kZXZpY2UgUFNLcwojIHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgd3BhX3Bza19m aWxlLiBJZiB3cGFfcHNrX2ZpbGUgaXMgbm90IHNldCwgdGhlCiMgZGVmYXVsdCBQU0sgKHdwYV9w c2svd3BhX3Bhc3NwaHJhc2UpIHdpbGwgYmUgZGVsaXZlcmVkIHRvIEVucm9sbGVlcy4gVXNlIG9m CiMgcGVyLWRldmljZSBQU0tzIGlzIHJlY29tbWVuZGVkIGFzIHRoZSBtb3JlIHNlY3VyZSBvcHRp b24gKGkuZS4sIG1ha2Ugc3VyZSB0bwojIHNldCB3cGFfcHNrX2ZpbGUgd2hlbiB1c2luZyBXUFMg d2l0aCBXUEEtUFNLKS4KCiMgV2hlbiBhbiBFbnJvbGxlZSByZXF1ZXN0cyBhY2Nlc3MgdG8gdGhl IG5ldHdvcmsgd2l0aCBQSU4gbWV0aG9kLCB0aGUgRW5yb2xsZWUKIyBQSU4gd2lsbCBuZWVkIHRv IGJlIGVudGVyZWQgZm9yIHRoZSBSZWdpc3RyYXIuIFBJTiByZXF1ZXN0IG5vdGlmaWNhdGlvbnMg YXJlCiMgc2VudCB0byBob3N0YXBkIGN0cmxfaWZhY2UgbW9uaXRvci4gSW4gYWRkaXRpb24sIHRo ZXkgY2FuIGJlIHdyaXR0ZW4gdG8gYQojIHRleHQgZmlsZSB0aGF0IGNvdWxkIGJlIHVzZWQsIGUu Zy4sIHRvIHBvcHVsYXRlIHRoZSBBUCBhZG1pbmlzdHJhdGlvbiBVSSB3aXRoCiMgcGVuZGluZyBQ SU4gcmVxdWVzdHMuIElmIHRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc2V0LCB0aGUgUElOIHJl cXVlc3RzIHdpbGwKIyBiZSB3cml0dGVuIHRvIHRoZSBjb25maWd1cmVkIGZpbGUuCiN3cHNfcGlu X3JlcXVlc3RzPS92YXIvcnVuL2hvc3RhcGRfd3BzX3Bpbl9yZXF1ZXN0cwoKIyBEZXZpY2UgTmFt ZQojIFVzZXItZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgZGV2aWNlOyB1cCB0byAzMiBvY3RldHMg ZW5jb2RlZCBpbiBVVEYtOAojZGV2aWNlX25hbWU9V2lyZWxlc3MgQVAKCiMgTWFudWZhY3R1cmVy CiMgVGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgZGV2aWNlICh1cCB0byA2NCBBU0NJSSBjaGFyYWN0 ZXJzKQojbWFudWZhY3R1cmVyPUNvbXBhbnkKCiMgTW9kZWwgTmFtZQojIE1vZGVsIG9mIHRoZSBk ZXZpY2UgKHVwIHRvIDMyIEFTQ0lJIGNoYXJhY3RlcnMpCiNtb2RlbF9uYW1lPVdBUAoKIyBNb2Rl bCBOdW1iZXIKIyBBZGRpdGlvbmFsIGRldmljZSBkZXNjcmlwdGlvbiAodXAgdG8gMzIgQVNDSUkg Y2hhcmFjdGVycykKI21vZGVsX251bWJlcj0xMjMKCiMgU2VyaWFsIE51bWJlcgojIFNlcmlhbCBu dW1iZXIgb2YgdGhlIGRldmljZSAodXAgdG8gMzIgY2hhcmFjdGVycykKI3NlcmlhbF9udW1iZXI9 MTIzNDUKCiMgUHJpbWFyeSBEZXZpY2UgVHlwZQojIFVzZWQgZm9ybWF0OiA8Y2F0ZWc+LTxPVUk+ LTxzdWJjYXRlZz4KIyBjYXRlZyA9IENhdGVnb3J5IGFzIGFuIGludGVnZXIgdmFsdWUKIyBPVUkg PSBPVUkgYW5kIHR5cGUgb2N0ZXQgYXMgYSA0LW9jdGV0IGhleC1lbmNvZGVkIHZhbHVlOyAwMDUw RjIwNCBmb3IKIyAgICAgICBkZWZhdWx0IFdQUyBPVUkKIyBzdWJjYXRlZyA9IE9VSS1zcGVjaWZp YyBTdWIgQ2F0ZWdvcnkgYXMgYW4gaW50ZWdlciB2YWx1ZQojIEV4YW1wbGVzOgojICAgMS0wMDUw RjIwNC0xIChDb21wdXRlciAvIFBDKQojICAgMS0wMDUwRjIwNC0yIChDb21wdXRlciAvIFNlcnZl cikKIyAgIDUtMDA1MEYyMDQtMSAoU3RvcmFnZSAvIE5BUykKIyAgIDYtMDA1MEYyMDQtMSAoTmV0 d29yayBJbmZyYXN0cnVjdHVyZSAvIEFQKQojZGV2aWNlX3R5cGU9Ni0wMDUwRjIwNC0xCgojIE9T IFZlcnNpb24KIyA0LW9jdGV0IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbiBudW1iZXIgKGhleCBz dHJpbmcpCiNvc192ZXJzaW9uPTAxMDIwMzAwCgojIENvbmZpZyBNZXRob2RzCiMgTGlzdCBvZiB0 aGUgc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb24gbWV0aG9kcwojIEF2YWlsYWJsZSBtZXRob2RzOiB1 c2JhIGV0aGVybmV0IGxhYmVsIGRpc3BsYXkgZXh0X25mY190b2tlbiBpbnRfbmZjX3Rva2VuCiMJ bmZjX2ludGVyZmFjZSBwdXNoX2J1dHRvbiBrZXlwYWQgdmlydHVhbF9kaXNwbGF5IHBoeXNpY2Fs X2Rpc3BsYXkKIwl2aXJ0dWFsX3B1c2hfYnV0dG9uIHBoeXNpY2FsX3B1c2hfYnV0dG9uCiNjb25m aWdfbWV0aG9kcz1sYWJlbCB2aXJ0dWFsX2Rpc3BsYXkgdmlydHVhbF9wdXNoX2J1dHRvbiBrZXlw YWQKCiMgV1BTIGNhcGFiaWxpdHkgZGlzY292ZXJ5IHdvcmthcm91bmQgZm9yIFBCQyB3aXRoIFdp bmRvd3MgNwojIFdpbmRvd3MgNyB1c2VzIGluY29ycmVjdCB3YXkgb2YgZmlndXJpbmcgb3V0IEFQ J3MgV1BTIGNhcGFiaWxpdGllcyBieSBhY3RpbmcKIyBhcyBhIFJlZ2lzdHJhciBhbmQgdXNpbmcg TTEgZnJvbSB0aGUgQVAuIFRoZSBjb25maWcgbWV0aG9kcyBhdHRyaWJ1dGUgaW4gdGhhdAojIG1l c3NhZ2UgaXMgc3VwcG9zZWQgdG8gaW5kaWNhdGUgb25seSB0aGUgY29uZmlndXJhdGlvbiBtZXRo b2Qgc3VwcG9ydGVkIGJ5CiMgdGhlIEFQIGluIEVucm9sbGVlIHJvbGUsIGkuZS4sIHRvIGFkZCBh biBleHRlcm5hbCBSZWdpc3RyYXIuIEZvciB0aGF0IGNhc2UsCiMgUEJDIHNoYWxsIG5vdCBiZSB1 c2VkIGFuZCBhcyBzdWNoLCB0aGUgUHVzaEJ1dHRvbiBjb25maWcgbWV0aG9kIGlzIHJlbW92ZWQK IyBmcm9tIE0xIGJ5IGRlZmF1bHQuIElmIHBiY19pbl9tMT0xIGlzIGluY2x1ZGVkIGluIHRoZSBj b25maWd1cmF0aW9uIGZpbGUsCiMgdGhlIFB1c2hCdXR0b24gY29uZmlnIG1ldGhvZCBpcyBsZWZ0 IGluIE0xIChpZiBpbmNsdWRlZCBpbiBjb25maWdfbWV0aG9kcwojIHBhcmFtZXRlcikgdG8gYWxs b3cgV2luZG93cyA3IHRvIHVzZSBQQkMgaW5zdGVhZCBvZiBQSU4gKGUuZy4sIGZyb20gYSBsYWJl bAojIGluIHRoZSBBUCkuCiNwYmNfaW5fbTE9MQoKIyBTdGF0aWMgYWNjZXNzIHBvaW50IFBJTiBm b3IgaW5pdGlhbCBjb25maWd1cmF0aW9uIGFuZCBhZGRpbmcgUmVnaXN0cmFycwojIElmIG5vdCBz ZXQsIGhvc3RhcGQgd2lsbCBub3QgYWxsb3cgZXh0ZXJuYWwgV1BTIFJlZ2lzdHJhcnMgdG8gY29u dHJvbCB0aGUKIyBhY2Nlc3MgcG9pbnQuIFRoZSBBUCBQSU4gY2FuIGFsc28gYmUgc2V0IGF0IHJ1 bnRpbWUgd2l0aCBob3N0YXBkX2NsaQojIHdwc19hcF9waW4gY29tbWFuZC4gVXNlIG9mIHRlbXBv cmFyeSAoZW5hYmxlZCBieSB1c2VyIGFjdGlvbikgYW5kIHJhbmRvbQojIEFQIFBJTiBpcyBtdWNo IG1vcmUgc2VjdXJlIHRoYW4gY29uZmlndXJpbmcgYSBzdGF0aWMgQVAgUElOIGhlcmUuIEFzIHN1 Y2gsCiMgdXNlIG9mIHRoZSBhcF9waW4gcGFyYW1ldGVyIGlzIG5vdCByZWNvbW1lbmRlZCBpZiB0 aGUgQVAgZGV2aWNlIGhhcyBtZWFucyBmb3IKIyBkaXNwbGF5aW5nIGEgcmFuZG9tIFBJTi4KI2Fw X3Bpbj0xMjM0NTY3MAoKIyBTa2lwIGJ1aWxkaW5nIG9mIGF1dG9tYXRpYyBXUFMgY3JlZGVudGlh bAojIFRoaXMgY2FuIGJlIHVzZWQgdG8gYWxsb3cgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVk IENyZWRlbnRpYWwgYXR0cmlidXRlIHRvCiMgYmUgcmVwbGFjZWQgd2l0aCBwcmUtY29uZmlndXJl ZCBDcmVkZW50aWFsKHMpLgojc2tpcF9jcmVkX2J1aWxkPTEKCiMgQWRkaXRpb25hbCBDcmVkZW50 aWFsIGF0dHJpYnV0ZShzKQojIFRoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCBwcmUtY29u ZmlndXJlZCBDcmVkZW50aWFsIGF0dHJpYnV0ZXMgaW50byBNOAojIG1lc3NhZ2Ugd2hlbiBhY3Rp bmcgYXMgYSBSZWdpc3RyYXIuIElmIHNraXBfY3JlZF9idWlsZD0xLCB0aGlzIGRhdGEgd2lsbCBh bHNvCiMgYmUgYWJsZSB0byBvdmVycmlkZSB0aGUgQ3JlZGVudGlhbCBhdHRyaWJ1dGUgdGhhdCB3 b3VsZCBoYXZlIG90aGVyd2lzZSBiZWVuCiMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYmFzZWQg b24gbmV0d29yayBjb25maWd1cmF0aW9uLiBUaGlzIGNvbmZpZ3VyYXRpb24KIyBvcHRpb24gcG9p bnRzIHRvIGFuIGV4dGVybmFsIGZpbGUgdGhhdCBtdWNoIGNvbnRhaW4gdGhlIFdQUyBDcmVkZW50 aWFsCiMgYXR0cmlidXRlKHMpIGFzIGJpbmFyeSBkYXRhLgojZXh0cmFfY3JlZD1ob3N0YXBkLmNy ZWQKCiMgQ3JlZGVudGlhbCBwcm9jZXNzaW5nCiMgICAwID0gcHJvY2VzcyByZWNlaXZlZCBjcmVk ZW50aWFscyBpbnRlcm5hbGx5IChkZWZhdWx0KQojICAgMSA9IGRvIG5vdCBwcm9jZXNzIHJlY2Vp dmVkIGNyZWRlbnRpYWxzOyBqdXN0IHBhc3MgdGhlbSBvdmVyIGN0cmxfaWZhY2UgdG8KIwlleHRl cm5hbCBwcm9ncmFtKHMpCiMgICAyID0gcHJvY2VzcyByZWNlaXZlZCBjcmVkZW50aWFscyBpbnRl cm5hbGx5IGFuZCBwYXNzIHRoZW0gb3ZlciBjdHJsX2lmYWNlCiMJdG8gZXh0ZXJuYWwgcHJvZ3Jh bShzKQojIE5vdGU6IFdpdGggd3BzX2NyZWRfcHJvY2Vzc2luZz0xLCBza2lwX2NyZWRfYnVpbGQg c2hvdWxkIGJlIHNldCB0byAxIGFuZAojIGV4dHJhX2NyZWQgYmUgdXNlZCB0byBwcm92aWRlIHRo ZSBDcmVkZW50aWFsIGRhdGEgZm9yIEVucm9sbGVlcy4KIwojIHdwc19jcmVkX3Byb2Nlc3Npbmc9 MSB3aWxsIGRpc2FibGVkIGF1dG9tYXRpYyB1cGRhdGVzIG9mIGhvc3RhcGQuY29uZiBmaWxlCiMg Ym90aCBmb3IgQ3JlZGVudGlhbCBwcm9jZXNzaW5nIGFuZCBmb3IgbWFya2luZyBBUCBTZXR1cCBM b2NrZWQgYmFzZWQgb24KIyB2YWxpZGF0aW9uIGZhaWx1cmVzIG9mIEFQIFBJTi4gQW4gZXh0ZXJu YWwgcHJvZ3JhbSBpcyByZXNwb25zaWJsZSBvbiB1cGRhdGluZwojIHRoZSBjb25maWd1cmF0aW9u IGFwcHJvcHJpYXRlbHkgaW4gdGhpcyBjYXNlLgojd3BzX2NyZWRfcHJvY2Vzc2luZz0wCgojIEFQ IFNldHRpbmdzIEF0dHJpYnV0ZXMgZm9yIE03CiMgQnkgZGVmYXVsdCwgaG9zdGFwZCBnZW5lcmF0 ZXMgdGhlIEFQIFNldHRpbmdzIEF0dHJpYnV0ZXMgZm9yIE03IGJhc2VkIG9uIHRoZQojIGN1cnJl bnQgY29uZmlndXJhdGlvbi4gSXQgaXMgcG9zc2libGUgdG8gb3ZlcnJpZGUgdGhpcyBieSBwcm92 aWRpbmcgYSBmaWxlCiMgd2l0aCBwcmUtY29uZmlndXJlZCBhdHRyaWJ1dGVzLiBUaGlzIGlzIHNp bWlsYXIgdG8gZXh0cmFfY3JlZCBmaWxlIGZvcm1hdCwKIyBidXQgdGhlIEFQIFNldHRpbmdzIGF0 dHJpYnV0ZXMgYXJlIG5vdCBlbmNhcHN1bGF0ZWQgaW4gYSBDcmVkZW50aWFsCiMgYXR0cmlidXRl LgojYXBfc2V0dGluZ3M9aG9zdGFwZC5hcF9zZXR0aW5ncwoKIyBXUFMgVVBuUCBpbnRlcmZhY2UK IyBJZiBzZXQsIHN1cHBvcnQgZm9yIGV4dGVybmFsIFJlZ2lzdHJhcnMgaXMgZW5hYmxlZC4KI3Vw bnBfaWZhY2U9YnIwCgojIEZyaWVuZGx5IE5hbWUgKHJlcXVpcmVkIGZvciBVUG5QKQojIFNob3J0 IGRlc2NyaXB0aW9uIGZvciBlbmQgdXNlLiBTaG91bGQgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3Rl cnMuCiNmcmllbmRseV9uYW1lPVdQUyBBY2Nlc3MgUG9pbnQKCiMgTWFudWZhY3R1cmVyIFVSTCAo b3B0aW9uYWwgZm9yIFVQblApCiNtYW51ZmFjdHVyZXJfdXJsPWh0dHA6Ly93d3cuZXhhbXBsZS5j b20vCgojIE1vZGVsIERlc2NyaXB0aW9uIChyZWNvbW1lbmRlZCBmb3IgVVBuUCkKIyBMb25nIGRl c2NyaXB0aW9uIGZvciBlbmQgdXNlci4gU2hvdWxkIGJlIGxlc3MgdGhhbiAxMjggY2hhcmFjdGVy cy4KI21vZGVsX2Rlc2NyaXB0aW9uPVdpcmVsZXNzIEFjY2VzcyBQb2ludAoKIyBNb2RlbCBVUkwg KG9wdGlvbmFsIGZvciBVUG5QKQojbW9kZWxfdXJsPWh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbW9k ZWwvCgojIFVuaXZlcnNhbCBQcm9kdWN0IENvZGUgKG9wdGlvbmFsIGZvciBVUG5QKQojIDEyLWRp Z2l0LCBhbGwtbnVtZXJpYyBjb2RlIHRoYXQgaWRlbnRpZmllcyB0aGUgY29uc3VtZXIgcGFja2Fn ZS4KI3VwYz0xMjM0NTY3ODkwMTIKCiMgV1BTIFJGIEJhbmRzIChhID0gNUcsIGIgPSAyLjRHLCBn ID0gMi40RywgYWcgPSBkdWFsIGJhbmQsIGFkID0gNjAgR0h6KQojIFRoaXMgdmFsdWUgc2hvdWxk IGJlIHNldCBhY2NvcmRpbmcgdG8gUkYgYmFuZChzKSBzdXBwb3J0ZWQgYnkgdGhlIEFQIGlmCiMg aHdfbW9kZSBpcyBub3Qgc2V0LiBGb3IgZHVhbCBiYW5kIGR1YWwgY29uY3VycmVudCBkZXZpY2Vz LCB0aGlzIG5lZWRzIHRvIGJlCiMgc2V0IHRvIGFnIHRvIGFsbG93IGJvdGggUkYgYmFuZHMgdG8g YmUgYWR2ZXJ0aXplZC4KI3dwc19yZl9iYW5kcz1hZwoKIyBORkMgcGFzc3dvcmQgdG9rZW4gZm9y IFdQUwojIFRoZXNlIHBhcmFtZXRlcnMgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlIGEgZml4ZWQg TkZDIHBhc3N3b3JkIHRva2VuIGZvciB0aGUKIyBBUC4gVGhpcyBjYW4gYmUgZ2VuZXJhdGVkLCBl LmcuLCB3aXRoIG5mY19wd190b2tlbiBmcm9tIHdwYV9zdXBwbGljYW50LiBXaGVuCiMgdGhlc2Ug cGFyYW1ldGVycyBhcmUgdXNlZCwgdGhlIEFQIGlzIGFzc3VtZWQgdG8gYmUgZGVwbG95ZWQgd2l0 aCBhIE5GQyB0YWcKIyB0aGF0IGluY2x1ZGVzIHRoZSBtYXRjaGluZyBORkMgcGFzc3dvcmQgdG9r ZW4gKGUuZy4sIHdyaXR0ZW4gYmFzZWQgb24gdGhlCiMgTkRFRiByZWNvcmQgZnJvbSBuZmNfcHdf dG9rZW4pLgojCiN3cHNfbmZjX2Rldl9wd19pZDogRGV2aWNlIFBhc3N3b3JkIElEICgxNi4uNjU1 MzUpCiN3cHNfbmZjX2RoX3B1YmtleTogSGV4ZHVtcCBvZiBESCBQdWJsaWMgS2V5CiN3cHNfbmZj X2RoX3ByaXZrZXk6IEhleGR1bXAgb2YgREggUHJpdmF0ZSBLZXkKI3dwc19uZmNfZGV2X3B3OiBI ZXhkdW1wIG9mIERldmljZSBQYXNzd29yZAoKIyMjIyMgV2ktRmkgRGlyZWN0IChQMlApICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBFbmFi bGUgUDJQIERldmljZSBtYW5hZ2VtZW50CiNtYW5hZ2VfcDJwPTEKCiMgQWxsb3cgY3Jvc3MgY29u bmVjdGlvbgojYWxsb3dfY3Jvc3NfY29ubmVjdGlvbj0xCgojIyMjIFRETFMgKElFRUUgODAyLjEx ei0yMDEwKSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CgojIFByb2hpYml0IHVzZSBvZiBURExTIGluIHRoaXMgQlNTCiN0ZGxzX3Byb2hpYml0PTEKCiMg UHJvaGliaXQgdXNlIG9mIFRETFMgQ2hhbm5lbCBTd2l0Y2hpbmcgaW4gdGhpcyBCU1MKI3RkbHNf cHJvaGliaXRfY2hhbl9zd2l0Y2g9MQoKIyMjIyMgSUVFRSA4MDIuMTF2LTIwMTEgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBUaW1lIGFk dmVydGlzZW1lbnQKIyAwID0gZGlzYWJsZWQgKGRlZmF1bHQpCiMgMiA9IFVUQyB0aW1lIGF0IHdo aWNoIHRoZSBUU0YgdGltZXIgaXMgMAojdGltZV9hZHZlcnRpc2VtZW50PTIKCiMgTG9jYWwgdGlt ZSB6b25lIGFzIHNwZWNpZmllZCBpbiA4LjMgb2YgSUVFRSBTdGQgMTAwMy4xLTIwMDQ6CiMgc3Rk b2Zmc2V0W2RzdFtvZmZzZXRdWyxzdGFydFsvdGltZV0sZW5kWy90aW1lXV1dCiN0aW1lX3pvbmU9 RVNUNQoKIyBXTk0tU2xlZXAgTW9kZSAoZXh0ZW5kZWQgc2xlZXAgbW9kZSBmb3Igc3RhdGlvbnMp CiMgMCA9IGRpc2FibGVkIChkZWZhdWx0KQojIDEgPSBlbmFibGVkIChhbGxvdyBzdGF0aW9ucyB0 byB1c2UgV05NLVNsZWVwIE1vZGUpCiN3bm1fc2xlZXBfbW9kZT0xCgojIFdOTS1TbGVlcCBNb2Rl IEdUSy9JR1RLIHdvcmthcm91bmQKIyBOb3JtYWxseSwgV05NLVNsZWVwIE1vZGUgZXhpdCB3aXRo IG1hbmFnZW1lbnQgZnJhbWUgcHJvdGVjdGlvbiBuZWdvdGlhdGVkCiMgd291bGQgcmVzdWx0IGlu IHRoZSBjdXJyZW50IEdUSy9JR1RLIGdldHRpbmcgYWRkZWQgaW50byB0aGUgV05NLVNsZWVwIE1v ZGUKIyBSZXNwb25zZSBmcmFtZS4gU29tZSBzdGF0aW9uIGltcGxlbWVudGF0aW9ucyBtYXkgaGF2 ZSBhIHZ1bG5lcmFiaWxpdHkgdGhhdAojIHJlc3VsdHMgaW4gR1RLL0lHVEsgcmVpbnN0YWxsYXRp b24gYmFzZWQgb24gdGhpcyBmcmFtZSBiZWluZyByZXBsYXllZC4gVGhpcwojIGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhhdCBiZWhhdmlvciBhbmQgdXNl IEVBUE9MLUtleQojIGZyYW1lcyBmb3IgR1RLL0lHVEsgdXBkYXRlIGluc3RlYWQuIFRoaXMgd291 bGQgbGlrZWx5IGJlIG9ubHkgdXNlZCB3aXRoCiMgd3BhX2Rpc2FibGVfZWFwb2xfa2V5X3JldHJp ZXM9MSB0aGF0IGVuYWJsZXMgYSB3b3JrYXJvdW5kIGZvciBzaW1pbGFyIGlzc3VlcwojIHdpdGgg RUFQT0wtS2V5LiBUaGlzIGlzIHJlbGF0ZWQgdG8gc3RhdGlvbiBzaWRlIHZ1bG5lcmFiaWxpdGll cyBDVkUtMjAxNy0xMzA4NwojIGFuZCBDVkUtMjAxNy0xMzA4OC4gVG8gZW5hYmxlIHRoaXMgQVAt c2lkZSB3b3JrYXJvdW5kLCBzZXQgdGhlIHBhcmFtZXRlciB0byAxLgojd25tX3NsZWVwX21vZGVf bm9fa2V5cz0wCgojIEJTUyBUcmFuc2l0aW9uIE1hbmFnZW1lbnQKIyAwID0gZGlzYWJsZWQgKGRl ZmF1bHQpCiMgMSA9IGVuYWJsZWQKI2Jzc190cmFuc2l0aW9uPTEKCiMgUHJveHkgQVJQCiMgMCA9 IGRpc2FibGVkIChkZWZhdWx0KQojIDEgPSBlbmFibGVkCiNwcm94eV9hcnA9MQoKIyBJUHY2IE5l aWdoYm9yIEFkdmVydGlzZW1lbnQgbXVsdGljYXN0LXRvLXVuaWNhc3QgY29udmVyc2lvbgojIFRo aXMgY2FuIGJlIHVzZWQgd2l0aCBQcm94eSBBUlAgdG8gYWxsb3cgbXVsdGljYXN0IE5BcyB0byBi ZSBmb3J3YXJkZWQgdG8KIyBhc3NvY2lhdGVkIFNUQXMgdXNpbmcgbGluayBsYXllciB1bmljYXN0 IGRlbGl2ZXJ5LgojIDAgPSBkaXNhYmxlZCAoZGVmYXVsdCkKIyAxID0gZW5hYmxlZAojbmFfbWNh c3RfdG9fdWNhc3Q9MAoKIyMjIyMgSUVFRSA4MDIuMTF1LTIwMTEgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBFbmFibGUgSW50ZXJ3b3Jr aW5nIHNlcnZpY2UKI2ludGVyd29ya2luZz0xCgojIEFjY2VzcyBOZXR3b3JrIFR5cGUKIyAwID0g UHJpdmF0ZSBuZXR3b3JrCiMgMSA9IFByaXZhdGUgbmV0d29yayB3aXRoIGd1ZXN0IGFjY2Vzcwoj IDIgPSBDaGFyZ2VhYmxlIHB1YmxpYyBuZXR3b3JrCiMgMyA9IEZyZWUgcHVibGljIG5ldHdvcmsK IyA0ID0gUGVyc29uYWwgZGV2aWNlIG5ldHdvcmsKIyA1ID0gRW1lcmdlbmN5IHNlcnZpY2VzIG9u bHkgbmV0d29yawojIDE0ID0gVGVzdCBvciBleHBlcmltZW50YWwKIyAxNSA9IFdpbGRjYXJkCiNh Y2Nlc3NfbmV0d29ya190eXBlPTAKCiMgV2hldGhlciB0aGUgbmV0d29yayBwcm92aWRlcyBjb25u ZWN0aXZpdHkgdG8gdGhlIEludGVybmV0CiMgMCA9IFVuc3BlY2lmaWVkCiMgMSA9IE5ldHdvcmsg cHJvdmlkZXMgY29ubmVjdGl2aXR5IHRvIHRoZSBJbnRlcm5ldAojaW50ZXJuZXQ9MQoKIyBBZGRp dGlvbmFsIFN0ZXAgUmVxdWlyZWQgZm9yIEFjY2VzcwojIE5vdGU6IFRoaXMgaXMgb25seSB1c2Vk IHdpdGggb3BlbiBuZXR3b3JrLCBpLmUuLCBBU1JBIHNoYWxsIG5lIHNldCB0byAwIGlmCiMgUlNO IGlzIHVzZWQuCiNhc3JhPTAKCiMgRW1lcmdlbmN5IHNlcnZpY2VzIHJlYWNoYWJsZQojZXNyPTAK CiMgVW5hdXRoZW50aWNhdGVkIGVtZXJnZW5jeSBzZXJ2aWNlIGFjY2Vzc2libGUKI3Vlc2E9MAoK IyBWZW51ZSBJbmZvIChvcHRpb25hbCkKIyBUaGUgYXZhaWxhYmxlIHZhbHVlcyBhcmUgZGVmaW5l ZCBpbiBJRUVFIFN0ZCA4MDIuMTF1LTIwMTEsIDcuMy4xLjM0LgojIEV4YW1wbGUgdmFsdWVzIChn cm91cCx0eXBlKToKIyAwLDAgPSBVbnNwZWNpZmllZAojIDEsNyA9IENvbnZlbnRpb24gQ2VudGVy CiMgMSwxMyA9IENvZmZlZSBTaG9wCiMgMiwwID0gVW5zcGVjaWZpZWQgQnVzaW5lc3MKIyA3LDEg IFByaXZhdGUgUmVzaWRlbmNlCiN2ZW51ZV9ncm91cD03CiN2ZW51ZV90eXBlPTEKCiMgSG9tb2dl bmVvdXMgRVNTIGlkZW50aWZpZXIgKG9wdGlvbmFsOyBkb3QxMUhFU1NJRCkKIyBJZiBzZXQsIHRo aXMgc2hhbGwgYmUgaWRlbnRpZmljYWwgdG8gb25lIG9mIHRoZSBCU1NJRHMgaW4gdGhlIGhvbW9n ZW5lb3VzCiMgRVNTIGFuZCB0aGlzIHNoYWxsIGJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhY3Jv c3MgYWxsIEJTU3MgaW4gaG9tb2dlbmVvdXMKIyBFU1MuCiNoZXNzaWQ9MDI6MDM6MDQ6MDU6MDY6 MDcKCiMgUm9hbWluZyBDb25zb3J0aXVtIExpc3QKIyBBcmJpdHJhcnkgbnVtYmVyIG9mIFJvYW1p bmcgQ29uc29ydGl1bSBPSXMgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBlYWNoIGxpbmUKIyBhZGRp bmcgYSBuZXcgT0kgdG8gdGhlIGxpc3QuIFRoZSBmaXJzdCB0aHJlZSBlbnRyaWVzIGFyZSBhdmFp bGFibGUgdGhyb3VnaAojIEJlYWNvbiBhbmQgUHJvYmUgUmVzcG9uc2UgZnJhbWVzLiBBbnkgYWRk aXRpb25hbCBlbnRyeSB3aWxsIGJlIGF2YWlsYWJsZSBvbmx5CiMgdGhyb3VnaCBBTlFQIHF1ZXJp ZXMuIEVhY2ggT0kgaXMgYmV0d2VlbiAzIGFuZCAxNSBvY3RldHMgYW5kIGlzIGNvbmZpZ3VyZWQg YXMKIyBhIGhleHN0cmluZy4KI3JvYW1pbmdfY29uc29ydGl1bT0wMjExMjIKI3JvYW1pbmdfY29u c29ydGl1bT0yMjMzNDQ1NTY2CgojIFZlbnVlIE5hbWUgaW5mb3JtYXRpb24KIyBUaGlzIHBhcmFt ZXRlciBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUgb25lIG9yIG1vcmUgVmVudWUgTmFtZSBEdXBs ZXMgZm9yCiMgVmVudWUgTmFtZSBBTlFQIGluZm9ybWF0aW9uLiBFYWNoIGVudHJ5IGhhcyBhIHR3 byBvciB0aHJlZSBjaGFyYWN0ZXIgbGFuZ3VhZ2UKIyBjb2RlIChJU08tNjM5KSBzZXBhcmF0ZWQg YnkgY29sb24gZnJvbSB0aGUgdmVudWUgbmFtZSBzdHJpbmcuCiMgTm90ZSB0aGF0IHZlbnVlX2dy b3VwIGFuZCB2ZW51ZV90eXBlIGhhdmUgdG8gYmUgc2V0IGZvciBWZW51ZSBOYW1lCiMgaW5mb3Jt YXRpb24gdG8gYmUgY29tcGxldGUuCiN2ZW51ZV9uYW1lPWVuZzpFeGFtcGxlIHZlbnVlCiN2ZW51 ZV9uYW1lPWZpbjpFc2ltZXJra2lwYWlra2EKIyBBbHRlcm5hdGl2ZSBmb3JtYXQgZm9yIGxhbmd1 YWdlOnZhbHVlIHN0cmluZ3M6CiMgKGRvdWJsZSBxdW90ZWQgc3RyaW5nLCBwcmludGYtZXNjYXBl ZCBzdHJpbmcpCiN2ZW51ZV9uYW1lPVAiZW5nOkV4YW1wbGVcbnZlbnVlIgoKIyBWZW51ZSBVUkwg aW5mb3JtYXRpb24KIyBUaGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUgb25l IG9yIG1vcmUgVmVudWUgVVJMIER1cGxlcyB0bwojIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1h dGlvbiBjb3JyZXNwb25kaW5nIHRvIFZlbnVlIE5hbWUgaW5mb3JtYXRpb24uCiMgRWFjaCBlbnRy eSBoYXMgYSBWZW51ZSBOdW1iZXIgdmFsdWUgc2VwYXJhdGVkIGJ5IGNvbG9uIGZyb20gdGhlIFZl bnVlIFVSTAojIHN0cmluZy4gVmVudWUgTnVtYmVyIGluZGljYXRlcyB0aGUgY29ycmVzcG9uZGlu ZyB2ZW51ZV9uYW1lIGVudHJ5ICgxID0gMXN0CiMgdmVudWVfbmFtZSwgMiA9IDJuZCB2ZW51ZV9u YW1lLCBhbmQgc28gb247IDAgPSBubyBtYXRjaGluZyB2ZW51ZV9uYW1lKQojdmVudWVfdXJsPTE6 aHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmZvLWVuZwojdmVudWVfdXJsPTI6aHR0cDovL3d3dy5l eGFtcGxlLmNvbS9pbmZvLWZpbgoKIyBOZXR3b3JrIEF1dGhlbnRpY2F0aW9uIFR5cGUKIyBUaGlz IHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCB0eXBlIG9mIG5ldHdvcmsgYXV0aGVudGljYXRpb24g aXMgdXNlZCBpbiB0aGUKIyBuZXR3b3JrLgojIGZvcm1hdDogPG5ldHdvcmsgYXV0aCB0eXBlIGlu ZGljYXRvciAoMS1vY3RldCBoZXggc3RyKT4gW3JlZGlyZWN0IFVSTF0KIyBOZXR3b3JrIEF1dGhl bnRpY2F0aW9uIFR5cGUgSW5kaWNhdG9yIHZhbHVlczoKIyAwMCA9IEFjY2VwdGFuY2Ugb2YgdGVy bXMgYW5kIGNvbmRpdGlvbnMKIyAwMSA9IE9uLWxpbmUgZW5yb2xsbWVudCBzdXBwb3J0ZWQKIyAw MiA9IGh0dHAvaHR0cHMgcmVkaXJlY3Rpb24KIyAwMyA9IEROUyByZWRpcmVjdGlvbgojbmV0d29y a19hdXRoX3R5cGU9MDAKI25ldHdvcmtfYXV0aF90eXBlPTAyaHR0cDovL3d3dy5leGFtcGxlLmNv bS9yZWRpcmVjdC9tZS9oZXJlLwoKIyBJUCBBZGRyZXNzIFR5cGUgQXZhaWxhYmlsaXR5CiMgZm9y bWF0OiA8MS1vY3RldCBlbmNvZGVkIHZhbHVlIGFzIGhleCBzdHI+CiMgKGlwdjRfdHlwZSAmIDB4 M2YpIDw8IDIgfCAoaXB2Nl90eXBlICYgMHgzKQojIGlwdjRfdHlwZToKIyAwID0gQWRkcmVzcyB0 eXBlIG5vdCBhdmFpbGFibGUKIyAxID0gUHVibGljIElQdjQgYWRkcmVzcyBhdmFpbGFibGUKIyAy ID0gUG9ydC1yZXN0cmljdGVkIElQdjQgYWRkcmVzcyBhdmFpbGFibGUKIyAzID0gU2luZ2xlIE5B VGVkIHByaXZhdGUgSVB2NCBhZGRyZXNzIGF2YWlsYWJsZQojIDQgPSBEb3VibGUgTkFUZWQgcHJp dmF0ZSBJUHY0IGFkZHJlc3MgYXZhaWxhYmxlCiMgNSA9IFBvcnQtcmVzdHJpY3RlZCBJUHY0IGFk ZHJlc3MgYW5kIHNpbmdsZSBOQVRlZCBJUHY0IGFkZHJlc3MgYXZhaWxhYmxlCiMgNiA9IFBvcnQt cmVzdHJpY3RlZCBJUHY0IGFkZHJlc3MgYW5kIGRvdWJsZSBOQVRlZCBJUHY0IGFkZHJlc3MgYXZh aWxhYmxlCiMgNyA9IEF2YWlsYWJpbGl0eSBvZiB0aGUgYWRkcmVzcyB0eXBlIGlzIG5vdCBrbm93 bgojIGlwdjZfdHlwZToKIyAwID0gQWRkcmVzcyB0eXBlIG5vdCBhdmFpbGFibGUKIyAxID0gQWRk cmVzcyB0eXBlIGF2YWlsYWJsZQojIDIgPSBBdmFpbGFiaWxpdHkgb2YgdGhlIGFkZHJlc3MgdHlw ZSBub3Qga25vd24KI2lwYWRkcl90eXBlX2F2YWlsYWJpbGl0eT0xNAoKIyBEb21haW4gTmFtZQoj IGZvcm1hdDogPHZhcmlhYmxlLW9jdGV0IHN0cj5bLDx2YXJpYWJsZS1vY3RldCBzdHI+XQojZG9t YWluX25hbWU9ZXhhbXBsZS5jb20sYW5vdGhlci5leGFtcGxlLmNvbSx5ZXQtYW5vdGhlci5leGFt cGxlLmNvbQoKIyAzR1BQIENlbGx1bGFyIE5ldHdvcmsgaW5mb3JtYXRpb24KIyBmb3JtYXQ6IDxN Q0MxLE1OQzE+Wzs8TUNDMixNTkMyPl1bOy4uLl0KI2FucXBfM2dwcF9jZWxsX25ldD0yNDQsOTE7 MzEwLDAyNjsyMzQsNTYKCiMgTkFJIFJlYWxtIGluZm9ybWF0aW9uCiMgT25lIG9yIG1vcmUgcmVh bG0gY2FuIGJlIGFkdmVydGlzZWQuIEVhY2ggbmFpX3JlYWxtIGxpbmUgYWRkcyBhIG5ldyByZWFs bSB0bwojIHRoZSBzZXQuIFRoZXNlIHBhcmFtZXRlcnMgcHJvdmlkZSBpbmZvcm1hdGlvbiBmb3Ig c3RhdGlvbnMgdXNpbmcgSW50ZXJ3b3JraW5nCiMgbmV0d29yayBzZWxlY3Rpb24gdG8gYWxsb3cg YXV0b21hdGljIGNvbm5lY3Rpb24gdG8gYSBuZXR3b3JrIGJhc2VkIG9uCiMgY3JlZGVudGlhbHMu CiMgZm9ybWF0OiA8ZW5jb2Rpbmc+LDxOQUkgUmVhbG0ocyk+Wyw8RUFQIE1ldGhvZCAxPl1bLDxF QVAgTWV0aG9kIDI+XVssLi4uXQojIGVuY29kaW5nOgojCTAgPSBSZWFsbSBmb3JtYXR0ZWQgaW4g YWNjb3JkYW5jZSB3aXRoIElFVEYgUkZDIDQyODIKIwkxID0gVVRGLTggZm9ybWF0dGVkIGNoYXJh Y3RlciBzdHJpbmcgdGhhdCBpcyBub3QgZm9ybWF0dGVkIGluCiMJICAgIGFjY29yZGFuY2Ugd2l0 aCBJRVRGIFJGQyA0MjgyCiMgTkFJIFJlYWxtKHMpOiBTZW1pLWNvbG9uIGRlbGltaXRlZCBOQUkg UmVhbG0ocykKIyBFQVAgTWV0aG9kOiA8RUFQIE1ldGhvZD5bOjxbQXV0aFBhcmFtMTpWYWwxXT5d WzxbQXV0aFBhcmFtMjpWYWwyXT5dWy4uLl0KIyBFQVAgTWV0aG9kIHR5cGVzLCBzZWU6CiMgaHR0 cDovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9lYXAtbnVtYmVycy9lYXAtbnVtYmVycy54aHRt bCNlYXAtbnVtYmVycy00CiMgQXV0aFBhcmFtIChUYWJsZSA4LTE4OCBpbiBJRUVFIFN0ZCA4MDIu MTEtMjAxMik6CiMgSUQgMiA9IE5vbi1FQVAgSW5uZXIgQXV0aGVudGljYXRpb24gVHlwZQojCTEg PSBQQVAsIDIgPSBDSEFQLCAzID0gTVNDSEFQLCA0ID0gTVNDSEFQVjIKIyBJRCAzID0gSW5uZXIg YXV0aGVudGljYXRpb24gRUFQIE1ldGhvZCBUeXBlCiMgSUQgNSA9IENyZWRlbnRpYWwgVHlwZQoj CTEgPSBTSU0sIDIgPSBVU0lNLCAzID0gTkZDIFNlY3VyZSBFbGVtZW50LCA0ID0gSGFyZHdhcmUg VG9rZW4sCiMJNSA9IFNvZnRva2VuLCA2ID0gQ2VydGlmaWNhdGUsIDcgPSB1c2VybmFtZS9wYXNz d29yZCwgOSA9IEFub255bW91cywKIwkxMCA9IFZlbmRvciBTcGVjaWZpYwojbmFpX3JlYWxtPTAs ZXhhbXBsZS5jb207ZXhhbXBsZS5uZXQKIyBFQVAgbWV0aG9kcyBFQVAtVExTIHdpdGggY2VydGlm aWNhdGUgYW5kIEVBUC1UVExTL01TQ0hBUHYyIHdpdGgKIyB1c2VybmFtZS9wYXNzd29yZAojbmFp X3JlYWxtPTAsZXhhbXBsZS5vcmcsMTNbNTo2XSwyMVsyOjRdWzU6N10KCiMgQXJiaXRyYXJ5IEFO UVAtZWxlbWVudCBjb25maWd1cmF0aW9uCiMgQWRkaXRpb25hbCBBTlFQLWVsZW1lbnRzIHdpdGgg YXJiaXRyYXJ5IHZhbHVlcyBjYW4gYmUgZGVmaW5lZCBieSBzcGVjaWZ5aW5nCiMgdGhlaXIgY29u dGVudHMgaW4gcmF3IGZvcm1hdCBhcyBhIGhleGR1bXAgb2YgdGhlIHBheWxvYWQuIE5vdGUgdGhh dCB0aGVzZQojIHZhbHVlcyB3aWxsIG92ZXJyaWRlIEFOUVAtZWxlbWVudCBjb250ZW50cyB0aGF0 IG1heSBoYXZlIGJlZW4gc3BlY2lmaWVkIGluIHRoZQojIG1vcmUgaGlnaGVyIGxheWVyIGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVycyBsaXN0ZWQgYWJvdmUuCiMgZm9ybWF0OiBhbnFwX2VsZW09PElu Zm9JRD46PGhleGR1bXAgb2YgcGF5bG9hZD4KIyBGb3IgZXhhbXBsZSwgQVAgR2Vvc3BhdGlhbCBM b2NhdGlvbiBBTlFQLWVsZW1lbnQgd2l0aCB1bmtub3duIGxvY2F0aW9uOgojYW5xcF9lbGVtPTI2 NTowMDAwCiMgRm9yIGV4YW1wbGUsIEFQIENpdmljIExvY2F0aW9uIEFOUVAtZWxlbWVudCB3aXRo IHVua25vd24gbG9jYXRpb246CiNhbnFwX2VsZW09MjY2OjAwMDAwMAoKIyBHQVMgQWRkcmVzcyAz IGJlaGF2aW9yCiMgMCA9IFAyUCBzcGVjaWZpY2F0aW9uIChBZGRyZXNzMyA9IEFQIEJTU0lEKSB3 b3JrYXJvdW5kIGVuYWJsZWQgYnkgZGVmYXVsdAojICAgICBiYXNlZCBvbiBHQVMgcmVxdWVzdCBB ZGRyZXNzMwojIDEgPSBJRUVFIDgwMi4xMSBzdGFuZGFyZCBjb21wbGlhbnQgcmVnYXJkbGVzcyBv ZiBHQVMgcmVxdWVzdCBBZGRyZXNzMwojIDIgPSBGb3JjZSBub24tY29tcGxpYW50IGJlaGF2aW9y IChBZGRyZXNzMyA9IEFQIEJTU0lEIGZvciBhbGwgY2FzZXMpCiNnYXNfYWRkcmVzczM9MAoKIyBR b1MgTWFwIFNldCBjb25maWd1cmF0aW9uCiMKIyBDb21tYSBkZWxpbWl0ZWQgUW9TIE1hcCBTZXQg aW4gZGVjaW1hbCB2YWx1ZXMKIyAoc2VlIElFRUUgU3RkIDgwMi4xMS0yMDEyLCA4LjQuMi45NykK IwojIGZvcm1hdDoKIyBbPERTQ1AgRXhjZXB0aW9uc1tEU0NQLFVQXT4sXTxVUCAwIHJhbmdlW2xv dyxoaWdoXT4sLi4uPFVQIDcgcmFuZ2VbbG93LGhpZ2hdPgojCiMgVGhlcmUgY2FuIGJlIHVwIHRv IDIxIG9wdGlvbmFsIERTQ1AgRXhjZXB0aW9ucyB3aGljaCBhcmUgcGFpcnMgb2YgRFNDUCBWYWx1 ZQojICgwLi42MyBvciAyNTUpIGFuZCBVc2VyIFByaW9yaXR5ICgwLi43KS4gVGhpcyBpcyBmb2xs b3dlZCBieSBlaWdodCBEU0NQIFJhbmdlCiMgZGVzY3JpcHRpb25zIHdpdGggRFNDUCBMb3cgVmFs dWUgYW5kIERTQ1AgSGlnaCBWYWx1ZSBwYWlycyAoMC4uNjMgb3IgMjU1KSBmb3IKIyBlYWNoIFVQ IHN0YXJ0aW5nIGZyb20gMC4gSWYgYm90aCBsb3cgYW5kIGhpZ2ggdmFsdWUgYXJlIHNldCB0byAy NTUsIHRoZQojIGNvcnJlc3BvbmRpbmcgVVAgaXMgbm90IHVzZWQuCiMKIyBkZWZhdWx0OiBub3Qg c2V0CiNxb3NfbWFwX3NldD01MywyLDIyLDYsOCwxNSwwLDcsMjU1LDI1NSwxNiwzMSwzMiwzOSwy NTUsMjU1LDQwLDQ3LDI1NSwyNTUKCiMjIyMjIEhvdHNwb3QgMi4wICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMgRW5hYmxlIEhv dHNwb3QgMi4wIHN1cHBvcnQKI2hzMjA9MQoKIyBEaXNhYmxlIERvd25zdHJlYW0gR3JvdXAtQWRk cmVzc2VkIEZvcndhcmRpbmcgKERHQUYpCiMgVGhpcyBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUg YSBuZXR3b3JrIHdoZXJlIG5vIGdyb3VwLWFkZHJlc3NlZCBmcmFtZXMgYXJlCiMgYWxsb3dlZC4g VGhlIEFQIHdpbGwgbm90IGZvcndhcmQgYW55IGdyb3VwLWFkZHJlc3MgZnJhbWVzIHRvIHRoZSBz dGF0aW9ucyBhbmQKIyByYW5kb20gR1RLcyBhcmUgaXNzdWVkIGZvciBlYWNoIHN0YXRpb24gdG8g cHJldmVudCBhc3NvY2lhdGVkIHN0YXRpb25zIGZyb20KIyBmb3JnaW5nIHN1Y2ggZnJhbWVzIHRv IG90aGVyIHN0YXRpb25zIGluIHRoZSBCU1MuCiNkaXNhYmxlX2RnYWY9MQoKIyBPU1UgU2VydmVy LU9ubHkgQXV0aGVudGljYXRlZCBMMiBFbmNyeXB0aW9uIE5ldHdvcmsKI29zZW49MQoKIyBBTlFQ IERvbWFpbiBJRCAoMC4uNjU1MzUpCiMgQW4gaWRlbnRpZmllciBmb3IgYSBzZXQgb2YgQVBzIGlu IGFuIEVTUyB0aGF0IHNoYXJlIHRoZSBzYW1lIGNvbW1vbiBBTlFQCiMgaW5mb3JtYXRpb24uIDAg PSBTb21lIG9mIHRoZSBBTlFQIGluZm9ybWF0aW9uIGlzIHVuaXF1ZSB0byB0aGlzIEFQIChkZWZh dWx0KS4KI2FucXBfZG9tYWluX2lkPTEyMzQKCiMgRGVhdXRoZW50aWNhdGlvbiByZXF1ZXN0IHRp bWVvdXQKIyBJZiB0aGUgUkFESVVTIHNlcnZlciBpbmRpY2F0ZXMgdGhhdCB0aGUgc3RhdGlvbiBp cyBub3QgYWxsb3dlZCB0byBjb25uZWN0IHRvCiMgdGhlIEJTUy9FU1MsIHRoZSBBUCBjYW4gYWxs b3cgdGhlIHN0YXRpb24gc29tZSB0aW1lIHRvIGRvd25sb2FkIGEKIyBub3RpZmljYXRpb24gcGFn ZSAoVVJMIGluY2x1ZGVkIGluIHRoZSBtZXNzYWdlKS4gVGhpcyBwYXJhbWV0ZXIgc2V0cyB0aGF0 CiMgdGltZW91dCBpbiBzZWNvbmRzLgojaHMyMF9kZWF1dGhfcmVxX3RpbWVvdXQ9NjAKCiMgT3Bl cmF0b3IgRnJpZW5kbHkgTmFtZQojIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGNvbmZp Z3VyZSBvbmUgb3IgbW9yZSBPcGVyYXRvciBGcmllbmRseSBOYW1lCiMgRHVwbGVzLiBFYWNoIGVu dHJ5IGhhcyBhIHR3byBvciB0aHJlZSBjaGFyYWN0ZXIgbGFuZ3VhZ2UgY29kZSAoSVNPLTYzOSkK IyBzZXBhcmF0ZWQgYnkgY29sb24gZnJvbSB0aGUgb3BlcmF0b3IgZnJpZW5kbHkgbmFtZSBzdHJp bmcuCiNoczIwX29wZXJfZnJpZW5kbHlfbmFtZT1lbmc6RXhhbXBsZSBvcGVyYXRvcgojaHMyMF9v cGVyX2ZyaWVuZGx5X25hbWU9ZmluOkVzaW1lcmtraW9wZXJhYXR0b3JpCgojIENvbm5lY3Rpb24g Q2FwYWJpbGl0eQojIFRoaXMgY2FuIGJlIHVzZWQgdG8gYWR2ZXJ0aXNlIHdoYXQgdHlwZSBvZiBJ UCB0cmFmZmljIGNhbiBiZSBzZW50IHRocm91Z2ggdGhlCiMgaG90c3BvdCAoZS5nLiwgZHVlIHRv IGZpcmV3YWxsIGFsbG93aW5nL2Jsb2NraW5nIHByb3RvY29scy9wb3J0cykuCiMgZm9ybWF0OiA8 SVAgUHJvdG9jb2w+OjxQb3J0IE51bWJlcj46PFN0YXR1cz4KIyBJUCBQcm90b2NvbDogMSA9IElD TVAsIDYgPSBUQ1AsIDE3ID0gVURQCiMgUG9ydCBOdW1iZXI6IDAuLjY1NTM1CiMgU3RhdHVzOiAw ID0gQ2xvc2VkLCAxID0gT3BlbiwgMiA9IFVua25vd24KIyBFYWNoIGhzMjBfY29ubl9jYXBhYiBs aW5lIGlzIGFkZGVkIHRvIHRoZSBsaXN0IG9mIGFkdmVydGlzZWQgdHVwbGVzLgojaHMyMF9jb25u X2NhcGFiPTE6MDoyCiNoczIwX2Nvbm5fY2FwYWI9NjoyMjoxCiNoczIwX2Nvbm5fY2FwYWI9MTc6 NTA2MDowCgojIFdBTiBNZXRyaWNzCiMgZm9ybWF0OiA8V0FOIEluZm8+OjxETCBTcGVlZD46PFVM IFNwZWVkPjo8REwgTG9hZD46PFVMIExvYWQ+OjxMTUQ+CiMgV0FOIEluZm86IEIwLUIxOiBMaW5r IFN0YXR1cywgQjI6IFN5bW1ldHJpYyBMaW5rLCBCMzogQXQgQ2FwYWJpdHkKIyAgICAoZW5jb2Rl ZCBhcyB0d28gaGV4IGRpZ2l0cykKIyAgICBMaW5rIFN0YXR1czogMSA9IExpbmsgdXAsIDIgPSBM aW5rIGRvd24sIDMgPSBMaW5rIGluIHRlc3Qgc3RhdGUKIyBEb3dubGluayBTcGVlZDogRXN0aW1h dGUgb2YgV0FOIGJhY2toYXVsIGxpbmsgY3VycmVudCBkb3dubGluayBzcGVlZCBpbiBrYnBzOwoj CTEuLjQyOTQ5NjcyOTU7IDAgPSB1bmtub3duCiMgVXBsaW5rIFNwZWVkOiBFc3RpbWF0ZSBvZiBX QU4gYmFja2hhdWwgbGluayBjdXJyZW50IHVwbGluayBzcGVlZCBpbiBrYnBzCiMJMS4uNDI5NDk2 NzI5NTsgMCA9IHVua25vd24KIyBEb3dubGluayBMb2FkOiBDdXJyZW50IGxvYWQgb2YgZG93bmxp bmsgV0FOIGNvbm5lY3Rpb24gKHNjYWxlZCB0byAyNTUgPSAxMDAlKQojIFVwbGluayBMb2FkOiBD dXJyZW50IGxvYWQgb2YgdXBsaW5rIFdBTiBjb25uZWN0aW9uIChzY2FsZWQgdG8gMjU1ID0gMTAw JSkKIyBMb2FkIE1lYXN1cmVtZW50IER1cmF0aW9uOiBEdXJhdGlvbiBmb3IgbWVhc3VyaW5nIGRv d25saW5rL3VwbGluayBsb2FkIGluCiMgdGVudGhzIG9mIGEgc2Vjb25kICgxLi42NTUzNSk7IDAg aWYgbG9hZCBjYW5ub3QgYmUgZGV0ZXJtaW5lZAojaHMyMF93YW5fbWV0cmljcz0wMTo4MDAwOjEw MDA6ODA6MjQwOjMwMDAKCiMgT3BlcmF0aW5nIENsYXNzIEluZGljYXRpb24KIyBMaXN0IG9mIG9w ZXJhdGluZyBjbGFzc2VzIHRoZSBCU1NlcyBpbiB0aGlzIEVTUyB1c2UuIFRoZSBHbG9iYWwgb3Bl cmF0aW5nCiMgY2xhc3NlcyBpbiBUYWJsZSBFLTQgb2YgSUVFRSBTdGQgODAyLjExLTIwMTIgQW5u ZXggRSBkZWZpbmUgdGhlIHZhbHVlcyB0aGF0CiMgY2FuIGJlIHVzZWQgaW4gdGhpcy4KIyBmb3Jt YXQ6IGhleGR1bXAgb2Ygb3BlcmF0aW5nIGNsYXNzIG9jdGV0cwojIGZvciBleGFtcGxlLCBvcGVy YXRpbmcgY2xhc3NlcyA4MSAoMi40IEdIeiBjaGFubmVscyAxLTEzKSBhbmQgMTE1ICg1IEdIegoj IGNoYW5uZWxzIDM2LTQ4KToKI2hzMjBfb3BlcmF0aW5nX2NsYXNzPTUxNzMKCiMgVGVybXMgYW5k IENvbmRpdGlvbnMgaW5mb3JtYXRpb24KIwojIGhzMjBfdF9jX2ZpbGVuYW1lIGNvbnRhaW5zIHRo ZSBUZXJtcyBhbmQgQ29uZGl0aW9ucyBmaWxlbmFtZSB0aGF0IHRoZSBBUAojIGluZGljYXRlcyBp biBSQURJVVMgQWNjZXNzLVJlcXVlc3QgbWVzc2FnZXMuCiNoczIwX3RfY19maWxlbmFtZT10ZXJt cy1hbmQtY29uZGl0aW9ucwojCiMgaHMyMF90X2NfdGltZXN0YW1wIGNvbnRhaW5zIHRoZSBUZXJt cyBhbmQgQ29uZGl0aW9ucyB0aW1lc3RhbXAgdGhhdCB0aGUgQVAKIyBpbmRpY2F0ZXMgaW4gUkFE SVVTIEFjY2Vzcy1SZXF1ZXN0IG1lc3NhZ2VzLiBVc3VhbGx5LCB0aGlzIGNvbnRhaW5zIHRoZSBu dW1iZXIKIyBvZiBzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMCBVVEMgc2hvd2lu ZyB0aGUgdGltZSB3aGVuIHRoZSBmaWxlIHdhcwojIGxhc3QgbW9kaWZpZWQuCiNoczIwX3RfY190 aW1lc3RhbXA9MTIzNDU2NwojCiMgaHMyMF90X2Nfc2VydmVyX3VybCBjb250YWlucyBhIHRlbXBs YXRlIGZvciB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMgc2VydmVyCiMgVVJMLiBUaGlzIHRlbXBs YXRlIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIFVSTCBmb3IgYSBTVEEgdGhhdCBuZWVkcyB0bwoj IGFja25vd2xlZGdlIFRlcm1zIGFuZCBDb25kaXRpb25zLiBVbmxpa2UgdGhlIG90aGVyIGhzMjBf dF9jXyogcGFyYW1ldGVycywgdGhpcwojIHBhcmFtZXRlciBpcyB1c2VkIG9uIHRoZSBhdXRoZW50 aWNhdGlvbiBzZXJ2ZXIsIG5vdCB0aGUgQVAuCiMgTWFjcm9zOgojIEAxQCA9IE1BQyBhZGRyZXNz IG9mIHRoZSBTVEEgKGNvbG9uIHNlcGFyYXRlZCBoZXggb2N0ZXRzKQojaHMyMF90X2Nfc2VydmVy X3VybD1odHRwczovL2V4YW1wbGUuY29tL3RfYW5kX2M/YWRkcj1AMUAmYXA9MTIzCgojIE9TVSBh bmQgT3BlcmF0b3IgaWNvbnMKIyA8SWNvbiBXaWR0aD46PEljb24gSGVpZ2h0Pjo8TGFuZ3VhZ2Ug Y29kZT46PEljb24gVHlwZT46PE5hbWU+OjxmaWxlIHBhdGg+CiNoczIwX2ljb249MzI6MzI6ZW5n OmltYWdlL3BuZzppY29uMzI6L3RtcC9pY29uMzIucG5nCiNoczIwX2ljb249NjQ6NjQ6ZW5nOmlt YWdlL3BuZzppY29uNjQ6L3RtcC9pY29uNjQucG5nCgojIE9TVSBTU0lEIChzZWUgc3NpZDIgZm9y IGZvcm1hdCBkZXNjcmlwdGlvbikKIyBUaGlzIGlzIHRoZSBTU0lEIHVzZWQgZm9yIGFsbCBPU1Ug Y29ubmVjdGlvbnMgdG8gYWxsIHRoZSBsaXN0ZWQgT1NVIFByb3ZpZGVycy4KI29zdV9zc2lkPSJl eGFtcGxlIgoKIyBPU1UgUHJvdmlkZXJzCiMgT25lIG9yIG1vcmUgc2V0cyBvZiBmb2xsb3dpbmcg cGFyYW1ldGVyLiBFYWNoIE9TVSBwcm92aWRlciBpcyBzdGFydGVkIGJ5IHRoZQojIG1hbmRhdG9y eSBvc3Vfc2VydmVyX3VyaSBpdGVtLiBUaGUgb3RoZXIgcGFyYW1ldGVycyBhZGQgaW5mb3JtYXRp b24gZm9yIHRoZQojIGxhc3QgYWRkZWQgT1NVIHByb3ZpZGVyLgojCiNvc3Vfc2VydmVyX3VyaT1o dHRwczovL2V4YW1wbGUuY29tL29zdS8KI29zdV9mcmllbmRseV9uYW1lPWVuZzpFeGFtcGxlIG9w ZXJhdG9yCiNvc3VfZnJpZW5kbHlfbmFtZT1maW46RXNpbWVya2tpcGFsdmVsdW50YXJqb2FqYQoj b3N1X25haT1hbm9ueW1vdXNAZXhhbXBsZS5jb20KI29zdV9tZXRob2RfbGlzdD0xIDAKI29zdV9p Y29uPWljb24zMgojb3N1X2ljb249aWNvbjY0CiNvc3Vfc2VydmljZV9kZXNjPWVuZzpFeGFtcGxl IHNlcnZpY2VzCiNvc3Vfc2VydmljZV9kZXNjPWZpbjpFc2ltZXJra2lwYWx2ZWx1amEKIwojb3N1 X3NlcnZlcl91cmk9Li4uCgojIE9wZXJhdG9yIEljb25zCiMgT3BlcmF0b3IgaWNvbnMgYXJlIHNw ZWNpZmllZCB1c2luZyByZWZlcmVuY2VzIHRvIHRoZSBoczIwX2ljb24gZW50cmllcwojIChOYW1l IHN1YmZpZWxkKS4gVGhpcyBpbmZvcm1hdGlvbiwgaWYgcHJlc2VudCwgaXMgYWR2ZXJ0c2lzZWQg aW4gdGhlCiMgT3BlcmF0b3IgSWNvbiBNZXRhZGF0YSBBTlFPLWVsZW1lbnQuCiNvcGVyYXRvcl9p Y29uPWljb24zMgojb3BlcmF0b3JfaWNvbj1pY29uNjQKCiMjIyMjIE11bHRpYmFuZCBPcGVyYXRp b24gKE1CTykgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK IwojIE1CTyBlbmFibGVkCiMgMCA9IGRpc2FibGVkIChkZWZhdWx0KQojIDEgPSBlbmFibGVkCiNt Ym89MQojCiMgQ2VsbHVsYXIgZGF0YSBjb25uZWN0aW9uIHByZWZlcmVuY2UKIyAwID0gRXhjbHVk ZWQgLSBBUCBkb2VzIG5vdCB3YW50IFNUQSB0byB1c2UgdGhlIGNlbGx1bGFyIGRhdGEgY29ubmVj dGlvbgojIDEgPSBBUCBwcmVmZXJzIHRoZSBTVEEgbm90IHRvIHVzZSBjZWxsdWxhciBkYXRhIGNv bm5lY3Rpb24KIyAyNTUgPSBBUCBwcmVmZXJzIHRoZSBTVEEgdG8gdXNlIGNlbGx1bGFyIGRhdGEg Y29ubmVjdGlvbgojbWJvX2NlbGxfZGF0YV9jb25uX3ByZWY9MQoKIyMjIyMgT3B0aW1pemVkIENv bm5lY3Rpdml0eSBFeHBlcmllbmNlIChPQ0UpICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwojCiMgRW5hYmxlIE9DRSBzcGVjaWZpYyBmZWF0dXJlcyAoYml0bWFwKQojIEJJVCgwKSAt IFJlc2VydmVkCiMgU2V0IEJJVCgxKSAoPSAyKSB0byBlbmFibGUgT0NFIGluIFNUQS1DRk9OIG1v ZGUKIyBTZXQgQklUKDIpICg9IDQpIHRvIGVuYWJsZSBPQ0UgaW4gQVAgbW9kZQojIERlZmF1bHQg aXMgMCA9IE9DRSBkaXNhYmxlZAojb2NlPTAKCiMjIyMjIEZhc3QgU2Vzc2lvbiBUcmFuc2ZlciAo RlNUKSBzdXBwb3J0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIwojIFRo ZSBvcHRpb25zIGluIHRoaXMgc2VjdGlvbiBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0aGUgYnVp bGQgY29uZmlndXJhdGlvbgojIG9wdGlvbiBDT05GSUdfRlNUIGlzIHNldCB3aGlsZSBjb21waWxp bmcgaG9zdGFwZC4gVGhleSBhbGxvdyB0aGlzIGludGVyZmFjZQojIHRvIGJlIGEgcGFydCBvZiBG U1Qgc2V0dXAuCiMKIyBGU1QgaXMgdGhlIHRyYW5zZmVyIG9mIGEgc2Vzc2lvbiBmcm9tIGEgY2hh bm5lbCB0byBhbm90aGVyIGNoYW5uZWwsIGluIHRoZQojIHNhbWUgb3IgZGlmZmVyZW50IGZyZXF1 ZW5jeSBiYW5kcy4KIwojIEZvciBkZXRhbHMsIHNlZSBJRUVFIFN0ZCA4MDIuMTFhZC0yMDEyLgoK IyBJZGVudGlmaWVyIG9mIGFuIEZTVCBHcm91cCB0aGUgaW50ZXJmYWNlIGJlbG9uZ3MgdG8uCiNm c3RfZ3JvdXBfaWQ9Ym9uZDAKCiMgSW50ZXJmYWNlIHByaW9yaXR5IHdpdGhpbiB0aGUgRlNUIEdy b3VwLgojIEFubm91bmNpbmcgYSBoaWdoZXIgcHJpb3JpdHkgZm9yIGFuIGludGVyZmFjZSBtZWFu cyBkZWNsYXJpbmcgaXQgbW9yZQojIHByZWZlcmFibGUgZm9yIEZTVCBzd2l0Y2guCiMgZnN0X3By aW9yaXR5IGlzIGluIDEuLjI1NSByYW5nZSB3aXRoIDEgYmVpbmcgdGhlIGxvd2VzdCBwcmlvcml0 eS4KI2ZzdF9wcmlvcml0eT0xMDAKCiMgRGVmYXVsdCBMTFQgdmFsdWUgZm9yIHRoaXMgaW50ZXJm YWNlIGluIG1pbGxpc2Vjb25kcy4gVGhlIHZhbHVlIHVzZWQgaW4gY2FzZQojIG5vIHZhbHVlIHBy b3ZpZGVkIGR1cmluZyBzZXNzaW9uIHNldHVwLiBEZWZhdWx0IGlzIDUwIG1zLgojIGZzdF9sbHQg aXMgaW4gMS4uNDI5NDk2NyByYW5nZSAoZHVlIHRvIHNwZWMgbGltaXRhdGlvbiwgc2VlIDEwLjMy LjIuMgojIFRyYW5zaXRpb25pbmcgYmV0d2VlbiBzdGF0ZXMpLgojZnN0X2xsdD0xMDAKCiMjIyMj IFJhZGlvIG1lYXN1cmVtZW50cyAvIGxvY2F0aW9uICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKCiMgVGhlIGNvbnRlbnQgb2YgYSBMQ0kgbWVhc3VyZW1lbnQgc3Vi ZWxlbWVudAojbGNpPTxIZXhkdW1wIG9mIGJpbmFyeSBkYXRhIG9mIHRoZSBMQ0kgcmVwb3J0PgoK IyBUaGUgY29udGVudCBvZiBhIGxvY2F0aW9uIGNpdmljIG1lYXN1cmVtZW50IHN1YmVsZW1lbnQK I2NpdmljPTxIZXhkdW1wIG9mIGJpbmFyeSBkYXRhIG9mIHRoZSBsb2NhdGlvbiBjaXZpYyByZXBv cnQ+CgojIEVuYWJsZSBuZWlnaGJvciByZXBvcnQgdmlhIHJhZGlvIG1lYXN1cmVtZW50cwojcnJt X25laWdoYm9yX3JlcG9ydD0xCgojIEVuYWJsZSBiZWFjb24gcmVwb3J0IHZpYSByYWRpbyBtZWFz dXJlbWVudHMKI3JybV9iZWFjb25fcmVwb3J0PTEKCiMgUHVibGlzaCBmaW5lIHRpbWluZyBtZWFz dXJlbWVudCAoRlRNKSByZXNwb25kZXIgZnVuY3Rpb25hbGl0eQojIFRoaXMgcGFyYW1ldGVyIG9u bHkgY29udHJvbHMgcHVibGlzaGluZyB2aWEgRXh0ZW5kZWQgQ2FwYWJpbGl0aWVzIGVsZW1lbnQu CiMgQWN0dWFsIGZ1bmN0aW9uYWxpdHkgaXMgbWFuYWdlZCBvdXRzaWRlIGhvc3RhcGQuCiNmdG1f cmVzcG9uZGVyPTAKCiMgUHVibGlzaCBmaW5lIHRpbWluZyBtZWFzdXJlbWVudCAoRlRNKSBpbml0 aWF0b3IgZnVuY3Rpb25hbGl0eQojIFRoaXMgcGFyYW1ldGVyIG9ubHkgY29udHJvbHMgcHVibGlz aGluZyB2aWEgRXh0ZW5kZWQgQ2FwYWJpbGl0aWVzIGVsZW1lbnQuCiMgQWN0dWFsIGZ1bmN0aW9u YWxpdHkgaXMgbWFuYWdlZCBvdXRzaWRlIGhvc3RhcGQuCiNmdG1faW5pdGlhdG9yPTAKIwojIFN0 YXRpb25hcnkgQVAgY29uZmlnIGluZGljYXRlcyB0aGF0IHRoZSBBUCBkb2Vzbid0IG1vdmUgaGVu Y2UgbG9jYXRpb24gZGF0YQojIGNhbiBiZSBjb25zaWRlcmVkIGFzIGFsd2F5cyB1cCB0byBkYXRl LiBJZiBjb25maWd1cmVkLCBMQ0kgZGF0YSB3aWxsIGJlIHNlbnQKIyBhcyBhIHJhZGlvIG1lYXN1 cmVtZW50IGV2ZW4gaWYgdGhlIHJlcXVlc3QgZG9lc24ndCBjb250YWluIGEgbWF4IGFnZSBlbGVt ZW50CiMgdGhhdCBhbGxvd3Mgc2VuZGluZyBvZiBzdWNoIGRhdGEuIERlZmF1bHQ6IDAuCiNzdGF0 aW9uYXJ5X2FwPTAKCiMjIyMjIFRFU1RJTkcgT1BUSU9OUyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIwojIFRoZSBvcHRpb25zIGluIHRo aXMgc2VjdGlvbiBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0aGUgYnVpbGQgY29uZmlndXJhdGlv bgojIG9wdGlvbiBDT05GSUdfVEVTVElOR19PUFRJT05TIGlzIHNldCB3aGlsZSBjb21waWxpbmcg aG9zdGFwZC4gVGhleSBhbGxvdwojIHRlc3Rpbmcgc29tZSBzY2VuYXJpb3MgdGhhdCBhcmUgb3Ro ZXJ3aXNlIGRpZmZpY3VsdCB0byByZXByb2R1Y2UuCiMKIyBJZ25vcmUgcHJvYmUgcmVxdWVzdHMg c2VudCB0byBob3N0YXBkIHdpdGggdGhlIGdpdmVuIHByb2JhYmlsaXR5LCBtdXN0IGJlIGEKIyBm bG9hdGluZyBwb2ludCBudW1iZXIgaW4gdGhlIHJhbmdlIFswLCAxKS4KI2lnbm9yZV9wcm9iZV9w cm9iYWJpbGl0eT0wLjAKIwojIElnbm9yZSBhdXRoZW50aWNhdGlvbiBmcmFtZXMgd2l0aCB0aGUg Z2l2ZW4gcHJvYmFiaWxpdHkKI2lnbm9yZV9hdXRoX3Byb2JhYmlsaXR5PTAuMAojCiMgSWdub3Jl IGFzc29jaWF0aW9uIHJlcXVlc3RzIHdpdGggdGhlIGdpdmVuIHByb2JhYmlsaXR5CiNpZ25vcmVf YXNzb2NfcHJvYmFiaWxpdHk9MC4wCiMKIyBJZ25vcmUgcmVhc3NvY2lhdGlvbiByZXF1ZXN0cyB3 aXRoIHRoZSBnaXZlbiBwcm9iYWJpbGl0eQojaWdub3JlX3JlYXNzb2NfcHJvYmFiaWxpdHk9MC4w CiMKIyBDb3JydXB0IEtleSBNSUMgaW4gR1RLIHJla2V5IEVBUE9MLUtleSBmcmFtZXMgd2l0aCB0 aGUgZ2l2ZW4gcHJvYmFiaWxpdHkKI2NvcnJ1cHRfZ3RrX3Jla2V5X21pY19wcm9iYWJpbGl0eT0w LjAKIwojIEluY2x1ZGUgb25seSBFQ1NBIElFIHdpdGhvdXQgQ1NBIElFIHdoZXJlIHBvc3NpYmxl CiMgKGNoYW5uZWwgc3dpdGNoIG9wZXJhdGluZyBjbGFzcyBpcyBuZWVkZWQpCiNlY3NhX2llX29u bHk9MAoKIyMjIyMgTXVsdGlwbGUgQlNTSUQgc3VwcG9ydCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojCiMgQWJvdmUgY29uZmlndXJhdGlvbiBpcyB1 c2luZyB0aGUgZGVmYXVsdCBpbnRlcmZhY2UgKHdsYW4jLCBvciBtdWx0aS1TU0lEIFZMQU4KIyBp bnRlcmZhY2VzKS4gT3RoZXIgQlNTSURzIGNhbiBiZSBhZGRlZCBieSB1c2luZyBzZXBhcmF0b3Ig J2Jzcycgd2l0aAojIGRlZmF1bHQgaW50ZXJmYWNlIG5hbWUgdG8gYmUgYWxsb2NhdGVkIGZvciB0 aGUgZGF0YSBwYWNrZXRzIG9mIHRoZSBuZXcgQlNTLgojCiMgaG9zdGFwZCB3aWxsIGdlbmVyYXRl IEJTU0lEIG1hc2sgYmFzZWQgb24gdGhlIEJTU0lEcyB0aGF0IGFyZQojIGNvbmZpZ3VyZWQuIGhv c3RhcGQgd2lsbCB2ZXJpZnkgdGhhdCBkZXZfYWRkciAmIE1BU0sgPT0gZGV2X2FkZHIuIElmIHRo aXMgaXMKIyBub3QgdGhlIGNhc2UsIHRoZSBNQUMgYWRkcmVzcyBvZiB0aGUgcmFkaW8gbXVzdCBi ZSBjaGFuZ2VkIGJlZm9yZSBzdGFydGluZwojIGhvc3RhcGQgKGlmY29uZmlnIHdsYW4wIGh3IGV0 aGVyIDxNQUMgYWRkcj4pLiBJZiBhIEJTU0lEIGlzIGNvbmZpZ3VyZWQgZm9yCiMgZXZlcnkgc2Vj b25kYXJ5IEJTUywgdGhpcyBsaW1pdGF0aW9uIGlzIG5vdCBhcHBsaWVkIGF0IGhvc3RhcGQgYW5k IG90aGVyCiMgbWFza3MgbWF5IGJlIHVzZWQgaWYgdGhlIGRyaXZlciBzdXBwb3J0cyB0aGVtIChl LmcuLCBzd2FwIHRoZSBsb2NhbGx5CiMgYWRtaW5pc3RlcmVkIGJpdCkKIwojIEJTU0lEcyBhcmUg YXNzaWduZWQgaW4gb3JkZXIgdG8gZWFjaCBCU1MsIHVubGVzcyBhbiBleHBsaWNpdCBCU1NJRCBp cwojIHNwZWNpZmllZCB1c2luZyB0aGUgJ2Jzc2lkJyBwYXJhbWV0ZXIuCiMgSWYgYW4gZXhwbGlj aXQgQlNTSUQgaXMgc3BlY2lmaWVkLCBpdCBtdXN0IGJlIGNob3NlbiBzdWNoIHRoYXQgaXQ6CiMg LSByZXN1bHRzIGluIGEgdmFsaWQgTUFTSyB0aGF0IGNvdmVycyBpdCBhbmQgdGhlIGRldl9hZGRy CiMgLSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIE1BQyBhZGRyZXNzIG9mIHRoZSByYWRpbwojIC0g aXMgbm90IHRoZSBzYW1lIGFzIGFueSBvdGhlciBleHBsaWNpdGx5IHNwZWNpZmllZCBCU1NJRAoj CiMgQWx0ZXJuYXRpdmVseSwgdGhlICd1c2VfZHJpdmVyX2lmYWNlX2FkZHInIHBhcmFtZXRlciBj YW4gYmUgdXNlZCB0byByZXF1ZXN0CiMgaG9zdGFwZCB0byB1c2UgdGhlIGRyaXZlciBhdXRvLWdl bmVyYXRlZCBpbnRlcmZhY2UgYWRkcmVzcyAoZS5nLiwgdG8gdXNlIHRoZQojIGV4YWN0IE1BQyBh ZGRyZXNzZXMgYWxsb2NhdGVkIHRvIHRoZSBkZXZpY2UpLgojCiMgTm90IGFsbCBkcml2ZXJzIHN1 cHBvcnQgbXVsdGlwbGUgQlNTZXMuIFRoZSBleGFjdCBtZWNoYW5pc20gZm9yIGRldGVybWluaW5n CiMgdGhlIGRyaXZlciBjYXBhYmlsaXRpZXMgaXMgZHJpdmVyIHNwZWNpZmljLiBXaXRoIHRoZSBj dXJyZW50IChpLmUuLCBhIHJlY2VudAojIGtlcm5lbCkgZHJpdmVycyB1c2luZyBubDgwMjExLCB0 aGlzIGluZm9ybWF0aW9uIGNhbiBiZSBjaGVja2VkIHdpdGggIml3IGxpc3QiCiMgKHNlYXJjaCBm b3IgInZhbGlkIGludGVyZmFjZSBjb21iaW5hdGlvbnMiKS4KIwojIFBsZWFzZSBub3RlIHRoYXQg aG9zdGFwZCB1c2VzIHNvbWUgb2YgdGhlIHZhbHVlcyBjb25maWd1cmVkIGZvciB0aGUgZmlyc3Qg QlNTCiMgYXMgdGhlIGRlZmF1bHRzIGZvciB0aGUgZm9sbG93aW5nIEJTU2VzLiBIb3dldmVyLCBp dCBpcyByZWNvbW1lbmRlZCB0aGF0IGFsbAojIEJTU2VzIGluY2x1ZGUgZXhwbGljaXQgY29uZmln dXJhdGlvbiBvZiBhbGwgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBpdGVtcy4KIwojYnNzPXdsYW4w XzAKI3NzaWQ9dGVzdDIKIyBtb3N0IG9mIHRoZSBhYm92ZSBpdGVtcyBjYW4gYmUgdXNlZCBoZXJl IChhcGFydCBmcm9tIHJhZGlvIGludGVyZmFjZSBzcGVjaWZpYwojIGl0ZW1zLCBsaWtlIGNoYW5u ZWwpCgojYnNzPXdsYW4wXzEKI2Jzc2lkPTAwOjEzOjEwOjk1OmZlOjBiCiMgLi4uCg== --_002_c429df24468b413b885acc14cc196dacrealtekcom_--