From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6F4C342822; Thu, 23 Mar 2023 11:49:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1209A4021E; Thu, 23 Mar 2023 11:49:51 +0100 (CET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2044.outbound.protection.outlook.com [40.107.21.44]) by mails.dpdk.org (Postfix) with ESMTP id 76BE74021D for ; Thu, 23 Mar 2023 11:49:49 +0100 (CET) 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=s8o2tFHC5UXY9Du9kpZenfbJ/WC0G4aWr9GjwNck2UQ=; b=AnEgU6P9nVtv6cfqaY4pf+k+xRSINeZPvouTUCgP3YdYEFbzUAh9AmnU87pbr9i72J3tOP3C0tndyvTAKMBQfg3QcuYVq6iO4N4x9vby/0ctVjX13jzY6m+Ib+hGvycRetJTnNY9fk35Sa/iYuG88OJ1YOmUJaWfucG6zv8EuSM= Received: from AS8PR04CA0041.eurprd04.prod.outlook.com (2603:10a6:20b:312::16) by PAVPR08MB9039.eurprd08.prod.outlook.com (2603:10a6:102:325::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Thu, 23 Mar 2023 10:49:46 +0000 Received: from AM7EUR03FT024.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:312:cafe::2d) by AS8PR04CA0041.outlook.office365.com (2603:10a6:20b:312::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.38 via Frontend Transport; Thu, 23 Mar 2023 10:49:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT024.mail.protection.outlook.com (100.127.140.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.17 via Frontend Transport; Thu, 23 Mar 2023 10:49:46 +0000 Received: ("Tessian outbound f2a8d6d66d12:v135"); Thu, 23 Mar 2023 10:49:46 +0000 X-CR-MTA-TID: 64aa7808 Received: from d487403310a0.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A9F0EA8D-8E19-4A50-AB71-B60A20AD086A.1; Thu, 23 Mar 2023 10:49:41 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d487403310a0.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 23 Mar 2023 10:49:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U0kEeoEuvTwHbiwhpyQXaEwzVitt9Kilnmi9REkSO9okblPa7yfMx+xQrAsmmLTrqbZtdMmutfvSeFpc8TXiCZ/5VbRaLOk2VXzfGF5svCbYvitdoCA0xuLOZ6lRgEVnkHkVu3s/ybOB0DUvLL/DOvktLmkgFqYRh6ZSAMLmBYbsh5OefhjWzTd83W//DTQ07ppBInh+hbiDiy51f8ZxcHtJo6jMsMDtqxcah0A5NqNIdh3BYhCIEXyOxAM5JU1ODc1DRviYauI+9iXTtfuiAya58+mY0EZNQktvpcCeO7miGL71sbbOWsKX+Za6ziLa6xgNzTj+9RO7v3WzodMHuQ== 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=s8o2tFHC5UXY9Du9kpZenfbJ/WC0G4aWr9GjwNck2UQ=; b=DNRuiJugmlZnKj0jxZCNY5fHgXsx+ri9SvrZphZLN5u/3hgexFbv+k2woYoSXSB6LAKa4SjKz8K/9JtHMbn9U5mLbekA4TFOW50DALBisJzCmGxIFjO5fRcAr6Jcfi9fzg+8tPoizO58pFnR+sMaBvTFFn0/jszOHt5yeCeHyA2iUJkaIViWPLoGQ3Sbn5Zb/WB0aLc44XF9YyTOqy3qH8ilH+YR616qxLboy6Z5IBrMwXfyQ9kUFK1VlTCvISO5kb70lsIDZRsOD+nA9EoMB1DZ46J1xD0nwl0dZYI9rO7dIw2mnlmuiUh//uycgYn1vRmtBtnq3AB7zDI+7939AA== 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=s8o2tFHC5UXY9Du9kpZenfbJ/WC0G4aWr9GjwNck2UQ=; b=AnEgU6P9nVtv6cfqaY4pf+k+xRSINeZPvouTUCgP3YdYEFbzUAh9AmnU87pbr9i72J3tOP3C0tndyvTAKMBQfg3QcuYVq6iO4N4x9vby/0ctVjX13jzY6m+Ib+hGvycRetJTnNY9fk35Sa/iYuG88OJ1YOmUJaWfucG6zv8EuSM= Received: from AS8PR08MB7718.eurprd08.prod.outlook.com (2603:10a6:20b:50a::22) by AS8PR08MB8875.eurprd08.prod.outlook.com (2603:10a6:20b:5b7::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.38; Thu, 23 Mar 2023 10:49:38 +0000 Received: from AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::95ea:4c82:b97f:5ff6]) by AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::95ea:4c82:b97f:5ff6%3]) with mapi id 15.20.6178.037; Thu, 23 Mar 2023 10:49:38 +0000 From: Feifei Wang To: Konstantin Ananyev , Konstantin Ananyev , Yuying Zhang , Beilei Xing , Ruifeng Wang CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , nd Subject: =?utf-8?B?UkU6IOWbnuWkjTogW1BBVENIIHYzIDIvM10gbmV0L2k0MGU6IGVuYWJsZSBk?= =?utf-8?Q?irect_rearm_with_separate_API?= Thread-Topic: =?utf-8?B?5Zue5aSNOiBbUEFUQ0ggdjMgMi8zXSBuZXQvaTQwZTogZW5hYmxlIGRpcmVj?= =?utf-8?Q?t_rearm_with_separate_API?= Thread-Index: AQHZIA6ITo5UKdIJO0uoqCWGoDcW866756sAgCJCKKCABVtngIAAZGhAgAuekwCACqg5UIAIik6AgAXuyQA= Date: Thu, 23 Mar 2023 10:49:38 +0000 Message-ID: References: <20220420081650.2043183-1-feifei.wang2@arm.com> <20230104073043.1120168-1-feifei.wang2@arm.com> <20230104073043.1120168-3-feifei.wang2@arm.com> <445b0731-8e91-31dc-2ce5-90616c03f431@yandex.ru> <67ef44538dfd41af829c47891ced9e8e@huawei.com> <5ff6e7c0-e38f-cc8d-d08d-c612e5505184@yandex.ru> In-Reply-To: <5ff6e7c0-e38f-cc8d-d08d-c612e5505184@yandex.ru> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: E132104B48D14249B9B576D40BBD8F4F.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AS8PR08MB7718:EE_|AS8PR08MB8875:EE_|AM7EUR03FT024:EE_|PAVPR08MB9039:EE_ X-MS-Office365-Filtering-Correlation-Id: b59b0809-a169-4e1c-6c2f-08db2b8c5191 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: LbqU3POqvc6Ji6eTB3ddZXo29D2kRy6pAl0fmOjIYcU0lbgtJw2L2903S86Tsa3V/LwKqOQo+YWJZdP6PJc/gEUM+FkNpwzN6SOxdfVfAnEq8i/IaEy4Xsa/rVBqmeLk52pGyojKzUvoWgMyQvrxEcwdpgh0lHcN1ueWXBTEMkkRhJh2poDoU43X/K+SztJGtqCgEflb5d2RvZpBrJfEaQ46DnLIGjV7HOsFpC+/PoL0iCxY+/1y63lco8aQJzpCU5UaYCyPcC0gV4M1mtpJDQH5LNUQftLlyXY/4CLo/Mn+VkYI9xzO/xDvAWtogM1przVN2zNF1rJn5ZVIlBQe5nTCslE/bdXiMsMIB4Fnb6Rl77Oxex8607hB0659NUS/EviHi49xUi3HHAFvKsGtcIzMUDynitMqGVuNvdWercK6fsHHwvl0ZmtRI7MpGTClVsEerf1uewJJuEcCDCTkWVgfdltyuujdpQAul+yt+TjvUirZgrkPKorGFpK8yN0AvF8acwabs0wP3iKbofuI+c4kgBTNGt0yiKrVFDe5PbBSrEiHZp5zmAQrHnBk+71GXABAt8suDRoWakO1uIcWwqd/3XILWqju/ExeHTlJIuK3lXim3egMyRHufvUrloOdYHXt7dR5QMYTDPAiku1iGODbFkAKi8pEaFCOo6GbB544q1/1PWPJ0Pvvdbw4spj0q82YKNTBoaE/UcyVBJTvkA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7718.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(366004)(376002)(346002)(136003)(39860400002)(396003)(451199018)(9686003)(7696005)(71200400001)(478600001)(53546011)(26005)(186003)(6506007)(55016003)(224303003)(33656002)(86362001)(38100700002)(38070700005)(83380400001)(122000001)(2906002)(8936002)(52536014)(316002)(41300700001)(5660300002)(4326008)(6636002)(54906003)(110136005)(64756008)(66446008)(76116006)(66476007)(66556008)(66946007); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8875 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: dd933618-2f40-4e16-69e4-08db2b8c4cc2 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HvPBZo/Jf13ijMVEaT/sOrwPKSXYkInBB41naJogGCj5flFJGc5cSzeSizkrMidqwYmH7atMv2yLI8qcKbMGOQ7Vkk2P1o7Z3q7RvP1KZqxjjA7hPOk5ghhG45CaxcbKqvsW294C2QdQMKbnabFMg/28b+bwrCn2HiIzd8Kzwraly52n6MUVEGOVtTsUEub6GKL5Er+/YYchRkTfoMNfCMba2z9orw4AbUZsO8lDltEVoCpLYMpmGQbItYLBEkWaR6a7N90TjWk+2IYRIkYQCYj6+k6Tmk3ILt3p3jl9AEx0AUzFUxFP94IJdRnjDwLxWFPH13mz6hYCSjMTWpboKPJS0vZhoXd5vOD8x324/XCaIuWDkItnehh0VINY7Z9oU1l2EZpNHy+GxlY9SQRChKryM6FkqJJKe2JLCl3Hq6ThPWxqX7G0ZiuKOSHkZrdhjtx7SEH9ni6NN48v0hTL7yuBB8sHSngXGp/njjDVMUma4INN3zcrM60y3ExeljQcAdxoS3FdoTbnWWf4EX3c1aihvI5AN+wRbajk2TnlToBpuW4iICmi6fo8h6lxgi99lzltfqJIlyobVpA7L/M1mu9Bnatj+m/dJDmbHBOrw+Yu6LwwcEeIpoxOjuZeko1xN3+qzyaJW5dj2XKNOluAmlXFRf5uWhGjFDEHNW3wzXm8uqPCfh/BSuDyv1kTshyQ5y7VcPV+yezObvUAELgkrZ9o7BjOhCC93Dj77Rydbg8= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230025)(4636009)(396003)(346002)(376002)(136003)(39860400002)(451199018)(36840700001)(40470700004)(46966006)(26005)(478600001)(82310400005)(336012)(33656002)(356005)(54906003)(55016003)(52536014)(70206006)(70586007)(316002)(36860700001)(224303003)(4326008)(110136005)(8936002)(6636002)(81166007)(82740400003)(40480700001)(2906002)(40460700003)(9686003)(47076005)(53546011)(83380400001)(5660300002)(7696005)(6506007)(41300700001)(86362001)(186003)(23180200003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2023 10:49:46.6176 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b59b0809-a169-4e1c-6c2f-08db2b8c5191 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-AuthSource: AM7EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9039 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS29uc3RhbnRpbiBBbmFu eWV2IDxrb25zdGFudGluLnYuYW5hbnlldkB5YW5kZXgucnU+DQo+IFNlbnQ6IE1vbmRheSwgTWFy Y2ggMjAsIDIwMjMgMTI6MTEgQU0NCj4gVG86IEZlaWZlaSBXYW5nIDxGZWlmZWkuV2FuZzJAYXJt LmNvbT47IEtvbnN0YW50aW4gQW5hbnlldg0KPiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5j b20+OyBZdXlpbmcgWmhhbmcNCj4gPFl1eWluZy5aaGFuZ0BpbnRlbC5jb20+OyBCZWlsZWkgWGlu ZyA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPjsgUnVpZmVuZw0KPiBXYW5nIDxSdWlmZW5nLldhbmdA YXJtLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBIb25uYXBwYSBO YWdhcmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4NCj4gU3ViamVjdDog UmU6IOWbnuWkjTogW1BBVENIIHYzIDIvM10gbmV0L2k0MGU6IGVuYWJsZSBkaXJlY3QgcmVhcm0g d2l0aA0KPiBzZXBhcmF0ZSBBUEkNCj4gDQo+IA0KPiA+Pj4+Pj4+ICtpbnQNCj4gPj4+Pj4+PiAr aTQwZV90eF9maWxsX3N3X3Jpbmcodm9pZCAqdHhfcXVldWUsDQo+ID4+Pj4+Pj4gKwkJc3RydWN0 IHJ0ZV9ldGhfcnhxX3JlYXJtX2RhdGEgKnJ4cV9yZWFybV9kYXRhKSB7DQo+ID4+Pj4+Pj4gKwlz dHJ1Y3QgaTQwZV90eF9xdWV1ZSAqdHhxID0gdHhfcXVldWU7DQo+ID4+Pj4+Pj4gKwlzdHJ1Y3Qg aTQwZV90eF9lbnRyeSAqdHhlcDsNCj4gPj4+Pj4+PiArCXZvaWQgKipyeGVwOw0KPiA+Pj4+Pj4+ ICsJc3RydWN0IHJ0ZV9tYnVmICptOw0KPiA+Pj4+Pj4+ICsJaW50IGksIG47DQo+ID4+Pj4+Pj4g KwlpbnQgbmJfcmVhcm0gPSAwOw0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArCWlmICgqcnhxX3Jl YXJtX2RhdGEtPnJlYXJtX25iIDwgdHhxLT50eF9yc190aHJlc2ggfHwNCj4gPj4+Pj4+PiArCQkJ dHhxLT5uYl90eF9mcmVlID4gdHhxLT50eF9mcmVlX3RocmVzaCkNCj4gPj4+Pj4+PiArCQlyZXR1 cm4gMDsNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKwkvKiBjaGVjayBERCBiaXRzIG9uIHRocmVz aG9sZCBkZXNjcmlwdG9yICovDQo+ID4+Pj4+Pj4gKwlpZiAoKHR4cS0+dHhfcmluZ1t0eHEtPnR4 X25leHRfZGRdLmNtZF90eXBlX29mZnNldF9ic3ogJg0KPiA+Pj4+Pj4+ICsNCj4gPj4gCXJ0ZV9j cHVfdG9fbGVfNjQoSTQwRV9UWERfUVcxX0RUWVBFX01BU0spKSAhPQ0KPiA+Pj4+Pj4+ICsNCj4g Pj4+Pj4+IAlydGVfY3B1X3RvX2xlXzY0KEk0MEVfVFhfREVTQ19EVFlQRV9ERVNDX0RPTkUpKQ0K PiA+Pj4+Pj4+ICsJCXJldHVybiAwOw0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArCW4gPSB0eHEt PnR4X3JzX3RocmVzaDsNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKwkvKiBmaXJzdCBidWZmZXIg dG8gZnJlZSBmcm9tIFMvVyByaW5nIGlzIGF0IGluZGV4DQo+ID4+Pj4+Pj4gKwkgKiB0eF9uZXh0 X2RkIC0gKHR4X3JzX3RocmVzaC0xKQ0KPiA+Pj4+Pj4+ICsJICovDQo+ID4+Pj4+Pj4gKwl0eGVw ID0gJnR4cS0+c3dfcmluZ1t0eHEtPnR4X25leHRfZGQgLSAobiAtIDEpXTsNCj4gPj4+Pj4+PiAr CXJ4ZXAgPSByeHFfcmVhcm1fZGF0YS0+cnhfc3dfcmluZzsNCj4gPj4+Pj4+PiArCXJ4ZXAgKz0g KnJ4cV9yZWFybV9kYXRhLT5yZWFybV9zdGFydDsNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKwlp ZiAodHhxLT5vZmZsb2FkcyAmDQo+ID4+IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJF RSkgew0KPiA+Pj4+Pj4+ICsJCS8qIGRpcmVjdGx5IHB1dCBtYnVmcyBmcm9tIFR4IHRvIFJ4ICov DQo+ID4+Pj4+Pj4gKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKywgcnhlcCsrLCB0eGVwKyspDQo+ ID4+Pj4+Pj4gKwkJCSpyeGVwID0gdHhlcFswXS5tYnVmOw0KPiA+Pj4+Pj4+ICsJfSBlbHNlIHsN Cj4gPj4+Pj4+PiArCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrLCByeGVwKyspIHsNCj4gPj4+Pj4+ PiArCQkJbSA9IHJ0ZV9wa3RtYnVmX3ByZWZyZWVfc2VnKHR4ZXBbaV0ubWJ1Zik7DQo+ID4+Pj4N Cj4gPj4+PiBPbmUgdGhpbmcgSSBmb3Jnb3QgdG8gYXNrOg0KPiA+Pj4+IFdoYXQgd291bGQgaGFw cGVuIGlmIHRoaXMgbWJ1ZiBiZWxvbmdzIHRvIGRpZmZlcmVudCBtZW1wb29sIChub3QNCj4gPj4+ PiBvbmUgdGhhdCB3ZSBzcGVjaWZ5IGF0IHJ4X3F1ZXVlX3NldHVwKCkpPw0KPiA+Pj4+IERvIHdl IG5lZWQgdG8gY2hlY2sgaXQgaGVyZT8NCj4gPj4+PiBPciB3b3VsZCBpdCBiZSB1cHBlciBsYXll ciBjb25zdHJhaW50Pw0KPiA+Pj4+IE9yLi4uPw0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gRmlyc3Qs ICdkaWZmZXJlbnQgbWVtcG9vbCcgaXMgdmFsaWQgZm9yIG5vIEZBU1RfRlJFRSBwYXRoIGluDQo+ IHR4X2ZyZWVfYnVmZmVycy4NCj4gPj4+DQo+ID4+PiBJZiBidWZmZXJzIGJlbG9uZyB0byBkaWZm ZXJlbnQgbWVtcG9vbCwgd2UgY2FuIGhhdmUgYW4gZXhhbXBsZSBoZXJlOg0KPiA+Pj4gQnVmZmVy IDEgZnJvbSBtZW1wb29sIDEsIGl0cyByZWN5Y2xlIHBhdGggaXM6DQo+ID4+PiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+Pj4gLS0NCj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0gMS4gcXVldWVfc2V0dXA6IHJl YXJtIGZyb20gbWVtcG9vbCAxIGludG8gUngNCj4gPj4+IHN3LXJpbmcgMi4gcnRlX2V0aF9SeF9i dXJzdDogdXNlZCBieSB1c2VyIGFwcCAoUngpIDMuDQo+ID4+PiBydGVfZXRoX1R4X2J1cnN0OiBt b3VudCBvbiBUeCBzdy1yaW5nIDQuIHJ0ZV9ldGhfZGlyZWN0X3JlYXJtOiBmcmVlDQo+ID4+PiBp bnRvIFJ4IHN3LXJpbmc6DQo+ID4+PiAgICAgICAgICAgICBvcg0KPiA+Pj4gICAgICB0eF9mcmVl X2J1ZmZlcnM6IGZyZWUgaW50byBtZW1wb29sIDEgKG5vIGZhc3RfZnJlZSBwYXRoKQ0KPiA+Pj4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gPj4+IC0tDQo+ID4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+Pg0K PiA+Pj4gQnVmZmVyIDIgZnJvbSBtZW1wb29sIDIsIGl0cyByZWN5Y2xlIHBhdGggaXM6DQo+ID4+ PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+Pj4gLS0NCj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0gMS4gcXVl dWVfc2V0dXA6IHJlYXJtIGZyb20gbWVtcG9vbCAyIGludG8gUngNCj4gPj4+IHN3LXJpbmcgMi4g cnRlX2V0aF9SeF9idXJzdDogdXNlZCBieSB1c2VyIGFwcCAoUngpIDMuDQo+ID4+PiBydGVfZXRo X1R4X2J1cnN0OiBtb3VudCBvbiBUeCBzdy1yaW5nIDQuIHJ0ZV9ldGhfZGlyZWN0X3JlYXJtOiBm cmVlDQo+ID4+PiBpbnRvIFJ4IHN3LXJpbmcNCj4gPj4+ICAgICAgICAgICAgIG9yDQo+ID4+PiAg ICAgIHR4X2ZyZWVfYnVmZmVyczogZnJlZSBpbnRvIG1lbXBvb2wgMiAobm8gZmFzdF9mcmVlX3Bh dGgpDQo+ID4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+Pj4gLS0NCj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPj4+DQo+ID4+PiBUaHVzLCBidWZmZXJzIGZyb20gVHggZGlmZmVyZW50IG1lbXBvb2xz IGFyZSB0aGUgc2FtZSBmb3IgUnguIFRoZQ0KPiA+Pj4gZGlmZmVyZW5jZSBwb2ludCBpcyB0aGF0 IHRoZXkgd2lsbCBiZSBmcmVlZCBpbnRvIGRpZmZlcmVudCBtZW1wb29sDQo+ID4+PiBpZiB0aGUN Cj4gPj4gdGhyZWFkICB1c2VzIGdlbmVyaWMgZnJlZSBidWZmZXJzLg0KPiA+Pj4gSSB0aGluayB0 aGlzIGNhbm5vdCBhZmZlY3QgZGlyZWN0LXJlYXJtIG1vZGUsIGFuZCB3ZSBkbyBub3QgbmVlZCB0 bw0KPiA+Pj4gY2hlY2sNCj4gPj4gdGhpcy4NCj4gPj4NCj4gPj4gSSB1bmRlcnN0YW5kIHRoYXQg aXQgc2hvdWxkIHdvcmsgZXZlbiB3aXRoIG11bHRpcGxlIG1lbXBvb2xzLg0KPiA+PiBXaGF0IEkg YW0gdHJ5aW5nIHRvIHNheSAtIHVzZXIgbWF5IG5vdCB3YW50IHRvIHVzZSBtYnVmcyBmcm9tDQo+ ID4+IHBhcnRpY3VsYXIgbWVtcG9vbCBmb3IgUlggKHdoaWxlIGl0IGlzIHN0aWxsIG9rIHRvIHVz ZSBpdCBmb3IgVFgpLg0KPiA+PiBMZXQgc2F5IHVzZXIgY2FuIGhhdmUgYSBzZXBhcmF0ZSBtZW1w b29sIHdpdGggc21hbGwgZGF0YS1idWZmZXJzDQo+ID4+IChsZXNzIHRoZW4gbm9ybWFsIE1UVSkg dG8gc2VuZCBzb21lICdzcGVjaWFsJyBwYWNsZXRzLCBvciBldmVuIHVzZQ0KPiA+PiB0aGlzIG1l bXBwb2wgd2l0aCBzbWFsbCBidWZmZXJzIGZvciB6ZXJvLWNvcHkgdXBkYXRpbmcgb2YgcGFja2V0 IEwyL0wzDQo+IGhlYWRlcnMsIGV0Yy4NCj4gPj4gT3IgaXQgY291bGQgYmUgc29tZSAnc3BlY2lh bCcgdXNlciBwcm92aWRlZCBtZW1wb29sLg0KPiA+PiBUaGF0J3Mgd2h5IEkgd29uZGVyIHNob3Vs ZCB3ZSBhbGxvdyBvbmx5IG1idWZzIGZyb20gbWVtcG9vbCB0aGF0IGlzDQo+ID4+IGFzc2lnbmVk IHRvIHRoYXQgUlggcXVldWUuDQo+ID4NCj4gPiBTb3JyeSBmb3IgbXkgbWlzbGVhZGluZy4gSWYg SSB1bmRlcnN0YW5kIGNvcnJlY3RseSB0aGlzIHRpbWUsIHlvdQ0KPiA+IG1lYW5zIGEgc3BlY2lh bCBtZW1wb29sLiBNYXliZSBpdHMgYnVmZmVyIHNpemUgaXMgdmVyeSBzbWFsbCBhbmQgdGhpcyBU eA0KPiBidWZmZXIgaXMgZ2VuZXJhdGVkIGZyb20gY29udHJvbCBwbGFuZS4NCj4gPg0KPiA+IEhv d2V2ZXIsIGlmIHdlIHJlY3ljbGUgdGhpcyBUeCBidWZmZXIgaW50byBSeCBidWZmZXIgcmluZywg dGhlcmUgbWF5YmUNCj4gPiBzb21lIGVycm9yIGR1ZSB0byBpdHMgc2l6ZSBpcyBzbyBzbWFsbC4N Cj4gPg0KPiA+IFRodXMgd2UgY2FuIG9ubHkgYWxsb3cgZ2VuZXJhbCBidWZmZXJzIHdoaWNoIGlz IHZhbGlkIGZvciBSeCBidWZmZXINCj4gPiByaW5nLiBGdXJ0aGVybW9yZSwgdGhpcyBzaG91bGQg YmUgdXNlcidzICByZXNwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlDQo+ID4gVHggcmVjeWNsaW5n IGJ1ZmZlcnMgc2hvdWxkIGJlIHZhbGlkLiBJZiB3ZSBjaGVjayB0aGlzIGluIHRoZSBkYXRhIHBs YW5lLCBpdCB3aWxsDQo+IGNvc3QgYSBsb3Qgb2YgQ1BVIGN5Y2xlcy4gQXQgbGFzdCwgd2hhdCB3 ZSBjYW4gZG8gaXMgdG8gYWRkIGNvbnN0cmFpbnQgaW4gdGhlDQo+IG5vdGVzIHRvIHJlbWluZCB1 c2Vycy4NCj4gDQo+IEFzIEkgdGhvdWdodDogaW4gdGhlb3J5IHdlIGNhbiBhZGQgJ3N0cnVjdCBy dGVfbWVtcG9vbCAqbXAnDQo+IGludG8gcnRlX2V0aF9yeHFfcmVhcm1fZGF0YS4NCj4gQW5kIHRo ZW46DQo+IGlmIChtYnVmLT5wb29sID09IHJ4cV9yZWFybV9kYXRhLT5tcCkNCj4gICAgLyogcHV0 IG1idWYgaW50byByZWFybSBidWZmZXIgKi8NCj4gZWxzZQ0KPiAgICAvKiBmcmVlIG1idWYgKi8N Cj4gRm9yIHRoZSAncHJvcGVyJyBjb25maWcgKHdoZW4gdHhxIGNvbnRhaW5zIG1idWZzIGZyb20g ZXhwZWN0ZWQgbWVtcG9vbCkNCj4gdGhlIG92ZXJoZWFkIHdpbGwgYmUgbWluaW1hbC4NCj4gSW4g b3RoZXIgY2FzZSBpdCBtaWdodCBiZSBoaWdoZXIsIGJ1dCBzdGlsbCB3b3VsZCB3b3JrIGFuZCBu byBuZWVkIGZvciBleHRyYQ0KPiBsaW1pdGF0aW9ucy4NCg0KSXQncyBhIGdvb2QgaWRlYS4gQW5k IHRyeSB0byB0ZXN0IHBlcmZvcm1hbmNlIHdpdGggdGhpcyBjaGFuZ2UsIHRoZXJlIGlzIGN1cnJl bnRseQ0Kbm8gcGVyZm9ybWFuY2UgZGVncmFkYXRpb24uIFRodXMsIEkgYWRkIHRoaXMgY2hlY2sg aW4gdGhlIGxhdGVzdCB2ZXJzaW9uLg0KDQo+IA0KPiANCj4gPj4NCj4gPj4+DQo+ID4+Pj4+Pj4g KwkJCWlmIChtICE9IE5VTEwpIHsNCj4gPj4+Pj4+PiArCQkJCSpyeGVwID0gbTsNCj4gPj4+Pj4+ PiArCQkJCW5iX3JlYXJtKys7DQo+ID4+Pj4+Pj4gKwkJCX0NCj4gPj4+Pj4+PiArCQl9DQo+ID4+ Pj4+Pj4gKwkJbiA9IG5iX3JlYXJtOw0KPiA+Pj4+Pj4+ICsJfQ0KPiA+Pj4+Pj4+ICsNCj4gPj4+ Pj4+PiArCS8qIHVwZGF0ZSBjb3VudGVycyBmb3IgVHggKi8NCj4gPj4+Pj4+PiArCXR4cS0+bmJf dHhfZnJlZSA9ICh1aW50MTZfdCkodHhxLT5uYl90eF9mcmVlICsgdHhxLQ0KPiA+Pj4gdHhfcnNf dGhyZXNoKTsNCj4gPj4+Pj4+PiArCXR4cS0+dHhfbmV4dF9kZCA9ICh1aW50MTZfdCkodHhxLT50 eF9uZXh0X2RkICsgdHhxLQ0KPiA+Pj4gdHhfcnNfdGhyZXNoKTsNCj4gPj4+Pj4+PiArCWlmICh0 eHEtPnR4X25leHRfZGQgPj0gdHhxLT5uYl90eF9kZXNjKQ0KPiA+Pj4+Pj4+ICsJCXR4cS0+dHhf bmV4dF9kZCA9ICh1aW50MTZfdCkodHhxLT50eF9yc190aHJlc2ggLSAxKTsNCj4gPj4+Pj4+PiAr DQo+ID4+Pj4+Pj4gKwlyZXR1cm4gbjsNCj4gPj4+Pj4+PiArfQ0KPiA+Pj4+Pj4+ICsNCg0K