From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3FCE9C433FE for ; Wed, 13 Apr 2022 18:15:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234077AbiDMSR2 (ORCPT ); Wed, 13 Apr 2022 14:17:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237631AbiDMSRX (ORCPT ); Wed, 13 Apr 2022 14:17:23 -0400 Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BD9C4C7A5 for ; Wed, 13 Apr 2022 11:15:01 -0700 (PDT) Received: from pps.filterd (m0148460.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 23DHTIFJ003820 for ; Wed, 13 Apr 2022 11:15:00 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=PiYkgeJlrmwNv7zfzxqSW7wW+PVrbiU/WufSyi9SgH0=; b=ME9oeni+u+tQULTa+DJMamfeSMO1G8ZWKMHT0ADTtzL64/C7gmuYOuv3D6RzGOlW8HiX Lz6kl4P6wlQonNsRu1p96pbqyjDN4f9M7411tQ/hNRLd2ji/9nvK0iRiZXht4YOUBFyN hDvTuRbpc4B7Iul0yiWWrZtGlM5JoaON+As= Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2103.outbound.protection.outlook.com [104.47.58.103]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3fda5fspjm-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 13 Apr 2022 11:15:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KrxXKBQhRH5acUCphM8yQJRPMPwFquPoJr4Gqiu73SxgIuYSaTQkZdhunx68ddJc9UpUwRB6Y322qYMEqKutbfFGR21Vf7azhBZc10xsoqghYFPP8i/duNRlS+Gj8BF8w+QhEYuiXByWLGUVFiXTFyr5vu88U1FHcfJsWL+4M7sJWptYNBnfZ8Z7sX5DBGk8lFUaiYjmA5pr05G+2DrZPO1maPtweNddWDNFnr4Tpmp3hhpsOimMCPUedu/y1lZqp+4ADIjSloOJObIfscAwXlzQgXeK9rvegLMiLdmu9P89ZnAaw4ReSTWRYKYC/F42XlJaw+PyV6a/CJU3rBUtxA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PiYkgeJlrmwNv7zfzxqSW7wW+PVrbiU/WufSyi9SgH0=; b=DEsQFA6E6SbFTng3oGevbj2BetFCZdNIAfMFjirzZMO6acatH6wtE7YILrZ8MTx51aEkkbt8fSAJ3qby+gNPFxuec9ekgUF+S2hyvdyhJO2bO4mHH+yPQRsbKwYjUqUUqAEU15dBPkxhbbcXDzBTF4jjQ5Fc6xtWuSQVf57jkM1oW15vrFGLYkkKntBwyXj/M5VUJoyewF37CSfZz8hnkdSTNU7EYDBGLw6mSLugw/NX96aJQn+uSL8lKu+C0vzutBSj3RstehbH1lsKp3MGikij4nlb/WuphEcf3kLZbznY5NPKGtIGd/mWsAWBb/VUmaQuhUO+4cK97trlRhjqZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none Received: from BY5PR15MB3651.namprd15.prod.outlook.com (2603:10b6:a03:1f7::15) by CY4PR15MB1240.namprd15.prod.outlook.com (2603:10b6:903:110::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18; Wed, 13 Apr 2022 18:14:57 +0000 Received: from BY5PR15MB3651.namprd15.prod.outlook.com ([fe80::20d5:ab50:fdf7:2a9a]) by BY5PR15MB3651.namprd15.prod.outlook.com ([fe80::20d5:ab50:fdf7:2a9a%6]) with mapi id 15.20.5144.030; Wed, 13 Apr 2022 18:14:57 +0000 From: Kui-Feng Lee To: "andrii.nakryiko@gmail.com" CC: "daniel@iogearbox.net" , Kernel Team , "ast@kernel.org" , "andrii@kernel.org" , "bpf@vger.kernel.org" Subject: Re: [PATCH bpf-next v5 3/5] bpf, x86: Attach a cookie to fentry/fexit/fmod_ret. Thread-Topic: [PATCH bpf-next v5 3/5] bpf, x86: Attach a cookie to fentry/fexit/fmod_ret. Thread-Index: AQHYTo5O6+eH4OgLdEy25ivrBzXTDKztKRWAgAD+kAA= Date: Wed, 13 Apr 2022 18:14:57 +0000 Message-ID: <72893d27d08d6b517905bcbc6160a22243c0d70b.camel@fb.com> References: <20220412165555.4146407-1-kuifeng@fb.com> <20220412165555.4146407-4-kuifeng@fb.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: edf68e7d-4fe3-4032-4c1c-08da1d79843b x-ms-traffictypediagnostic: CY4PR15MB1240:EE_ x-microsoft-antispam-prvs: x-fb-source: Internal x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8mNdHGgCttsZphQZW+nmJYG3FB8TbOuUNTwHVTIB83jwg3wzBT3Ewqq58pTvUiDnbLm18nVcCR+Z45EkSqDP+hjlEUOIMTxJRFCbEHjUVY4eS0t5B0/5Yj90Wz8fSbPTPa3i8OX+Wx4bg/tKyF+KyK8ZbA2KYCsUTnoKRsl55+qDE+Ac3uzDpg7OYEjLz/qfFUF8hkJElYk4RIxgnM/QRDk/RYzoOKfm04TtBq+KhA+DnmM3uTt/wBULCVg8utF51R9vh5cnXY82m63ckTDPRym5dL1JejutFpBTJfmFKfTDMrYCCjJAqoP5g6HmiushtmNQe0XUA8xO5fa/pJtVxXbT/HpIaq2GXfI6e/M+djWrR1ua+p145ocjV0TBQfNEzu159UR7J4PG4liMwtTubCneoV9J1ZtCIoXUGzK8iSU++Fn9epC2cK56IWhYDSBXLVl2AsB6s6P1NQ2yYnB/q2RIKhk6B0UKoBTvZMMDwGW22HTiS2M+jtxd9PUJztkBpzwZEtL7kz+1hrZuIYTqUu2HQlSD10lpntds3Y0ClRpXVzcDEbEYCv+lLEpz55N2HH2sj4MpLKZRpC4nsVL/Oo+U3dwbB1tMM0tpeVFDaF6ME2pY5ZdrfOzRxv6nJbNKUNwXDi+RLDyrxVegmh+EZZ7AjDzwc2OyTsDiYop+Na+q/kp03nUvGLlMJ0w4ci+7kWsEusSOhn9ue74AqyGUroPWCjEgExyQIwi54Cg+ec1Fgha+8DFrb591wcxhj6Lv3p7QyOyv5dcO8RcYtCapS6I1N6C4qyl8KLP006wBaZs= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR15MB3651.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(53546011)(66946007)(76116006)(86362001)(5660300002)(966005)(38070700005)(6486002)(508600001)(6512007)(122000001)(71200400001)(6506007)(8936002)(4326008)(66476007)(38100700002)(64756008)(66446008)(8676002)(66556008)(316002)(36756003)(6916009)(54906003)(186003)(2616005)(83380400001)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V0U1Y2VHZ3NOTVZmcXlQNEtuQ0Q1emZlM3h5N3IzMXZ1aU1LUURsR2FUcC9M?= =?utf-8?B?RGYzVGY5TjdhMHY3QnZxbTNEOFFNNDRpZ2lYMFFOT09EeWFrV0Q4WW9RczEx?= =?utf-8?B?UnZoOTRVblRjTnRtQ0I4bDh3OVhyV2pnTGdEUStEZnZ4Y0N2bkNoYTlLcDJm?= =?utf-8?B?RkxhbERTelNzb25UT1RRaElnVUJKZmhNakZWZHIyNXk5cmNaVGc4NnhJTkFl?= =?utf-8?B?dUNlQmliTERoY1k2aGVhbE5Zd2ZVdk44YVVsM2ZCdkI5SW9IWGIybTRBN1Fz?= =?utf-8?B?WEFVK3pQdnlXUkZoRklKL2pjM1RiamxCQ09vQnROajBqQTVCMVZBZnpkaDhs?= =?utf-8?B?VkQrQ3kyQUdYSTh6M1cxcCs0QlJmNTlqUGp2WTdZOTRjdGhjS05LWUl3MmdF?= =?utf-8?B?RkxjNGx2aHNiUlQrQUdXRWplMzhjWGV1U3hOd3Rpb2o3TVFjUllSSkFUQ1Nj?= =?utf-8?B?R2loWjB4eDNvSUl6UE42L2lIcFNXZXBNQUZCcW1OZ0RPWXFJRlpQT2I4ZU92?= =?utf-8?B?Q2Ezclo1anNyTU9kaWh2bEljdVVsWFduejdUcHltbHZrZjZHZHFLc1hIUzQw?= =?utf-8?B?aGwvNE1oeW9TTUYwVDFDOFpRdEtGTHdKbURuM01yK0JoZWF5VEhIZERBcFF3?= =?utf-8?B?Zi9XYkpSRStnLzhwcGhsTTlwc0pFb2NwRmVCcm9tTkliMTRqQ2lzR2ZJYWtu?= =?utf-8?B?a2Q2OWdoVzBSbW5VdmxEelNKYkZBRTQ2OUx1b2RXYXhqRUZoaWxycXE5Qldj?= =?utf-8?B?Z25Rd2hsdEUvbmdqQ3RDbnhPZmprMyt3d3cvanNTeklIS2tYRW9EdTBCNWMy?= =?utf-8?B?UVZEZ3RkRXZuemYwMHNHVVhMMGlOY2xtTWlvVGJpZThLYlJuNVNQelJ6ZEJj?= =?utf-8?B?dndYREJ0YldlSFdQc0lpaWROemFydXlYcjNkTmdza3pDTXYrd241MUxkciti?= =?utf-8?B?dzJ2ZnZjbE02d3NsRmZ0NHd0eHBDbExYbjhJMnRKd2VQMEJscFZzaSs0d25P?= =?utf-8?B?QXRxZ3h6aVFKUE8rbjQxeU4rdnA2VEhCQ0ZLYjlFR1ozN3QyTElWQmpoVzUw?= =?utf-8?B?bkNFVkRmMGRTTkV0V0J2ekhLUTg2Z2NhZXdBdFd2S2hXUkd2NHZJRjBHVHRI?= =?utf-8?B?QU8yR3dreHh5YllIMHVsdUJ1c1VRZ1BiMmdLNmJaSE9ydmR5eXJ5Q3BiYTk3?= =?utf-8?B?UkRmcFpDdU1qbzZUcXRoWHZLcXZQalBjbmpZdWZyV3MzQ3loMm5QZ2JGZ28x?= =?utf-8?B?QWpZNVh3VkkrMERFSE81SmoyNVVGcmwvVmF6ckMzdFFlTTJCR0EyK2djMVdH?= =?utf-8?B?MU4rRzE4RXYzT0V3VUl5Qy94VmwzUDgxbFh2YXdJRngwTzI5TFBkdkRGZXF6?= =?utf-8?B?eHZFVFIwOVk5VEZDK0NOVlNPOWhPR2JzUE1FcjA2c2xac2JKOFFKemJSMUZ2?= =?utf-8?B?SCtyREhnVWJqeksrN2dubitTRHlwNms2SVl6VkpIV25CWmVEb3ZqRHlIUTkr?= =?utf-8?B?Rll6Q2ZDaVNoKzRicktBWE0xQ1NJejBvcnlaN2lUQjRLbDZuQkRVeGtFWkQ2?= =?utf-8?B?NFduTS9SK3FUTFJ4WUltdi9Ldm5ydEw5c2hCYWF0Ukc3dmoyS1BLWHpyVmNp?= =?utf-8?B?cHVWWnkrd3VXRmtoekJTMk5UMmZhT2tLZWk4cUlRdGZvNTZhWUcxaWRxSzAx?= =?utf-8?B?MGp1U2JOOTc0cjlGdFBWNzI1ZjhESXk2Wmg2c2RNRDBudjJ2ODdlVlRzczUw?= =?utf-8?B?NXBlc2ZMK3RCMFUxWjl3Mm9Tb3pVRHR4ZnRPRkYrNXZubERER01hejdLanQx?= =?utf-8?B?L0JteXY4emtzS2EzMXF2K0xQUk44cHFtNnFhRG8zK0JBeS9BaGFaNHI1MXRU?= =?utf-8?B?bHBtOUhSNGYveiswd3FBejVOamJycTh2Tm5aSDIzVWM2d3ZZR2NPazdscGtV?= =?utf-8?B?dVIyL3JUREhWWG4wK29BQm01dUpnTytvM1RGbkhWNy9tNFRzN3haR2tyWjBF?= =?utf-8?B?aXBJTUVXZFp4SzZVckVuMnlDL3E3amhwbGNpWE00RW9ud1BWNzFmWElSWS91?= =?utf-8?B?czA0MEFWTEI0M2pFbnJJZlVmazYvRnk3UzhGRTBNVTBqZTJXYWpRZThmenlF?= =?utf-8?B?UURKc01wK2ZTZ2UwSU5vUGxNSWNxOFBoVzFSaStla1Y5ak9sZkFJRFFPWnhl?= =?utf-8?B?aWFmVTZNamdadStGS2dSdFgzaDljV1RSSFRkUXZRMytNR0NZR3hadnlzTzhO?= =?utf-8?B?cS9VdVFuWE5vS0V5R0dNV0RsVGhxT1FmeHhCTVgrL0M2MXBFTHAxREo4K2hE?= =?utf-8?B?Y1ZQbW1OMStmMndIYVlPV2hXdk5Rc2VjaU5TMjA4L1M0dTlycXVUQzJuYnRH?= =?utf-8?Q?iXAPzHLFgAPH1UKSkEhXqi9tScACP6ZuAMf41?= Content-Type: text/plain; charset="utf-8" Content-ID: <4C013FBB20C085409BC267F5E43679E2@namprd15.prod.outlook.com> X-OriginatorOrg: fb.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR15MB3651.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: edf68e7d-4fe3-4032-4c1c-08da1d79843b X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2022 18:14:57.1667 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TPhR+2IvHt5pejDQbPAhL8AvBaiA/34RO2V8wD/SSYCvsYg7bHn++IsVO8sXHEED X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1240 X-Proofpoint-GUID: il0ZoDjt-MXt-AAavsYu_g7haq-LF0Nf X-Proofpoint-ORIG-GUID: il0ZoDjt-MXt-AAavsYu_g7haq-LF0Nf Content-Transfer-Encoding: base64 X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-04-13_03,2022-04-13_01,2022-02-23_01 Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org T24gVHVlLCAyMDIyLTA0LTEyIGF0IDIwOjAzIC0wNzAwLCBBbmRyaWkgTmFrcnlpa28gd3JvdGU6 Cj4gT24gVHVlLCBBcHIgMTIsIDIwMjIgYXQgOTo1NiBBTSBLdWktRmVuZyBMZWUgPGt1aWZlbmdA ZmIuY29tPiB3cm90ZToKPiA+IAo+ID4gQWRkIGEgYnBmX2Nvb2tpZSBmaWVsZCB0byBzdHJ1Y3Qg YnBmX3RyYWNpbmdfbGluayB0byBhdHRhY2ggYQo+ID4gY29va2llCj4gPiB0byBhIGxpbmsgb2Yg YSB0cmFjZSBob29rLsKgIEEgY29va2llIG9mIGEgYnBmX3RyYWNpbmdfbGluayBpcwo+ID4gYXZh aWxhYmxlIGJ5IGNhbGxpbmcgYnBmX2dldF9hdHRhY2hfY29va2llIHdoZW4gcnVubmluZyB0aGUg QlBGCj4gPiBwcm9ncmFtIG9mIHRoZSBhdHRhY2hlZCBsaW5rLgo+ID4gCj4gPiBUaGUgdmFsdWUg b2YgYSBjb29raWUgd2lsbCBiZSBzZXQgYXQgYnBmX3RyYW1wX3J1bl9jdHggYnkgdGhlCj4gPiB0 cmFtcG9saW5lIG9mIHRoZSBsaW5rLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBLdWktRmVuZyBM ZWUgPGt1aWZlbmdAZmIuY29tPgo+ID4gLS0tCj4gPiDCoGFyY2gveDg2L25ldC9icGZfaml0X2Nv bXAuY8KgwqDCoCB8IDExICsrKysrKysrKy0tCj4gPiDCoGluY2x1ZGUvbGludXgvYnBmLmjCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxICsKPiA+IMKgaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5o wqDCoMKgwqDCoMKgIHzCoCA4ICsrKysrKysrCj4gPiDCoGtlcm5lbC9icGYvc3lzY2FsbC5jwqDC oMKgwqDCoMKgwqDCoMKgwqAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiA+IMKg a2VybmVsL3RyYWNlL2JwZl90cmFjZS5jwqDCoMKgwqDCoMKgIHwgMTcgKysrKysrKysrKysrKysr KysKPiA+IMKgdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oIHzCoCA3ICsrKysrKysKPiA+ IMKgNiBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ID4g Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jCj4gPiBiL2FyY2gv eDg2L25ldC9icGZfaml0X2NvbXAuYwo+ID4gaW5kZXggMGY1MjFiZTY4ZjdiLi4xOGQwMmRjZDgx MGEgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMKPiA+ICsrKyBi L2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYwo+ID4gQEAgLTE3NjQsMTMgKzE3NjQsMjAgQEAg c3RhdGljIGludCBpbnZva2VfYnBmX3Byb2coY29uc3Qgc3RydWN0Cj4gPiBidGZfZnVuY19tb2Rl bCAqbSwgdTggKipwcHJvZywKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGJwZl90cmFtcF9saW5rICpsLCBpbnQKPiA+IHN0YWNr X3NpemUsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGJvb2wgc2F2ZV9yZXQpCj4gPiDCoHsKPiA+ICvCoMKgwqDCoMKgwqAgdTY0IGNvb2tp ZSA9IDA7Cj4gPiDCoMKgwqDCoMKgwqDCoCB1OCAqcHJvZyA9ICpwcHJvZzsKPiA+IMKgwqDCoMKg wqDCoMKgIHU4ICpqbXBfaW5zbjsKPiA+IMKgwqDCoMKgwqDCoMKgIGludCBjdHhfY29va2llX29m ZiA9IG9mZnNldG9mKHN0cnVjdCBicGZfdHJhbXBfcnVuX2N0eCwKPiA+IGJwZl9jb29raWUpOwo+ ID4gwqDCoMKgwqDCoMKgwqAgc3RydWN0IGJwZl9wcm9nICpwID0gbC0+bGluay5wcm9nOwo+ID4g Cj4gPiAtwqDCoMKgwqDCoMKgIC8qIG1vdiByZGksIDAgKi8KPiA+IC3CoMKgwqDCoMKgwqAgZW1p dF9tb3ZfaW1tNjQoJnByb2csIEJQRl9SRUdfMSwgMCwgMCk7Cj4gPiArwqDCoMKgwqDCoMKgIGlm IChsLT5saW5rLnR5cGUgPT0gQlBGX0xJTktfVFlQRV9UUkFDSU5HKSB7Cj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYnBmX3RyYWNpbmdfbGluayAqdHJfbGluayA9Cj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGFpbmVy X29mKGwsIHN0cnVjdCBicGZfdHJhY2luZ19saW5rLAo+ID4gbGluayk7Cj4gCj4gZW1wdHkgbGlu ZSBiZXR3ZWVuIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGJsb2NrIGFuZCBzdGF0ZW1lbnQKCkdvdCBp dCEKCj4gCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb29raWUgPSB0cl9saW5r LT5jb29raWU7Cj4gPiArwqDCoMKgwqDCoMKgIH0KPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqAgLyog bW92IHJkaSwgY29va2llICovCj4gPiArwqDCoMKgwqDCoMKgIGVtaXRfbW92X2ltbTY0KCZwcm9n LCBCUEZfUkVHXzEsIChsb25nKSBjb29raWUgPj4gMzIsICh1MzIpCj4gPiAobG9uZykgY29va2ll KTsKPiA+IAo+ID4gwqDCoMKgwqDCoMKgwqAgLyogUHJlcGFyZSBzdHJ1Y3QgYnBmX3RyYW1wX3J1 bl9jdHguCj4gPiDCoMKgwqDCoMKgwqDCoMKgICoKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2JwZi5oIGIvaW5jbHVkZS9saW51eC9icGYuaAo+ID4gaW5kZXggZDg3ZGYwNDllNmIxLi40 OWRiOWMwNjU3MDEgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2JwZi5oCj4gPiArKysg Yi9pbmNsdWRlL2xpbnV4L2JwZi5oCj4gPiBAQCAtMTA2Miw2ICsxMDYyLDcgQEAgc3RydWN0IGJw Zl90cmFjaW5nX2xpbmsgewo+ID4gwqDCoMKgwqDCoMKgwqAgZW51bSBicGZfYXR0YWNoX3R5cGUg YXR0YWNoX3R5cGU7Cj4gPiDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRy YW1wb2xpbmU7Cj4gPiDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYnBmX3Byb2cgKnRndF9wcm9nOwo+ ID4gK8KgwqDCoMKgwqDCoCB1NjQgY29va2llOwo+ID4gwqB9Owo+ID4gCj4gPiDCoHN0cnVjdCBi cGZfbGlua19wcmltZXIgewo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9icGYu aCBiL2luY2x1ZGUvdWFwaS9saW51eC9icGYuaAo+ID4gaW5kZXggYTRmNTU3MzM4YWY3Li41ZTkw MWU2ZDE3ZWEgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvYnBmLmgKPiA+ICsr KyBiL2luY2x1ZGUvdWFwaS9saW51eC9icGYuaAo+ID4gQEAgLTE0MzYsNiArMTQzNiw3IEBAIHVu aW9uIGJwZl9hdHRyIHsKPiA+IMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB7IC8qIGFub255bW91cyBz dHJ1Y3QgdXNlZCBieQo+ID4gQlBGX1JBV19UUkFDRVBPSU5UX09QRU4gY29tbWFuZCAqLwo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fdTY0IG5hbWU7Cj4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgX191MzIgcHJvZ19mZDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIF9fdTY0IGJwZl9jb29raWU7Cj4gCj4gSSB0aG91Z2h0IHdlIGFyZSBub3Qg YWRkaW5nIGJwZl9jb29raWUgdGhyb3VnaCBSQVdfVFJBQ0VQT0lOVF9PUEVOPwoKWWVzLCB0aGlz IGxpbmUgc2hvdWxkIGJlIHJlbW92ZWQuCgo+IAo+ID4gwqDCoMKgwqDCoMKgwqAgfSByYXdfdHJh Y2Vwb2ludDsKPiA+IAo+ID4gwqDCoMKgwqDCoMKgwqAgc3RydWN0IHsgLyogYW5vbnltb3VzIHN0 cnVjdCBmb3IgQlBGX0JURl9MT0FEICovCj4gPiBAQCAtMTQ5MCw2ICsxNDkxLDEzIEBAIHVuaW9u IGJwZl9hdHRyIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fYWxpZ25lZF91NjTCoMKgIGFkZHJzOwo+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg X19hbGlnbmVkX3U2NMKgwqAgY29va2llczsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBrcHJvYmVfbXVsdGk7Cj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogYmxhY2sg Ym94IHVzZXItcHJvdmlkZWQgdmFsdWUKPiA+IHBhc3NlZCB0aHJvdWdoCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiB0 byBCUEYgcHJvZ3JhbSBhdCB0aGUgZXhlY3V0aW9uCj4gPiB0aW1lIGFuZAo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICog YWNjZXNzaWJsZSB0aHJvdWdoCj4gPiBicGZfZ2V0X2F0dGFjaF9jb29raWUoKSBCUEYgaGVscGVy Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX191NjTCoMKgwqDCoMKgwqDCoMKgwqDCoCBicGZfY29v a2llOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0g dHJhY2luZzsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+ID4gwqDCoMKg wqDCoMKgwqAgfSBsaW5rX2NyZWF0ZTsKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYv c3lzY2FsbC5jIGIva2VybmVsL2JwZi9zeXNjYWxsLmMKPiA+IGluZGV4IDU2ZTY5YTU4MmIyMS4u NTNkNGRhNWM3NmI1IDEwMDY0NAo+ID4gLS0tIGEva2VybmVsL2JwZi9zeXNjYWxsLmMKPiA+ICsr KyBiL2tlcm5lbC9icGYvc3lzY2FsbC5jCj4gPiBAQCAtMjY5NSw5ICsyNjk1LDEwIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYnBmX2xpbmtfb3BzCj4gPiBicGZfdHJhY2luZ19saW5rX2xvcHMgPSB7 Cj4gPiDCoMKgwqDCoMKgwqDCoCAuZmlsbF9saW5rX2luZm8gPSBicGZfdHJhY2luZ19saW5rX2Zp bGxfbGlua19pbmZvLAo+ID4gwqB9Owo+ID4gCj4gPiAtc3RhdGljIGludCBicGZfdHJhY2luZ19w cm9nX2F0dGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCB0Z3Rf cHJvZ19mZCwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIGJ0Zl9pZCkKPiA+ICtzdGF0aWMgaW50IGJwZl90 cmFjaW5nX3Byb2dfYXR0YWNoX2Nvb2tpZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IHRndF9wcm9nX2ZkLAo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHUzMiBidGZfaWQsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0IGJw Zl9jb29raWUpCj4gCj4gbGV0J3Mga2VlcCBpdCBhcyBicGZfdHJhY2luZ19wcm9nX2F0dGFjaCBh bmQganVzdCB1cGRhdGUgYWxsIHRoZSBjYWxsCj4gc2l0ZXMKClJvZ2VyCgo+IAo+ID4gwqB7Cj4g PiDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYnBmX2xpbmtfcHJpbWVyIGxpbmtfcHJpbWVyOwo+ID4g wqDCoMKgwqDCoMKgwqAgc3RydWN0IGJwZl9wcm9nICp0Z3RfcHJvZyA9IE5VTEw7Cj4gPiBAQCAt Mjc2Miw2ICsyNzYzLDcgQEAgc3RhdGljIGludCBicGZfdHJhY2luZ19wcm9nX2F0dGFjaChzdHJ1 Y3QKPiA+IGJwZl9wcm9nICpwcm9nLAo+ID4gwqDCoMKgwqDCoMKgwqAgYnBmX2xpbmtfaW5pdCgm bGluay0+bGluay5saW5rLCBCUEZfTElOS19UWVBFX1RSQUNJTkcsCj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmJwZl90cmFjaW5nX2xpbmtfbG9wcywgcHJv Zyk7Cj4gPiDCoMKgwqDCoMKgwqDCoCBsaW5rLT5hdHRhY2hfdHlwZSA9IHByb2ctPmV4cGVjdGVk X2F0dGFjaF90eXBlOwo+ID4gK8KgwqDCoMKgwqDCoCBsaW5rLT5jb29raWUgPSBicGZfY29va2ll Owo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoCBtdXRleF9sb2NrKCZwcm9nLT5hdXgtPmRzdF9tdXRl eCk7Cj4gPiAKPiA+IEBAIC0yODcxLDYgKzI4NzMsMTMgQEAgc3RhdGljIGludCBicGZfdHJhY2lu Z19wcm9nX2F0dGFjaChzdHJ1Y3QKPiA+IGJwZl9wcm9nICpwcm9nLAo+ID4gwqDCoMKgwqDCoMKg wqAgcmV0dXJuIGVycjsKPiA+IMKgfQo+ID4gCj4gPiArc3RhdGljIGludCBicGZfdHJhY2luZ19w cm9nX2F0dGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCB0Z3Rf cHJvZ19mZCwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIGJ0Zl9pZCkKPiA+ICt7Cj4gPiArwqDCoMKgwqDC oMKgIHJldHVybiBicGZfdHJhY2luZ19wcm9nX2F0dGFjaF9jb29raWUocHJvZywgdGd0X3Byb2df ZmQsCj4gPiBidGZfaWQsIDApOwo+ID4gK30KPiA+IGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL2Rv Y3VtZW50L2QvMUZZWWRpMUh3NHBqdWxia3ZJMVZtRy1rR3FUSlJDZzdiaDF2QUY0YndqTWMvZWRp dD91c3A9c2hhcmluZwo+ID4gKwo+IAo+IHdoeSB0aGlzIHdyYXBwZXIsIGp1c3QgYWRkIHRoYXQg MCBmb3IgYWxsIGV4aXN0aW5nCj4gYnBmX3RyYWNpbmdfcHJvZ19hdHRhY2goKSBpbnZvY2F0aW9u cwoKR290IGl0IQoKPiAKPiAKPiA+IMKgc3RydWN0IGJwZl9yYXdfdHBfbGluayB7Cj4gPiDCoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgYnBmX2xpbmsgbGluazsKPiA+IMKgwqDCoMKgwqDCoMKgIHN0cnVj dCBicGZfcmF3X2V2ZW50X21hcCAqYnRwOwo+ID4gQEAgLTMwMjMsNyArMzAzMiw3IEBAIHN0YXRp YyBpbnQgYnBmX3BlcmZfbGlua19hdHRhY2goY29uc3QgdW5pb24KPiA+IGJwZl9hdHRyICphdHRy LCBzdHJ1Y3QgYnBmX3Byb2cgKnBybwo+ID4gwqB9Cj4gPiDCoCNlbmRpZiAvKiBDT05GSUdfUEVS Rl9FVkVOVFMgKi8KPiA+IAo+ID4gLSNkZWZpbmUgQlBGX1JBV19UUkFDRVBPSU5UX09QRU5fTEFT VF9GSUVMRCByYXdfdHJhY2Vwb2ludC5wcm9nX2ZkCj4gPiArI2RlZmluZSBCUEZfUkFXX1RSQUNF UE9JTlRfT1BFTl9MQVNUX0ZJRUxECj4gPiByYXdfdHJhY2Vwb2ludC5icGZfY29va2llCj4gPiAK PiA+IMKgc3RhdGljIGludCBicGZfcmF3X3RyYWNlcG9pbnRfb3Blbihjb25zdCB1bmlvbiBicGZf YXR0ciAqYXR0cikKPiA+IMKgewo+ID4gQEAgLTMxODcsNiArMzE5NiwxMCBAQCBhdHRhY2hfdHlw ZV90b19wcm9nX3R5cGUoZW51bQo+ID4gYnBmX2F0dGFjaF90eXBlIGF0dGFjaF90eXBlKQo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBCUEZfUFJPR19UWVBFX1NLX0xP T0tVUDsKPiA+IMKgwqDCoMKgwqDCoMKgIGNhc2UgQlBGX1hEUDoKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQlBGX1BST0dfVFlQRV9YRFA7Cj4gPiArwqDCoMKgwqDC oMKgIGNhc2UgQlBGX1RSQUNFX0ZFTlRSWToKPiA+ICvCoMKgwqDCoMKgwqAgY2FzZSBCUEZfVFJB Q0VfRkVYSVQ6Cj4gPiArwqDCoMKgwqDCoMKgIGNhc2UgQlBGX01PRElGWV9SRVRVUk46Cj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQlBGX1BST0dfVFlQRV9UUkFDSU5H Owo+IAo+IGNhbiB5b3UgcGxlYXNlIHNwbGl0IHRoZSBwYXJ0IHRoYXQgYWRkcyBhYmlsaXR5IHRv IGNyZWF0ZQo+IGZlbnRyeS9mZXhpdC9ldGMgbGlua3MgdGhyb3VnaCBMSU5LX0NSRUFURSBpbnRv IGEgc2VwYXJhdGUgY29tbWl0LAo+IHNlcGFyYXRlIGZyb20gd2lyaW5nIHRoZSBicGZfY29va2ll PyBJdCdzIHR3byBsb2dpY2FsbHkgZGlzdGluY3QKPiBjaGFuZ2VzLgoKTm8gcHJvYmxlbS4KCj4g Cj4gPiDCoMKgwqDCoMKgwqDCoCBkZWZhdWx0Ogo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHJldHVybiBCUEZfUFJPR19UWVBFX1VOU1BFQzsKPiA+IMKgwqDCoMKgwqDCoMKgIH0K PiAKPiBbLi4uXQo+IAo+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9i cGYuaAo+ID4gYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvYnBmLmgKPiA+IGluZGV4IGE0ZjU1 NzMzOGFmNy4uYTVlZTU3ZjA5ZTA0IDEwMDY0NAo+ID4gLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBp L2xpbnV4L2JwZi5oCj4gPiArKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvYnBmLmgKPiA+ IEBAIC0xNDkwLDYgKzE0OTAsMTMgQEAgdW5pb24gYnBmX2F0dHIgewo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19hbGln bmVkX3U2NMKgwqAgYWRkcnM7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2FsaWduZWRfdTY0wqDCoCBjb29raWVzOwo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGtwcm9i ZV9tdWx0aTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzdHJ1Y3Qgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBibGFjayBib3ggdXNlci1wcm92aWRlZCB2YWx1ZQo+ID4g cGFzc2VkIHRocm91Z2gKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIHRvIEJQRiBwcm9ncmFtIGF0IHRoZSBleGVjdXRp b24KPiA+IHRpbWUgYW5kCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBhY2Nlc3NpYmxlIHRocm91Z2gKPiA+IGJwZl9n ZXRfYXR0YWNoX2Nvb2tpZSgpIEJQRiBoZWxwZXIKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX3U2 NMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJwZl9jb29raWU7Cj4gCj4gZm9yIGtwcm9iZV9tdWx0aSB3 ZSB1c2VkICJjb29raWVzIiwgc28gbGV0J3MgZG8gImNvb2tpZSIgaGVyZT8gV2UnbGwKPiBoYXZl IHRvIGtlZXAgcGVyZl9ldmVudC5icGZfY29va2llLCBvZiBjb3Vyc2UuCgpHb3QgaXQhCgo+IAo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gdHJhY2lu ZzsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+ID4gwqDCoMKgwqDCoMKg wqAgfSBsaW5rX2NyZWF0ZTsKPiA+IAo+ID4gLS0KPiA+IDIuMzAuMgo+ID4gCgo=