From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5977AA2EFC for ; Tue, 15 Oct 2019 13:32:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BCBF91EBAA; Tue, 15 Oct 2019 13:32:46 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130083.outbound.protection.outlook.com [40.107.13.83]) by dpdk.org (Postfix) with ESMTP id 530921EBA7 for ; Tue, 15 Oct 2019 13:32:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SzsqyNG3HeAO+RN8qy/gXVqr3HG8enIEF/Mm/Xm0iPI=; b=pr77h3h69NDYZLwz+5oizeY0Sh5WtMZApq9sLcKSG+5fQoxRWMf6PI9AYPuRNrZzzcs53LP61j9lpPxaRSiL6+8uwcEsRWGoWOW9F4zDg69eSQLkOY73cjuHsTuxGcJr6A+Jq2hhgDPH7h5W25I9vMBHfFKkNuT7LqvtUWSpW58= Received: from DB6PR0801CA0052.eurprd08.prod.outlook.com (2603:10a6:4:2b::20) by VI1PR0802MB2573.eurprd08.prod.outlook.com (2603:10a6:800:b1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.16; Tue, 15 Oct 2019 11:32:42 +0000 Received: from DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::205) by DB6PR0801CA0052.outlook.office365.com (2603:10a6:4:2b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2347.16 via Frontend Transport; Tue, 15 Oct 2019 11:32:42 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=none action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT009.mail.protection.outlook.com (10.152.20.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2305.15 via Frontend Transport; Tue, 15 Oct 2019 11:32:41 +0000 Received: ("Tessian outbound 6481c7fa5a3c:v33"); Tue, 15 Oct 2019 11:32:39 +0000 X-CR-MTA-TID: 64aa7808 Received: from 538b66c8c803.2 (ip-172-16-0-2.eu-west-1.compute.internal [104.47.9.50]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 54017171-EEC5-46C2-83BC-08643C2D3FA4.1; Tue, 15 Oct 2019 11:32:34 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 538b66c8c803.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384); Tue, 15 Oct 2019 11:32:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BMdIHy1hwsHx1j2tpBCE6xn0M8uUqzUHiLhu9xVmJ0Mw6MpTvTM+2KkXE7TUwaP6nRu+CwlFRy/nuZlBX6K7OIQxA8sl9gzi8w0WXuF2uqJWl3ZRp6Al1hfGZ4c7fDuPZDJfqG4yBrtL2VuxYLhUsKoERZSjIaK8ngua/1Xt1n0q6lYoxt3zE0x30kqllqTmO9PEbtFM5dS7tdONLsPAFETqj5RRMN7sHSilKZZVaoTzCro95dAWp1hlRW+Mmqua2BiVVbOOPAgXIoNBbX8JPVTwwwd6b5OcxK6x4tsexI78xKTFv+2z19eoN84ebVP3E67tgLfvzp47dExotJHFGw== 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=SzsqyNG3HeAO+RN8qy/gXVqr3HG8enIEF/Mm/Xm0iPI=; b=AadFsNcpzaFSWNu9ihuknz/P1ltxm4p/rBOFtYQTlua6bgFDZ6THPN70HI9jUfZUZzERdNyaTy7OQFyCF1O7jK0xvQar+PCVFIMd7ynLmcLXhRB0xoVURqMVW0Vv5ZXAyfB9ss+svYbkcdnblLjhWoHeoxtz8DvNHcqKAf0NLdQrQSAXN83nzOtYXt9xXnOCyzVJV/maO1OFOt255aoGQbdRetCJv4v32D2fHlVoKnivKBczPprUtlGFILkZyaFrwYDVRuNlsrK3hgLfJ5KvfnGL8fnVfJaU55d4kEFL7mBIMB0PDaT1mqQrL3cPwVlv/u+KDWxQebl+/xBb5RXVAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SzsqyNG3HeAO+RN8qy/gXVqr3HG8enIEF/Mm/Xm0iPI=; b=pr77h3h69NDYZLwz+5oizeY0Sh5WtMZApq9sLcKSG+5fQoxRWMf6PI9AYPuRNrZzzcs53LP61j9lpPxaRSiL6+8uwcEsRWGoWOW9F4zDg69eSQLkOY73cjuHsTuxGcJr6A+Jq2hhgDPH7h5W25I9vMBHfFKkNuT7LqvtUWSpW58= Received: from VE1PR08MB4640.eurprd08.prod.outlook.com (10.255.27.75) by VE1PR08MB5102.eurprd08.prod.outlook.com (20.179.30.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.17; Tue, 15 Oct 2019 11:32:30 +0000 Received: from VE1PR08MB4640.eurprd08.prod.outlook.com ([fe80::e57f:3c29:b610:cc3d]) by VE1PR08MB4640.eurprd08.prod.outlook.com ([fe80::e57f:3c29:b610:cc3d%6]) with mapi id 15.20.2347.023; Tue, 15 Oct 2019 11:32:30 +0000 From: "Phil Yang (Arm Technology China)" To: David Marchand CC: "thomas@monjalon.net" , "jerinj@marvell.com" , Gage Eads , dev , "hemant.agrawal@nxp.com" , Honnappa Nagarahalli , "Gavin Hu (Arm Technology China)" , nd , nd Thread-Topic: [dpdk-dev] [PATCH v9 1/3] eal/arm64: add 128-bit atomic compare exchange Thread-Index: AQHVgqYv3xHGvnW5jUSowKeeHoD4fqdbiMkA Date: Tue, 15 Oct 2019 11:32:30 +0000 Message-ID: References: <20190723070536.30342-1-jerinj@marvell.com> <1565771263-27353-1-git-send-email-phil.yang@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: b33dba41-dc48-4603-819b-c4c946afe865.0 x-checkrecipientchecked: true Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Phil.Yang@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: a22ba5c7-a847-47b7-74a5-08d7516363c9 X-MS-Office365-Filtering-HT: Tenant X-MS-TrafficTypeDiagnostic: VE1PR08MB5102:|VE1PR08MB5102:|VI1PR0802MB2573: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; x-forefront-prvs: 01917B1794 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4636009)(136003)(366004)(376002)(396003)(39860400002)(346002)(199004)(189003)(13464003)(6246003)(66556008)(66476007)(4326008)(25786009)(14454004)(6506007)(53546011)(478600001)(66066001)(561944003)(33656002)(99286004)(76176011)(7696005)(256004)(76116006)(71190400001)(71200400001)(14444005)(66946007)(64756008)(66446008)(52536014)(8936002)(8676002)(81166006)(81156014)(7736002)(2906002)(74316002)(186003)(486006)(6916009)(26005)(5660300002)(55236004)(30864003)(11346002)(476003)(305945005)(446003)(86362001)(6436002)(102836004)(3846002)(6116002)(316002)(54906003)(229853002)(9686003)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:VE1PR08MB5102; H:VE1PR08MB4640.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: hsglL+UyII8ALOOfSIT/yQDNFu6AqTCdhVYgz6vlY7V1KaK574OUQNxAZsVAa+NIYd0qE5It9r50NoyT4LrxoelCsOVR+wukgM9jgX0w8i6vlM/4wGU/LiiTIpJwLwJbTuRX8gm/6ohZIns9vpoFgDrii92vBvUuFTqKidNFT5JnjMRYOhDWeeJdpQA89E1S4aoq6VFCmDo0Sh0rTDg5JMvyahXE2K9+X7e6QVT4EzRPl8npZQw98mt9mUtctqW6DnWtQiZg7zbOV9/nDTMptejcazUc2MK9xoDwXNPgwbTXQX49aHZBA7mofOkAohiRfRhzXHmVpg/RQc2ZO2RN8If+Yhr1/BrS+cqm9bc0JDuXjmgScVjY3fM4IvnjZP9ypneSjfMl0hzy76ZcsxNZ0wuNPMBzOEl85ugy1l1vJAM= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5102 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Phil.Yang@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT009.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; IPV:CAL; SCL:-1; CTRY:IE; EFV:NLI; SFV:NSPM; SFS:(10009020)(4636009)(346002)(136003)(376002)(39860400002)(396003)(13464003)(199004)(189003)(356004)(33656002)(26005)(561944003)(9686003)(70586007)(66066001)(2906002)(11346002)(2486003)(7696005)(6246003)(74316002)(99286004)(23676004)(446003)(436003)(186003)(70206006)(14444005)(63350400001)(76176011)(47776003)(50466002)(55016002)(25786009)(14454004)(336012)(81166006)(81156014)(102836004)(229853002)(8676002)(22756006)(5660300002)(26826003)(6116002)(478600001)(86362001)(4326008)(486006)(30864003)(316002)(6506007)(54906003)(53546011)(7736002)(476003)(6862004)(126002)(305945005)(3846002)(52536014)(8936002)(76130400001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0802MB2573; H:64aa7808-outbound-1.mta.getcheckrecipient.com; FPR:; SPF:TempError; LANG:en; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; A:1; MX:1; X-MS-Office365-Filtering-Correlation-Id-Prvs: d27e8129-be61-4c29-2202-08d751635d47 NoDisclaimer: True X-Forefront-PRVS: 01917B1794 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wO+TxjmxMk7IN4ITqb+AtjMllJD80zGp6e4pPeCCDaE9216lWkzDD4f+il8B86xDmlVnF8fkaoCHxoRWEOLm6PuRzRpS4Xbmg+OhmayfX3fungV6I/nwRLtp/SzNc/g1xg4cFb4thieYfZG/9tPEFKo17AdcvXiJ9TOJ7thYo7T97O/wk1YhD8cEHMvdDtihxcxa99w6KAItA25OyYRw7tL97mbQs4LuvojIxL+nqMby4zpPLXbLG9WhdyJK8PNjewiKGpBp7fMdxL4Hy91Q3vUSt5baaZS27v4bnaJIq0UjD8+U23izgSB1ZKtVCIvd5F/2CRumqWwGaKjdS9FIZeB28Ciq06dY8CCYSkoWYSYkROO2OdlN73IZe7k9MKH9p4pK3H91lifBcUpK/fR7YSB3e8oX2hF2f8s6DlzXn44= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2019 11:32:41.3293 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a22ba5c7-a847-47b7-74a5-08d7516363c9 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2573 Subject: Re: [dpdk-dev] [PATCH v9 1/3] eal/arm64: add 128-bit atomic compare exchange X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgRGF2aWQsDQoNClRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4gSSBoYXZlIGFkZHJlc3NlZCBt b3N0IG9mIHRoZW0gaW4gdjEwLiAgUGxlYXNlIHJldmlldyBpdC4NClNvbWUgY29tbWVudHMgaW5s aW5lLg0KIA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEYXZpZCBNYXJj aGFuZCA8ZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbT4NCj4gU2VudDogTW9uZGF5LCBPY3RvYmVy IDE0LCAyMDE5IDExOjQ0IFBNDQo+IFRvOiBQaGlsIFlhbmcgKEFybSBUZWNobm9sb2d5IENoaW5h KSA8UGhpbC5ZYW5nQGFybS5jb20+DQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBqZXJpbmpA bWFydmVsbC5jb207IEdhZ2UgRWFkcw0KPiA8Z2FnZS5lYWRzQGludGVsLmNvbT47IGRldiA8ZGV2 QGRwZGsub3JnPjsgaGVtYW50LmFncmF3YWxAbnhwLmNvbTsNCj4gSG9ubmFwcGEgTmFnYXJhaGFs bGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+OyBHYXZpbiBIdSAoQXJtDQo+IFRlY2hu b2xvZ3kgQ2hpbmEpIDxHYXZpbi5IdUBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+DQo+IFN1Ympl Y3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2OSAxLzNdIGVhbC9hcm02NDogYWRkIDEyOC1iaXQg YXRvbWljDQo+IGNvbXBhcmUgZXhjaGFuZ2UNCj4gDQo+IE9uIFdlZCwgQXVnIDE0LCAyMDE5IGF0 IDEwOjI5IEFNIFBoaWwgWWFuZyA8cGhpbC55YW5nQGFybS5jb20+IHdyb3RlOg0KPiA+DQo+ID4g QWRkIDEyOC1iaXQgYXRvbWljIGNvbXBhcmUgZXhjaGFuZ2Ugb24gYWFyY2g2NC4NCj4gDQo+IEEg Yml0IHNob3J0LCBzZWVpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhlIGNvZGUgYW5kIHRoZSBhZGRp dGlvbmFsDQo+IFJURV9BUk1fRkVBVFVSRV9BVE9NSUNTIGNvbmZpZyBmbGFnLg0KVXBkYXRlZCBp biB2MTAuIA0KDQo8c25pcD4NCg0KPiA+DQo+ID4gKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IDEyOCBiaXQgYXRvbWljIG9wZXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQo+ ID4gKw0KPiA+ICsjZGVmaW5lIF9fSEFTX0FDUShtbykgKChtbykgIT0gX19BVE9NSUNfUkVMQVhF RCAmJiAobW8pICE9DQo+IF9fQVRPTUlDX1JFTEVBU0UpDQo+ID4gKyNkZWZpbmUgX19IQVNfUkxT KG1vKSAoKG1vKSA9PSBfX0FUT01JQ19SRUxFQVNFIHx8IChtbykgPT0NCj4gX19BVE9NSUNfQUNR X1JFTCB8fCBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KG1vKSA9PSBfX0FUT01JQ19TRVFfQ1NUKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBfX01PX0xPQUQo bW8pICAoX19IQVNfQUNRKChtbykpID8gX19BVE9NSUNfQUNRVUlSRSA6DQo+IF9fQVRPTUlDX1JF TEFYRUQpDQo+ID4gKyNkZWZpbmUgX19NT19TVE9SRShtbykgKF9fSEFTX1JMUygobW8pKSA/IF9f QVRPTUlDX1JFTEVBU0UgOg0KPiBfX0FUT01JQ19SRUxBWEVEKQ0KPiANCj4gVGhvc2UgNCBmaXJz dCBtYWNyb3Mgb25seSBtYWtlIHNlbnNlIHdoZW4gTFNFIGlzIG5vdCBhdmFpbGFibGUgKHNlZSBi ZWxvdw0KPiBbMV0pLg0KPiBCZXNpZGVzLCB0aGV5IGFyZSB1c2VkIG9ubHkgb25jZSwgd2h5IG5v dCBkaXJlY3RseSB1c2UgdGhvc2UNCj4gY29uZGl0aW9ucyB3aGVyZSBuZWVkZWQ/DQoNCkFncmVl LiBJIHJlbW92ZWQgX19NT19MT0FEIGFuZCBfX01PX1NUT1JFIGluIHYxMCBhbmQga2VwdCB0aGUg X19IQVNfQUNRIGFuZCBfX0hBU19SRUwgdW5kZXIgdGhlIG5vbi1MU0UgY29uZGl0aW9uIGJyYW5j aCBpbiB2MTAuIA0KSSB0aGluayB0aGV5IGNhbiBtYWtlIHRoZSBjb2RlIGVhc3kgdG8gcmVhZC4N Cg0KPiANCj4gDQo+ID4gKw0KPiA+ICsjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0FUT01JQ1Mp IHx8DQo+IGRlZmluZWQoUlRFX0FSTV9GRUFUVVJFX0FUT01JQ1MpDQo+ID4gKyNkZWZpbmUgX19B VE9NSUMxMjhfQ0FTX09QKGNhc19vcF9uYW1lLCBvcF9zdHJpbmcpICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4gK3N0YXRpYyBfX3J0ZV9ub2lubGluZSBydGVfaW50MTI4X3QgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gK2Nhc19vcF9uYW1lKHJ0 ZV9pbnQxMjhfdCAqZHN0LCBydGVfaW50MTI4X3Qgb2xkLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgIHJ0ZV9pbnQxMjhfdCB1cGRhdGVkKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAreyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gPiArICAgICAgIC8qIGNhc3BYIGluc3RydWN0aW9ucyByZWdpc3RlciBwYWlyIG11c3Qg c3RhcnQgZnJvbSBldmVuLW51bWJlcmVkDQo+ID4gKyAgICAgICAgKiByZWdpc3RlciBhdCBvcGVy YW5kIDEuDQo+ID4gKyAgICAgICAgKiBTbywgc3BlY2lmeSByZWdpc3RlcnMgZm9yIGxvY2FsIHZh cmlhYmxlcyBoZXJlLg0KPiA+ICsgICAgICAgICovICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICByZWdp c3RlciB1aW50NjRfdCB4MCBfX2FzbSgieDAiKSA9ICh1aW50NjRfdClvbGQudmFsWzBdOyAgICAg ICAgICAgIFwNCj4gPiArICAgICAgIHJlZ2lzdGVyIHVpbnQ2NF90IHgxIF9fYXNtKCJ4MSIpID0g KHVpbnQ2NF90KW9sZC52YWxbMV07ICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgcmVnaXN0ZXIg dWludDY0X3QgeDIgX19hc20oIngyIikgPSAodWludDY0X3QpdXBkYXRlZC52YWxbMF07ICAgICAg ICBcDQo+ID4gKyAgICAgICByZWdpc3RlciB1aW50NjRfdCB4MyBfX2FzbSgieDMiKSA9ICh1aW50 NjRfdCl1cGRhdGVkLnZhbFsxXTsgICAgICAgIFwNCj4gPiArICAgICAgIGFzbSB2b2xhdGlsZSgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K PiA+ICsgICAgICAgICAgICAgICBvcF9zdHJpbmcgIiAlW29sZDBdLCAlW29sZDFdLCAlW3VwZDBd LCAlW3VwZDFdLCBbJVtkc3RdXSIgICBcDQo+ID4gKyAgICAgICAgICAgICAgIDogW29sZDBdICIr ciIgKHgwKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAr ICAgICAgICAgICAgICAgW29sZDFdICIrciIgKHgxKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAgICAgICA6IFt1cGQwXSAiciIgKHgy KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAg ICAgICAgICAgIFt1cGQxXSAiciIgKHgzKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAgICAgW2RzdF0gInIiIChkc3QpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAg ICAgICA6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4gKyAgICAgICBvbGQudmFsWzBdID0geDA7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgIG9sZC52YWxb MV0gPSB4MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+ICsgICAgICAgcmV0dXJuIG9sZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gK30NCj4gPiArDQo+ID4gK19fQVRP TUlDMTI4X0NBU19PUChfX3J0ZV9jYXNfcmVsYXhlZCwgImNhc3AiKQ0KPiA+ICtfX0FUT01JQzEy OF9DQVNfT1AoX19ydGVfY2FzX2FjcXVpcmUsICJjYXNwYSIpDQo+ID4gK19fQVRPTUlDMTI4X0NB U19PUChfX3J0ZV9jYXNfcmVsZWFzZSwgImNhc3BsIikNCj4gPiArX19BVE9NSUMxMjhfQ0FTX09Q KF9fcnRlX2Nhc19hY3FfcmVsLCAiY2FzcGFsIikNCj4gDQo+IElmIExTRSBpcyBhdmFpbGFibGUs IHdlIGV4cG9zZSBfX3J0ZV9jYXNfWFggKGV4cGxpY2l0ZWx5KSAqbm9uKg0KPiBpbmxpbmVkIGZ1 bmN0aW9ucywgd2hpbGUgd2l0aG91dCBMU0UsIHdlIGV4cG9zZSBpbmxpbmVkIF9fcnRlX2xkcl9Y WA0KPiBhbmQgX19ydGVfc3R4X1hYIGZ1bmN0aW9ucy4NCj4gU28gd2UgaGF2ZSBhIGZpcnN0IGRp c3Bhcml0eSB3aXRoIG5vbi1pbmxpbmVkIHZzIGlubGluZWQgZnVuY3Rpb25zDQo+IGRlcGVuZGlu ZyBvbiBhICNpZmRlZi4NCj4gVGhlbiwgd2UgaGF2ZSBhIHNlY29uZCBkaXNwYXJpdHkgd2l0aCB0 d28gc2V0cyBvZiAiYXBpcyIgZGVwZW5kaW5nIG9uDQo+IHRoaXMgI2lmZGVmLg0KPiANCj4gQW5k IHdlIGV4cG9zZSB0aG9zZSBzZXRzIHdpdGggYSBydGVfIHByZWZpeCwgbWVhbmluZyBwZW9wbGUg d2lsbCB0cnkNCj4gdG8gdXNlIHRoZW0sIGJ1dCB0aG9zZSBhcmUgbm90IHBhcnQgb2YgYSBwdWJs aWMgYXBpLg0KPiANCj4gQ2FuJ3Qgd2UgZG8gd2l0aG91dCB0aGVtID8gKHNlZSBiZWxvdyBbMl0g Zm9yIGEgcHJvcG9zYWwgd2l0aCBsZHIvc3R4LA0KPiBjYXMgc2hvdWxkIGJlIHRoZSBzYW1lKQ0K DQpObywgaXQgZG9lc24ndCB3b3JrLiANCkJlY2F1c2Ugd2UgbmVlZCB0byB2ZXJpZnkgdGhlIHJl dHVybiB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRoZSBsb29wIGZvciB0aGVzZSBtYWNyb3MuIA0KDQo+ IA0KPiANCj4gPiArI2Vsc2UNCj4gPiArI2RlZmluZSBfX0FUT01JQzEyOF9MRFhfT1AobGR4X29w X25hbWUsIG9wX3N0cmluZykgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArc3RhdGlj IGlubGluZSBydGVfaW50MTI4X3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCj4gPiArbGR4X29wX25hbWUoY29uc3QgcnRlX2ludDEyOF90ICpzcmMp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAreyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCj4gPiArICAgICAgIHJ0ZV9pbnQxMjhfdCByZXQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgYXNtIHZv bGF0aWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgb3Bfc3RyaW5nICIgJTAsICUxLCAl MiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICA6ICI9JnIiIChyZXQudmFsWzBdKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIj0mciIgKHJldC52YWxbMV0pICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg OiAiUSIgKHNyYy0+dmFsWzBdKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgcmV0dXJuIHJldDsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gK30N Cj4gPiArDQo+ID4gK19fQVRPTUlDMTI4X0xEWF9PUChfX3J0ZV9sZHhfcmVsYXhlZCwgImxkeHAi KQ0KPiA+ICtfX0FUT01JQzEyOF9MRFhfT1AoX19ydGVfbGR4X2FjcXVpcmUsICJsZGF4cCIpDQo+ ID4gKw0KPiA+ICsjZGVmaW5lIF9fQVRPTUlDMTI4X1NUWF9PUChzdHhfb3BfbmFtZSwgb3Bfc3Ry aW5nKSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICtzdGF0aWMgaW5saW5lIHVpbnQz Ml90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KPiA+ICtzdHhfb3BfbmFtZShydGVfaW50MTI4X3QgKmRzdCwgY29uc3QgcnRlX2ludDEyOF90 IHNyYykgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICt7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K PiA+ICsgICAgICAgdWludDMyX3QgcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICBhc20gdm9sYXRpbGUoICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBvcF9zdHJpbmcgIiAldzAsICUxLCAlMiwgJTMiICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIDogIj0mciIg KHJldCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgOiAiciIgKHNyYy52YWxbMF0pLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICJyIiAoc3JjLnZh bFsxXSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIlEiIChkc3QtPnZhbFswXSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgIC8qIFJldHVy biAwIG9uIHN1Y2Nlc3MsIDEgb24gZmFpbHVyZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+ICsgICAgICAgcmV0dXJuIHJldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gK30NCj4gPiArDQo+ID4gK19fQVRP TUlDMTI4X1NUWF9PUChfX3J0ZV9zdHhfcmVsYXhlZCwgInN0eHAiKQ0KPiA+ICtfX0FUT01JQzEy OF9TVFhfT1AoX19ydGVfc3R4X3JlbGVhc2UsICJzdGx4cCIpDQo+ID4gKyNlbmRpZg0KPiA+ICsN Cj4gPiArc3RhdGljIGlubGluZSBpbnQgX19ydGVfZXhwZXJpbWVudGFsDQo+IA0KPiBUaGUgX19y dGVfZXhwZXJpbWVudGFsIHRhZyBjb21lcyBmaXJzdC4NCg0KVXBkYXRlZCBpbiB2MTAuDQoNCj4g DQo+IA0KPiA+ICtydGVfYXRvbWljMTI4X2NtcF9leGNoYW5nZShydGVfaW50MTI4X3QgKmRzdCwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9pbnQxMjhfdCAqZXhwLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcnRlX2ludDEyOF90ICpz cmMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgd2Vh aywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdWNjZXNzLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZhaWx1cmUpDQo+ID4gK3sNCj4g PiArICAgICAgIC8qIEFsd2F5cyBkbyBzdHJvbmcgQ0FTICovDQo+ID4gKyAgICAgICBSVEVfU0VU X1VTRUQod2Vhayk7DQo+ID4gKyAgICAgICAvKiBJZ25vcmUgbWVtb3J5IG9yZGVyaW5nIGZvciBm YWlsdXJlLCBtZW1vcnkgb3JkZXIgZm9yDQo+ID4gKyAgICAgICAgKiBzdWNjZXNzIG11c3QgYmUg c3Ryb25nZXIgb3IgZXF1YWwNCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgUlRFX1NFVF9V U0VEKGZhaWx1cmUpOw0KPiA+ICsgICAgICAgLyogRmluZCBpbnZhbGlkIG1lbW9yeSBvcmRlciAq Lw0KPiA+ICsgICAgICAgUlRFX0FTU0VSVChzdWNjZXNzID09IF9fQVRPTUlDX1JFTEFYRUQNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICB8fCBzdWNjZXNzID09IF9fQVRPTUlDX0FDUVVJUkUN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICB8fCBzdWNjZXNzID09IF9fQVRPTUlDX1JFTEVB U0UNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB8fCBzdWNjZXNzID09IF9fQVRPTUlDX0FD UV9SRUwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB8fCBzdWNjZXNzID09IF9fQVRPTUlD X1NFUV9DU1QpOw0KPiA+ICsNCj4gPiArI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9BVE9NSUNT KSB8fA0KPiBkZWZpbmVkKFJURV9BUk1fRkVBVFVSRV9BVE9NSUNTKQ0KPiA+ICsgICAgICAgcnRl X2ludDEyOF90IGV4cGVjdGVkID0gKmV4cDsNCj4gPiArICAgICAgIHJ0ZV9pbnQxMjhfdCBkZXNp cmVkID0gKnNyYzsNCj4gPiArICAgICAgIHJ0ZV9pbnQxMjhfdCBvbGQ7DQo+ID4gKw0KPiA+ICsg ICAgICAgaWYgKHN1Y2Nlc3MgPT0gX19BVE9NSUNfUkVMQVhFRCkNCj4gPiArICAgICAgICAgICAg ICAgb2xkID0gX19ydGVfY2FzX3JlbGF4ZWQoZHN0LCBleHBlY3RlZCwgZGVzaXJlZCk7DQo+ID4g KyAgICAgICBlbHNlIGlmIChzdWNjZXNzID09IF9fQVRPTUlDX0FDUVVJUkUpDQo+ID4gKyAgICAg ICAgICAgICAgIG9sZCA9IF9fcnRlX2Nhc19hY3F1aXJlKGRzdCwgZXhwZWN0ZWQsIGRlc2lyZWQp Ow0KPiA+ICsgICAgICAgZWxzZSBpZiAoc3VjY2VzcyA9PSBfX0FUT01JQ19SRUxFQVNFKQ0KPiA+ ICsgICAgICAgICAgICAgICBvbGQgPSBfX3J0ZV9jYXNfcmVsZWFzZShkc3QsIGV4cGVjdGVkLCBk ZXNpcmVkKTsNCj4gPiArICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAgICAgb2xkID0gX19y dGVfY2FzX2FjcV9yZWwoZHN0LCBleHBlY3RlZCwgZGVzaXJlZCk7DQo+ID4gKyNlbHNlDQo+IA0K PiAxOiB0aGUgZm91ciBmaXJzdCBtYWNyb3MgKG9uIHRoZSBtZW1vcnkgb3JkZXJpbmcgY29uc3Ry YWludHMpIGNhbiBiZQ0KPiBtb3ZlZCBoZXJlIHRoZW4gdW5kZWYnZCBvbmNlIHVudXNlZC4NCj4g T3IgeW91IGNhbiBqdXN0IGRvIHdpdGhvdXQgdGhlbS4NCg0KVXBkYXRlZCBpbiB2MTAuDQoNCj4g DQo+IA0KPiA+ICsgICAgICAgaW50IGxkeF9tbyA9IF9fTU9fTE9BRChzdWNjZXNzKTsNCj4gPiAr ICAgICAgIGludCBzdHhfbW8gPSBfX01PX1NUT1JFKHN1Y2Nlc3MpOw0KPiA+ICsgICAgICAgdWlu dDMyX3QgcmV0ID0gMTsNCj4gPiArICAgICAgIHJlZ2lzdGVyIHJ0ZV9pbnQxMjhfdCBleHBlY3Rl ZCA9ICpleHA7DQo+ID4gKyAgICAgICByZWdpc3RlciBydGVfaW50MTI4X3QgZGVzaXJlZCA9ICpz cmM7DQo+ID4gKyAgICAgICByZWdpc3RlciBydGVfaW50MTI4X3Qgb2xkOw0KPiA+ICsNCj4gPiAr ICAgICAgIC8qIGxkeDEyOCBjYW4gbm90IGd1YXJhbnRlZSBhdG9taWMsDQo+ID4gKyAgICAgICAg KiBNdXN0IHdyaXRlIGJhY2sgc3JjIG9yIG9sZCB0byB2ZXJpZnkgYXRvbWljaXR5IG9mIGxkeDEy ODsNCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgZG8gew0KPiA+ICsgICAgICAgICAgICAg ICBpZiAobGR4X21vID09IF9fQVRPTUlDX1JFTEFYRUQpDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgb2xkID0gX19ydGVfbGR4X3JlbGF4ZWQoZHN0KTsNCj4gPiArICAgICAgICAgICAgICAg ZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG9sZCA9IF9fcnRlX2xkeF9hY3F1aXJl KGRzdCk7DQo+IA0KPiAyOiBob3cgYWJvdXQgdXNpbmcgYSBzaW1wbGUgbWFjcm8gdGhhdCBnZXRz IHBhc3NlZCB0aGUgb3Agc3RyaW5nPw0KPiANCj4gU29tZXRoaW5nIGxpa2UgKHVudGVzdGVkKToN Cj4gDQo+ICNkZWZpbmUgX19SRUFEXzEyOChvcF9zdHJpbmcsIHNyYywgZHN0KSBcDQo+ICAgICBh c20gdm9sYXRpbGUoICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICAgICBvcF9zdHJpbmcg IiAlMCwgJTEsICUyIiAgICBcDQo+ICAgICAgICAgOiAiPSZyIiAoZHN0LnZhbFswXSksICAgICAg XA0KPiAgICAgICAgICAgIj0mciIgKGRzdC52YWxbMV0pICAgICAgIFwNCj4gICAgICAgICA6ICJR IiAoc3JjLT52YWxbMF0pICAgICAgICBcDQo+ICAgICAgICAgOiAibWVtb3J5IikNCj4gDQo+IFRo ZW4gdXNlZCBsaWtlIHRoaXM6DQo+IA0KPiAgICAgICAgIGlmIChsZHhfbW8gPT0gX19BVE9NSUNf UkVMQVhFRCkNCj4gICAgICAgICAgICAgX19SRUFEXzEyOCgibGR4cCIsIGRzdCwgb2xkKTsNCj4g ICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgIF9fUkVBRF8xMjgoImxkYXhwIiwgZHN0LCBvbGQp Ow0KPiANCj4gI3VuZGVmIF9fUkVBRF8xMjgNCj4gDQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAg ICBpZiAobGlrZWx5KG9sZC5pbnQxMjggPT0gZXhwZWN0ZWQuaW50MTI4KSkgew0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIGlmIChzdHhfbW8gPT0gX19BVE9NSUNfUkVMQVhFRCkNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IF9fcnRlX3N0eF9yZWxheGVkKGRz dCwgZGVzaXJlZCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gX19ydGVfc3R4X3JlbGVhc2UoZHN0LCBk ZXNpcmVkKTsNCj4gPiArICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAvKiBJbiB0aGUgZmFpbHVyZSBjYXNlIChzaW5jZSAnd2VhaycgaXMgaWdub3Jl ZCBhbmQgb25seQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAqIHdlYWsgPT0gMCBpcyBp bXBsZW1lbnRlZCksIGV4cGVjdGVkIHNob3VsZCBjb250YWluDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICogdGhlIGF0b21pY2FsbHkgcmVhZCB2YWx1ZSBvZiBkc3QuIFRoaXMgbWVhbnMs ICdvbGQnDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICogbmVlZHMgdG8gYmUgc3RvcmVk IGJhY2sgdG8gZW5zdXJlIGl0IHdhcyByZWFkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICogYXRvbWljYWxseS4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBpZiAoc3R4X21vID09IF9fQVRPTUlDX1JFTEFYRUQpDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBfX3J0ZV9zdHhfcmVsYXhlZChk c3QsIG9sZCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gX19ydGVfc3R4X3JlbGVhc2UoZHN0LCBvbGQp Ow0KPiANCj4gQW5kOg0KPiANCj4gI2RlZmluZSBfX1NUT1JFXzEyOChvcF9zdHJpbmcsIGRzdCwg dmFsLCByZXQpIFwNCj4gICAgIGFzbSB2b2xhdGlsZSggICAgICAgICAgICAgICAgICAgICAgICBc DQo+ICAgICAgICAgb3Bfc3RyaW5nICIgJXcwLCAlMSwgJTIsICUzIiAgICAgXA0KPiAgICAgICAg IDogIj0mciIgKHJldCkgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICAgICA6ICJyIiAodmFs LnZhbFswXSksICAgICAgICAgICAgICBcDQo+ICAgICAgICAgICAiciIgKHZhbC52YWxbMV0pLCAg ICAgICAgICAgICAgXA0KPiAgICAgICAgICAgIlEiIChkc3QtPnZhbFswXSkgICAgICAgICAgICAg IFwNCj4gICAgICAgICA6ICJtZW1vcnkiKQ0KPiANCj4gVXNlZCBsaWtlIHRoaXM6DQo+IA0KPiAg ICAgICAgIGlmIChsaWtlbHkob2xkLmludDEyOCA9PSBleHBlY3RlZC5pbnQxMjgpKSB7DQo+ICAg ICAgICAgICAgIGlmIChzdHhfbW8gPT0gX19BVE9NSUNfUkVMQVhFRCkNCj4gICAgICAgICAgICAg ICAgIF9fU1RPUkVfMTI4KCJzdHhwIiwgZHN0LCBkZXNpcmVkLCByZXQpOw0KPiAgICAgICAgICAg ICBlbHNlDQo+ICAgICAgICAgICAgICAgICBfX1NUT1JFXzEyOCgic3RseHAiLCBkc3QsIGRlc2ly ZWQsIHJldCk7DQo+ICAgICAgICAgfSBlbHNlIHsNCj4gICAgICAgICAgICAgLyogSW4gdGhlIGZh aWx1cmUgY2FzZSAoc2luY2UgJ3dlYWsnIGlzIGlnbm9yZWQgYW5kIG9ubHkNCj4gICAgICAgICAg ICAgICogd2VhayA9PSAwIGlzIGltcGxlbWVudGVkKSwgZXhwZWN0ZWQgc2hvdWxkIGNvbnRhaW4N Cj4gICAgICAgICAgICAgICogdGhlIGF0b21pY2FsbHkgcmVhZCB2YWx1ZSBvZiBkc3QuIFRoaXMg bWVhbnMsICdvbGQnDQo+ICAgICAgICAgICAgICAqIG5lZWRzIHRvIGJlIHN0b3JlZCBiYWNrIHRv IGVuc3VyZSBpdCB3YXMgcmVhZA0KPiAgICAgICAgICAgICAgKiBhdG9taWNhbGx5Lg0KPiAgICAg ICAgICAgICAgKi8NCj4gICAgICAgICAgICAgaWYgKHN0eF9tbyA9PSBfX0FUT01JQ19SRUxBWEVE KQ0KPiAgICAgICAgICAgICAgICAgX19TVE9SRV8xMjgoInN0eHAiLCBkc3QsIG9sZCwgcmV0KTsN Cj4gICAgICAgICAgICAgZWxzZQ0KPiAgICAgICAgICAgICAgICAgX19TVE9SRV8xMjgoInN0bHhw IiwgZHN0LCBvbGQsIHJldCk7DQo+ICAgICAgICAgfQ0KPiANCj4gI3VuZGVmIF9fU1RPUkVfMTI4 DQo+IA0KPiANCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgfSB3aGlsZSAodW5s aWtlbHkocmV0KSk7DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiArICAgICAgIC8qIFVuY29uZGl0 aW9uYWxseSB1cGRhdGluZyBleHBlY3RlZCByZW1vdmVzDQo+ID4gKyAgICAgICAgKiBhbiAnaWYn IHN0YXRlbWVudC4NCj4gPiArICAgICAgICAqIGV4cGVjdGVkIHNob3VsZCBhbHJlYWR5IGJlIGlu IHJlZ2lzdGVyIGlmDQo+ID4gKyAgICAgICAgKiBub3QgaW4gdGhlIGNhY2hlLg0KPiA+ICsgICAg ICAgICovDQo+ID4gKyAgICAgICAqZXhwID0gb2xkOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVy biAob2xkLmludDEyOCA9PSBleHBlY3RlZC5pbnQxMjgpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAj aWZkZWYgX19jcGx1c3BsdXMNCj4gPiAgfQ0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvYXJjaC94ODYvcnRlX2F0b21pY182NC5oDQo+ IGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvYXJjaC94ODYvcnRlX2F0b21pY182NC5o DQo+ID4gaW5kZXggMTMzNWQ5Mi4uY2ZlNzA2NyAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRl X2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gPiArKysgYi9s aWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4g PiBAQCAtMTgzLDE4ICsxODMsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQNCj4gcnRlX2F0b21pYzY0 X2NsZWFyKHJ0ZV9hdG9taWM2NF90ICp2KQ0KPiA+DQo+ID4gIC8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIDEyOCBiaXQgYXRvbWljIG9wZXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSovDQo+ID4NCj4gPiAtLyoqDQo+ID4gLSAqIDEyOC1iaXQgaW50ZWdlciBzdHJ1Y3R1cmUuDQo+ ID4gLSAqLw0KPiA+IC1SVEVfU1REX0MxMQ0KPiA+IC10eXBlZGVmIHN0cnVjdCB7DQo+ID4gLSAg ICAgICBSVEVfU1REX0MxMQ0KPiA+IC0gICAgICAgdW5pb24gew0KPiA+IC0gICAgICAgICAgICAg ICB1aW50NjRfdCB2YWxbMl07DQo+ID4gLSAgICAgICAgICAgICAgIF9fZXh0ZW5zaW9uX18gX19p bnQxMjggaW50MTI4Ow0KPiA+IC0gICAgICAgfTsNCj4gPiAtfSBfX3J0ZV9hbGlnbmVkKDE2KSBy dGVfaW50MTI4X3Q7DQo+ID4gLQ0KPiA+ICBfX3J0ZV9leHBlcmltZW50YWwNCj4gPiAgc3RhdGlj IGlubGluZSBpbnQNCj4gPiAgcnRlX2F0b21pYzEyOF9jbXBfZXhjaGFuZ2UocnRlX2ludDEyOF90 ICpkc3QsDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dl bmVyaWMvcnRlX2F0b21pYy5oDQo+IGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvZ2Vu ZXJpYy9ydGVfYXRvbWljLmgNCj4gPiBpbmRleCAyNGZmN2RjLi5lNmFiMTVhIDEwMDY0NA0KPiA+ IC0tLSBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX2F0b21pYy5o DQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvZ2VuZXJpYy9ydGVfYXRv bWljLmgNCj4gPiBAQCAtMTA4MSw2ICsxMDgxLDIwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiBy dGVfYXRvbWljNjRfY2xlYXIocnRlX2F0b21pYzY0X3QgKnYpDQo+ID4NCj4gPiAgLyotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gMTI4IGJpdCBhdG9taWMgb3BlcmF0aW9ucyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKi8NCj4gPg0KPiA+ICsvKioNCj4gPiArICogMTI4LWJpdCBpbnRlZ2VyIHN0 cnVjdHVyZS4NCj4gPiArICovDQo+ID4gK1JURV9TVERfQzExDQo+ID4gK3R5cGVkZWYgc3RydWN0 IHsNCj4gPiArICAgICAgIFJURV9TVERfQzExDQo+ID4gKyAgICAgICB1bmlvbiB7DQo+ID4gKyAg ICAgICAgICAgICAgIHVpbnQ2NF90IHZhbFsyXTsNCj4gPiArI2lmZGVmIFJURV9BUkNIXzY0DQo+ ID4gKyAgICAgICAgICAgICAgIF9fZXh0ZW5zaW9uX18gX19pbnQxMjggaW50MTI4Ow0KPiA+ICsj ZW5kaWYNCj4gDQo+IFlvdSBoaWQgdGhpcyBmaWVsZCBmb3IgeDg2Lg0KPiBXaGF0IGlzIHRoZSBy ZWFzb24/DQpObywgd2UgYXJlIG5vdCBoaWQgaXQgZm9yIHg4Ni4gVGhlIFJURV9BUkNIXzY0IGZs YWcgY292ZXJlZCB4ODYgYXMgd2VsbC4NCg0KVGhhbmtzLA0KUGhpbA0K