Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp2407241ybl; Mon, 19 Aug 2019 01:22:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqys22MdWn4671x+DvkJOSp4WpCFZZGh+NcxldvJDhkiLd2IfLdllAet1wR21RcYRFEA6SlG X-Received: by 2002:a63:6f81:: with SMTP id k123mr19265476pgc.12.1566202937974; Mon, 19 Aug 2019 01:22:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1566202937; cv=pass; d=google.com; s=arc-20160816; b=ZdWp8ISv2v2c4JFGhymaPjasgOLxKFcKVyWR6OizTBR3QtE2XeWrxJRBsGi4V81JLV HgfZ8+3uDt+mxUio5VKDmuqdr/BFOqSvoCeJOs6uGjBLtKTWtzvA+cepShhKYreNSxob MjqCO+k1SCIfYmXq4UW9Kq6dDA+SkSYgyjNG/Et2fL6ow2qBvqpc2JEPIHD+TQqUJnQO INhEmdAv/nb5JzZYabQJE7uSNoUY8P4+TMCuxYrv9RdyBWmmDzwitC/8UMTa7Uwwo5Re DsrHv5SO49NOCzfSilnmtM0RSTh0XMK1SOXwgtmApK21qq3XFh9hJnch26FGUlREwJYu Pppw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=h5hQPur/BnznYCYWOPdWuGaMYR8KSxCBNYdcAR74Z4Q=; b=dj/dBTNG+TGS8xMP15RXxLLQpz64WVTD4bT6NfTrWf3Nb30ccY/eTdJ19JoIA9E/xg JCddCCAriaxCZ9tRxW9YPgmQGE5beqKV6n1RI2pt8OxYJ7PJ4JICUqw0lVIl46WQ/RKT Bh+7eaQRIBMPbqR1AeFZegW1v9nZPdegwQ0uh6G1YKLidS/iKZYBJ+hIdFTskPcX3/CA 7J2Q8q7y5yx+BsOrNg5JoSqcy2ObEiN2w5t4c3BK6yATIIKExT5egC2doBkB8d+2JS8V 20vPvJTOcUXkAqBr8/SbmH55a+CQ3N57ii9rn2M5Q8ZnGvU6PnnqSW/fRsAY6cKGQk0U 7myw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@cadence.com header.s=proofpoint header.b=lfhiErF7; dkim=pass header.i=@cadence.com header.s=selector2 header.b=RonUEuzK; arc=pass (i=1 spf=pass spfdomain=cadence.com dkim=pass dkdomain=cadence.com dmarc=pass fromdomain=cadence.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cadence.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e37si9443870pge.343.2019.08.19.01.22.02; Mon, 19 Aug 2019 01:22:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@cadence.com header.s=proofpoint header.b=lfhiErF7; dkim=pass header.i=@cadence.com header.s=selector2 header.b=RonUEuzK; arc=pass (i=1 spf=pass spfdomain=cadence.com dkim=pass dkdomain=cadence.com dmarc=pass fromdomain=cadence.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cadence.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727182AbfHSIVG (ORCPT + 99 others); Mon, 19 Aug 2019 04:21:06 -0400 Received: from mx0a-0014ca01.pphosted.com ([208.84.65.235]:54778 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726627AbfHSIVF (ORCPT ); Mon, 19 Aug 2019 04:21:05 -0400 Received: from pps.filterd (m0042385.ppops.net [127.0.0.1]) by mx0a-0014ca01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x7J8GeMt027077; Mon, 19 Aug 2019 01:20:55 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint; bh=h5hQPur/BnznYCYWOPdWuGaMYR8KSxCBNYdcAR74Z4Q=; b=lfhiErF72/cjRD7c6Q/J1EFO1mxdbYxdIC2DW/9fRFYqZKLLSBicoxHaULbR3eZEWZoR t9dSLbEaXstFumONds/YfT+gxaNLXMHJn1BqNmtl2TOIqZUNvb9q7UT+ZVnPeNpc3+Mm u5qbBoGuHs5qJTtM6UntEjjBjLM22e0QDmGdn8u9hTnxTz5i3PEebipVz7DIE/axrLD1 MbIPhyIfUBqFKcqTw4uS9Zlb7D1weUnrtYacc6baTo52PbmVjThclS3VUYscOtQ8EoIM PCpyQgOxkDEmeUpEgOuUIIvho5YAvIo2ZRHrye0885fqGZQeF/kE5//YH34AWlixovgu iw== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=pawell@cadence.com Received: from nam03-co1-obe.outbound.protection.outlook.com (mail-co1nam03lp2055.outbound.protection.outlook.com [104.47.40.55]) by mx0a-0014ca01.pphosted.com with ESMTP id 2uee4y5r7v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 19 Aug 2019 01:20:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nm76gIp6PHzUGsdxTHgRxiSGNCly0s/izzLI0ZKu7xGatzk7j2NBDYusPJpjKNp2wu9UhvnHVLImUoNTMObc0laeDXvZzPG6mu5pbNPWnzSTuRHxMfbRc0gN11CSjRO4hwAta0KQrLDhKGZSEIqnuJz5Fkd9jCFxwZDWYbKpEXjtrJAbwiCUzBUg2o8mInF2wR2vDIxK9AO7CUQjSl5EFduPEO4nwSE/1TZQ8mIQsxhQFm2kbP2Cb3SE3W7iIInjefLQc0Ydj2fNAUgOktoUBq3EX+WIWFiRXtcT0AP71TAsnFj1yJsEGa9yQpmX45MHRMVayHUsaFvbu+KfjDzGMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h5hQPur/BnznYCYWOPdWuGaMYR8KSxCBNYdcAR74Z4Q=; b=eSnUPAYUCBAlM+F4lSHWT93RXmJq7E310PV+3jqcJr21mDmGa4nh2Ty3IFNwTx5HQUX7Mo6VOkGL92qOExfr9vtD81Vz4kHBJgyOxrjrXCWf+XiLNNM8IsJnqiPvbe0DXV5esO9iOhjjQwBp02nFtlo5xzwPBsvHl53lEOx64jgZFF+G/GIrmWxaZDY89J6bdlQ9KSgWEFYKAFTemGvKAWA9Tz+PTmfbgIsCw11OhaY/tw+y5gnOQny7XIc3r6qBwqpQEAkv2E7lX37AfeH7Vd6aHoAjA3vie/BR4u5r+A8reF2Aw9dkbvyFuoLYgsYsHnvjnVEOlxxTpBvFTAMkvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cadence.com; dmarc=pass action=none header.from=cadence.com; dkim=pass header.d=cadence.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h5hQPur/BnznYCYWOPdWuGaMYR8KSxCBNYdcAR74Z4Q=; b=RonUEuzKA5B8XbvvTj8c2sHjmU7DbKP5Z5q4VlyE/2ygDFmp3apCQ74guJCo/J4K+whOUWQiNmxtjuNxXpUggvpRLAVbMyJqD7CMZxfczGMipJqAV6J0Swvzgzxb5B6UlkTBslbmbiJnJY5exZwFsDhdhT44l99oKef6WO6k9vU= Received: from BN7PR07MB4705.namprd07.prod.outlook.com (52.135.250.156) by BN7PR07MB4851.namprd07.prod.outlook.com (52.133.221.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.18; Mon, 19 Aug 2019 08:20:51 +0000 Received: from BN7PR07MB4705.namprd07.prod.outlook.com ([fe80::6c3e:d99c:b0ed:b1d1]) by BN7PR07MB4705.namprd07.prod.outlook.com ([fe80::6c3e:d99c:b0ed:b1d1%7]) with mapi id 15.20.2178.018; Mon, 19 Aug 2019 08:20:51 +0000 From: Pawel Laszczak To: Roger Quadros , "felipe.balbi@linux.intel.com" CC: "gregkh@linuxfoundation.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "jbergsagel@ti.com" , "nsekhar@ti.com" , "nm@ti.com" , Suresh Punnoose , Jayshri Dajiram Pawar , Rahul Kumar , Anil Joy Varughese Subject: RE: [PATCH v10 5/6] usb:cdns3 Add Cadence USB3 DRD Driver Thread-Topic: [PATCH v10 5/6] usb:cdns3 Add Cadence USB3 DRD Driver Thread-Index: AQHVP/LMLOdqGz4qV0qb+zFnj54Ok6b6yZGAgAd29eA= Date: Mon, 19 Aug 2019 08:20:50 +0000 Message-ID: References: <1563733939-21214-1-git-send-email-pawell@cadence.com> <1563733939-21214-6-git-send-email-pawell@cadence.com> <8eb0194a-ee7d-3880-81a7-482ed6e3f759@ti.com> In-Reply-To: <8eb0194a-ee7d-3880-81a7-482ed6e3f759@ti.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNccGF3ZWxsXGFwcGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVlZS02Yjg0YmEyOWUzNWJcbXNnc1xtc2ctMzc3OGQ2Y2ItYzI1YS0xMWU5LTg3NDUtMWM0ZDcwMWRmYmE0XGFtZS10ZXN0XDM3NzhkNmNjLWMyNWEtMTFlOS04NzQ1LTFjNGQ3MDFkZmJhNGJvZHkudHh0IiBzej0iNDIwOTkiIHQ9IjEzMjEwNjc2NDQ0OTIzMjQzNSIgaD0ic2oyWjErY0JxWG00NHdDanpPM3VHRXNScXVZPSIgaWQ9IiIgYmw9IjAiIGJvPSIxIi8+PC9tZXRhPg== x-dg-rorf: x-originating-ip: [185.217.253.59] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b53ca4a4-8d98-494d-7204-08d7247e2590 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600148)(711020)(4605104)(1401327)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:BN7PR07MB4851; x-ms-traffictypediagnostic: BN7PR07MB4851: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0134AD334F x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(396003)(39860400002)(346002)(376002)(366004)(136003)(189003)(199004)(36092001)(478600001)(110136005)(74316002)(7736002)(2906002)(305945005)(71200400001)(71190400001)(76116006)(14454004)(476003)(446003)(66946007)(6436002)(66066001)(66446008)(11346002)(256004)(8676002)(6506007)(8936002)(81166006)(81156014)(66476007)(102836004)(486006)(66556008)(53946003)(229853002)(186003)(55016002)(9686003)(64756008)(33656002)(14444005)(7696005)(316002)(76176011)(4326008)(25786009)(26005)(53936002)(2501003)(99286004)(107886003)(6246003)(54906003)(5660300002)(86362001)(6116002)(30864003)(3846002)(52536014)(569006);DIR:OUT;SFP:1101;SCL:1;SRVR:BN7PR07MB4851;H:BN7PR07MB4705.namprd07.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: cadence.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: B4u1nbUHiMJnYQHUqifvbPKK8OTbh+zNaL2fCZLvnwCVrGpfVRltGkekECCphXLEjShxJB7Lgk0VEQw+FJQt4iA3cTwrHq2kyZ2OHDc/BsUovm3Vl0R7Ei/sYKKLGvRb3w0sx1PuKARlGhfLrNxnIOJ6f8tapJyyYHrnFgwmkK5f0C44QlDDzTPMzJULpBhlDiPfY/7QRduM69tYkVp7ijqOdqJd22kyjVDxkoCqfA04cvBzKHQeIIvWMW2ZNiski4fqFWgtsES6twjtqeJQbnSziTDBiNP26HB8J8IJg1NcwrntNnaacStO79HyZu996dy+svZ8KiMLBpRNmiKYBPBQOUdOrcCip4nqBEs8LHmXAnTyXovvs3m+rdBayt7XV+MK6sPObTovNoNqmQb5X7QDugAUBwjvE0gDAGa8akw= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-Network-Message-Id: b53ca4a4-8d98-494d-7204-08d7247e2590 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2019 08:20:50.7569 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Tk1U6MHGqb+WfBNwUJEPzmWe2TmyFEPfqB4XBwGZe4jChvIaQW3Tss1zyhWSFP3JU3S7Jxl6psO9PC8QrY2i5r2CJMUeD5FIgmf8Y7CaTVQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR07MB4851 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.smktg.jp include:_spf.salesforce.com include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-08-19_02:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_check_notspam policy=outbound_check score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1906280000 definitions=main-1908190096 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgUm9nZXIsDQoNCj4NCj5PbiAyMS8wNy8yMDE5IDIxOjMyLCBQYXdlbCBMYXN6Y3phayB3cm90 ZToNCj4+IFRoaXMgcGF0Y2ggaW50cm9kdWNlIG5ldyBDYWRlbmNlIFVTQlNTIERSRCBkcml2ZXIg dG8gTGludXgga2VybmVsLg0KPj4NCj4+IFRoZSBDYWRlbmNlIFVTQlNTIERSRCBDb250cm9sbGVy IGlzIGEgaGlnaGx5IGNvbmZpZ3VyYWJsZSBJUCBDb3JlIHdoaWNoDQo+PiBjYW4gYmUgaW5zdGFu dGlhdGVkIGFzIER1YWwtUm9sZSBEZXZpY2UgKERSRCksIFBlcmlwaGVyYWwgT25seSBhbmQNCj4+ IEhvc3QgT25seSAoWEhDSSljb25maWd1cmF0aW9ucy4NCj4+DQo+PiBUaGUgY3VycmVudCBkcml2 ZXIgaGFzIGJlZW4gdmFsaWRhdGVkIHdpdGggRlBHQSBwbGF0Zm9ybS4gV2UgaGF2ZQ0KPj4gc3Vw cG9ydCBmb3IgUENJZSBidXMsIHdoaWNoIGlzIHVzZWQgb24gRlBHQSBwcm90b3R5cGluZy4NCj4+ DQo+PiBUaGUgaG9zdCBzaWRlIG9mIFVTQlNTLURSRCBjb250cm9sbGVyIGlzIGNvbXBsaWFudCB3 aXRoIFhIQ0kNCj4+IHNwZWNpZmljYXRpb24sIHNvIGl0IHdvcmtzIHdpdGggc3RhbmRhcmQgWEhD SSBMaW51eCBkcml2ZXIuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogUGF3ZWwgTGFzemN6YWsgPHBh d2VsbEBjYWRlbmNlLmNvbT4NCj4+IC0tLQ0KPj4gIGRyaXZlcnMvdXNiL0tjb25maWcgICAgICAg ICAgICAgICAgfCAgICAyICsNCj4+ICBkcml2ZXJzL3VzYi9NYWtlZmlsZSAgICAgICAgICAgICAg IHwgICAgMiArDQo+PiAgZHJpdmVycy91c2IvY2RuczMvS2NvbmZpZyAgICAgICAgICB8ICAgNDYg Kw0KPj4gIGRyaXZlcnMvdXNiL2NkbnMzL01ha2VmaWxlICAgICAgICAgfCAgIDE3ICsNCj4+ICBk cml2ZXJzL3VzYi9jZG5zMy9jZG5zMy1wY2ktd3JhcC5jIHwgIDIwMyArKysNCj4+ICBkcml2ZXJz L3VzYi9jZG5zMy9jb3JlLmMgICAgICAgICAgIHwgIDU1NCArKysrKysrDQo+PiAgZHJpdmVycy91 c2IvY2RuczMvY29yZS5oICAgICAgICAgICB8ICAxMDkgKysNCj4+ICBkcml2ZXJzL3VzYi9jZG5z My9kZWJ1Zy5oICAgICAgICAgIHwgIDE3MSArKw0KPj4gIGRyaXZlcnMvdXNiL2NkbnMzL2RlYnVn ZnMuYyAgICAgICAgfCAgIDg3ICsrDQo+PiAgZHJpdmVycy91c2IvY2RuczMvZHJkLmMgICAgICAg ICAgICB8ICAzOTAgKysrKysNCj4+ICBkcml2ZXJzL3VzYi9jZG5zMy9kcmQuaCAgICAgICAgICAg IHwgIDE2NiArKw0KPj4gIGRyaXZlcnMvdXNiL2NkbnMzL2VwMC5jICAgICAgICAgICAgfCAgOTE0 ICsrKysrKysrKysrDQo+PiAgZHJpdmVycy91c2IvY2RuczMvZ2FkZ2V0LWV4cG9ydC5oICB8ICAg MjggKw0KPj4gIGRyaXZlcnMvdXNiL2NkbnMzL2dhZGdldC5jICAgICAgICAgfCAyMzM4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4+ICBkcml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuaCAg ICAgICAgIHwgMTMyMSArKysrKysrKysrKysrKysrDQo+PiAgZHJpdmVycy91c2IvY2RuczMvaG9z dC1leHBvcnQuaCAgICB8ICAgMjggKw0KPj4gIGRyaXZlcnMvdXNiL2NkbnMzL2hvc3QuYyAgICAg ICAgICAgfCAgIDcxICsNCj4+ICBkcml2ZXJzL3VzYi9jZG5zMy90cmFjZS5jICAgICAgICAgIHwg ICAxMSArDQo+PiAgZHJpdmVycy91c2IvY2RuczMvdHJhY2UuaCAgICAgICAgICB8ICA0OTMgKysr KysrDQo+PiAgMTkgZmlsZXMgY2hhbmdlZCwgNjk1MSBpbnNlcnRpb25zKCspDQo+PiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvdXNiL2NkbnMzL0tjb25maWcNCj4+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy91c2IvY2RuczMvTWFrZWZpbGUNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy91c2IvY2RuczMvY2RuczMtcGNpLXdyYXAuYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL3VzYi9jZG5zMy9jb3JlLmMNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy91c2IvY2RuczMvY29yZS5oDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdXNiL2Nk bnMzL2RlYnVnLmgNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy91c2IvY2RuczMvZGVi dWdmcy5jDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdXNiL2NkbnMzL2RyZC5jDQo+ PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdXNiL2NkbnMzL2RyZC5oDQo+PiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvdXNiL2NkbnMzL2VwMC5jDQo+PiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvdXNiL2NkbnMzL2dhZGdldC1leHBvcnQuaA0KPj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuaA0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3VzYi9jZG5zMy9ob3N0LWV4cG9ydC5oDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv dXNiL2NkbnMzL2hvc3QuYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3VzYi9jZG5z My90cmFjZS5jDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdXNiL2NkbnMzL3RyYWNl LmgNCj4+DQo+DQo+PHNuaXA+DQo+DQo+SXQgaXMgZ2V0dGluZyByZWFsbHkgaGFyZCB0byByZXZp ZXcgdGhpcyBwYXRjaCBhcyBpdCBpcyBzbyBsYXJnZS4NCj5JIHdvdWxkIHN0aWxsIHN1Z2dlc3Qg dG8gc3BsaXQgaG9zdC9nYWRnZXQvZHJkIGlmIHBvc3NpYmxlLg0KPkZlbGlwZSwgYW55IG9iamVj dGlvbnM/DQo+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2RuczMvZ2FkZ2V0LmMgYi9k cml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuYw0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uMjkxZjA4YmU1NmZlDQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysg Yi9kcml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuYw0KPj4gQEAgLTAsMCArMSwyMzM4IEBADQo+PiAr Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4+ICsvKg0KPj4gKyAqIENhZGVu Y2UgVVNCU1MgRFJEIERyaXZlciAtIGdhZGdldCBzaWRlLg0KPj4gKyAqDQo+PiArICogQ29weXJp Z2h0IChDKSAyMDE4LTIwMTkgQ2FkZW5jZSBEZXNpZ24gU3lzdGVtcy4NCj4+ICsgKiBDb3B5cmln aHQgKEMpIDIwMTctMjAxOCBOWFANCj4+ICsgKg0KPj4gKyAqIEF1dGhvcnM6IFBhd2VsIEpleiA8 cGplekBjYWRlbmNlLmNvbT4sDQo+PiArICogICAgICAgICAgUGF3ZWwgTGFzemN6YWsgPHBhd2Vs bEBjYWRlbmNlLmNvbT4NCj4+ICsgKiAgICAgICAgICBQZXRlciBDaGVuIDxwZXRlci5jaGVuQG54 cC5jb20+DQo+PiArICovDQo+PiArDQo+DQo+PHNuaXA+DQo+DQo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvY2RuczMvZ2FkZ2V0LmggYi9kcml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuaA0KPj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uMmE5N2MxNmFlYTRi DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9kcml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuaA0K Pj4gQEAgLTAsMCArMSwxMzIxIEBADQo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAgKi8NCj4+ICsvKg0KPj4gKyAqIFVTQlNTIGRldmljZSBjb250cm9sbGVyIGRyaXZlciBo ZWFkZXIgZmlsZQ0KPj4gKyAqDQo+PiArICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQ2FkZW5j ZS4NCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBOWFANCj4+ICsgKg0KPj4gKyAqIEF1 dGhvcjogUGF3ZWwgTGFzemN6YWsgPHBhd2VsbEBjYWRlbmNlLmNvbT4NCj4+ICsgKiAgICAgICAg IFBhd2VsIEpleiA8cGplekBjYWRlbmNlLmNvbT4NCj4+ICsgKiAgICAgICAgIFBldGVyIENoZW4g PHBldGVyLmNoZW5AbnhwLmNvbT4NCj4+ICsgKi8NCj4+ICsjaWZuZGVmIF9fTElOVVhfQ0ROUzNf R0FER0VUDQo+PiArI2RlZmluZSBfX0xJTlVYX0NETlMzX0dBREdFVA0KPj4gKyNpbmNsdWRlIDxs aW51eC91c2IvZ2FkZ2V0Lmg+DQo+PiArDQo+PiArLyoNCj4+ICsgKiBVU0JTUy1ERVYgcmVnaXN0 ZXIgaW50ZXJmYWNlLg0KPj4gKyAqIFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIFVTQlNTIERldmlj ZSBDb250cm9sbGVyIEludGVyZmFjZQ0KPj4gKyAqLw0KPj4gKw0KPj4gKy8qKg0KPj4gKyAqIHN0 cnVjdCBjZG5zM191c2JfcmVncyAtIGRldmljZSBjb250cm9sbGVyIHJlZ2lzdGVycy4NCj4+ICsg KiBAdXNiX2NvbmY6ICAgICAgR2xvYmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIuDQo+PiArICog QHVzYl9zdHM6ICAgICAgIEdsb2JhbCBTdGF0dXMgUmVnaXN0ZXIuDQo+PiArICogQHVzYl9jbWQ6 ICAgICAgIEdsb2JhbCBDb21tYW5kIFJlZ2lzdGVyLg0KPj4gKyAqIEB1c2JfaXRwbjogICAgICBJ VFAvU09GIG51bWJlciBSZWdpc3Rlci4NCj4+ICsgKiBAdXNiX2xwbTogICAgICAgR2xvYmFsIENv bW1hbmQgUmVnaXN0ZXIuDQo+PiArICogQHVzYl9pZW46ICAgICAgIFVTQiBJbnRlcnJ1cHQgRW5h YmxlIFJlZ2lzdGVyLg0KPj4gKyAqIEB1c2JfaXN0czogICAgICBVU0IgSW50ZXJydXB0IFN0YXR1 cyBSZWdpc3Rlci4NCj4+ICsgKiBAZXBfc2VsOiAgICAgICAgRW5kcG9pbnQgU2VsZWN0IFJlZ2lz dGVyLg0KPj4gKyAqIEBlcF90cmFkZHI6ICAgICBFbmRwb2ludCBUcmFuc2ZlciBSaW5nIEFkZHJl c3MgUmVnaXN0ZXIuDQo+PiArICogQGVwX2NmZzogICAgICAgIEVuZHBvaW50IENvbmZpZ3VyYXRp b24gUmVnaXN0ZXIuDQo+PiArICogQGVwX2NtZDogICAgICAgIEVuZHBvaW50IENvbW1hbmQgUmVn aXN0ZXIuDQo+PiArICogQGVwX3N0czogICAgICAgIEVuZHBvaW50IFN0YXR1cyBSZWdpc3Rlci4N Cj4+ICsgKiBAZXBfc3RzX3NpZDogICAgRW5kcG9pbnQgU3RhdHVzIFJlZ2lzdGVyLg0KPj4gKyAq IEBlcF9zdHNfZW46ICAgICBFbmRwb2ludCBTdGF0dXMgUmVnaXN0ZXIgRW5hYmxlLg0KPj4gKyAq IEBkcmJsOiAgICAgICAgICBEb29yYmVsbCBSZWdpc3Rlci4NCj4+ICsgKiBAZXBfaWVuOiAgICAg ICAgRVAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3Rlci4NCj4+ICsgKiBAZXBfaXN0czogICAgICAg RVAgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3Rlci4NCj4+ICsgKiBAdXNiX3B3cjogICAgICAgR2xv YmFsIFBvd2VyIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIuDQo+PiArICogQHVzYl9jb25mMjogICAg IEdsb2JhbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDIuDQo+PiArICogQHVzYl9jYXAxOiAgICAg IENhcGFiaWxpdHkgUmVnaXN0ZXIgMS4NCj4+ICsgKiBAdXNiX2NhcDI6ICAgICAgQ2FwYWJpbGl0 eSBSZWdpc3RlciAyLg0KPj4gKyAqIEB1c2JfY2FwMzogICAgICBDYXBhYmlsaXR5IFJlZ2lzdGVy IDMuDQo+PiArICogQHVzYl9jYXA0OiAgICAgIENhcGFiaWxpdHkgUmVnaXN0ZXIgNC4NCj4+ICsg KiBAdXNiX2NhcDU6ICAgICAgQ2FwYWJpbGl0eSBSZWdpc3RlciA1Lg0KPj4gKyAqIEB1c2JfY2Fw NjogICAgICBDYXBhYmlsaXR5IFJlZ2lzdGVyIDYuDQo+PiArICogQHVzYl9jcGt0MTogICAgIEN1 c3RvbSBQYWNrZXQgUmVnaXN0ZXIgMS4NCj4+ICsgKiBAdXNiX2Nwa3QyOiAgICAgQ3VzdG9tIFBh Y2tldCBSZWdpc3RlciAyLg0KPj4gKyAqIEB1c2JfY3BrdDM6ICAgICBDdXN0b20gUGFja2V0IFJl Z2lzdGVyIDMuDQo+PiArICogQGVwX2RtYV9leHRfYWRkcjogVXBwZXIgYWRkcmVzcyBmb3IgRE1B IG9wZXJhdGlvbnMgUmVnaXN0ZXIuDQo+PiArICogQGJ1Zl9hZGRyOiAgICAgIEFkZHJlc3MgZm9y IE9uLWNoaXAgQnVmZmVyIG9wZXJhdGlvbnMgUmVnaXN0ZXIuDQo+PiArICogQGJ1Zl9kYXRhOiAg ICAgIERhdGEgZm9yIE9uLWNoaXAgQnVmZmVyIG9wZXJhdGlvbnMgUmVnaXN0ZXIuDQo+PiArICog QGJ1Zl9jdHJsOiAgICAgIE9uLWNoaXAgQnVmZmVyIEFjY2VzcyBDb250cm9sIFJlZ2lzdGUuDQo+ DQo+L1JlZ2lzdGUuL1JlZ2lzdGVyLg0KPg0KPldlIGtub3cgdGhlc2UgYXJlIHJlZ2lzdGVycyBz byBwcm9iYWJseSBjb3VsZCByZW1vdmUgIlJlZ2lzdGVyIiBmcm9tDQo+ZXZlcnl3aGVyDQoNCk9r LCBJJ3ZlIHJlbW92ZWQgdGhlbS4NCg0KPg0KPj4gKyAqIEBkdHJhbnM6ICAgICAgICBETUEgVHJh bnNmZXIgTW9kZSBSZWdpc3Rlci4NCj4+ICsgKiBAdGRsX2Zyb21fdHJiOiAgU291cmNlIG9mIFRE IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIuDQo+PiArICogQHRkbF9iZWg6ICAgICAgIFRETCBCZWhh dmlvciBDb25maWd1cmF0aW9uIFJlZ2lzdGVyLg0KPj4gKyAqIEBlcF90ZGw6ICAgICAgICBFbmRw b2ludCBUREwgUmVnaXN0ZXIuDQo+PiArICogQHRkbF9iZWgyOiAgICAgIFRETCBCZWhhdmlvciAy IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIuDQo+PiArICogQGRtYV9hZHZfdGQ6ICAgIERNQSBBZHZh bmNlIFREIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIuDQo+PiArICogQHJlc2VydmVkMTogICAgIFJl c2VydmVkLg0KPj4gKyAqIEBjZmdfcmVnczogICAgICBDb25maWd1cmF0aW9uIHJlZ2lzdGVycy4N Cj4+ICsgKiBAcmVzZXJ2ZWQyOiAgICAgUmVzZXJ2ZWQuDQo+PiArICogQGRtYV9heGlfY3RybDog IEFYSSBDb250cm9sIHJlZ2lzdGVyLg0KPj4gKyAqIEBkbWFfYXhpX2lkOiAgICBBWEkgSUQgcmVn aXN0ZXIuDQo+PiArICogQGRtYV9heGlfY2FwOiAgIEFYSSBDYXBhYmlsaXR5IHJlZ2lzdGVyLg0K Pj4gKyAqIEBkbWFfYXhpX2N0cmwwOiBBWEkgQ29udHJvbCAwIHJlZ2lzdGVyLg0KPj4gKyAqIEBk bWFfYXhpX2N0cmwxOiBBWEkgQ29udHJvbCAxIHJlZ2lzdGVyLg0KPj4gKyAqLw0KPj4gK3N0cnVj dCBjZG5zM191c2JfcmVncyB7DQo+PiArCV9fbGUzMiB1c2JfY29uZjsNCj4+ICsJX19sZTMyIHVz Yl9zdHM7DQo+PiArCV9fbGUzMiB1c2JfY21kOw0KPj4gKwlfX2xlMzIgdXNiX2l0cG47DQo+PiAr CV9fbGUzMiB1c2JfbHBtOw0KPj4gKwlfX2xlMzIgdXNiX2llbjsNCj4+ICsJX19sZTMyIHVzYl9p c3RzOw0KPj4gKwlfX2xlMzIgZXBfc2VsOw0KPj4gKwlfX2xlMzIgZXBfdHJhZGRyOw0KPj4gKwlf X2xlMzIgZXBfY2ZnOw0KPj4gKwlfX2xlMzIgZXBfY21kOw0KPj4gKwlfX2xlMzIgZXBfc3RzOw0K Pj4gKwlfX2xlMzIgZXBfc3RzX3NpZDsNCj4+ICsJX19sZTMyIGVwX3N0c19lbjsNCj4+ICsJX19s ZTMyIGRyYmw7DQo+PiArCV9fbGUzMiBlcF9pZW47DQo+PiArCV9fbGUzMiBlcF9pc3RzOw0KPj4g KwlfX2xlMzIgdXNiX3B3cjsNCj4+ICsJX19sZTMyIHVzYl9jb25mMjsNCj4+ICsJX19sZTMyIHVz Yl9jYXAxOw0KPj4gKwlfX2xlMzIgdXNiX2NhcDI7DQo+PiArCV9fbGUzMiB1c2JfY2FwMzsNCj4+ ICsJX19sZTMyIHVzYl9jYXA0Ow0KPj4gKwlfX2xlMzIgdXNiX2NhcDU7DQo+PiArCV9fbGUzMiB1 c2JfY2FwNjsNCj4+ICsJX19sZTMyIHVzYl9jcGt0MTsNCj4+ICsJX19sZTMyIHVzYl9jcGt0MjsN Cj4+ICsJX19sZTMyIHVzYl9jcGt0MzsNCj4+ICsJX19sZTMyIGVwX2RtYV9leHRfYWRkcjsNCj4+ ICsJX19sZTMyIGJ1Zl9hZGRyOw0KPj4gKwlfX2xlMzIgYnVmX2RhdGE7DQo+PiArCV9fbGUzMiBi dWZfY3RybDsNCj4+ICsJX19sZTMyIGR0cmFuczsNCj4+ICsJX19sZTMyIHRkbF9mcm9tX3RyYjsN Cj4+ICsJX19sZTMyIHRkbF9iZWg7DQo+PiArCV9fbGUzMiBlcF90ZGw7DQo+PiArCV9fbGUzMiB0 ZGxfYmVoMjsNCj4+ICsJX19sZTMyIGRtYV9hZHZfdGQ7DQo+DQo+SSBkb24ndCBzZWUgYWJvdmUg cmVnaXN0ZXJzIGFmdGVyIGJ1Zl9jdHJsIGluDQo+cHJvZ3JhbW1pbmcgZ3VpZGUuIEFyZSB0aGV5 IGFwcGxpY2FibGUgZm9yIFYxPw0KDQpUaGV5IGFyZSBhdmFpbGFibGUgaW4gVjIvVjMuIA0KDQo+ DQo+PiArCV9fbGUzMiByZXNlcnZlZDFbMjZdOw0KPj4gKwlfX2xlMzIgY2ZnX3JlZzE7DQo+PiAr CV9fbGUzMiBkYmdfbGluazE7DQo+PiArCV9fbGUzMiBkYmdfbGluazI7DQo+PiArCV9fbGUzMiBj ZmdfcmVnc1s3NF07DQo+PiArCV9fbGUzMiByZXNlcnZlZDJbNTFdOw0KPj4gKwlfX2xlMzIgZG1h X2F4aV9jdHJsOw0KPg0KPmRtYV9heGlfY3RybCBzaG93cyB1cCBhdCBvZmZzZXQgMHgyYmMgaW5z dGVhZCBvZiAweDMwMC4NCj5TbyB3ZSBwcm9iYWJseSBuZWVkIHRvIGluY3JlYXNlIHJlc2VydmUy IHNpemUgZnJvbSAzNCB0byA1MS4NCg0KQ29ycmVjdGVkLiANCg0KPg0KPj4gKwlfX2xlMzIgZG1h X2F4aV9pZDsNCj4+ICsJX19sZTMyIGRtYV9heGlfY2FwOw0KPj4gKwlfX2xlMzIgZG1hX2F4aV9j dHJsMDsNCj4+ICsJX19sZTMyIGRtYV9heGlfY3RybDE7DQo+PiArfTsNCj4+ICsNCj4+ICsvKiBV U0JfQ09ORiAtIGJpdG1hc2tzICovDQo+PiArLyogUmVzZXQgVVNCIGRldmljZSBjb25maWd1cmF0 aW9uLiAqLw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfQ0ZHUlNUCQlCSVQoMCkNCj4+ICsvKiBTZXQg Q29uZmlndXJhdGlvbi4gKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05GX0NGR1NFVAkJQklUKDEpDQo+ PiArLyogRGlzY29ubmVjdCBVU0IgZGV2aWNlIGluIFN1cGVyU3BlZWQuICovDQo+PiArI2RlZmlu ZSBVU0JfQ09ORl9VU0IzRElTCUJJVCgzKQ0KPj4gKy8qIERpc2Nvbm5lY3QgVVNCIGRldmljZSBp biBIUy9GUyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfVVNCMkRJUwlCSVQoNCkNCj4+ICsvKiBM aXR0bGUgRW5kaWFuIGFjY2VzcyAtIGRlZmF1bHQgKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05GX0xF TkRJQU4JQklUKDUpDQo+PiArLyoNCj4+ICsgKiBCaWcgRW5kaWFuIGFjY2Vzcy4gRHJpdmVyIGFz c3VtZSB0aGF0IGJ5dGUgb3JkZXIgZm9yDQo+PiArICogU0ZScyBhY2Nlc3MgYWx3YXlzIGlzIGFz IExpdHRsZSBFbmRpYW4gc28gdGhpcyBiaXQNCj4+ICsgKiBpcyBub3QgdXNlZC4NCj4+ICsgKi8N Cj4+ICsjZGVmaW5lIFVTQl9DT05GX0JFTkRJQU4JQklUKDYpDQo+PiArLyogRGV2aWNlIHNvZnR3 YXJlIHJlc2V0LiAqLw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfU1dSU1QJCUJJVCg3KQ0KPj4gKy8q IFNpbmd1bGFyIERNQSB0cmFuc2ZlciBtb2RlLiBPbmx5IGZvciBWRVIgPCBERVZfVkVSX1YzKi8N Cj4+ICsjZGVmaW5lIFVTQl9DT05GX0RTSU5HCQlCSVQoOCkNCj4+ICsvKiBNdWx0aXBsZSBETUEg dHJhbnNmZXJzIG1vZGUuIE9ubHkgZm9yIFZFUiA8IERFVl9WRVJfVjMgKi8NCj4+ICsjZGVmaW5l IFVTQl9DT05GX0RNVUxUCQlCSVQoOSkNCj4+ICsvKiBETUEgY2xvY2sgdHVybi1vZmYgZW5hYmxl LiAqLw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfRE1BT0ZGRU4JQklUKDEwKQ0KPj4gKy8qIERNQSBj bG9jayB0dXJuLW9mZiBkaXNhYmxlLiAqLw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfRE1BT0ZGRFMJ QklUKDExKQ0KPj4gKy8qIENsZWFyIEZvcmNlIEZ1bGwgU3BlZWQuICovDQo+PiArI2RlZmluZSBV U0JfQ09ORl9DRk9SQ0VfRlMJQklUKDEyKQ0KPj4gKy8qIFNldCBGb3JjZSBGdWxsIFNwZWVkLiAq Lw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfU0ZPUkNFX0ZTCUJJVCgxMykNCj4+ICsvKiBEZXZpY2Ug ZW5hYmxlLiAqLw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfREVWRU4JCUJJVCgxNCkNCj4+ICsvKiBE ZXZpY2UgZGlzYWJsZS4gKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05GX0RFVkRTCQlCSVQoMTUpDQo+ PiArLyogTDEgTFBNIHN0YXRlIGVudHJ5IGVuYWJsZSAodXNlZCBpbiBIUy9GUyBtb2RlKS4gKi8N Cj4+ICsjZGVmaW5lIFVTQl9DT05GX0wxRU4JCUJJVCgxNikNCj4+ICsvKiBMMSBMUE0gc3RhdGUg ZW50cnkgZGlzYWJsZSAodXNlZCBpbiBIUy9GUyBtb2RlKS4gKi8NCj4+ICsjZGVmaW5lIFVTQl9D T05GX0wxRFMJCUJJVCgxNykNCj4+ICsvKiBVU0IgMi4wIGNsb2NrIGdhdGUgZGlzYWJsZS4gKi8N Cj4+ICsjZGVmaW5lIFVTQl9DT05GX0NMSzJPRkZFTglCSVQoMTgpDQo+PiArLyogVVNCIDIuMCBj bG9jayBnYXRlIGVuYWJsZS4gKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05GX0NMSzJPRkZEUwlCSVQo MTkpDQo+PiArLyogTDAgTFBNIHN0YXRlIGVudHJ5IHJlcXVlc3QgKHVzZWQgaW4gSFMvRlMgbW9k ZSkuICovDQo+PiArI2RlZmluZSBVU0JfQ09ORl9MR09fTDAJCUJJVCgyMCkNCj4+ICsvKiBVU0Ig My4wIGNsb2NrIGdhdGUgZGlzYWJsZS4gKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05GX0NMSzNPRkZF TglCSVQoMjEpDQo+PiArLyogVVNCIDMuMCBjbG9jayBnYXRlIGVuYWJsZS4gKi8NCj4+ICsjZGVm aW5lIFVTQl9DT05GX0NMSzNPRkZEUwlCSVQoMjIpDQo+PiArLyogQml0IDIzIGlzIHJlc2VydmVk Ki8NCj4+ICsvKiBVMSBzdGF0ZSBlbnRyeSBlbmFibGUgKHVzZWQgaW4gU1MgbW9kZSkuICovDQo+ PiArI2RlZmluZSBVU0JfQ09ORl9VMUVOCQlCSVQoMjQpDQo+PiArLyogVTEgc3RhdGUgZW50cnkg ZGlzYWJsZSAodXNlZCBpbiBTUyBtb2RlKS4gKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05GX1UxRFMJ CUJJVCgyNSkNCj4+ICsvKiBVMiBzdGF0ZSBlbnRyeSBlbmFibGUgKHVzZWQgaW4gU1MgbW9kZSku ICovDQo+PiArI2RlZmluZSBVU0JfQ09ORl9VMkVOCQlCSVQoMjYpDQo+PiArLyogVTIgc3RhdGUg ZW50cnkgZGlzYWJsZSAodXNlZCBpbiBTUyBtb2RlKS4gKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05G X1UyRFMJCUJJVCgyNykNCj4+ICsvKiBVMCBzdGF0ZSBlbnRyeSByZXF1ZXN0ICh1c2VkIGluIFNT IG1vZGUpLiAqLw0KPj4gKyNkZWZpbmUgVVNCX0NPTkZfTEdPX1UwCQlCSVQoMjgpDQo+PiArLyog VTEgc3RhdGUgZW50cnkgcmVxdWVzdCAodXNlZCBpbiBTUyBtb2RlKS4gKi8NCj4+ICsjZGVmaW5l IFVTQl9DT05GX0xHT19VMQkJQklUKDI5KQ0KPj4gKy8qIFUyIHN0YXRlIGVudHJ5IHJlcXVlc3Qg KHVzZWQgaW4gU1MgbW9kZSkuICovDQo+PiArI2RlZmluZSBVU0JfQ09ORl9MR09fVTIJCUJJVCgz MCkNCj4+ICsvKiBTUy5JbmFjdGl2ZSBzdGF0ZSBlbnRyeSByZXF1ZXN0ICh1c2VkIGluIFNTIG1v ZGUpICovDQo+PiArI2RlZmluZSBVU0JfQ09ORl9MR09fU1NJTkFDVAlCSVQoMzEpDQo+PiArDQo+ PiArLyogVVNCX1NUUyAtIGJpdG1hc2tzICovDQo+PiArLyoNCj4+ICsgKiBDb25maWd1cmF0aW9u IHN0YXR1cy4NCj4+ICsgKiAxIC0gZGV2aWNlIGlzIGluIHRoZSBjb25maWd1cmVkIHN0YXRlLg0K Pj4gKyAqIDAgLSBkZXZpY2UgaXMgbm90IGNvbmZpZ3VyZWQuDQo+PiArICovDQo+PiArI2RlZmlu ZSBVU0JfU1RTX0NGR1NUU19NQVNLCUJJVCgwKQ0KPj4gKyNkZWZpbmUgVVNCX1NUU19DRkdTVFMo cCkJKChwKSAmIFVTQl9TVFNfQ0ZHU1RTX01BU0spDQo+PiArLyoNCj4+ICsgKiBPbi1jaGlwIG1l bW9yeSBvdmVyZmxvdy4NCj4+ICsgKiAwIC0gT24tY2hpcCBtZW1vcnkgc3RhdHVzIE9LLg0KPj4g KyAqIDEgLSBPbi1jaGlwIG1lbW9yeSBvdmVyZmxvdy4NCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVT Ql9TVFNfT1ZfTUFTSwkJQklUKDEpDQo+PiArI2RlZmluZSBVU0JfU1RTX09WKHApCQkoKHApICYg VVNCX1NUU19PVl9NQVNLKQ0KPj4gKy8qDQo+PiArICogU3VwZXJTcGVlZCBjb25uZWN0aW9uIHN0 YXR1cy4NCj4+ICsgKiAwIC0gVVNCIGluIFN1cGVyU3BlZWQgbW9kZSBkaXNjb25uZWN0ZWQuDQo+ PiArICogMSAtIFVTQiBpbiBTdXBlclNwZWVkIG1vZGUgY29ubmVjdGVkLg0KPj4gKyAqLw0KPj4g KyNkZWZpbmUgVVNCX1NUU19VU0IzQ09OU19NQVNLCUJJVCgyKQ0KPj4gKyNkZWZpbmUgVVNCX1NU U19VU0IzQ09OUyhwKQkoKHApICYgVVNCX1NUU19VU0IzQ09OU19NQVNLKQ0KPj4gKy8qDQo+PiAr ICogRE1BIHRyYW5zZmVyIGNvbmZpZ3VyYXRpb24gc3RhdHVzLg0KPj4gKyAqIDAgLSBzaW5nbGUg cmVxdWVzdC4NCj4+ICsgKiAxIC0gbXVsdGlwbGUgVFJCIGNoYWluDQo+PiArICogU3VwcG9ydGVk IG9ubHkgZm9yIGNvbnRyb2xsZXIgdmVyc2lvbiA8ICBERVZfVkVSX1YzDQo+PiArICovDQo+PiAr I2RlZmluZSBVU0JfU1RTX0RUUkFOU19NQVNLCUJJVCgzKQ0KPj4gKyNkZWZpbmUgVVNCX1NUU19E VFJBTlMocCkJKChwKSAmIFVTQl9TVFNfRFRSQU5TX01BU0spDQo+PiArLyoNCj4+ICsgKiBEZXZp Y2Ugc3BlZWQuDQo+PiArICogMCAtIFVuZGVmaW5lZCAodmFsdWUgYWZ0ZXIgcmVzZXQpLg0KPj4g KyAqIDEgLSBMb3cgc3BlZWQNCj4+ICsgKiAyIC0gRnVsbCBzcGVlZA0KPj4gKyAqIDMgLSBIaWdo IHNwZWVkDQo+PiArICogNCAtIFN1cGVyIHNwZWVkDQo+PiArICovDQo+PiArI2RlZmluZSBVU0Jf U1RTX1VTQlNQRUVEX01BU0sJR0VOTUFTSyg2LCA0KQ0KPj4gKyNkZWZpbmUgVVNCX1NUU19VU0JT UEVFRChwKQkoKChwKSAmIFVTQl9TVFNfVVNCU1BFRURfTUFTSykgPj4gNCkNCj4+ICsjZGVmaW5l IFVTQl9TVFNfTFMJCSgweDEgPDwgNCkNCj4+ICsjZGVmaW5lIFVTQl9TVFNfRlMJCSgweDIgPDwg NCkNCj4+ICsjZGVmaW5lIFVTQl9TVFNfSFMJCSgweDMgPDwgNCkNCj4+ICsjZGVmaW5lIFVTQl9T VFNfU1MJCSgweDQgPDwgNCkNCj4+ICsjZGVmaW5lIERFVl9VTkRFRlNQRUVEKHApCSgoKHApICYg VVNCX1NUU19VU0JTUEVFRF9NQVNLKSA9PSAoMHgwIDw8IDQpKQ0KPj4gKyNkZWZpbmUgREVWX0xP V1NQRUVEKHApCQkoKChwKSAmIFVTQl9TVFNfVVNCU1BFRURfTUFTSykgPT0gVVNCX1NUU19MUykN Cj4+ICsjZGVmaW5lIERFVl9GVUxMU1BFRUQocCkJKCgocCkgJiBVU0JfU1RTX1VTQlNQRUVEX01B U0spID09IFVTQl9TVFNfRlMpDQo+PiArI2RlZmluZSBERVZfSElHSFNQRUVEKHApCSgoKHApICYg VVNCX1NUU19VU0JTUEVFRF9NQVNLKSA9PSBVU0JfU1RTX0hTKQ0KPj4gKyNkZWZpbmUgREVWX1NV UEVSU1BFRUQocCkJKCgocCkgJiBVU0JfU1RTX1VTQlNQRUVEX01BU0spID09IFVTQl9TVFNfU1Mp DQo+PiArLyoNCj4+ICsgKiBFbmRpYW5uZXNzIGZvciBTRlIgYWNjZXNzLg0KPj4gKyAqIDAgLSBM aXR0bGUgRW5kaWFuIG9yZGVyIChkZWZhdWx0IGFmdGVyIGhhcmR3YXJlIHJlc2V0KS4NCj4+ICsg KiAxIC0gQmlnIEVuZGlhbiBvcmRlcg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX1NUU19FTkRJ QU5fTUFTSwlCSVQoNykNCj4+ICsjZGVmaW5lIFVTQl9TVFNfRU5ESUFOKHApCSgocCkgJiBVU0Jf U1RTX0VORElBTl9NQVNLKQ0KPj4gKy8qDQo+PiArICogSFMvRlMgY2xvY2sgdHVybi1vZmYgc3Rh dHVzLg0KPj4gKyAqIDAgLSBoc2ZzIGNsb2NrIGlzIGFsd2F5cyBvbi4NCj4+ICsgKiAxIC0gaHNm cyBjbG9jayB0dXJuLW9mZiBpbiBMMiAoSFMvRlMgbW9kZSkgaXMgZW5hYmxlZA0KPj4gKyAqICAg ICAgICAgIChkZWZhdWx0IGFmdGVyIGhhcmR3YXJlIHJlc2V0KS4NCj4+ICsgKi8NCj4+ICsjZGVm aW5lIFVTQl9TVFNfQ0xLMk9GRl9NQVNLCUJJVCg4KQ0KPj4gKyNkZWZpbmUgVVNCX1NUU19DTEsy T0ZGKHApCSgocCkgJiBVU0JfU1RTX0NMSzJPRkZfTUFTSykNCj4+ICsvKg0KPj4gKyAqIFBDTEsg Y2xvY2sgdHVybi1vZmYgc3RhdHVzLg0KPj4gKyAqIDAgLSBwY2xrIGNsb2NrIGlzIGFsd2F5cyBv bi4NCj4+ICsgKiAxIC0gcGNsayBjbG9jayB0dXJuLW9mZiBpbiBVMyAoU1MgbW9kZSkgaXMgZW5h YmxlZA0KPj4gKyAqICAgICAgICAgIChkZWZhdWx0IGFmdGVyIGhhcmR3YXJlIHJlc2V0KS4NCj4+ ICsgKi8NCj4+ICsjZGVmaW5lIFVTQl9TVFNfQ0xLM09GRl9NQVNLCUJJVCg5KQ0KPj4gKyNkZWZp bmUgVVNCX1NUU19DTEszT0ZGKHApCSgocCkgJiBVU0JfU1RTX0NMSzNPRkZfTUFTSykNCj4+ICsv Kg0KPj4gKyAqIENvbnRyb2xsZXIgaW4gcmVzZXQgc3RhdGUuDQo+PiArICogMCAtIEludGVybmFs IHJlc2V0IGlzIGFjdGl2ZS4NCj4+ICsgKiAxIC0gSW50ZXJuYWwgcmVzZXQgaXMgbm90IGFjdGl2 ZSBhbmQgY29udHJvbGxlciBpcyBmdWxseSBvcGVyYXRpb25hbC4NCj4+ICsgKi8NCj4+ICsjZGVm aW5lIFVTQl9TVFNfSU5fUlNUX01BU0sJQklUKDEwKQ0KPj4gKyNkZWZpbmUgVVNCX1NUU19JTl9S U1QocCkJKChwKSAmIFVTQl9TVFNfSU5fUlNUX01BU0spDQo+PiArLyoNCj4+ICsgKiBTdGF0dXMg b2YgdGhlICJUREwgY2FsY3VsYXRpb24gYmFzaW5nIG9uIFRSQiIgZmVhdHVyZS4NCj4+ICsgKiAw IC0gZGlzYWJsZWQNCj4+ICsgKiAxIC0gZW5hYmxlZA0KPj4gKyAqIFN1cHBvcnRlZCBvbmx5IGZv ciBERVZfVkVSX1YyIGNvbnRyb2xsZXIgdmVyc2lvbi4NCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVT Ql9TVFNfVERMX1RSQl9FTkFCTEVECUJJVCgxMSkNCj4+ICsvKg0KPj4gKyAqIERldmljZSBlbmFi bGUgU3RhdHVzLg0KPj4gKyAqIDAgLSBVU0IgZGV2aWNlIGlzIGRpc2FibGVkIChWQlVTIGlucHV0 IGlzIGRpc2Nvbm5lY3RlZCBmcm9tIGludGVybmFsIGxvZ2ljKS4NCj4+ICsgKiAxIC0gVVNCIGRl dmljZSBpcyBlbmFibGVkIChWQlVTIGlucHV0IGlzIGNvbm5lY3RlZCB0byB0aGUgaW50ZXJuYWwg bG9naWMpLg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX1NUU19ERVZTX01BU0sJQklUKDE0KQ0K Pj4gKyNkZWZpbmUgVVNCX1NUU19ERVZTKHApCQkoKHApICYgVVNCX1NUU19ERVZTX01BU0spDQo+ PiArLyoNCj4+ICsgKiBBZGRyZXNzIHN0YXR1cy4NCj4+ICsgKiAwIC0gVVNCIGRldmljZSBpcyBk ZWZhdWx0IHN0YXRlLg0KPj4gKyAqIDEgLSBVU0IgZGV2aWNlIGlzIGF0IGxlYXN0IGluIGFkZHJl c3Mgc3RhdGUuDQo+PiArICovDQo+PiArI2RlZmluZSBVU0JfU1RTX0FERFJFU1NFRF9NQVNLCUJJ VCgxNSkNCj4+ICsjZGVmaW5lIFVTQl9TVFNfQUREUkVTU0VEKHApCSgocCkgJiBVU0JfU1RTX0FE RFJFU1NFRF9NQVNLKQ0KPj4gKy8qDQo+PiArICogTDEgTFBNIHN0YXRlIGVuYWJsZSBzdGF0dXMg KHVzZWQgaW4gSFMvRlMgbW9kZSkuDQo+PiArICogMCAtIEVudGVyaW5nIHRvIEwxIExQTSBzdGF0 ZSBkaXNhYmxlZC4NCj4+ICsgKiAxIC0gRW50ZXJpbmcgdG8gTDEgTFBNIHN0YXRlIGVuYWJsZWQu DQo+PiArICovDQo+PiArI2RlZmluZSBVU0JfU1RTX0wxRU5TX01BU0sJQklUKDE2KQ0KPj4gKyNk ZWZpbmUgVVNCX1NUU19MMUVOUyhwKQkoKHApICYgVVNCX1NUU19MMUVOU19NQVNLKQ0KPj4gKy8q DQo+PiArICogSW50ZXJuYWwgVkJVUyBjb25uZWN0aW9uIHN0YXR1cyAodXNlZCBib3RoIGluIEhT L0ZTICBhbmQgU1MgbW9kZSkuDQo+PiArICogMCAtIGludGVybmFsIFZCVVMgaXMgbm90IGRldGVj dGVkLg0KPj4gKyAqIDEgLSBpbnRlcm5hbCBWQlVTIGlzIGRldGVjdGVkLg0KPj4gKyAqLw0KPj4g KyNkZWZpbmUgVVNCX1NUU19WQlVTU19NQVNLCUJJVCgxNykNCj4+ICsjZGVmaW5lIFVTQl9TVFNf VkJVU1MocCkJKChwKSAmIFVTQl9TVFNfVkJVU1NfTUFTSykNCj4+ICsvKg0KPj4gKyAqIEhTL0ZT IExQTSAgc3RhdGUgKHVzZWQgaW4gRlMvSFMgbW9kZSkuDQo+PiArICogMCAtIEwwIFN0YXRlDQo+ PiArICogMSAtIEwxIFN0YXRlDQo+PiArICogMiAtIEwyIFN0YXRlDQo+PiArICogMyAtIEwzIFN0 YXRlDQo+PiArICovDQo+PiArI2RlZmluZSBVU0JfU1RTX0xQTVNUX01BU0sJR0VOTUFTSygxOSwg MTgpDQo+PiArI2RlZmluZSBERVZfTDBfU1RBVEUocCkJCSgoKHApICYgVVNCX1NUU19MUE1TVF9N QVNLKSA9PSAoMHgwIDw8IDE4KSkNCj4+ICsjZGVmaW5lIERFVl9MMV9TVEFURShwKQkJKCgocCkg JiBVU0JfU1RTX0xQTVNUX01BU0spID09ICgweDEgPDwgMTgpKQ0KPj4gKyNkZWZpbmUgREVWX0wy X1NUQVRFKHApCQkoKChwKSAmIFVTQl9TVFNfTFBNU1RfTUFTSykgPT0gKDB4MiA8PCAxOCkpDQo+ PiArI2RlZmluZSBERVZfTDNfU1RBVEUocCkJCSgoKHApICYgVVNCX1NUU19MUE1TVF9NQVNLKSA9 PSAoMHgzIDw8IDE4KSkNCj4+ICsvKg0KPj4gKyAqIERpc2FibGUgSFMgc3RhdHVzICh1c2VkIGlu IEZTL0hTIG1vZGUpLg0KPj4gKyAqIDAgLSB0aGUgZGlzY29ubmVjdCBiaXQgZm9yIEhTL0ZTIG1v ZGUgaXMgc2V0IC4NCj4+ICsgKiAxIC0gdGhlIGRpc2Nvbm5lY3QgYml0IGZvciBIUy9GUyBtb2Rl IGlzIG5vdCBzZXQuDQo+PiArICovDQo+PiArI2RlZmluZSBVU0JfU1RTX1VTQjJDT05TX01BU0sJ QklUKDIwKQ0KPj4gKyNkZWZpbmUgVVNCX1NUU19VU0IyQ09OUyhwKQkoKHApICYgVVNCX1NUU19V U0IyQ09OU19NQVNLKQ0KPj4gKy8qDQo+PiArICogSFMvRlMgbW9kZSBjb25uZWN0aW9uIHN0YXR1 cyAodXNlZCBpbiBGUy9IUyBtb2RlKS4NCj4+ICsgKiAwIC0gSGlnaCBTcGVlZCBvcGVyYXRpb25z IGluIFVTQjIuMCAoRlMvSFMpIG1vZGUgbm90IGRpc2FibGVkLg0KPj4gKyAqIDEgLSBIaWdoIFNw ZWVkIG9wZXJhdGlvbnMgaW4gVVNCMi4wIChGUy9IUykuDQo+PiArICovDQo+PiArI2RlZmluZSBV U0JfU1RTX0RJU0FCTEVfSFNfTUFTSwlCSVQoMjEpDQo+PiArI2RlZmluZSBVU0JfU1RTX0RJU0FC TEVfSFMocCkJKChwKSAmIFVTQl9TVFNfRElTQUJMRV9IU19NQVNLKQ0KPj4gKy8qDQo+PiArICog VTEgc3RhdGUgZW5hYmxlIHN0YXR1cyAodXNlZCBpbiBTUyBtb2RlKS4NCj4+ICsgKiAwIC0gRW50 ZXJpbmcgdG8gIFUxIHN0YXRlIGRpc2FibGVkLg0KPj4gKyAqIDEgLSBFbnRlcmluZyB0byAgVTEg c3RhdGUgZW5hYmxlZC4NCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVTQl9TVFNfVTFFTlNfTUFTSwlC SVQoMjQpDQo+PiArI2RlZmluZSBVU0JfU1RTX1UxRU5TKHApCSgocCkgJiBVU0JfU1RTX1UxRU5T X01BU0spDQo+PiArLyoNCj4+ICsgKiBVMiBzdGF0ZSBlbmFibGUgc3RhdHVzICh1c2VkIGluIFNT IG1vZGUpLg0KPj4gKyAqIDAgLSBFbnRlcmluZyB0byAgVTIgc3RhdGUgZGlzYWJsZWQuDQo+PiAr ICogMSAtIEVudGVyaW5nIHRvICBVMiBzdGF0ZSBlbmFibGVkLg0KPj4gKyAqLw0KPj4gKyNkZWZp bmUgVVNCX1NUU19VMkVOU19NQVNLCUJJVCgyNSkNCj4+ICsjZGVmaW5lIFVTQl9TVFNfVTJFTlMo cCkJKChwKSAmIFVTQl9TVFNfVTJFTlNfTUFTSykNCj4+ICsvKg0KPj4gKyAqIFN1cGVyU3BlZWQg TGluayBMVFNTTSBzdGF0ZS4gVGhpcyBmaWVsZCByZWZsZWN0cyBVU0JTUy1ERVYgY3VycmVudA0K Pj4gKyAqIFN1cGVyU3BlZWQgbGluayBzdGF0ZQ0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX1NU U19MU1RfTUFTSwlHRU5NQVNLKDI5LCAyNikNCj4+ICsjZGVmaW5lIERFVl9MU1RfVTAJCSgoKHAp ICYgVVNCX1NUU19MU1RfTUFTSykgPT0gKDB4MCA8PCAyNikpDQo+PiArI2RlZmluZSBERVZfTFNU X1UxCQkoKChwKSAmIFVTQl9TVFNfTFNUX01BU0spID09ICgweDEgPDwgMjYpKQ0KPj4gKyNkZWZp bmUgREVWX0xTVF9VMgkJKCgocCkgJiBVU0JfU1RTX0xTVF9NQVNLKSA9PSAoMHgyIDw8IDI2KSkN Cj4+ICsjZGVmaW5lIERFVl9MU1RfVTMJCSgoKHApICYgVVNCX1NUU19MU1RfTUFTSykgPT0gKDB4 MyA8PCAyNikpDQo+PiArI2RlZmluZSBERVZfTFNUX0RJU0FCTEVECSgoKHApICYgVVNCX1NUU19M U1RfTUFTSykgPT0gKDB4NCA8PCAyNikpDQo+PiArI2RlZmluZSBERVZfTFNUX1JYREVURUNUCSgo KHApICYgVVNCX1NUU19MU1RfTUFTSykgPT0gKDB4NSA8PCAyNikpDQo+PiArI2RlZmluZSBERVZf TFNUX0lOQUNUSVZFCSgoKHApICYgVVNCX1NUU19MU1RfTUFTSykgPT0gKDB4NiA8PCAyNikpDQo+ PiArI2RlZmluZSBERVZfTFNUX1BPTExJTkcJCSgoKHApICYgVVNCX1NUU19MU1RfTUFTSykgPT0g KDB4NyA8PCAyNikpDQo+PiArI2RlZmluZSBERVZfTFNUX1JFQ09WRVJZCSgoKHApICYgVVNCX1NU U19MU1RfTUFTSykgPT0gKDB4OCA8PCAyNikpDQo+PiArI2RlZmluZSBERVZfTFNUX0hPVF9SRVNF VAkoKChwKSAmIFVTQl9TVFNfTFNUX01BU0spID09ICgweDkgPDwgMjYpKQ0KPj4gKyNkZWZpbmUg REVWX0xTVF9DT01QX01PREUJKCgocCkgJiBVU0JfU1RTX0xTVF9NQVNLKSA9PSAoMHhhIDw8IDI2 KSkNCj4+ICsjZGVmaW5lIERFVl9MU1RfTEJfU1RBVEUJKCgocCkgJiBVU0JfU1RTX0xTVF9NQVNL KSA9PSAoMHhiIDw8IDI2KSkNCj4+ICsvKg0KPj4gKyAqIERNQSBjbG9jayB0dXJuLW9mZiBzdGF0 dXMuDQo+PiArICogMCAtIERNQSBjbG9jayBpcyBhbHdheXMgb24gKGRlZmF1bHQgYWZ0ZXIgaGFy ZHdhcmUgcmVzZXQpLg0KPj4gKyAqIDEgLSBETUEgY2xvY2sgdHVybi1vZmYgaW4gVTEsIFUyIGFu ZCBVMyAoU1MgbW9kZSkgaXMgZW5hYmxlZC4NCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVTQl9TVFNf RE1BT0ZGX01BU0sJQklUKDMwKQ0KPj4gKyNkZWZpbmUgVVNCX1NUU19ETUFPRkYocCkJKChwKSAm IFVTQl9TVFNfRE1BT0ZGX01BU0spDQo+PiArLyoNCj4+ICsgKiBTRlIgRW5kaWFuIHN0YXR1cy4N Cj4+ICsgKiAwIC0gTGl0dGxlIEVuZGlhbiBvcmRlciAoZGVmYXVsdCBhZnRlciBoYXJkd2FyZSBy ZXNldCkuDQo+PiArICogMSAtIEJpZyBFbmRpYW4gb3JkZXIuDQo+PiArICovDQo+PiArI2RlZmlu ZSBVU0JfU1RTX0VORElBTjJfTUFTSwlCSVQoMzEpDQo+PiArI2RlZmluZSBVU0JfU1RTX0VORElB TjIocCkJKChwKSAmIFVTQl9TVFNfRU5ESUFOMl9NQVNLKQ0KPj4gKw0KPj4gKy8qIFVTQl9DTUQg LSAgYml0bWFza3MgKi8NCj4+ICsvKiBTZXQgRnVuY3Rpb24gQWRkcmVzcyAqLw0KPj4gKyNkZWZp bmUgVVNCX0NNRF9TRVRfQUREUglCSVQoMCkNCj4+ICsvKg0KPj4gKyAqIEZ1bmN0aW9uIEFkZHJl c3MgVGhpcyBmaWVsZCBpcyBzYXZlZCB0byB0aGUgZGV2aWNlIG9ubHkgd2hlbiB0aGUgZmllbGQN Cj4+ICsgKiBTRVRfQUREUiBpcyBzZXQgJzEgJyBkdXJpbmcgd3JpdGUgdG8gVVNCX0NNRCByZWdp c3Rlci4NCj4+ICsgKiBTb2Z0d2FyZSBpcyByZXNwb25zaWJsZSBmb3IgZW50ZXJpbmcgdGhlIGFk ZHJlc3Mgb2YgdGhlIGRldmljZSBkdXJpbmcNCj4+ICsgKiBTRVRfQUREUkVTUyByZXF1ZXN0IHNl cnZpY2UuIFRoaXMgZmllbGQgc2hvdWxkIGJlIHNldCBpbW1lZGlhdGVseSBhZnRlcg0KPj4gKyAq IHRoZSBTRVRVUCBwYWNrZXQgaXMgZGVjb2RlZCwgYW5kIHByaW9yIHRvIGNvbmZpcm1hdGlvbiBv ZiB0aGUgc3RhdHVzIHBoYXNlDQo+PiArICovDQo+PiArI2RlZmluZSBVU0JfQ01EX0ZBRERSX01B U0sJR0VOTUFTSyg3LCAxKQ0KPj4gKyNkZWZpbmUgVVNCX0NNRF9GQUREUihwKQkoKChwKSA8PCAx KSAmIFVTQl9DTURfRkFERFJfTUFTSykNCj4+ICsvKiBTZW5kIEZ1bmN0aW9uIFdha2UgRGV2aWNl IE5vdGlmaWNhdGlvbiBUUCAodXNlZCBvbmx5IGluIFNTIG1vZGUpLiAqLw0KPj4gKyNkZWZpbmUg VVNCX0NNRF9TRE5GVwkJQklUKDgpDQo+PiArLyogU2V0IFRlc3QgTW9kZSAodXNlZCBvbmx5IGlu IEhTL0ZTIG1vZGUpLiAqLw0KPj4gKyNkZWZpbmUgVVNCX0NNRF9TVE1PREUJCUJJVCg5KQ0KPj4g Ky8qIFRlc3QgbW9kZSBzZWxlY3RvciAodXNlZCBvbmx5IGluIEhTL0ZTIG1vZGUpICovDQo+PiAr I2RlZmluZSBVU0JfU1RTX1RNT0RFX1NFTF9NQVNLCUdFTk1BU0soMTEsIDEwKQ0KPj4gKyNkZWZp bmUgVVNCX1NUU19UTU9ERV9TRUwocCkJKCgocCkgPDwgMTApICYgVVNCX1NUU19UTU9ERV9TRUxf TUFTSykNCj4+ICsvKg0KPj4gKyAqICBTZW5kIExhdGVuY3kgVG9sZXJhbmNlIE1lc3NhZ2UgRGV2 aWNlIE5vdGlmaWNhdGlvbiBUUCAodXNlZCBvbmx5DQo+PiArICogIGluIFNTIG1vZGUpLg0KPj4g KyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NNRF9TRE5MVE0JCUJJVCgxMikNCj4+ICsvKiBTZW5kIEN1 c3RvbSBUcmFuc2FjdGlvbiBQYWNrZXQgKHVzZWQgb25seSBpbiBTUyBtb2RlKSAqLw0KPj4gKyNk ZWZpbmUgVVNCX0NNRF9TUEtUCQlCSVQoMTMpDQo+PiArLypEZXZpY2UgTm90aWZpY2F0aW9uICdG dW5jdGlvbiBXYWtlJyAtIEludGVyZmFjZSB2YWx1ZSAob25seSBpbiBTUyBtb2RlLiAqLw0KPj4g KyNkZWZpbmUgVVNCX0NNRF9ETkZXX0lOVF9NQVNLCUdFTk1BU0soMjMsIDE2KQ0KPj4gKyNkZWZp bmUgVVNCX1NUU19ETkZXX0lOVChwKQkoKChwKSA8PCAxNikgJiBVU0JfQ01EX0RORldfSU5UX01B U0spDQo+PiArLyoNCj4+ICsgKiBEZXZpY2UgTm90aWZpY2F0aW9uICdMYXRlbmN5IFRvbGVyYW5j ZSBNZXNzYWdlJyAtMzczIEJFTFQgdmFsdWUgWzc6MF0NCj4+ICsgKiAodXNlZCBvbmx5IGluIFNT IG1vZGUpLg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NNRF9ETkxUTV9CRUxUX01BU0sJR0VO TUFTSygyNywgMTYpDQo+PiArI2RlZmluZSBVU0JfU1RTX0ROTFRNX0JFTFQocCkJKCgocCkgPDwg MTYpICYgVVNCX0NNRF9ETkxUTV9CRUxUX01BU0spDQo+PiArDQo+PiArLyogVVNCX0lUUE4gLSBi aXRtYXNrcyAqLw0KPj4gKy8qDQo+PiArICogSVRQKFNTKSAvIFNPRiAoSFMvRlMpIG51bWJlcg0K Pj4gKyAqIEluIFNTIG1vZGUgdGhpcyBmaWVsZCByZXByZXNlbnQgbnVtYmVyIG9mIGxhc3QgSVRQ IHJlY2VpdmVkIGZyb20gaG9zdC4NCj4+ICsgKiBJbiBIUy9GUyBtb2RlIHRoaXMgZmllbGQgcmVw cmVzZW50IG51bWJlciBvZiBsYXN0IFNPRiByZWNlaXZlZCBmcm9tIGhvc3QuDQo+PiArICovDQo+ PiArI2RlZmluZSBVU0JfSVRQTl9NQVNLCQlHRU5NQVNLKDEzLCAwKQ0KPj4gKyNkZWZpbmUgVVNC X0lUUE4ocCkJCSgocCkgJiBVU0JfSVRQTl9NQVNLKQ0KPj4gKw0KPj4gKy8qIFVTQl9MUE0gLSBi aXRtYXNrcyAqLw0KPj4gKy8qIEhvc3QgSW5pdGlhdGVkIFJlc3VtZSBEdXJhdGlvbi4gKi8NCj4+ ICsjZGVmaW5lIFVTQl9MUE1fSElSRF9NQVNLCUdFTk1BU0soMywgMCkNCj4+ICsjZGVmaW5lIFVT Ql9MUE1fSElSRChwKQkJKChwKSAmIFVTQl9MUE1fSElSRF9NQVNLKQ0KPj4gKy8qIFJlbW90ZSBX YWtldXAgRW5hYmxlIChiUmVtb3RlV2FrZSkuICovDQo+PiArI2RlZmluZSBVU0JfTFBNX0JSVwkJ QklUKDQpDQo+PiArDQo+PiArLyogVVNCX0lFTiAtIGJpdG1hc2tzICovDQo+PiArLyogU1MgY29u bmVjdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovDQo+PiArI2RlZmluZSBVU0JfSUVOX0NPTklFTgkJ QklUKDApDQo+PiArLyogU1MgZGlzY29ubmVjdGlvbiBpbnRlcnJ1cHQgZW5hYmxlLiAqLw0KPj4g KyNkZWZpbmUgVVNCX0lFTl9ESVNJRU4JCUJJVCgxKQ0KPj4gKy8qIFVTQiBTUyB3YXJtIHJlc2V0 IGludGVycnVwdCBlbmFibGUuICovDQo+PiArI2RlZmluZSBVU0JfSUVOX1VXUkVTSUVOCUJJVCgy KQ0KPj4gKy8qIFVTQiBTUyBob3QgcmVzZXQgaW50ZXJydXB0IGVuYWJsZSAqLw0KPj4gKyNkZWZp bmUgVVNCX0lFTl9VSFJFU0lFTglCSVQoMykNCj4+ICsvKiBTUyBsaW5rIFUzIHN0YXRlIGVudGVy IGludGVycnVwdCBlbmFibGUgKHN1c3BlbmQpLiovDQo+PiArI2RlZmluZSBVU0JfSUVOX1UzRU5U SUVOCUJJVCg0KQ0KPj4gKy8qIFNTIGxpbmsgVTMgc3RhdGUgZXhpdCBpbnRlcnJ1cHQgZW5hYmxl ICh3YWtldXApLiAqLw0KPj4gKyNkZWZpbmUgVVNCX0lFTl9VM0VYVElFTglCSVQoNSkNCj4+ICsv KiBTUyBsaW5rIFUyIHN0YXRlIGVudGVyIGludGVycnVwdCBlbmFibGUuKi8NCj4+ICsjZGVmaW5l IFVTQl9JRU5fVTJFTlRJRU4JQklUKDYpDQo+PiArLyogU1MgbGluayBVMiBzdGF0ZSBleGl0IGlu dGVycnVwdCBlbmFibGUuKi8NCj4+ICsjZGVmaW5lIFVTQl9JRU5fVTJFWFRJRU4JQklUKDcpDQo+ PiArLyogU1MgbGluayBVMSBzdGF0ZSBlbnRlciBpbnRlcnJ1cHQgZW5hYmxlLiovDQo+PiArI2Rl ZmluZSBVU0JfSUVOX1UxRU5USUVOCUJJVCg4KQ0KPj4gKy8qIFNTIGxpbmsgVTEgc3RhdGUgZXhp dCBpbnRlcnJ1cHQgZW5hYmxlLiovDQo+PiArI2RlZmluZSBVU0JfSUVOX1UxRVhUSUVOCUJJVCg5 KQ0KPj4gKy8qIElUUC9TT0YgcGFja2V0IGRldGVjdGVkIGludGVycnVwdCBlbmFibGUuKi8NCj4+ ICsjZGVmaW5lIFVTQl9JRU5fSVRQSUVOCQlCSVQoMTApDQo+PiArLyogV2FrZXVwIGludGVycnVw dCBlbmFibGUuKi8NCj4+ICsjZGVmaW5lIFVTQl9JRU5fV0FLRUlFTgkJQklUKDExKQ0KPj4gKy8q IFNlbmQgQ3VzdG9tIFBhY2tldCBpbnRlcnJ1cHQgZW5hYmxlLiovDQo+PiArI2RlZmluZSBVU0Jf SUVOX1NQS1RJRU4JCUJJVCgxMikNCj4+ICsvKiBIUy9GUyBtb2RlIGNvbm5lY3Rpb24gaW50ZXJy dXB0IGVuYWJsZS4qLw0KPj4gKyNkZWZpbmUgVVNCX0lFTl9DT04ySUVOCQlCSVQoMTYpDQo+PiAr LyogSFMvRlMgbW9kZSBkaXNjb25uZWN0aW9uIGludGVycnVwdCBlbmFibGUuKi8NCj4+ICsjZGVm aW5lIFVTQl9JRU5fRElTMklFTgkJQklUKDE3KQ0KPj4gKy8qIFVTQiByZXNldCAoSFMvRlMgbW9k ZSkgaW50ZXJydXB0IGVuYWJsZS4qLw0KPj4gKyNkZWZpbmUgVVNCX0lFTl9VMlJFU0lFTglCSVQo MTgpDQo+PiArLyogTFBNIEwyIHN0YXRlIGVudGVyIGludGVycnVwdCBlbmFibGUuKi8NCj4+ICsj ZGVmaW5lIFVTQl9JRU5fTDJFTlRJRU4JQklUKDIwKQ0KPj4gKy8qIExQTSAgTDIgc3RhdGUgZXhp dCBpbnRlcnJ1cHQgZW5hYmxlLiovDQo+PiArI2RlZmluZSBVU0JfSUVOX0wyRVhUSUVOCUJJVCgy MSkNCj4+ICsvKiBMUE0gTDEgc3RhdGUgZW50ZXIgaW50ZXJydXB0IGVuYWJsZS4qLw0KPj4gKyNk ZWZpbmUgVVNCX0lFTl9MMUVOVElFTglCSVQoMjQpDQo+PiArLyogTFBNICBMMSBzdGF0ZSBleGl0 IGludGVycnVwdCBlbmFibGUuKi8NCj4+ICsjZGVmaW5lIFVTQl9JRU5fTDFFWFRJRU4JQklUKDI1 KQ0KPj4gKy8qIENvbmZpZ3VyYXRpb24gcmVzZXQgaW50ZXJydXB0IGVuYWJsZS4qLw0KPj4gKyNk ZWZpbmUgVVNCX0lFTl9DRkdSRVNJRU4JQklUKDI2KQ0KPj4gKy8qIFN0YXJ0IG9mIHRoZSBVU0Ig U1Mgd2FybSByZXNldCBpbnRlcnJ1cHQgZW5hYmxlLiovDQo+PiArI2RlZmluZSBVU0JfSUVOX1VX UkVTU0lFTglCSVQoMjgpDQo+PiArLyogRW5kIG9mIHRoZSBVU0IgU1Mgd2FybSByZXNldCBpbnRl cnJ1cHQgZW5hYmxlLiovDQo+PiArI2RlZmluZSBVU0JfSUVOX1VXUkVTRUlFTglCSVQoMjkpDQo+ PiArDQo+PiArI2RlZmluZSBVU0JfSUVOX0lOSVQgIChVU0JfSUVOX1UyUkVTSUVOIHwgVVNCX0lT VFNfRElTMkkgfCBVU0JfSUVOX0NPTjJJRU4gXA0KPj4gKwkJICAgICAgIHwgVVNCX0lFTl9VSFJF U0lFTiB8IFVTQl9JRU5fVVdSRVNJRU4gfCBVU0JfSUVOX0RJU0lFTiBcDQo+PiArCQkgICAgICAg fCBVU0JfSUVOX0NPTklFTiB8IFVTQl9JRU5fVTNFWFRJRU4gfCBVU0JfSUVOX0wyRU5USUVOIFwN Cj4+ICsJCSAgICAgICB8IFVTQl9JRU5fTDJFWFRJRU4gfCBVU0JfSUVOX0wxRU5USUVOKQ0KPj4g Kw0KPj4gKy8qIFVTQl9JU1RTIC0gYml0bWFza3MgKi8NCj4+ICsvKiBTUyBDb25uZWN0aW9uIGRl dGVjdGVkLiAqLw0KPj4gKyNkZWZpbmUgVVNCX0lTVFNfQ09OSQkJQklUKDApDQo+PiArLyogU1Mg RGlzY29ubmVjdGlvbiBkZXRlY3RlZC4gKi8NCj4+ICsjZGVmaW5lIFVTQl9JU1RTX0RJU0kJCUJJ VCgxKQ0KPj4gKy8qIFVVU0Igd2FybSByZXNldCBkZXRlY3RlZGUuICovDQo+PiArI2RlZmluZSBV U0JfSVNUU19VV1JFU0kJCUJJVCgyKQ0KPj4gKy8qIFVTQiBob3QgcmVzZXQgZGV0ZWN0ZWQuICov DQo+PiArI2RlZmluZSBVU0JfSVNUU19VSFJFU0kJCUJJVCgzKQ0KPj4gKy8qIFUzIGxpbmsgc3Rh dGUgZW50ZXIgZGV0ZWN0ZWQgKHN1c3BlbmQpLiovDQo+PiArI2RlZmluZSBVU0JfSVNUU19VM0VO VEkJCUJJVCg0KQ0KPj4gKy8qIFUzIGxpbmsgc3RhdGUgZXhpdCBkZXRlY3RlZCAod2FrZXVwKS4g Ki8NCj4+ICsjZGVmaW5lIFVTQl9JU1RTX1UzRVhUSQkJQklUKDUpDQo+PiArLyogVTIgbGluayBz dGF0ZSBlbnRlciBkZXRlY3RlZC4qLw0KPj4gKyNkZWZpbmUgVVNCX0lTVFNfVTJFTlRJCQlCSVQo NikNCj4+ICsvKiBVMiBsaW5rIHN0YXRlIGV4aXQgZGV0ZWN0ZWQuKi8NCj4+ICsjZGVmaW5lIFVT Ql9JU1RTX1UyRVhUSQkJQklUKDcpDQo+PiArLyogVTEgbGluayBzdGF0ZSBlbnRlciBkZXRlY3Rl ZC4qLw0KPj4gKyNkZWZpbmUgVVNCX0lTVFNfVTFFTlRJCQlCSVQoOCkNCj4+ICsvKiBVMSBsaW5r IHN0YXRlIGV4aXQgZGV0ZWN0ZWQuKi8NCj4+ICsjZGVmaW5lIFVTQl9JU1RTX1UxRVhUSQkJQklU KDkpDQo+PiArLyogSVRQL1NPRiBwYWNrZXQgZGV0ZWN0ZWQuKi8NCj4+ICsjZGVmaW5lIFVTQl9J U1RTX0lUUEkJCUJJVCgxMCkNCj4+ICsvKiBXYWtldXAgZGV0ZWN0ZWQuKi8NCj4+ICsjZGVmaW5l IFVTQl9JU1RTX1dBS0VJCQlCSVQoMTEpDQo+PiArLyogU2VuZCBDdXN0b20gUGFja2V0IGRldGVj dGVkLiovDQo+PiArI2RlZmluZSBVU0JfSVNUU19TUEtUSQkJQklUKDEyKQ0KPj4gKy8qIEhTL0ZT IG1vZGUgY29ubmVjdGlvbiBkZXRlY3RlZC4qLw0KPj4gKyNkZWZpbmUgVVNCX0lTVFNfQ09OMkkJ CUJJVCgxNikNCj4+ICsvKiBIUy9GUyBtb2RlIGRpc2Nvbm5lY3Rpb24gZGV0ZWN0ZWQuKi8NCj4+ ICsjZGVmaW5lIFVTQl9JU1RTX0RJUzJJCQlCSVQoMTcpDQo+PiArLyogVVNCIHJlc2V0IChIUy9G UyBtb2RlKSBkZXRlY3RlZC4qLw0KPj4gKyNkZWZpbmUgVVNCX0lTVFNfVTJSRVNJCQlCSVQoMTgp DQo+PiArLyogTFBNIEwyIHN0YXRlIGVudGVyIGRldGVjdGVkLiovDQo+PiArI2RlZmluZSBVU0Jf SVNUU19MMkVOVEkJCUJJVCgyMCkNCj4+ICsvKiBMUE0gIEwyIHN0YXRlIGV4aXQgZGV0ZWN0ZWQu Ki8NCj4+ICsjZGVmaW5lIFVTQl9JU1RTX0wyRVhUSQkJQklUKDIxKQ0KPj4gKy8qIExQTSBMMSBz dGF0ZSBlbnRlciBkZXRlY3RlZC4qLw0KPj4gKyNkZWZpbmUgVVNCX0lTVFNfTDFFTlRJCQlCSVQo MjQpDQo+PiArLyogTFBNIEwxIHN0YXRlIGV4aXQgZGV0ZWN0ZWQuKi8NCj4+ICsjZGVmaW5lIFVT Ql9JU1RTX0wxRVhUSQkJQklUKDI1KQ0KPj4gKy8qIFVTQiBjb25maWd1cmF0aW9uIHJlc2V0IGRl dGVjdGVkLiovDQo+PiArI2RlZmluZSBVU0JfSVNUU19DRkdSRVNJCUJJVCgyNikNCj4+ICsvKiBT dGFydCBvZiB0aGUgVVNCIHdhcm0gcmVzZXQgZGV0ZWN0ZWQuKi8NCj4+ICsjZGVmaW5lIFVTQl9J U1RTX1VXUkVTU0kJQklUKDI4KQ0KPj4gKy8qIEVuZCBvZiB0aGUgVVNCIHdhcm0gcmVzZXQgZGV0 ZWN0ZWQuKi8NCj4+ICsjZGVmaW5lIFVTQl9JU1RTX1VXUkVTRUkJQklUKDI5KQ0KPj4gKw0KPj4g Ky8qIFVTQl9TRUwgLSBiaXRtYXNrcyAqLw0KPj4gKyNkZWZpbmUgRVBfU0VMX0VQTk9fTUFTSwlH RU5NQVNLKDMsIDApDQo+PiArLyogRW5kcG9pbnQgbnVtYmVyLiAqLw0KPj4gKyNkZWZpbmUgRVBf U0VMX0VQTk8ocCkJCSgocCkgJiBFUF9TRUxfRVBOT19NQVNLKQ0KPj4gKy8qIEVuZHBvaW50IGRp cmVjdGlvbiBiaXQgLSAwIC0gT1VULCAxIC0gSU4uICovDQo+PiArI2RlZmluZSBFUF9TRUxfRElS CQlCSVQoNykNCj4+ICsNCj4+ICsjZGVmaW5lIHNlbGVjdF9lcF9pbihucikJKEVQX1NFTF9FUE5P KHApIHwgRVBfU0VMX0RJUikNCj4+ICsjZGVmaW5lIHNlbGVjdF9lcF9vdXQJCShFUF9TRUxfRVBO TyhwKSkNCj4+ICsNCj4+ICsvKiBFUF9UUkFERFIgLSBiaXRtYXNrcyAqLw0KPj4gKy8qIFRyYW5z ZmVyIFJpbmcgYWRkcmVzcy4gKi8NCj4+ICsjZGVmaW5lIEVQX1RSQUREUl9UUkFERFIocCkJKChw KSkNCj4+ICsNCj4+ICsvKiBFUF9DRkcgLSBiaXRtYXNrcyAqLw0KPj4gKy8qIEVuZHBvaW50IGVu YWJsZSAqLw0KPj4gKyNkZWZpbmUgRVBfQ0ZHX0VOQUJMRQkJQklUKDApDQo+PiArLyoNCj4+ICsg KiAgRW5kcG9pbnQgdHlwZS4NCj4+ICsgKiAxIC0gaXNvY2hyb25vdXMNCj4+ICsgKiAyIC0gYnVs aw0KPj4gKyAqIDMgLSBpbnRlcnJ1cHQNCj4+ICsgKi8NCj4+ICsjZGVmaW5lIEVQX0NGR19FUFRZ UEVfTUFTSwlHRU5NQVNLKDIsIDEpDQo+PiArI2RlZmluZSBFUF9DRkdfRVBUWVBFKHApCSgoKHAp IDw8IDEpICAmIEVQX0NGR19FUFRZUEVfTUFTSykNCj4+ICsvKiBTdHJlYW0gc3VwcG9ydCBlbmFi bGUgKG9ubHkgaW4gU1MgbW9kZSkuICovDQo+PiArI2RlZmluZSBFUF9DRkdfU1RSRUFNX0VOCUJJ VCgzKQ0KPj4gKy8qIFRETCBjaGVjayAob25seSBpbiBTUyBtb2RlIGZvciBCVUxLIEVQKS4gKi8N Cj4+ICsjZGVmaW5lIEVQX0NGR19URExfQ0hLCQlCSVQoNCkNCj4+ICsvKiBTSUQgY2hlY2sgKG9u bHkgaW4gU1MgbW9kZSBmb3IgQlVMSyBPVVQgRVApLiAqLw0KPj4gKyNkZWZpbmUgRVBfQ0ZHX1NJ RF9DSEsJCUJJVCg1KQ0KPj4gKy8qIERNQSB0cmFuc2ZlciBlbmRpYW5uZXNzLiAqLw0KPj4gKyNk ZWZpbmUgRVBfQ0ZHX0VQRU5ESUFOCQlCSVQoNykNCj4+ICsvKiBNYXggYnVyc3Qgc2l6ZSAodXNl ZCBvbmx5IGluIFNTIG1vZGUpLiAqLw0KPj4gKyNkZWZpbmUgRVBfQ0ZHX01BWEJVUlNUX01BU0sJ R0VOTUFTSygxMSwgOCkNCj4+ICsjZGVmaW5lIEVQX0NGR19NQVhCVVJTVChwKQkoKChwKSA8PCA4 KSAmIEVQX0NGR19NQVhCVVJTVF9NQVNLKQ0KPj4gKy8qIElTTyBtYXggYnVyc3QuICovDQo+PiAr I2RlZmluZSBFUF9DRkdfTVVMVF9NQVNLCUdFTk1BU0soMTUsIDE0KQ0KPj4gKyNkZWZpbmUgRVBf Q0ZHX01VTFQocCkJCSgoKHApIDw8IDE0KSAmIEVQX0NGR19NVUxUX01BU0spDQo+PiArLyogSVNP IG1heCBidXJzdC4gKi8NCj4+ICsjZGVmaW5lIEVQX0NGR19NQVhQS1RTSVpFX01BU0sJR0VOTUFT SygyNiwgMTYpDQo+PiArI2RlZmluZSBFUF9DRkdfTUFYUEtUU0laRShwKQkoKChwKSA8PCAxNikg JiBFUF9DRkdfTUFYUEtUU0laRV9NQVNLKQ0KPj4gKy8qIE1heCBudW1iZXIgb2YgYnVmZmVyZWQg cGFja2V0cy4gKi8NCj4+ICsjZGVmaW5lIEVQX0NGR19CVUZGRVJJTkdfTUFTSwlHRU5NQVNLKDMx LCAyNykNCj4+ICsjZGVmaW5lIEVQX0NGR19CVUZGRVJJTkcocCkJKCgocCkgPDwgMjcpICYgRVBf Q0ZHX0JVRkZFUklOR19NQVNLKQ0KPj4gKw0KPj4gKy8qIEVQX0NNRCAtIGJpdG1hc2tzICovDQo+ PiArLyogRW5kcG9pbnQgcmVzZXQuICovDQo+PiArI2RlZmluZSBFUF9DTURfRVBSU1QJCUJJVCgw KQ0KPj4gKy8qIEVuZHBvaW50IFNUQUxMIHNldC4gKi8NCj4+ICsjZGVmaW5lIEVQX0NNRF9TU1RB TEwJCUJJVCgxKQ0KPj4gKy8qIEVuZHBvaW50IFNUQUxMIGNsZWFyLiAqLw0KPj4gKyNkZWZpbmUg RVBfQ01EX0NTVEFMTAkJQklUKDIpDQo+PiArLyogU2VuZCBFUkRZIFRQLiAqLw0KPj4gKyNkZWZp bmUgRVBfQ01EX0VSRFkJCUJJVCgzKQ0KPj4gKy8qIFJlcXVlc3QgY29tcGxldGUuICovDQo+PiAr I2RlZmluZSBFUF9DTURfUkVRX0NNUEwJCUJJVCg1KQ0KPj4gKy8qIFRyYW5zZmVyIGRlc2NyaXB0 b3IgcmVhZHkuICovDQo+PiArI2RlZmluZSBFUF9DTURfRFJEWQkJQklUKDYpDQo+PiArLyogRGF0 YSBmbHVzaC4gKi8NCj4+ICsjZGVmaW5lIEVQX0NNRF9ERkxVU0gJCUJJVCg3KQ0KPj4gKy8qDQo+ PiArICogVHJhbnNmZXIgRGVzY3JpcHRvciBMZW5ndGggd3JpdGUgICh1c2VkIG9ubHkgZm9yIEJ1 bGsgU3RyZWFtIGNhcGFibGUNCj4+ICsgKiBlbmRwb2ludHMgaW4gU1MgbW9kZSkuDQo+PiArICog Qml0IFJlbW92ZWQgZnJvbSBERVZfVkVSX1YzIGNvbnRyb2xsZXIgdmVyc2lvbi4NCj4+ICsgKi8N Cj4+ICsjZGVmaW5lIEVQX0NNRF9TVERMCQlCSVQoOCkNCj4+ICsvKg0KPj4gKyAqIFRyYW5zZmVy IERlc2NyaXB0b3IgTGVuZ3RoICh1c2VkIG9ubHkgaW4gU1MgbW9kZSBmb3IgYnVsayBlbmRwb2lu dHMpLg0KPj4gKyAqIEJpdHMgUmVtb3ZlZCBmcm9tIERFVl9WRVJfVjMgY29udHJvbGxlciB2ZXJz aW9uLg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgRVBfQ01EX1RETF9NQVNLCQlHRU5NQVNLKDE1LCA5 KQ0KPj4gKyNkZWZpbmUgRVBfQ01EX1RETChwKQkJKCgocCkgPDwgOSkgJiBFUF9DTURfVERMX01B U0spDQo+PiArLyogRVJEWSBTdHJlYW0gSUQgdmFsdWUgKHVzZWQgaW4gU1MgbW9kZSkuICovDQo+ PiArI2RlZmluZSBFUF9DTURfRVJEWV9TSURfTUFTSwlHRU5NQVNLKDMxLCAxNikNCj4+ICsjZGVm aW5lIEVQX0NNRF9FUkRZX1NJRChwKQkoKChwKSA8PCAxNikgJiBFUF9DTURfU0lEX01BU0spDQo+ PiArDQo+PiArLyogRVBfU1RTIC0gYml0bWFza3MgKi8NCj4+ICsvKiBTZXR1cCB0cmFuc2ZlciBj b21wbGV0ZS4gKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19TRVRVUAkJQklUKDApDQo+PiArLyogRW5k cG9pbnQgU1RBTEwgc3RhdHVzLiAqLw0KPj4gKyNkZWZpbmUgRVBfU1RTX1NUQUxMKHApCQkoKHAp ICYgQklUKDEpKQ0KPj4gKy8qIEludGVycnVwdCBPbiBDb21wbGV0ZS4gKi8NCj4+ICsjZGVmaW5l IEVQX1NUU19JT0MJCUJJVCgyKQ0KPj4gKy8qIEludGVycnVwdCBvbiBTaG9ydCBQYWNrZXQuICov DQo+PiArI2RlZmluZSBFUF9TVFNfSVNQCQlCSVQoMykNCj4+ICsvKiBUcmFuc2ZlciBkZXNjcmlw dG9yIG1pc3NpbmcuICovDQo+PiArI2RlZmluZSBFUF9TVFNfREVTQ01JUwkJQklUKDQpDQo+PiAr LyogU3RyZWFtIFJlamVjdGVkICh1c2VkIG9ubHkgaW4gU1MgbW9kZSkgKi8NCj4+ICsjZGVmaW5l IEVQX1NUU19TVFJFQU1SCQlCSVQoNSkNCj4+ICsvKiBFWElUIGZyb20gTU9WRSBEQVRBIFN0YXRl ICh1c2VkIG9ubHkgZm9yIHN0cmVhbSB0cmFuc2ZlcnMgaW4gU1MgbW9kZSkuICovDQo+PiArI2Rl ZmluZSBFUF9TVFNfTURfRVhJVAkJQklUKDYpDQo+PiArLyogVFJCIGVycm9yLiAqLw0KPj4gKyNk ZWZpbmUgRVBfU1RTX1RSQkVSUgkJQklUKDcpDQo+PiArLyogTm90IHJlYWR5ICh1c2VkIG9ubHkg aW4gU1MgbW9kZSkuICovDQo+PiArI2RlZmluZSBFUF9TVFNfTlJEWQkJQklUKDgpDQo+PiArLyog RE1BIGJ1c3kgYml0LiAqLw0KPj4gKyNkZWZpbmUgRVBfU1RTX0RCVVNZCQlCSVQoOSkNCj4+ICsv KiBFbmRwb2ludCBCdWZmZXIgRW1wdHkgKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19CVUZGRU1QVFko cCkJKChwKSAmIEJJVCgxMCkpDQo+PiArLyogQ3VycmVudCBDeWNsZSBTdGF0dXMgKi8NCj4+ICsj ZGVmaW5lIEVQX1NUU19DQ1MocCkJCSgocCkgJiBCSVQoMTEpKQ0KPj4gKy8qIFByaW1lICh1c2Vk IG9ubHkgaW4gU1MgbW9kZS4gKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19QUklNRQkJQklUKDEyKQ0K Pj4gKy8qIFN0cmVhbSBlcnJvciAodXNlZCBvbmx5IGluIFNTIG1vZGUpLiAqLw0KPj4gKyNkZWZp bmUgRVBfU1RTX1NJREVSUgkJQklUKDEzKQ0KPj4gKy8qIE9VVCBzaXplIG1pc21hdGNoLiAqLw0K Pj4gKyNkZWZpbmUgRVBfU1RTX09VVFNNTQkJQklUKDE0KQ0KPj4gKy8qIElTTyB0cmFuc21pc3Np b24gZXJyb3IuICovDQo+PiArI2RlZmluZSBFUF9TVFNfSVNPRVJSCQlCSVQoMTUpDQo+PiArLyog SG9zdCBQYWNrZXQgUGVuZGluZyAob25seSBmb3IgU1MgbW9kZSkuICovDQo+PiArI2RlZmluZSBF UF9TVFNfSE9TVFBQKHApCSgocCkgJiBCSVQoMTYpKQ0KPj4gKy8qIFN0cmVhbSBQcm90b2NvbCBT dGF0ZSBNYWNoaW5lIFN0YXRlIChvbmx5IGZvciBCdWxrIHN0cmVhbSBlbmRwb2ludHMpLiAqLw0K Pj4gKyNkZWZpbmUgRVBfU1RTX1NQU01TVF9NQVNLCQlHRU5NQVNLKDE4LCAxNykNCj4+ICsjZGVm aW5lIEVQX1NUU19TUFNNU1RfRElTQUJMRUQocCkJKCgocCkgJiBFUF9TVFNfU1BTTVNUX01BU0sp ID4+IDE3KQ0KPj4gKyNkZWZpbmUgRVBfU1RTX1NQU01TVF9JRExFKHApCQkoKChwKSAmIEVQX1NU U19TUFNNU1RfTUFTSykgPj4gMTcpDQo+PiArI2RlZmluZSBFUF9TVFNfU1BTTVNUX1NUQVJUX1NU UkVBTShwKQkoKChwKSAmIEVQX1NUU19TUFNNU1RfTUFTSykgPj4gMTcpDQo+PiArI2RlZmluZSBF UF9TVFNfU1BTTVNUX01PVkVfREFUQShwKQkoKChwKSAmIEVQX1NUU19TUFNNU1RfTUFTSykgPj4g MTcpDQo+PiArLyogSW50ZXJydXB0IE9uIFRyYW5zZmVyIGNvbXBsZXRlLiAqLw0KPj4gKyNkZWZp bmUgRVBfU1RTX0lPVAkJQklUKDE5KQ0KPj4gKy8qIE9VVCBxdWV1ZSBlbmRwb2ludCBudW1iZXIu ICovDQo+PiArI2RlZmluZSBFUF9TVFNfT1VUUV9OT19NQVNLCUdFTk1BU0soMjcsIDI0KQ0KPj4g KyNkZWZpbmUgRVBfU1RTX09VVFFfTk8ocCkJKCgocCkgJiBFUF9TVFNfT1VUUV9OT19NQVNLKSA+ PiAyNCkNCj4+ICsvKiBPVVQgcXVldWUgdmFsaWQgZmxhZy4gKi8NCj4+ICsjZGVmaW5lIEVQX1NU U19PVVRRX1ZBTF9NQVNLCUJJVCgyOCkNCj4+ICsjZGVmaW5lIEVQX1NUU19PVVRRX1ZBTChwKQko KHApICYgRVBfU1RTX09VVFFfVkFMX01BU0spDQo+PiArLyogU0VUVVAgV0FJVC4gKi8NCj4+ICsj ZGVmaW5lIEVQX1NUU19TVFBXQUlUCQlCSVQoMzEpDQo+PiArDQo+PiArLyogRVBfU1RTX1NJRCAt IGJpdG1hc2tzICovDQo+PiArLyogU3RyZWFtIElEICh1c2VkIG9ubHkgaW4gU1MgbW9kZSkuICov DQo+PiArI2RlZmluZSBFUF9TVFNfU0lEX01BU0sJCUdFTk1BU0soMTUsIDApDQo+PiArI2RlZmlu ZSBFUF9TVFNfU0lEKHApCQkoKHApICYgRVBfU1RTX1NJRF9NQVNLKQ0KPj4gKw0KPj4gKy8qIEVQ X1NUU19FTiAtIGJpdG1hc2tzICovDQo+PiArLyogU0VUVVAgaW50ZXJydXB0IGVuYWJsZS4gKi8N Cj4+ICsjZGVmaW5lIEVQX1NUU19FTl9TRVRVUEVOCUJJVCgwKQ0KPj4gKy8qIE9VVCB0cmFuc2Zl ciBtaXNzaW5nIGRlc2NyaXB0b3IgZW5hYmxlLiAqLw0KPj4gKyNkZWZpbmUgRVBfU1RTX0VOX0RF U0NNSVNFTglCSVQoNCkNCj4+ICsvKiBTdHJlYW0gUmVqZWN0ZWQgZW5hYmxlLiAqLw0KPj4gKyNk ZWZpbmUgRVBfU1RTX0VOX1NUUkVBTVJFTglCSVQoNSkNCj4+ICsvKiBNb3ZlIERhdGEgRXhpdCBl bmFibGUuKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19FTl9NRF9FWElURU4JQklUKDYpDQo+PiArLyog VFJCIGVuYWJsZS4gKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19FTl9UUkJFUlJFTglCSVQoNykNCj4+ ICsvKiBOUkRZIGVuYWJsZS4gKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19FTl9OUkRZRU4JQklUKDgp DQo+PiArLyogUHJpbWUgZW5hYmxlLiAqLw0KPj4gKyNkZWZpbmUgRVBfU1RTX0VOX1BSSU1FRUVO CUJJVCgxMikNCj4+ICsvKiBTdHJlYW0gZXJyb3IgZW5hYmxlLiAqLw0KPj4gKyNkZWZpbmUgRVBf U1RTX0VOX1NJREVSUkVOCUJJVCgxMykNCj4+ICsvKiBPVVQgc2l6ZSBtaXNtYXRjaCBlbmFibGUu ICovDQo+PiArI2RlZmluZSBFUF9TVFNfRU5fT1VUU01NRU4JQklUKDE0KQ0KPj4gKy8qIElTTyB0 cmFuc21pc3Npb24gZXJyb3IgZW5hYmxlLiAqLw0KPj4gKyNkZWZpbmUgRVBfU1RTX0VOX0lTT0VS UkVOCUJJVCgxNSkNCj4+ICsvKiBJbnRlcnJ1cHQgb24gVHJhbnNtaXNzaW9uIGNvbXBsZXRlIGVu YWJsZS4gKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19FTl9JT1RFTgkJQklUKDE5KQ0KPj4gKy8qIFNl dHVwIFdhaXQgaW50ZXJydXB0IGVuYWJsZS4gKi8NCj4+ICsjZGVmaW5lIEVQX1NUU19FTl9TVFBX QUlURU4JQklUKDMxKQ0KPj4gKw0KPj4gKy8qIERSQkwtIGJpdG1hc2tzICovDQo+PiArI2RlZmlu ZSBEQl9WQUxVRV9CWV9JTkRFWChpbmRleCkgKDEgPDwgKGluZGV4KSkNCj4+ICsjZGVmaW5lIERC X1ZBTFVFX0VQMF9PVVQJQklUKDApDQo+PiArI2RlZmluZSBEQl9WQUxVRV9FUDBfSU4JCUJJVCgx NikNCj4+ICsNCj4+ICsvKiBFUF9JRU4gLSBiaXRtYXNrcyAqLw0KPj4gKyNkZWZpbmUgRVBfSUVO KGluZGV4KQkJKDEgPDwgKGluZGV4KSkNCj4+ICsjZGVmaW5lIEVQX0lFTl9FUF9PVVQwCQlCSVQo MCkNCj4+ICsjZGVmaW5lIEVQX0lFTl9FUF9JTjAJCUJJVCgxNikNCj4+ICsNCj4+ICsvKiBFUF9J U1RTIC0gYml0bWFza3MgKi8NCj4+ICsjZGVmaW5lIEVQX0lTVFMoaW5kZXgpCQkoMSA8PCAoaW5k ZXgpKQ0KPj4gKyNkZWZpbmUgRVBfSVNUU19FUF9PVVQwCQlCSVQoMCkNCj4+ICsjZGVmaW5lIEVQ X0lTVFNfRVBfSU4wCQlCSVQoMTYpDQo+PiArDQo+PiArLyogVVNCX1BXUi0gYml0bWFza3MgKi8N Cj4+ICsvKlBvd2VyIFNodXQgT2ZmIGNhcGFiaWxpdHkgZW5hYmxlKi8NCj4+ICsjZGVmaW5lIFBV U0JfUFdSX1BTT19FTgkJQklUKDApDQo+PiArLypQb3dlciBTaHV0IE9mZiBjYXBhYmlsaXR5IGRp c2FibGUqLw0KPj4gKyNkZWZpbmUgUFVTQl9QV1JfUFNPX0RTCQlCSVQoMSkNCj4+ICsvKg0KPj4g KyAqIEVuYWJsZXMgdHVybmluZy1vZmYgUmVmZXJlbmNlIENsb2NrLg0KPj4gKyAqIFRoaXMgYml0 IGlzIG9wdGlvbmFsIGFuZCBpbXBsZW1lbnRlZCBvbmx5IHdoZW4gc3VwcG9ydCBmb3IgT1RHIGlz DQo+PiArICogaW1wbGVtZW50ZWQgKGluZGljYXRlZCBieSBPVEdfUkVBRFkgYml0IHNldCB0byAn MScpLg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgUFVTQl9QV1JfU1RCX0NMS19TV0lUQ0hfRU4JQklU KDgpDQo+PiArLyoNCj4+ICsgKiBTdGF0dXMgYml0IGluZGljYXRpbmcgdGhhdCBvcGVyYXRpb24g cmVxdWlyZWQgYnkgU1RCX0NMS19TV0lUQ0hfRU4gd3JpdGUNCj4+ICsgKiBpcyBjb21wbGV0ZWQN Cj4+ICsgKi8NCj4+ICsjZGVmaW5lIFBVU0JfUFdSX1NUQl9DTEtfU1dJVENIX0RPTkUJQklUKDkp DQo+PiArLyogVGhpcyBiaXQgaW5mb3JtcyBpZiBGYXN0IFJlZ2lzdGVycyBBY2Nlc3MgaXMgZW5h YmxlZC4gKi8NCj4+ICsjZGVmaW5lIFBVU0JfUFdSX0ZTVF9SRUdfQUNDRVNTX1NUQVQJQklUKDMw KQ0KPj4gKy8qIEZhc3QgUmVnaXN0ZXJzIEFjY2VzcyBFbmFibGUuICovDQo+PiArI2RlZmluZSBQ VVNCX1BXUl9GU1RfUkVHX0FDQ0VTUwkJQklUKDMxKQ0KPj4gKw0KPj4gKy8qIFVTQl9DT05GMi0g Yml0bWFza3MgKi8NCj4+ICsvKg0KPj4gKyAqIFdyaXRpbmcgMSBkaXNhYmxlcyBUREwgY2FsY3Vs YXRpb24gYmFzaW5nIG9uIFRSQiBmZWF0dXJlIGluIGNvbnRyb2xsZXINCj4+ICsgKiBmb3IgRE1V TFQgbW9kZS4NCj4+ICsgKiBCaXQgc3VwcG9ydGVkIG9ubHkgZm9yIERFVl9WRVJfVjIgdmVyc2lv bi4NCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVTQl9DT05GMl9ESVNfVERMX1RSQgkJQklUKDEpDQo+ PiArLyoNCj4+ICsgKiBXcml0aW5nIDEgZW5hYmxlcyBUREwgY2FsY3VsYXRpb24gYmFzaW5nIG9u IFRSQiBmZWF0dXJlIGluIGNvbnRyb2xsZXINCj4+ICsgKiBmb3IgRE1VTFQgbW9kZS4NCj4+ICsg KiBCaXQgc3VwcG9ydGVkIG9ubHkgZm9yIERFVl9WRVJfVjIgdmVyc2lvbi4NCj4+ICsgKi8NCj4+ ICsjZGVmaW5lIFVTQl9DT05GMl9FTl9URExfVFJCCQlCSVQoMikNCj4+ICsNCj4+ICsvKiBVU0Jf Q0FQMS0gYml0bWFza3MgKi8NCj4+ICsvKg0KPj4gKyAqIFNGUiBJbnRlcmZhY2UgdHlwZQ0KPj4g KyAqIFRoZXNlIGZpZWxkIHJlZmxlY3RzIHR5cGUgb2YgU0ZSIGludGVyZmFjZSBpbXBsZW1lbnRl ZDoNCj4+ICsgKiAweDAgLSBPQ1ANCj4+ICsgKiAweDEgLSBBSEIsDQo+PiArICogMHgyIC0gUExC DQo+PiArICogMHgzIC0gQVhJDQo+PiArICogMHg0LTB4RiAtIHJlc2VydmVkDQo+PiArICovDQo+ PiArI2RlZmluZSBVU0JfQ0FQMV9TRlJfVFlQRV9NQVNLCUdFTk1BU0soMywgMCkNCj4+ICsjZGVm aW5lIERFVl9TRlJfVFlQRV9PQ1AocCkJKCgocCkgJiBVU0JfQ0FQMV9TRlJfVFlQRV9NQVNLKSA9 PSAweDApDQo+PiArI2RlZmluZSBERVZfU0ZSX1RZUEVfQUhCKHApCSgoKHApICYgVVNCX0NBUDFf U0ZSX1RZUEVfTUFTSykgPT0gMHgxKQ0KPj4gKyNkZWZpbmUgREVWX1NGUl9UWVBFX1BMQihwKQko KChwKSAmIFVTQl9DQVAxX1NGUl9UWVBFX01BU0spID09IDB4MikNCj4+ICsjZGVmaW5lIERFVl9T RlJfVFlQRV9BWEkocCkJKCgocCkgJiBVU0JfQ0FQMV9TRlJfVFlQRV9NQVNLKSA9PSAweDMpDQo+ PiArLyoNCj4+ICsgKiBTRlIgSW50ZXJmYWNlIHdpZHRoDQo+PiArICogVGhlc2UgZmllbGQgcmVm bGVjdHMgd2lkdGggb2YgU0ZSIGludGVyZmFjZSBpbXBsZW1lbnRlZDoNCj4+ICsgKiAweDAgLSA4 IGJpdCBpbnRlcmZhY2UsDQo+PiArICogMHgxIC0gMTYgYml0IGludGVyZmFjZSwNCj4+ICsgKiAw eDIgLSAzMiBiaXQgaW50ZXJmYWNlDQo+PiArICogMHgzIC0gNjQgYml0IGludGVyZmFjZQ0KPj4g KyAqIDB4NC0weEYgLSByZXNlcnZlZA0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NBUDFfU0ZS X1dJRFRIX01BU0sJR0VOTUFTSyg3LCA0KQ0KPj4gKyNkZWZpbmUgREVWX1NGUl9XSURUSF84KHAp CSgoKHApICYgVVNCX0NBUDFfU0ZSX1dJRFRIX01BU0spID09ICgweDAgPDwgNCkpDQo+PiArI2Rl ZmluZSBERVZfU0ZSX1dJRFRIXzE2KHApCSgoKHApICYgVVNCX0NBUDFfU0ZSX1dJRFRIX01BU0sp ID09ICgweDEgPDwgNCkpDQo+PiArI2RlZmluZSBERVZfU0ZSX1dJRFRIXzMyKHApCSgoKHApICYg VVNCX0NBUDFfU0ZSX1dJRFRIX01BU0spID09ICgweDIgPDwgNCkpDQo+PiArI2RlZmluZSBERVZf U0ZSX1dJRFRIXzY0KHApCSgoKHApICYgVVNCX0NBUDFfU0ZSX1dJRFRIX01BU0spID09ICgweDMg PDwgNCkpDQo+PiArLyoNCj4+ICsgKiBETUEgSW50ZXJmYWNlIHR5cGUNCj4+ICsgKiBUaGVzZSBm aWVsZCByZWZsZWN0cyB0eXBlIG9mIERNQSBpbnRlcmZhY2UgaW1wbGVtZW50ZWQ6DQo+PiArICog MHgwIC0gT0NQDQo+PiArICogMHgxIC0gQUhCLA0KPj4gKyAqIDB4MiAtIFBMQg0KPj4gKyAqIDB4 MyAtIEFYSQ0KPj4gKyAqIDB4NC0weEYgLSByZXNlcnZlZA0KPj4gKyAqLw0KPj4gKyNkZWZpbmUg VVNCX0NBUDFfRE1BX1RZUEVfTUFTSwlHRU5NQVNLKDExLCA4KQ0KPj4gKyNkZWZpbmUgREVWX0RN QV9UWVBFX09DUChwKQkoKChwKSAmIFVTQl9DQVAxX0RNQV9UWVBFX01BU0spID09ICgweDAgPDwg OCkpDQo+PiArI2RlZmluZSBERVZfRE1BX1RZUEVfQUhCKHApCSgoKHApICYgVVNCX0NBUDFfRE1B X1RZUEVfTUFTSykgPT0gKDB4MSA8PCA4KSkNCj4+ICsjZGVmaW5lIERFVl9ETUFfVFlQRV9QTEIo cCkJKCgocCkgJiBVU0JfQ0FQMV9ETUFfVFlQRV9NQVNLKSA9PSAoMHgyIDw8IDgpKQ0KPj4gKyNk ZWZpbmUgREVWX0RNQV9UWVBFX0FYSShwKQkoKChwKSAmIFVTQl9DQVAxX0RNQV9UWVBFX01BU0sp ID09ICgweDMgPDwgOCkpDQo+PiArLyoNCj4+ICsgKiBETUEgSW50ZXJmYWNlIHdpZHRoDQo+PiAr ICogVGhlc2UgZmllbGQgcmVmbGVjdHMgd2lkdGggb2YgRE1BIGludGVyZmFjZSBpbXBsZW1lbnRl ZDoNCj4+ICsgKiAweDAgLSByZXNlcnZlZCwNCj4+ICsgKiAweDEgLSByZXNlcnZlZCwNCj4+ICsg KiAweDIgLSAzMiBiaXQgaW50ZXJmYWNlDQo+PiArICogMHgzIC0gNjQgYml0IGludGVyZmFjZQ0K Pj4gKyAqIDB4NC0weEYgLSByZXNlcnZlZA0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NBUDFf RE1BX1dJRFRIX01BU0sJR0VOTUFTSygxNSwgMTIpDQo+PiArI2RlZmluZSBERVZfRE1BX1dJRFRI XzMyKHApCSgoKHApICYgVVNCX0NBUDFfRE1BX1dJRFRIX01BU0spID09ICgweDIgPDwgMTIpKQ0K Pj4gKyNkZWZpbmUgREVWX0RNQV9XSURUSF82NChwKQkoKChwKSAmIFVTQl9DQVAxX0RNQV9XSURU SF9NQVNLKSA9PSAoMHgzIDw8IDEyKSkNCj4+ICsvKg0KPj4gKyAqIFVTQjMgUEhZIEludGVyZmFj ZSB0eXBlDQo+PiArICogVGhlc2UgZmllbGQgcmVmbGVjdHMgdHlwZSBvZiBVU0IzIFBIWSBpbnRl cmZhY2UgaW1wbGVtZW50ZWQ6DQo+PiArICogMHgwIC0gVVNCIFBJUEUsDQo+PiArICogMHgxIC0g Uk1NSSwNCj4+ICsgKiAweDItMHhGIC0gcmVzZXJ2ZWQNCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVT Ql9DQVAxX1UzUEhZX1RZUEVfTUFTSyBHRU5NQVNLKDE5LCAxNikNCj4+ICsjZGVmaW5lIERFVl9V M1BIWV9QSVBFKHApICgoKHApICYgVVNCX0NBUDFfVTNQSFlfVFlQRV9NQVNLKSA9PSAoMHgwIDw8 IDE2KSkNCj4+ICsjZGVmaW5lIERFVl9VM1BIWV9STU1JKHApICgoKHApICYgVVNCX0NBUDFfVTNQ SFlfVFlQRV9NQVNLKSA9PSAoMHgxIDw8IDE2KSkNCj4+ICsvKg0KPj4gKyAqIFVTQjMgUEhZIElu dGVyZmFjZSB3aWR0aA0KPj4gKyAqIFRoZXNlIGZpZWxkIHJlZmxlY3RzIHdpZHRoIG9mIFVTQjMg UEhZIGludGVyZmFjZSBpbXBsZW1lbnRlZDoNCj4+ICsgKiAweDAgLSA4IGJpdCBQSVBFIGludGVy ZmFjZSwNCj4+ICsgKiAweDEgLSAxNiBiaXQgUElQRSBpbnRlcmZhY2UsDQo+PiArICogMHgyIC0g MzIgYml0IFBJUEUgaW50ZXJmYWNlLA0KPj4gKyAqIDB4MyAtIDY0IGJpdCBQSVBFIGludGVyZmFj ZQ0KPj4gKyAqIDB4NC0weEYgLSByZXNlcnZlZA0KPj4gKyAqIE5vdGU6IFdoZW4gU1NJQyBpbnRl cmZhY2UgaXMgaW1wbGVtZW50ZWQgdGhpcyBmaWVsZCBzaG93cyB0aGUgd2lkdGggb2YNCj4+ICsg KiBpbnRlcm5hbCBQSVBFIGludGVyZmFjZS4gVGhlIFJNTUkgaW50ZXJmYWNlIGlzIGFsd2F5cyAy MGJpdCB3aWRlLg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NBUDFfVTNQSFlfV0lEVEhfTUFT SyBHRU5NQVNLKDIzLCAyMCkNCj4+ICsjZGVmaW5lIERFVl9VM1BIWV9XSURUSF84KHApIFwNCj4+ ICsJKCgocCkgJiBVU0JfQ0FQMV9VM1BIWV9XSURUSF9NQVNLKSA9PSAoMHgwIDw8IDIwKSkNCj4+ ICsjZGVmaW5lIERFVl9VM1BIWV9XSURUSF8xNihwKSBcDQo+PiArCSgoKHApICYgVVNCX0NBUDFf VTNQSFlfV0lEVEhfTUFTSykgPT0gKDB4MSA8PCAxNikpDQo+PiArI2RlZmluZSBERVZfVTNQSFlf V0lEVEhfMzIocCkgXA0KPj4gKwkoKChwKSAmIFVTQl9DQVAxX1UzUEhZX1dJRFRIX01BU0spID09 ICgweDIgPDwgMjApKQ0KPj4gKyNkZWZpbmUgREVWX1UzUEhZX1dJRFRIXzY0KHApIFwNCj4+ICsJ KCgocCkgJiBVU0JfQ0FQMV9VM1BIWV9XSURUSF9NQVNLKSA9PSAoMHgzIDw8IDE2KSkNCj4+ICsN Cj4+ICsvKg0KPj4gKyAqIFVTQjIgUEhZIEludGVyZmFjZSBlbmFibGUNCj4+ICsgKiBUaGVzZSBm aWVsZCBpbmZvcm1zIGlmIFVTQjIgUEhZIGludGVyZmFjZSBpcyBpbXBsZW1lbnRlZDoNCj4+ICsg KiAweDAgLSBpbnRlcmZhY2UgTk9UIGltcGxlbWVudGVkLA0KPj4gKyAqIDB4MSAtIGludGVyZmFj ZSBpbXBsZW1lbnRlZA0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NBUDFfVTJQSFlfRU4ocCkJ KChwKSAmIEJJVCgyNCkpDQo+PiArLyoNCj4+ICsgKiBVU0IyIFBIWSBJbnRlcmZhY2UgdHlwZQ0K Pj4gKyAqIFRoZXNlIGZpZWxkIHJlZmxlY3RzIHR5cGUgb2YgVVNCMiBQSFkgaW50ZXJmYWNlIGlt cGxlbWVudGVkOg0KPj4gKyAqIDB4MCAtIFVUTUksDQo+PiArICogMHgxIC0gVUxQSQ0KPj4gKyAq Lw0KPj4gKyNkZWZpbmUgREVWX1UyUEhZX1VMUEkocCkJKChwKSAmIEJJVCgyNSkpDQo+PiArLyoN Cj4+ICsgKiBVU0IyIFBIWSBJbnRlcmZhY2Ugd2lkdGgNCj4+ICsgKiBUaGVzZSBmaWVsZCByZWZs ZWN0cyB3aWR0aCBvZiBVU0IyIFBIWSBpbnRlcmZhY2UgaW1wbGVtZW50ZWQ6DQo+PiArICogMHgw IC0gOCBiaXQgaW50ZXJmYWNlLA0KPj4gKyAqIDB4MSAtIDE2IGJpdCBpbnRlcmZhY2UsDQo+PiAr ICogTm90ZTogVGhlIFVMUEkgaW50ZXJmYWNlIGlzIGFsd2F5cyA4Yml0IHdpZGUuDQo+PiArICov DQo+PiArI2RlZmluZSBERVZfVTJQSFlfV0lEVEhfMTYocCkJKChwKSAmIEJJVCgyNikpDQo+PiAr LyoNCj4+ICsgKiBPVEcgUmVhZHkNCj4+ICsgKiAweDAgLSBwdXJlIGRldmljZSBtb2RlDQo+PiAr ICogMHgxIC0gc29tZSBmZWF0dXJlcyBhbmQgcG9ydHMgZm9yIENETlMgVVNCIE9URyBjb250cm9s bGVyIGFyZSBpbXBsZW1lbnRlZC4NCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVTQl9DQVAxX09UR19S RUFEWShwKQkoKHApICYgQklUKDI3KSkNCj4+ICsNCj4+ICsvKg0KPj4gKyAqIFdoZW4gc2V0LCBp bmRpY2F0ZXMgdGhhdCBjb250cm9sbGVyIHN1cHBvcnRzIGF1dG9tYXRpYyBpbnRlcm5hbCBUREwN Cj4+ICsgKiBjYWxjdWxhdGlvbiBiYXNpbmcgb24gdGhlIHNpemUgcHJvdmlkZWQgaW4gVFJCIChU UkJbMjI6MTddKSBmb3IgRE1VTFQgbW9kZQ0KPj4gKyAqIFN1cHBvcnRlZCBvbmx5IGZvciBERVZf VkVSX1YyIGNvbnRyb2xsZXIgdmVyc2lvbi4NCj4+ICsgKi8NCj4+ICsjZGVmaW5lIFVTQl9DQVAx X1RETF9GUk9NX1RSQihwKQkoKHApICYgQklUKDI4KSkNCj4+ICsNCj4+ICsvKiBVU0JfQ0FQMi0g Yml0bWFza3MgKi8NCj4+ICsvKg0KPj4gKyAqIFRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgY29ubmVj dGVkIE9uLWNoaXAgUkFNIG1lbW9yeSBpbiBrQjoNCj4+ICsgKiAtIDAgbWVhbnMgMjU2IGtCICht YXggc3VwcG9ydGVkIG1lbSBzaXplKQ0KPj4gKyAqIC0gdmFsdWUgb3RoZXIgdGhhbiAwIHJlZmxl Y3RzIHRoZSBtZW0gc2l6ZSBpbiBrQg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgVVNCX0NBUDJfQUNU VUFMX01FTV9TSVpFKHApICgocCkgJiBHRU5NQVNLKDcsIDApKQ0KPj4gKy8qDQo+PiArICogTWF4 IHN1cHBvcnRlZCBtZW0gc2l6ZQ0KPj4gKyAqIFRoZXNlIGZpZWxkIHJlZmxlY3RzIHdpZHRoIG9m IG9uLWNoaXAgUkFNIGFkZHJlc3MgYnVzIHdpZHRoLA0KPj4gKyAqIHdoaWNoIGRldGVybWluZXMg bWF4IHN1cHBvcnRlZCBtZW0gc2l6ZToNCj4+ICsgKiAweDAtMHg3IC0gcmVzZXJ2ZWQsDQo+PiAr ICogMHg4IC0gc3VwcG9ydCBmb3IgNGtCIG1lbSwNCj4+ICsgKiAweDkgLSBzdXBwb3J0IGZvciA4 a0IgbWVtLA0KPj4gKyAqIDB4QSAtIHN1cHBvcnQgZm9yIDE2a0IgbWVtLA0KPj4gKyAqIDB4QiAt IHN1cHBvcnQgZm9yIDMya0IgbWVtLA0KPj4gKyAqIDB4QyAtIHN1cHBvcnQgZm9yIDY0a0IgbWVt LA0KPj4gKyAqIDB4RCAtIHN1cHBvcnQgZm9yIDEyOGtCIG1lbSwNCj4+ICsgKiAweEUgLSBzdXBw b3J0IGZvciAyNTZrQiBtZW0sDQo+PiArICogMHhGIC0gcmVzZXJ2ZWQNCj4+ICsgKi8NCj4+ICsj ZGVmaW5lIFVTQl9DQVAyX01BWF9NRU1fU0laRShwKSAoKHApICYgR0VOTUFTSygxMSwgOCkpDQo+ PiArDQo+PiArLyogVVNCX0NBUDMtIGJpdG1hc2tzICovDQo+PiArI2RlZmluZSBFUF9JU19JTVBM RU1FTlRFRChyZWcsIGluZGV4KSAoKHJlZykgJiAoMSA8PCAoaW5kZXgpKSkNCj4+ICsNCj4+ICsv KiBVU0JfQ0FQNC0gYml0bWFza3MgKi8NCj4+ICsjZGVmaW5lIEVQX1NVUFBPUlRfSVNPKHJlZywg aW5kZXgpICgocmVnKSAmICgxIDw8IChpbmRleCkpKQ0KPj4gKw0KPj4gKy8qIFVTQl9DQVA1LSBi aXRtYXNrcyAqLw0KPj4gKyNkZWZpbmUgRVBfU1VQUE9SVF9TVFJFQU0ocmVnLCBpbmRleCkgKChy ZWcpICYgKDEgPDwgKGluZGV4KSkpDQo+PiArDQo+PiArLyogVVNCX0NBUDYtIGJpdG1hc2tzICov DQo+PiArLyogVGhlIFVTQlNTLURFViBDb250cm9sbGVyICBJbnRlcm5hbCBidWlsZCBudW1iZXIu ICovDQo+PiArI2RlZmluZSBHRVRfREVWX0JBU0VfVkVSU0lPTihwKSAoKHApICYgR0VOTUFTSygy MywgMCkpDQo+PiArLyogVGhlIFVTQlNTLURFViBDb250cm9sbGVyIHZlcnNpb24gbnVtYmVyLiAq Lw0KPj4gKyNkZWZpbmUgR0VUX0RFVl9DVVNUT01fVkVSU0lPTihwKSAoKHApICYgR0VOTUFTSygz MSwgMjQpKQ0KPj4gKw0KPj4gKyNkZWZpbmUgREVWX1ZFUl9OWFBfVjEJCTB4MDAwMjQ1MDINCj4+ ICsjZGVmaW5lIERFVl9WRVJfVElfVjEJCTB4MDAwMjQ1MDkNCj4+ICsjZGVmaW5lIERFVl9WRVJf VjIJCTB4MDAwMjQ1MEMNCj4+ICsjZGVmaW5lIERFVl9WRVJfVjMJCTB4MDAwMjQ1MGQNCj4+ICsN Cj4+ICsvKiBEQkdfTElOSzEtIGJpdG1hc2tzICovDQo+PiArLyoNCj4+ICsgKiBMRlBTX01JTl9E RVRfVTFfRVhJVCB2YWx1ZSBUaGlzIHBhcmFtZXRlciBjb25maWd1cmVzIHRoZSBtaW5pbXVtDQo+ PiArICogdGltZSByZXF1aXJlZCBmb3IgZGVjb2RpbmcgdGhlIHJlY2VpdmVkIExGUFMgYXMgYW4g TEZQUy5VMV9FeGl0Lg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgREJHX0xJTksxX0xGUFNfTUlOX0RF VF9VMV9FWElUKHApCSgocCkgJiBHRU5NQVNLKDcsIDApKQ0KPj4gKy8qDQo+PiArICogTEZQU19N SU5fR0VOX1UxX0VYSVQgdmFsdWUgVGhpcyBwYXJhbWV0ZXIgY29uZmlndXJlcyB0aGUgbWluaW11 bSB0aW1lIGZvcg0KPj4gKyAqIHBoeXR4ZWxlY2lkbGUgZGVhc3NlcnRpb24gd2hlbiBMRlBTLlUx X0V4aXQNCj4+ICsgKi8NCj4+ICsjZGVmaW5lIERCR19MSU5LMV9MRlBTX01JTl9HRU5fVTFfRVhJ VF9NQVNLCUdFTk1BU0soMTUsIDgpDQo+PiArI2RlZmluZSBEQkdfTElOSzFfTEZQU19NSU5fR0VO X1UxX0VYSVQocCkJKCgocCkgPDwgOCkgJiBHRU5NQVNLKDE1LCA4KSkNCj4+ICsvKg0KPj4gKyAq IFJYREVUX0JSRUFLX0RJUyB2YWx1ZSBUaGlzIHBhcmFtZXRlciBjb25maWd1cmVzIHRlcm1pbmF0 aW5nIHRoZSBGYXItZW5kDQo+PiArICogUmVjZWl2ZXIgdGVybWluYXRpb24gZGV0ZWN0aW9uIHNl cXVlbmNlOg0KPj4gKyAqIDA6IGl0IGlzIHBvc3NpYmxlIHRoYXQgVVNCU1NfREVWIHdpbGwgdGVy bWluYXRlIEZhcmVuZCByZWNlaXZlcg0KPj4gKyAqICAgIHRlcm1pbmF0aW9uIGRldGVjdGlvbiBz ZXF1ZW5jZQ0KPj4gKyAqIDE6IFVTQlNTX0RFViB3aWxsIG5vdCB0ZXJtaW5hdGUgRmFyLWVuZCBy ZWNlaXZlciB0ZXJtaW5hdGlvbg0KPj4gKyAqICAgIGRldGVjdGlvbiBzZXF1ZW5jZQ0KPj4gKyAq Lw0KPj4gKyNkZWZpbmUgREJHX0xJTksxX1JYREVUX0JSRUFLX0RJUwkJQklUKDE2KQ0KPj4gKy8q IExGUFNfR0VOX1BJTkcgdmFsdWUgVGhpcyBwYXJhbWV0ZXIgY29uZmlndXJlcyB0aGUgTEZQUy5Q aW5nIGdlbmVyYXRpb24gKi8NCj4+ICsjZGVmaW5lIERCR19MSU5LMV9MRlBTX0dFTl9QSU5HKHAp CQkoKChwKSA8PCAxNykgJiBHRU5NQVNLKDIxLCAxNykpDQo+PiArLyoNCj4+ICsgKiBTZXQgdGhl IExGUFNfTUlOX0RFVF9VMV9FWElUIHZhbHVlIFdyaXRpbmcgJzEnIHRvIHRoaXMgYml0IHdyaXRl cyB0aGUNCj4+ICsgKiBMRlBTX01JTl9ERVRfVTFfRVhJVCBmaWVsZCB2YWx1ZSB0byB0aGUgZGV2 aWNlLiBUaGlzIGJpdCBpcyBhdXRvbWF0aWNhbGx5DQo+PiArICogY2xlYXJlZC4gV3JpdGluZyAn MCcgaGFzIG5vIGVmZmVjdA0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgREJHX0xJTksxX0xGUFNfTUlO X0RFVF9VMV9FWElUX1NFVAlCSVQoMjQpDQo+PiArLyoNCj4+ICsgKiBTZXQgdGhlIExGUFNfTUlO X0dFTl9VMV9FWElUIHZhbHVlLiBXcml0aW5nICcxJyB0byB0aGlzIGJpdCB3cml0ZXMgdGhlDQo+ PiArICogTEZQU19NSU5fR0VOX1UxX0VYSVQgZmllbGQgdmFsdWUgdG8gdGhlIGRldmljZS4gVGhp cyBiaXQgaXMgYXV0b21hdGljYWxseQ0KPj4gKyAqIGNsZWFyZWQuIFdyaXRpbmcgJzAnIGhhcyBu byBlZmZlY3QNCj4+ICsgKi8NCj4+ICsjZGVmaW5lIERCR19MSU5LMV9MRlBTX01JTl9HRU5fVTFf RVhJVF9TRVQJQklUKDI1KQ0KPj4gKy8qDQo+PiArICogU2V0IHRoZSBSWERFVF9CUkVBS19ESVMg dmFsdWUgV3JpdGluZyAnMScgdG8gdGhpcyBiaXQgd3JpdGVzDQo+PiArICogdGhlIFJYREVUX0JS RUFLX0RJUyBmaWVsZCB2YWx1ZSB0byB0aGUgZGV2aWNlLiBUaGlzIGJpdCBpcyBhdXRvbWF0aWNh bGx5DQo+PiArICogY2xlYXJlZC4gV3JpdGluZyAnMCcgaGFzIG5vIGVmZmVjdA0KPj4gKyAqLw0K Pj4gKyNkZWZpbmUgREJHX0xJTksxX1JYREVUX0JSRUFLX0RJU19TRVQJCUJJVCgyNikNCj4+ICsv Kg0KPj4gKyAqIFNldCB0aGUgTEZQU19HRU5fUElOR19TRVQgdmFsdWUgV3JpdGluZyAnMScgdG8g dGhpcyBiaXQgd3JpdGVzDQo+PiArICogdGhlIExGUFNfR0VOX1BJTkcgZmllbGQgdmFsdWUgdG8g dGhlIGRldmljZS4gVGhpcyBiaXQgaXMgYXV0b21hdGljYWxseQ0KPj4gKyAqIGNsZWFyZWQuIFdy aXRpbmcgJzAnIGhhcyBubyBlZmZlY3QuIg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgREJHX0xJTksx X0xGUFNfR0VOX1BJTkdfU0VUCQlCSVQoMjcpDQo+PiArDQo+PiArLyogRE1BX0FYSV9DVFJMLSBi aXRtYXNrcyAqLw0KPj4gKy8qIFRoZSBtYXdwcm90IHBpbiBjb25maWd1cmF0aW9uLiAqLw0KPj4g KyNkZWZpbmUgRE1BX0FYSV9DVFJMX01BUlBST1QocCkgKChwKSAmIEdFTk1BU0soMiwgMCkpDQo+ PiArLyogVGhlIG1hcnByb3QgcGluIGNvbmZpZ3VyYXRpb24uICovDQo+PiArI2RlZmluZSBETUFf QVhJX0NUUkxfTUFXUFJPVChwKSAoKChwKSA8IDE2KSAmIEdFTk1BU0soMTgsIDE2KSkNCj4NCj5U aGlzIGlzIHdyb25nLiBJdCB3aWxsIGFsd2F5cyBjbGVhciBNQVdQUk9UIHRvIDANCg0KT2ssIHRo ZXJlIHNob3VsZCBiZSA8PCBpbnN0ZWFkIDwgLg0KLg0KPg0KPiNkZWZpbmUgRE1BX0FYSV9DVFJM X01BV1BST1QocCkgKCgocCkgJiBHRU5NQVNLKDIsIDApKSA8PCAxNikNCj4NCj4+ICsjZGVmaW5l IERNQV9BWElfQ1RSTF9OT05fU0VDVVJFIDB4MDINCj4+ICsNCj4+ICsjZGVmaW5lIGdhZGdldF90 b19jZG5zM19kZXZpY2UoZykgKGNvbnRhaW5lcl9vZihnLCBzdHJ1Y3QgY2RuczNfZGV2aWNlLCBn YWRnZXQpKQ0KPj4gKw0KPj4gKyNkZWZpbmUgZXBfdG9fY2RuczNfZXAoZXApIChjb250YWluZXJf b2YoZXAsIHN0cnVjdCBjZG5zM19lbmRwb2ludCwgZW5kcG9pbnQpKQ0KPj4gKw0KPg0KPjxzbmlw Pg0KPg0KPkFmdGVyIHRoZXNlIGNoYW5nZXMsIHRoZSBETUFfQVhJIHNlY3VyaXR5IGF0dHJpYnV0 ZSBmaXggaXMgd29ya2luZyBjb3JyZWN0bHkuDQo+DQoNClRoYW5rcywNCkNoZWVycyANClBhd2Vs bA0K