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 CCD90A328D for ; Tue, 22 Oct 2019 18:04:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 60C3B1BEED; Tue, 22 Oct 2019 18:04:09 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130070.outbound.protection.outlook.com [40.107.13.70]) by dpdk.org (Postfix) with ESMTP id 3189B1BEE9 for ; Tue, 22 Oct 2019 18:04:08 +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=3kT7gLOAz0jR49uS6IXVa386fvFw10Cvp21dlQxeLSs=; b=xWRRZV254zAgf3VVs110eKJ/3hFUIdMPMip5v29V1ebZMwpQxFGI3DyqYoi3qEQlSmBgkZ6S1aarQtE1wN+VV4/FleibbWRIGUBEHsnkkfi1v6SDkSIePRysP67d1psEHhklskxB2teLEr3ES2k8kJB5sbVHHER1rwpoMEFGpMQ= Received: from VI1PR08CA0125.eurprd08.prod.outlook.com (2603:10a6:800:d4::27) by DB8PR08MB4009.eurprd08.prod.outlook.com (2603:10a6:10:af::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.18; Tue, 22 Oct 2019 16:04:05 +0000 Received: from DB5EUR03FT041.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::204) by VI1PR08CA0125.outlook.office365.com (2603:10a6:800:d4::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2367.21 via Frontend Transport; Tue, 22 Oct 2019 16:04:04 +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 DB5EUR03FT041.mail.protection.outlook.com (10.152.21.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2367.23 via Frontend Transport; Tue, 22 Oct 2019 16:04:02 +0000 Received: ("Tessian outbound 3fba803f6da3:v33"); Tue, 22 Oct 2019 16:03:58 +0000 X-CR-MTA-TID: 64aa7808 Received: from 43f69887a041.2 (ip-172-16-0-2.eu-west-1.compute.internal [104.47.0.54]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8DF7AFC4-ED02-4997-BBD0-B96A0EA37A85.1; Tue, 22 Oct 2019 16:03:53 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01lp2054.outbound.protection.outlook.com [104.47.0.54]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 43f69887a041.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 22 Oct 2019 16:03:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fA2uC1KFitVzgOYGBBkk+ZqxY++yn++XLLhA2f02ZD+C1vdrNMMkC2ChVl2b3c4fjIlFGnrlu/4aTOH1CCUUw0HvpA3ephXR3msXd8sQVR2Y+Jsgtxsl/+9iACemNFc1srMzDXux8CUL4T6wXoj3oMYDJhAH0HnzLZEJdwQNylnB8qckNa52zTo9Uv72L/gxze9FKO+KqHDJRvwWXaZC1G7vZmarORmhTAcus0++59hUbcN0nU+zl7PI/SM4JTS9k41+9mMoSpJECkqAxrx48WblfzSr+OCP5QlaCoqkG7YHp8t7HpB4OhDEYCvwatCeie/QzxPL9faWdtpeoEizUg== 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=3kT7gLOAz0jR49uS6IXVa386fvFw10Cvp21dlQxeLSs=; b=h1soiTxBLVpfOOfbTkV79cNZylRakod/kDpv3klVN26z5orVG0M428f4f1y8LKpW9nVS+R+iSEBqqzW55r+LHpP1ydxHaAN0OxjOMNCdS4cSya/jQZZFl4BBz2E7SnO+fqxPl7W+PM03o++ZDSiLkXed9YquqlBYVOH+cei+pUdDI9KzNP66eVMcuX0R37wgygzDS/6gJrZyJcfNfz1K/9gzvrz49+BXA6kxALgqZFSIhxSLZpZEhX+EYnqrTU9cXTsteViVxO4jjCpIAS3AQmGVyJnw+Va+NCAUVn5aBb2c+Ibw6phUnn5RlUfwKrt13xFsfO/XD+yIiSJphAWnrA== 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=3kT7gLOAz0jR49uS6IXVa386fvFw10Cvp21dlQxeLSs=; b=xWRRZV254zAgf3VVs110eKJ/3hFUIdMPMip5v29V1ebZMwpQxFGI3DyqYoi3qEQlSmBgkZ6S1aarQtE1wN+VV4/FleibbWRIGUBEHsnkkfi1v6SDkSIePRysP67d1psEHhklskxB2teLEr3ES2k8kJB5sbVHHER1rwpoMEFGpMQ= Received: from AM0PR08MB5363.eurprd08.prod.outlook.com (52.132.214.213) by AM0PR08MB2996.eurprd08.prod.outlook.com (52.134.92.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.16; Tue, 22 Oct 2019 16:03:50 +0000 Received: from AM0PR08MB5363.eurprd08.prod.outlook.com ([fe80::b483:301f:e382:a94d]) by AM0PR08MB5363.eurprd08.prod.outlook.com ([fe80::b483:301f:e382:a94d%6]) with mapi id 15.20.2367.022; Tue, 22 Oct 2019 16:03:50 +0000 From: "Gavin Hu (Arm Technology China)" To: "Ananyev, Konstantin" , David Marchand CC: dev , nd , "thomas@monjalon.net" , Stephen Hemminger , "hemant.agrawal@nxp.com" , "jerinj@marvell.com" , Pavan Nikhilesh , Honnappa Nagarahalli , "Ruifeng Wang (Arm Technology China)" , "Phil Yang (Arm Technology China)" , Steve Capper , nd Thread-Topic: [dpdk-dev] [PATCH v8 2/6] eal: add the APIs to wait until equal Thread-Index: AQHVh/S7YwpRDxIcM0uiC+QUu48IQKdleOmAgADvqgCAAGlgMA== Date: Tue, 22 Oct 2019 16:03:50 +0000 Message-ID: References: <1561911676-37718-1-git-send-email-gavin.hu@arm.com> <1571651279-51857-1-git-send-email-gavin.hu@arm.com> <1571651279-51857-3-git-send-email-gavin.hu@arm.com> <2601191342CEEE43887BDE71AB97725801A8C6DDF9@IRSMSX104.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB97725801A8C6DDF9@IRSMSX104.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 853e230b-9003-4e19-a542-2944202184f3.0 x-checkrecipientchecked: true Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Gavin.Hu@arm.com; x-originating-ip: [221.239.174.146] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c4e60c7d-8c5f-435f-85aa-08d75709754e X-MS-TrafficTypeDiagnostic: AM0PR08MB2996:|AM0PR08MB2996:|DB8PR08MB4009: 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:10000;OLM:10000; x-forefront-prvs: 01986AE76B X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(366004)(136003)(376002)(346002)(396003)(13464003)(189003)(199004)(8936002)(25786009)(6246003)(9686003)(4326008)(52536014)(5660300002)(6116002)(3846002)(478600001)(2906002)(7736002)(33656002)(8676002)(74316002)(305945005)(30864003)(54906003)(316002)(81166006)(110136005)(14454004)(81156014)(446003)(102836004)(86362001)(66946007)(64756008)(26005)(186003)(6506007)(11346002)(66446008)(71190400001)(55016002)(53546011)(76116006)(66556008)(71200400001)(66476007)(14444005)(256004)(229853002)(7696005)(6436002)(476003)(486006)(76176011)(99286004)(66066001)(21314003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR08MB2996; H:AM0PR08MB5363.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: f4NtcCvOS8Gs+jRtfm+6hAlHUCVs4y09oQOTREk/CUwm3fYPo0Df10rYW7oZRo5lIw2/aHNosonNEspyrCjKmYFnupTwItdJ4vo+LzCvNddvDw0FFtKIS4gl+xafvMT7BezFUDBCMNBa+2OVPsMGmjwHCBIoMLpO5UlFy6bd8njqElK680NP12Lsx+1DAU/9t4rJPFJeyyo2+x1UJDwhstxjjPI5jkzCNMnLqxMkGdNpgyr37KNZFnpWVzARAfS22WqtZ77PW7DXEu5OYVNZgwMTEgXhh/Sts7E0zYfBhsWDNesEdYAssMA7hi4XULI8kgUkVf5Pjpyo/slUoQLPoEOtGOYCGZ3Gf0KY1cE8rw7+GWEsZL2E5Yu6dOCim30kNvwbwDTGCU1Se/DpM+zM5bi6Ait8rY/DoGF8+BNUcxQuohkzebu1rzfnHpTfCMUs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB2996 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Gavin.Hu@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT041.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)(39860400002)(376002)(136003)(346002)(396003)(13464003)(199004)(189003)(102836004)(486006)(8676002)(3846002)(63350400001)(86362001)(25786009)(126002)(74316002)(446003)(11346002)(53546011)(476003)(436003)(6116002)(26005)(6506007)(186003)(7736002)(305945005)(2906002)(229853002)(99286004)(4326008)(7696005)(336012)(23676004)(2486003)(76176011)(9686003)(22756006)(81156014)(81166006)(66066001)(14454004)(478600001)(6246003)(26826003)(55016002)(8936002)(316002)(47776003)(70586007)(50466002)(52536014)(30864003)(33656002)(110136005)(70206006)(54906003)(356004)(14444005)(5660300002)(76130400001)(21314003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB8PR08MB4009; 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: 11fb1135-5464-468e-215f-08d757096dce NoDisclaimer: True X-Forefront-PRVS: 01986AE76B X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xwahjf4VTMnbmJycdlsJqV69B9tgRFIYNIPzqUOkhnjY+A/4cpcOV6LQ48VpvzpTggQMlgtO3XXWz8ZuoBDXrbhZyKKDxpvthPlHOqdZgF5iAtPSYpfUsFXMXeJqmEDVczutaffhvQkrjy8PQgd9n6yUMWL+J9Q67jG1OINCQgvPzVsxEVDAgDPhgnY6jh7C6MJR8V0Vm9uJrs/fnYWMsPIpKMF0IItWsrbW/Qh2pHKLDo8ZX4vNMM5D9Ff3ZN5nzJHpWEJNqlSS6W/PCNWd97DW2fJpZ8X2GZJa52EqXVwi7NYGLV75meuhqBvl9jXPS9P528qhVa123AKmLFSLyW0y96jtmQ/gup5DIYnKWa0PI1jvC01Y0uB4EyMXSLHRosM3u9O13k4Gq5OIv4F6iAvXyHmF5shNeLqqekZCpI79zQHGxhMfWnhIxgBPhnGd X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2019 16:04:02.9926 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c4e60c7d-8c5f-435f-85aa-08d75709754e 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: DB8PR08MB4009 Subject: Re: [dpdk-dev] [PATCH v8 2/6] eal: add the APIs to wait until equal 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" DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuYW55ZXYsIEtvbnN0YW50 aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE9jdG9i ZXIgMjIsIDIwMTkgNTozNyBQTQ0KPiBUbzogRGF2aWQgTWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5k QHJlZGhhdC5jb20+OyBHYXZpbiBIdSAoQXJtDQo+IFRlY2hub2xvZ3kgQ2hpbmEpIDxHYXZpbi5I dUBhcm0uY29tPg0KPiBDYzogZGV2IDxkZXZAZHBkay5vcmc+OyBuZCA8bmRAYXJtLmNvbT47IHRo b21hc0Btb25qYWxvbi5uZXQ7DQo+IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtw bHVtYmVyLm9yZz47DQo+IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207IGplcmluakBtYXJ2ZWxsLmNv bTsgUGF2YW4gTmlraGlsZXNoDQo+IDxwYmhhZ2F2YXR1bGFAbWFydmVsbC5jb20+OyBIb25uYXBw YSBOYWdhcmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IFJ1aWZlbmcg V2FuZyAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpDQo+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IFBo aWwgWWFuZyAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpDQo+IDxQaGlsLllhbmdAYXJtLmNvbT47IFN0 ZXZlIENhcHBlciA8U3RldmUuQ2FwcGVyQGFybS5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZHBkay1k ZXZdIFtQQVRDSCB2OCAyLzZdIGVhbDogYWRkIHRoZSBBUElzIHRvIHdhaXQgdW50aWwgZXF1YWwN Cj4gDQo+ID4gPiBUaGUgcnRlX3dhaXRfdW50aWxfZXF1YWxfeHggQVBJcyBhYnN0cmFjdCB0aGUg ZnVuY3Rpb25hbGl0eSBvZg0KPiA+ID4gJ3BvbGxpbmcgZm9yIGEgbWVtb3J5IGxvY2F0aW9uIHRv IGJlY29tZSBlcXVhbCB0byBhIGdpdmVuIHZhbHVlJy4NCj4gPiA+DQo+ID4gPiBBZGQgdGhlIFJU RV9BUk1fVVNFX1dGRSBjb25maWd1cmF0aW9uIGVudHJ5IGZvciBhYXJjaDY0LCBkaXNhYmxlZA0K PiA+ID4gYnkgZGVmYXVsdC4gV2hlbiBpdCBpcyBlbmFibGVkLCB0aGUgYWJvdmUgQVBJcyB3aWxs IGNhbGwgV0ZFIGluc3RydWN0aW9uDQo+ID4gPiB0byBzYXZlIENQVSBjeWNsZXMgYW5kIHBvd2Vy Lg0KPiA+ID4NCj4gPiA+IEZyb20gYSBWTSwgd2hlbiBjYWxsaW5nIHRoaXMgQVBJIG9uIGFhcmNo NjQsIGl0IG1heSB0cmFwIGluIGFuZCBvdXQgdG8NCj4gPiA+IHJlbGVhc2UgdkNQVXMgd2hlcmVh cyBjYXVzZSBoaWdoIGV4aXQgbGF0ZW5jeS4gU2luY2Uga2VybmVsIDQuMTguMjAgYW4NCj4gPiA+ IGFkYXB0aXZlIHRyYXBwaW5nIG1lY2hhbmlzbSBpcyBpbnRyb2R1Y2VkIHRvIGJhbGFuY2UgdGhl IGxhdGVuY3kgYW5kDQo+ID4gPiB3b3JrbG9hZC4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBHYXZpbiBIdSA8Z2F2aW4uaHVAYXJtLmNvbT4NCj4gPiA+IFJldmlld2VkLWJ5OiBSdWlmZW5n IFdhbmcgPHJ1aWZlbmcud2FuZ0Bhcm0uY29tPg0KPiA+ID4gUmV2aWV3ZWQtYnk6IFN0ZXZlIENh cHBlciA8c3RldmUuY2FwcGVyQGFybS5jb20+DQo+ID4gPiBSZXZpZXdlZC1ieTogT2xhIExpbGpl ZGFobCA8b2xhLmxpbGplZGFobEBhcm0uY29tPg0KPiA+ID4gUmV2aWV3ZWQtYnk6IEhvbm5hcHBh IE5hZ2FyYWhhbGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBhcm0uY29tPg0KPiA+ID4gUmV2aWV3 ZWQtYnk6IFBoaWwgWWFuZyA8cGhpbC55YW5nQGFybS5jb20+DQo+ID4gPiBBY2tlZC1ieTogUGF2 YW4gTmlraGlsZXNoIDxwYmhhZ2F2YXR1bGFAbWFydmVsbC5jb20+DQo+ID4gPiBBY2tlZC1ieTog SmVyaW4gSmFjb2IgPGplcmluakBtYXJ2ZWxsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIGNvbmZp Zy9hcm0vbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKw0KPiA+ ID4gIGNvbmZpZy9jb21tb25fYmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDUgKysNCj4gPiA+ICAuLi4vY29tbW9uL2luY2x1ZGUvYXJjaC9hcm0vcnRlX3BhdXNlXzY0Lmgg ICAgICAgICB8IDI2ICsrKysrKw0KPiA+ID4gIGxpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRl L2dlbmVyaWMvcnRlX3BhdXNlLmggIHwgOTMNCj4gKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlvbnMoKykNCj4gPiA+DQo+ID4gPiBkaWZm IC0tZ2l0IGEvY29uZmlnL2FybS9tZXNvbi5idWlsZCBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQN Cj4gPiA+IGluZGV4IDk3OTAxOGUuLmI0YjRjYWMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9jb25maWcv YXJtL21lc29uLmJ1aWxkDQo+ID4gPiArKysgYi9jb25maWcvYXJtL21lc29uLmJ1aWxkDQo+ID4g PiBAQCAtMjYsNiArMjYsNyBAQCBmbGFnc19jb21tb25fZGVmYXVsdCA9IFsNCj4gPiA+ICAgICAg ICAgWydSVEVfTElCUlRFX0FWUF9QTUQnLCBmYWxzZV0sDQo+ID4gPg0KPiA+ID4gICAgICAgICBb J1JURV9TQ0hFRF9WRUNUT1InLCBmYWxzZV0sDQo+ID4gPiArICAgICAgIFsnUlRFX0FSTV9VU0Vf V0ZFJywgZmFsc2VdLA0KPiA+ID4gIF0NCj4gPiA+DQo+ID4gPiAgZmxhZ3NfZ2VuZXJpYyA9IFsN Cj4gPiA+IGRpZmYgLS1naXQgYS9jb25maWcvY29tbW9uX2Jhc2UgYi9jb25maWcvY29tbW9uX2Jh c2UNCj4gPiA+IGluZGV4IGU4NDNhMjEuLmM4MTIxNTYgMTAwNjQ0DQo+ID4gPiAtLS0gYS9jb25m aWcvY29tbW9uX2Jhc2UNCj4gPiA+ICsrKyBiL2NvbmZpZy9jb21tb25fYmFzZQ0KPiA+ID4gQEAg LTExMSw2ICsxMTEsMTEgQEAgQ09ORklHX1JURV9NQVhfVkZJT19DT05UQUlORVJTPTY0DQo+ID4g PiAgQ09ORklHX1JURV9NQUxMT0NfREVCVUc9bg0KPiA+ID4gIENPTkZJR19SVEVfRUFMX05VTUFf QVdBUkVfSFVHRVBBR0VTPW4NCj4gPiA+ICBDT05GSUdfUlRFX1VTRV9MSUJCU0Q9bg0KPiA+ID4g KyMgVXNlIFdGRSBpbnN0cnVjdGlvbnMgdG8gaW1wbGVtZW50IHRoZSBydGVfd2FpdF9mb3JfZXF1 YWxfeHh4IEFQSXMsDQo+ID4gPiArIyBjYWxsaW5nIHRoZXNlIEFQSXMgcHV0IHRoZSBjb3JlcyBp biBsb3cgcG93ZXIgc3RhdGUgd2hpbGUgd2FpdGluZw0KPiA+ID4gKyMgZm9yIHRoZSBtZW1vcnkg YWRkcmVzcyB0byBiZWNvbWUgZXF1YWwgdG8gdGhlIGV4cGVjdGVkIHZhbHVlLg0KPiA+ID4gKyMg VGhpcyBpcyBzdXBwb3J0ZWQgb25seSBieSBhYXJjaDY0Lg0KPiA+ID4gK0NPTkZJR19SVEVfQVJN X1VTRV9XRkU9bg0KPiA+ID4NCj4gPiA+ICAjDQo+ID4gPiAgIyBSZWNvZ25pemUvaWdub3JlIHRo ZSBBVlgvQVZYNTEyIENQVSBmbGFncyBmb3IgcGVyZm9ybWFuY2UvcG93ZXINCj4gdGVzdGluZy4N Cj4gPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL2Fy bS9ydGVfcGF1c2VfNjQuaA0KPiBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gv YXJtL3J0ZV9wYXVzZV82NC5oDQo+ID4gPiBpbmRleCA5Mzg5NWQzLi5lYjhmNzNlIDEwMDY0NA0K PiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvYXJjaC9hcm0vcnRlX3Bh dXNlXzY0LmgNCj4gPiA+ICsrKyBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gv YXJtL3J0ZV9wYXVzZV82NC5oDQo+ID4gPiBAQCAtMSw1ICsxLDYgQEANCj4gPiA+ICAvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ID4gPiAgICogQ29weXJpZ2h0KGMp IDIwMTcgQ2F2aXVtLCBJbmMNCj4gPiA+ICsgKiBDb3B5cmlnaHQoYykgMjAxOSBBcm0gTGltaXRl ZA0KPiA+ID4gICAqLw0KPiA+DQo+ID4gQmVmb3JlIGluY2x1ZGluZyBnZW5lcmljL3J0ZV9wYXVz ZS5oLCBwdXQgYSBjaGVjayBsaWtlOg0KPiA+DQo+ID4gI2lmZGVmIFJURV9BUk1fVVNFX1dGRQ0K PiA+ICNkZWZpbmUgUlRFX0FSQ0hfSEFTX1dGRQ0KPiA+ICNlbmRpZg0KPiA+DQo+ID4gI2luY2x1 ZGUgImdlbmVyaWMvcnRlX3BhdXNlLmgiDQo+ID4NCj4gPiA+DQo+ID4gPiAgI2lmbmRlZiBfUlRF X1BBVVNFX0FSTTY0X0hfDQo+ID4gPiBAQCAtMTcsNiArMTgsMzEgQEAgc3RhdGljIGlubGluZSB2 b2lkIHJ0ZV9wYXVzZSh2b2lkKQ0KPiA+ID4gICAgICAgICBhc20gdm9sYXRpbGUoInlpZWxkIiA6 OjogIm1lbW9yeSIpOw0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiArI2lmZGVmIFJURV9BUk1fVVNF X1dGRQ0KPiA+ID4gKyNkZWZpbmUgc2V2KCkgIHsgYXNtIHZvbGF0aWxlKCJzZXYiIDogOiA6ICJt ZW1vcnkiKSB9DQo+ID4gPiArI2RlZmluZSB3ZmUoKSAgeyBhc20gdm9sYXRpbGUoIndmZSIgOiA6 IDogIm1lbW9yeSIpIH0NCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIF9fV0FJVF9VTlRJTF9FUVVB TCh0eXBlLCBzaXplLCBhZGRyLCBleHBlY3RlZCwgbWVtb3JkZXIpIFwNCj4gPiA+ICtfX3J0ZV9l eHBlcmltZW50YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ID4NCj4gPiBUaGUgZXhwZXJpbWVudGFsIHRhZyBpcyB1bm5lY2Vzc2FyeSBoZXJlLg0KPiA+ IFdlIG9ubHkgbmVlZCBpdCBpbiB0aGUgZnVuY3Rpb24gcHJvdG90eXBlIChpbiB0aGUgZ2VuZXJp YyBoZWFkZXIpLg0KPiA+DQo+ID4gPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiArcnRlX3dhaXRf dW50aWxfZXF1YWxfIyNzaXplKHZvbGF0aWxlIHR5cGUgKiBhZGRyLCB0eXBlIGV4cGVjdGVkLFwN Cj4gPiA+ICtpbnQgbWVtb3JkZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4gPiAreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gKyAgICAgICBpZiAoX19hdG9t aWNfbG9hZF9uKGFkZHIsIG1lbW9yZGVyKSAhPSBleHBlY3RlZCkgeyAgICAgIFwNCj4gPiA+ICsg ICAgICAgICAgICAgICBzZXYoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCj4gPiA+ICsgICAgICAgICAgICAgICBkbyB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIHdmZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCj4gPiA+ICsgICAgICAgICAgICAgICB9IHdoaWxlIChfX2F0b21pY19sb2FkX24oYWRk ciwgbWVtb3JkZXIpICE9IGV4cGVjdGVkKTsgIFwNCj4gPiA+ICsgICAgICAgIH0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g PiA+ICt9DQo+ID4gPiArX19XQUlUX1VOVElMX0VRVUFMKHVpbnQxNl90LCAxNiwgYWRkciwgZXhw ZWN0ZWQsIG1lbW9yZGVyKQ0KPiA+ID4gK19fV0FJVF9VTlRJTF9FUVVBTCh1aW50MzJfdCwgMzIs IGFkZHIsIGV4cGVjdGVkLCBtZW1vcmRlcikNCj4gPiA+ICtfX1dBSVRfVU5USUxfRVFVQUwodWlu dDY0X3QsIDY0LCBhZGRyLCBleHBlY3RlZCwgbWVtb3JkZXIpDQo+ID4gPiArDQo+ID4gPiArI3Vu ZGVmIF9fV0FJVF9VTlRJTF9FUVVBTA0KPiANCj4gTWlnaHQgYmUgaW5zdGVhZCBvZiBkZWZpbmlu Zy91bmRlZmluaW5nIHRoZXNlIG1hY3JvcywganVzdA0KPiBkZWZpbmUgZXhwbGljaXRseSB0aGVz ZSAzIGZ1bmN0aW9ucz8NCj4gTm93IHRoZXkgYXJlIHJlYWxseSBzbWFsbCwgc28gSSB0aGluayBp dCB3b3VsZCBiZSBhbiBlYXNpZXIvY2xlYW5lciB3YXkuDQo+IFllcywgYSBiaXQgb2YgY29kZSBk dXBsaWNhdGlvbiwgYnV0IGFzIEkgc2FpZCB0aGV5IGFyZSByZWFsbHkgc21hbGwgbm93Lg0KPiBT YW1lIHRob3VnaHQgYWJvdXQgZ2VuZXJpYyB2ZXJzaW9uLg0KT2ssIG5vIHByb2JsZW0sIGFuIGFs dGVybmF0aXZlIHdheSB0byByZWR1Y2UgZHVwbGljYXRpb24gaXMgdG8gdXNlIF9HZW5lcmljKCBz aW5jZSBnY2MtNC45KS4gDQpBcyB5b3Ugc2FpZCwgbm93IGl0IGlzIHNtYWxsLCBJIHdpbGwgdGFr ZSB5b3VyIHN1Z2dlc3Rpb24uDQo+ID4NCj4gPiBNaXNzaW5nICN1bmRlZiBvbiBzZXYgYW5kIHdm ZSBtYWNyb3MuDQo+IA0KPiBBY3R1YWxseSBzaG91bGQgd2UgdW5kZWZpbmUgdGhlbT8NCj4gT3Ig c2hvdWxkIHdlIGFkZCBydGVfIHByZWZpeCAod2hpY2ggaXMgbmVlZGVkIGFueXdheSBJIHN1cHBv c2UpDQo+IGFuZCBoYXZlIHRoZW0gYWx3YXlzIGRlZmluZWQ/DQo+IE1pZ2h0IGJlIHlvdSBjYW4g cmV1c2UgdGhlbSBpbiBvdGhlciBhcm0gc3BlY2lmaWMgcGxhY2VzIHRvbyAoc3BpbmxvY2ssDQo+ IHJ3bG9jaywgZXRjLikNCj4gQWN0dWFsbHkgcHJvYmFibHkgaXQgaXMgcG9zc2libGUgdG8gbWFr ZSB0aGVtIGVpdGhlciBlbWl0aW5nIGEgcHJvcGVyDQo+IGluc3RydWN0aW9ucyBvciBOT1AsDQo+ IHRoZW4geW91J2xsIG5lZWQgUlRFX0FSTV9VU0VfV0ZFIG9ubHkgYXJvdW5kIHRoZXNlIG1hY3Jv cy4NCj4gDQo+IEkuRQ0KPiANCj4gI2lmZGVmIFJURV9BUk1fVVNFX1dGRQ0KPiAjZGVmaW5lIHJ0 ZV9zZXYoKSAgeyBhc20gdm9sYXRpbGUoInNldiIgOiA6IDogIm1lbW9yeSIpIH0NCj4gI2RlZmlu ZSBydGVfd2ZlKCkgIHsgYXNtIHZvbGF0aWxlKCJ3ZmUiIDogOiA6ICJtZW1vcnkiKSB9DQo+ICNl bHNlDQo+IHN0YXRpYyBpbmxpbmUgdm9pZCBydGVfc2V2KHZvaWQpDQo+IHsNCj4gfQ0KPiBzdGF0 aWMgaW5saW5lIHZvaWQgcnRlX3dmZSh2b2lkKQ0KPiB7DQo+IAlydGVfcGF1c2UoKTsNCj4gfQ0K PiAjZW5kaWYNCj4gDQo+IEFuZCB0aGVuIGp1c3Qgb25lIGNvbW1vbiB2ZXJzaW9uIG9mIF93YWl0 XyBmdW5jdGlvczoNCkdvb2Qgc3VnZ2VzdGlvbiwgd2lsbCBmaXggaW4gdjkuDQo+IA0KPiBzdGF0 aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCj4gcnRlX3dhaXRfdW50aWxfZXF1YWxfMzIodm9sYXRpbGUgdHlwZSAqIGFk ZHIsIHR5cGUgZXhwZWN0ZWQsIGludCBtZW1vcmRlcikNCj4geyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAJaWYgKF9fYXRv bWljX2xvYWRfbihhZGRyLCBtZW1vcmRlcikgIT0gZXhwZWN0ZWQpIHsNCj4gCQlydGVfc2V2KCk7 DQo+IAkJZG8gew0KPiAJICAgICAgICAgICAgICAgICAgICAgICBydGVfd2ZlKCk7DQo+IAkgICAg ICAgICAgICAgIH0gd2hpbGUgKF9fYXRvbWljX2xvYWRfbihhZGRyLCBtZW1vcmRlcikgIT0gZXhw ZWN0ZWQpOw0KPiAJICB9DQo+IH0NCj4gDQo+IA0KPiA+DQo+ID4NCj4gPiA+ICsNCj4gPiA+ICsj ZW5kaWYgLyogUlRFX0FSTV9VU0VfV0ZFICovDQo+ID4gPiArDQo+ID4gPiAgI2lmZGVmIF9fY3Bs dXNwbHVzDQo+ID4gPiAgfQ0KPiA+ID4gICNlbmRpZg0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9s aWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNlLmgNCj4gYi9saWIvbGli cnRlX2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4gPiBpbmRleCA1 MmJkNGRiLi44MDU5N2E5IDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaA0KPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9lYWwv Y29tbW9uL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaA0KPiA+ID4gQEAgLTEsNSArMSw2IEBA DQo+ID4gPiAgLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiA+ID4g ICAqIENvcHlyaWdodChjKSAyMDE3IENhdml1bSwgSW5jDQo+ID4gPiArICogQ29weXJpZ2h0KGMp IDIwMTkgQXJtIExpbWl0ZWQNCj4gPiA+ICAgKi8NCj4gPiA+DQo+ID4gPiAgI2lmbmRlZiBfUlRF X1BBVVNFX0hfDQo+ID4gPiBAQCAtMTIsNiArMTMsMTEgQEANCj4gPiA+ICAgKg0KPiA+ID4gICAq Lw0KPiA+ID4NCj4gPiA+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gPiArI2luY2x1ZGUgPHJ0 ZV9jb21tb24uaD4NCj4gPiA+ICsjaW5jbHVkZSA8cnRlX2F0b21pYy5oPg0KPiA+ID4gKyNpbmNs dWRlIDxydGVfY29tcGF0Lmg+DQo+ID4gPiArDQo+ID4gPiAgLyoqDQo+ID4gPiAgICogUGF1c2Ug Q1BVIGV4ZWN1dGlvbiBmb3IgYSBzaG9ydCB3aGlsZQ0KPiA+ID4gICAqDQo+ID4gPiBAQCAtMjAs NCArMjYsOTEgQEANCj4gPiA+ICAgKi8NCj4gPiA+ICBzdGF0aWMgaW5saW5lIHZvaWQgcnRlX3Bh dXNlKHZvaWQpOw0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+ICsgKiBAd2FybmluZw0KPiA+ID4g KyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSwgb3IgYmUgcmVtb3ZlZCwg d2l0aG91dA0KPiBwcmlvciBub3RpY2UNCj4gPiA+ICsgKg0KPiA+ID4gKyAqIFdhaXQgZm9yICph ZGRyIHRvIGJlIHVwZGF0ZWQgd2l0aCBhIDE2LWJpdCBleHBlY3RlZCB2YWx1ZSwgd2l0aCBhDQo+ IHJlbGF4ZWQNCj4gPiA+ICsgKiBtZW1vcnkgb3JkZXJpbmcgbW9kZWwgbWVhbmluZyB0aGUgbG9h ZHMgYXJvdW5kIHRoaXMgQVBJIGNhbiBiZQ0KPiByZW9yZGVyZWQuDQo+ID4gPiArICoNCj4gPiA+ ICsgKiBAcGFyYW0gYWRkcg0KPiA+ID4gKyAqICBBIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBsb2Nh dGlvbi4NCj4gPiA+ICsgKiBAcGFyYW0gZXhwZWN0ZWQNCj4gPiA+ICsgKiAgQSAxNi1iaXQgZXhw ZWN0ZWQgdmFsdWUgdG8gYmUgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbi4NCj4gPiA+ICsgKiBAcGFy YW0gbWVtb3JkZXINCj4gPiA+ICsgKiAgVHdvIGRpZmZlcmVudCBtZW1vcnkgb3JkZXJzIHRoYXQg Y2FuIGJlIHNwZWNpZmllZDoNCj4gPiA+ICsgKiAgX19BVE9NSUNfQUNRVUlSRSBhbmQgX19BVE9N SUNfUkVMQVhFRC4gVGhlc2UgbWFwIHRvDQo+ID4gPiArICogIEMrKzExIG1lbW9yeSBvcmRlcnMg d2l0aCB0aGUgc2FtZSBuYW1lcywgc2VlIHRoZSBDKysxMSBzdGFuZGFyZA0KPiBvcg0KPiA+ID4g KyAqICB0aGUgR0NDIHdpa2kgb24gYXRvbWljIHN5bmNocm9uaXphdGlvbiBmb3IgZGV0YWlsZWQg ZGVmaW5pdGlvbi4NCj4gPiA+ICsgKi8NCj4gPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiA+ ICtzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ID4gPiArcnRlX3dhaXRfdW50aWxf ZXF1YWxfMTYodm9sYXRpbGUgdWludDE2X3QgKmFkZHIsIHVpbnQxNl90IGV4cGVjdGVkLA0KPiA+ ID4gK2ludCBtZW1vcmRlcik7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICogQHdhcm5p bmcNCj4gPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2UsIG9yIGJl IHJlbW92ZWQsIHdpdGhvdXQNCj4gcHJpb3Igbm90aWNlDQo+ID4gPiArICoNCj4gPiA+ICsgKiBX YWl0IGZvciAqYWRkciB0byBiZSB1cGRhdGVkIHdpdGggYSAzMi1iaXQgZXhwZWN0ZWQgdmFsdWUs IHdpdGggYQ0KPiByZWxheGVkDQo+ID4gPiArICogbWVtb3J5IG9yZGVyaW5nIG1vZGVsIG1lYW5p bmcgdGhlIGxvYWRzIGFyb3VuZCB0aGlzIEFQSSBjYW4gYmUNCj4gcmVvcmRlcmVkLg0KPiA+ID4g KyAqDQo+ID4gPiArICogQHBhcmFtIGFkZHINCj4gPiA+ICsgKiAgQSBwb2ludGVyIHRvIHRoZSBt ZW1vcnkgbG9jYXRpb24uDQo+ID4gPiArICogQHBhcmFtIGV4cGVjdGVkDQo+ID4gPiArICogIEEg MzItYml0IGV4cGVjdGVkIHZhbHVlIHRvIGJlIGluIHRoZSBtZW1vcnkgbG9jYXRpb24uDQo+ID4g PiArICogQHBhcmFtIG1lbW9yZGVyDQo+ID4gPiArICogIFR3byBkaWZmZXJlbnQgbWVtb3J5IG9y ZGVycyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQ6DQo+ID4gPiArICogIF9fQVRPTUlDX0FDUVVJUkUg YW5kIF9fQVRPTUlDX1JFTEFYRUQuIFRoZXNlIG1hcCB0bw0KPiA+ID4gKyAqICBDKysxMSBtZW1v cnkgb3JkZXJzIHdpdGggdGhlIHNhbWUgbmFtZXMsIHNlZSB0aGUgQysrMTEgc3RhbmRhcmQNCj4g b3INCj4gPiA+ICsgKiAgdGhlIEdDQyB3aWtpIG9uIGF0b21pYyBzeW5jaHJvbml6YXRpb24gZm9y IGRldGFpbGVkIGRlZmluaXRpb24uDQo+ID4gPiArICovDQo+ID4gPiArX19ydGVfZXhwZXJpbWVu dGFsDQo+ID4gPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiA+ID4gK3J0ZV93 YWl0X3VudGlsX2VxdWFsXzMyKHZvbGF0aWxlIHVpbnQzMl90ICphZGRyLCB1aW50MzJfdCBleHBl Y3RlZCwNCj4gPiA+ICtpbnQgbWVtb3JkZXIpOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4g KyAqIEB3YXJuaW5nDQo+ID4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hh bmdlLCBvciBiZSByZW1vdmVkLCB3aXRob3V0DQo+IHByaW9yIG5vdGljZQ0KPiA+ID4gKyAqDQo+ ID4gPiArICogV2FpdCBmb3IgKmFkZHIgdG8gYmUgdXBkYXRlZCB3aXRoIGEgNjQtYml0IGV4cGVj dGVkIHZhbHVlLCB3aXRoIGENCj4gcmVsYXhlZA0KPiA+ID4gKyAqIG1lbW9yeSBvcmRlcmluZyBt b2RlbCBtZWFuaW5nIHRoZSBsb2FkcyBhcm91bmQgdGhpcyBBUEkgY2FuIGJlDQo+IHJlb3JkZXJl ZC4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEBwYXJhbSBhZGRyDQo+ID4gPiArICogIEEgcG9pbnRl ciB0byB0aGUgbWVtb3J5IGxvY2F0aW9uLg0KPiA+ID4gKyAqIEBwYXJhbSBleHBlY3RlZA0KPiA+ ID4gKyAqICBBIDY0LWJpdCBleHBlY3RlZCB2YWx1ZSB0byBiZSBpbiB0aGUgbWVtb3J5IGxvY2F0 aW9uLg0KPiA+ID4gKyAqIEBwYXJhbSBtZW1vcmRlcg0KPiA+ID4gKyAqICBUd28gZGlmZmVyZW50 IG1lbW9yeSBvcmRlcnMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkOg0KPiA+ID4gKyAqICBfX0FUT01J Q19BQ1FVSVJFIGFuZCBfX0FUT01JQ19SRUxBWEVELiBUaGVzZSBtYXAgdG8NCj4gPiA+ICsgKiAg QysrMTEgbWVtb3J5IG9yZGVycyB3aXRoIHRoZSBzYW1lIG5hbWVzLCBzZWUgdGhlIEMrKzExIHN0 YW5kYXJkDQo+IG9yDQo+ID4gPiArICogIHRoZSBHQ0Mgd2lraSBvbiBhdG9taWMgc3luY2hyb25p emF0aW9uIGZvciBkZXRhaWxlZCBkZWZpbml0aW9uLg0KPiA+ID4gKyAqLw0KPiA+ID4gK19fcnRl X2V4cGVyaW1lbnRhbA0KPiA+ID4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4g PiA+ICtydGVfd2FpdF91bnRpbF9lcXVhbF82NCh2b2xhdGlsZSB1aW50NjRfdCAqYWRkciwgdWlu dDY0X3QgZXhwZWN0ZWQsDQo+ID4gPiAraW50IG1lbW9yZGVyKTsNCj4gPiA+ICsNCj4gPg0KPiA+ IEhlcmUsIGNoYW5nZSB0aGlzIGNoZWNrIHRvOg0KPiA+DQo+ID4gI2lmbmRlZiBSVEVfQVJDSF9I QVNfV0ZFDQo+ID4NCj4gPg0KPiA+ID4gKyNpZm5kZWYgUlRFX0FSTV9VU0VfV0ZFDQo+IA0KPiBN aWdodCBiZSBzb21ldGhpbmcgYXJjaCBuZXV0cmFsIGluIG5hbWUgaGVyZT8NCj4gUlRFX1dBSVRf VU5USUxfRVFVQUxfQVJDSF9ERUZJTkVEIG9yIHNvPw0KPiANCj4gPiA+ICsjZGVmaW5lIF9fV0FJ VF9VTlRJTF9FUVVBTCh0eXBlLCBzaXplLCBhZGRyLCBleHBlY3RlZCwgbWVtb3JkZXIpIFwNCj4g PiA+ICtfX3J0ZV9leHBlcmltZW50YWwgXA0KPiA+ID4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5s aW5lIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4g K3J0ZV93YWl0X3VudGlsX2VxdWFsXyMjc2l6ZSh2b2xhdGlsZSB0eXBlICogYWRkciwgdHlwZSBl eHBlY3RlZCxcDQo+ID4gPiAraW50IG1lbW9yZGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gK3sgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsgICAgICAg aWYgKF9fYXRvbWljX2xvYWRfbihhZGRyLCBtZW1vcmRlcikgIT0gZXhwZWN0ZWQpIHsgICAgICBc DQo+ID4gPiArICAgICAgICAgICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBy dGVfcGF1c2UoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiAr ICAgICAgICAgICAgICAgfSB3aGlsZSAoX19hdG9taWNfbG9hZF9uKGFkZHIsIG1lbW9yZGVyKSAh PSBleHBlY3RlZCk7ICBcDQo+ID4gPiArICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiArfQ0KPiA+ID4g K19fV0FJVF9VTlRJTF9FUVVBTCh1aW50MTZfdCwgMTYsIGFkZHIsIGV4cGVjdGVkLCBtZW1vcmRl cikNCj4gPiA+ICtfX1dBSVRfVU5USUxfRVFVQUwodWludDMyX3QsIDMyLCBhZGRyLCBleHBlY3Rl ZCwgbWVtb3JkZXIpDQo+ID4gPiArX19XQUlUX1VOVElMX0VRVUFMKHVpbnQ2NF90LCA2NCwgYWRk ciwgZXhwZWN0ZWQsIG1lbW9yZGVyKQ0KPiA+ID4gKw0KPiA+ID4gKyN1bmRlZiBfX1dBSVRfVU5U SUxfRVFVQUwNCj4gPiA+ICsNCj4gPiA+ICsjZW5kaWYgLyogUlRFX0FSTV9VU0VfV0ZFICovDQo+ ID4gPiArDQo+ID4gPiAgI2VuZGlmIC8qIF9SVEVfUEFVU0VfSF8gKi8NCj4gPiA+IC0tDQo+ID4g PiAyLjcuNA0KPiA+ID4NCj4gPg0KPiA+IFRoYW5rcy4NCj4gPg0KPiA+IC0tDQo+ID4gRGF2aWQg TWFyY2hhbmQNCg0K