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 mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 446BAC64ED6 for ; Tue, 28 Feb 2023 06:43:48 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 24883410D4; Tue, 28 Feb 2023 07:43:47 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2077.outbound.protection.outlook.com [40.107.6.77]) by mails.dpdk.org (Postfix) with ESMTP id DB61B40EE4 for ; Tue, 28 Feb 2023 07:43:45 +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=ROyPC3A/hNj1l9ktPm4sM5iaMOuKybeVwBQPv10HPkg=; b=Hhz/z+YuZgte/1J1RVYULtYTAFVqFOosABTkEdfWPm0rqTl1/aS5aOcmq0qIHo1c1IP0AoJaSMdsEUKACy2E71x6QIRxuyO9TJaFU007X4b8PmV+rx0QqLsIaTfABlJBFmOWJzT8T54QrH0KCNM+eX4nSr5fLpYVwjewD9VlM6w= Received: from AS9PR07CA0029.eurprd07.prod.outlook.com (2603:10a6:20b:46c::25) by DBBPR08MB6217.eurprd08.prod.outlook.com (2603:10a6:10:201::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.30; Tue, 28 Feb 2023 06:43:37 +0000 Received: from AM7EUR03FT059.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:46c:cafe::57) by AS9PR07CA0029.outlook.office365.com (2603:10a6:20b:46c::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.17 via Frontend Transport; Tue, 28 Feb 2023 06:43:36 +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 AM7EUR03FT059.mail.protection.outlook.com (100.127.140.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.16 via Frontend Transport; Tue, 28 Feb 2023 06:43:36 +0000 Received: ("Tessian outbound c2bcb4c18c29:v135"); Tue, 28 Feb 2023 06:43:36 +0000 X-CR-MTA-TID: 64aa7808 Received: from 75342739dd9c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 218298F2-6D07-487F-A2A5-EDDA66D03EC1.1; Tue, 28 Feb 2023 06:43:36 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 75342739dd9c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 28 Feb 2023 06:43:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U3azHV7Vt5Az9gVqLM4LnagnmiQWGzC7tls4JKo32blb4r70KXaj/JGzJon9veXKTXNy1QprpYAsw2zBNHUAOk1F4hkFtcnKmADSUctTvK/CxYA9rONvJ+tQYfyawZ612rAmEC7LgE/cCK4yK1i+m+iV9CPoDI7WuF4JTiRb893k9Zu1FJmjrWhJQOtBPWOj9gbJ4fIJ92TGY/XKIoBCdO8m34htWpHxAfUC1Lp3TyyV7+7Xh6llTj+xeuNgTj8mN+F1v1S/vUHU6J5UqwxN3pdcs5LLfHbQ/IF9DOAAMGoUu8FNvH+Ok4xNz2pv4ojLAigYAypDCcOzt/t9J83TUA== 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=ROyPC3A/hNj1l9ktPm4sM5iaMOuKybeVwBQPv10HPkg=; b=dnGTFkzix0pYpywoINyhfgShxtdbB/Yk72om7AlJcKDbY9opz1YUefAxNq6Ht2NxZMD/8CsYuoI12EFygj9KZEh6c7ZAdA8MYjjSTYatr+3tzz4mMs8biZOgCZAZjKYYboxCHbn2H1Yr/JlQD0iDa6MF15Shrb5z6H3hHXNirtM0AVFtLSsQ01ZXPwyEw2A9bDm2j+s42GGsmy2wqY83XgN7MPBYO+lU9iyQR5FTFlhoYi1rXdgcjvVW9iZzqMpHF7LXHcd3hzF0HRxuP7wboyPNPJHD0GS2j03TOyiX4IoiGXT3HXJFxHrwhs3l5AafkSa83vNAwMEQmzvxM9a+Lw== 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=ROyPC3A/hNj1l9ktPm4sM5iaMOuKybeVwBQPv10HPkg=; b=Hhz/z+YuZgte/1J1RVYULtYTAFVqFOosABTkEdfWPm0rqTl1/aS5aOcmq0qIHo1c1IP0AoJaSMdsEUKACy2E71x6QIRxuyO9TJaFU007X4b8PmV+rx0QqLsIaTfABlJBFmOWJzT8T54QrH0KCNM+eX4nSr5fLpYVwjewD9VlM6w= Received: from AS8PR08MB7718.eurprd08.prod.outlook.com (2603:10a6:20b:50a::22) by AS8PR08MB6151.eurprd08.prod.outlook.com (2603:10a6:20b:290::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.30; Tue, 28 Feb 2023 06:43:26 +0000 Received: from AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::ea79:a12:9734:b23c]) by AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::ea79:a12:9734:b23c%6]) with mapi id 15.20.6134.030; Tue, 28 Feb 2023 06:43:26 +0000 From: Feifei Wang To: Ferruh Yigit CC: "dev@dpdk.org" , nd , "thomas@monjalon.net" , Andrew Rybchenko , Qi Zhang , Beilei Xing , Konstantin Ananyev , "konstantin.ananyev@huawei.com" , Ruifeng Wang , Honnappa Nagarahalli , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , nd Subject: =?utf-8?B?5Zue5aSNOiDlm57lpI06IFtSRkMgUEFUQ0ggdjEgMC80XSBEaXJlY3QgcmUt?= =?utf-8?Q?arming_of_buffers_on_receive_side?= Thread-Topic: =?utf-8?B?5Zue5aSNOiBbUkZDIFBBVENIIHYxIDAvNF0gRGlyZWN0IHJlLWFybWluZyBv?= =?utf-8?Q?f_buffers_on_receive_side?= Thread-Index: AQHX+OXL0/3WCFLkok2nEUqHvb9dm6xEk/8AgALhW2CAIZ96gIJ9NIBA Date: Tue, 28 Feb 2023 06:43:26 +0000 Message-ID: References: <20211224164613.32569-1-feifei.wang2@arm.com> <98CBD80474FA8B44BF855DF32C47DC35D86DAF@smartserver.smartshare.dk> <996c2239-1a3f-2fbd-d8af-40c3e17f375a@intel.com> In-Reply-To: <996c2239-1a3f-2fbd-d8af-40c3e17f375a@intel.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 3DF2A085D7D7FB40A41ECBD102ABCF9D.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_|AS8PR08MB6151:EE_|AM7EUR03FT059:EE_|DBBPR08MB6217:EE_ X-MS-Office365-Filtering-Correlation-Id: c0dbfe5c-0e1f-49ba-7cc9-08db19571e99 x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr 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: 2uCVkHhfSa46IpYuLJt6bC6CrhQbyC/0copLHTBwd8kNBRSSRfzxR47CGQhuyhWG1h999NQb3ndDxWD4r6t1GEov8WHi47M1oK0Y7JAuGzeD0qomjt+ecixLZwev8pEuhfdqc7ypmQ7qOy/ulbWYciSMfEhCradLGToLe4fhEQvctcfWILGPF4HryZIgsoKmeqliTpvngVf/pleTwOC9q7Zh+XjwbrwQUlyDlyZmxoC2eVcML2TKQqx9TWNYt1v2lxD6xrqNfouIubzX277c8kBiYgPutrRxKxsIZMdG834Hoy2CN0kgj4LMbkDQ5elMciOBPYXbLPoShldg46b95nj1npCfFopPI9hRDixlJaNvyZYYCifCw+Y8YM5C304DJuFwnn17wrqCbzjECDFhS6eETlzPrkUNN6aRGnwr+Lle9aLJjsrEbC5Zt+X+5e9EklvUPJVTamP/MymYqt+YpTs2yQYnH3lIOtaiKVGYazBhQZ/bSSsfSHTrATVA4pCgyVSUMXXhH3dN8s3x363vHT+crDzyo808ht14GY0CCjTE3LsAm72sWUSd0dYpyB8f/Yko7fcRkwuJAn2bjbZXP49yfOwjC+oYzuYsHh1lUklgSb4tZN/q3WsTZp0U/ghHEPKhUn1yVOM3Tu8hlz/iZtS1ryYv61EeelWnfP41o5WKJ/rZYmhMv28Lg+od6Sna+mRmzh/WgDy5hRYrhagqEaMCpnwueJM+Tf5RJBDZtvIMWL3RFQl7XJ0j2Tn6pQPh0199PIPrKfrWiD6XXiICD0npfigPL2fe1cs6B/DqewA= 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)(39860400002)(376002)(366004)(396003)(346002)(136003)(451199018)(38070700005)(4326008)(38100700002)(122000001)(33656002)(86362001)(224303003)(2906002)(52536014)(30864003)(8936002)(41300700001)(66556008)(64756008)(55016003)(66446008)(66946007)(66476007)(5660300002)(6916009)(76116006)(9686003)(6506007)(186003)(26005)(83380400001)(66574015)(53546011)(478600001)(316002)(7696005)(71200400001)(966005)(54906003)(473944003)(414714003); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6151 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: AM7EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 9dae43ab-320a-423c-884c-08db1957187b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 25Iudw7nu98KJsfBh0eC5Jk1Ai/snzsdvMVcMm/unCxAQVqGPcIItpVN6F+1vih2d5V0SLvJeVGVTQyuxv640xM0SwyGdDm03nv/2d8Vbj5Hbs7+pHU2x2bwUjniKqtjCCRM0+n248VvJ6uKOHX9kL878AoGXmaxNFM1al/e4TyO5C9Nsy4tlfUBwOETfxaSI3v5bTdgJITeCxB3hyWRikehsDPJRcV8uaYFEVk7ZyG495R11hkShz9Od0ZU7e1sVkEakGMDMz5BlIFwK4n19LQ85a5GH2lkSYYN2uxX+PGvIZwUvYPLrlQ8Pb/Tqy30of+9jxrImIRyvW8vhyTZY7qWq409uVIDyq/4FnGU9GLLXsMgWcuQRltDZ43UIWe3mZKiEz1iKc02WUGEgkoR99HtdOtOAP5W6xMuZsBMIJjCJXPzptpcot065KYSM0PUWDn0yphFxc4txTwIOeSZFnnX/tY1g8eVwrOKNfHjuc6+5ZkcPDsJBOCRoLxO+H4rvaCx6CGsgxRlknX9sakBJppuRyY0vWPnSqxDfxwIIKgQysJOOy5DG5vAr4tJ8wQ/ShG2jYOOQtA6aT99d8XDNJ/o6ZjmD/HDvOtyaKRClNCYZKUR3b0hUg8b7JbJB2FR0GTBIhuqAnPYSq4Gi/68Xu5Hc0xQsg1jynuhOEA+8d0hB/MZxW1sIUchpy8DOXTh5JQg+mdgrPo1py+zgbA+uWEWmKhH2vrVtKGlenwKnAg4gZkgsy28AIJVycoNNHUk4Z6LKt8YNNQjVObxfV/A/m91Z5jfgS50GjeZXC/3Lzg= 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)(376002)(346002)(136003)(396003)(39860400002)(451199018)(40470700004)(46966006)(36840700001)(36860700001)(356005)(82740400003)(52536014)(81166007)(86362001)(33656002)(224303003)(2906002)(4326008)(8936002)(55016003)(41300700001)(40480700001)(6862004)(5660300002)(30864003)(70206006)(54906003)(70586007)(82310400005)(9686003)(26005)(53546011)(6506007)(186003)(336012)(83380400001)(47076005)(40460700003)(66574015)(7696005)(478600001)(316002)(966005)(414714003)(473944003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2023 06:43:36.8500 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c0dbfe5c-0e1f-49ba-7cc9-08db19571e99 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: AM7EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6217 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 SGksIEZlcnJ1aA0KDQpUaGlzIGVtYWlsIHN1bW1hcml6ZXMgb3VyIGxhdGVzdCBpbXByb3ZlbWVu dCB3b3JrIGZvciBkaXJlY3QtcmVhcm0gYW5kDQpob3BlIGl0IGNhbiBmaXggc29tZSBjb25jZXJu cyBhYm91dCBkaXJlY3QtcmVhcm0uDQoNCkJlc3QgUmVnYXJkcw0KRmVpZmVpDQoNCj4gLS0tLS3p gq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0 QGludGVsLmNvbT4NCj4g5Y+R6YCB5pe26Ze0OiBUdWVzZGF5LCBKYW51YXJ5IDE4LCAyMDIyIDEx OjUyIFBNDQo+IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPjsg TW9ydGVuIEJyw7hydXANCj4gPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4g5oqE6YCBOiBk ZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldDsgQW5kcmV3 DQo+IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+OyBRaSBaaGFuZw0K PiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBCZWlsZWkgWGluZyA8YmVpbGVpLnhpbmdAaW50ZWwu Y29tPg0KPiDkuLvpopg6IFJlOiDlm57lpI06IFtSRkMgUEFUQ0ggdjEgMC80XSBEaXJlY3QgcmUt YXJtaW5nIG9mIGJ1ZmZlcnMgb24gcmVjZWl2ZQ0KPiBzaWRlDQo+IA0KPiBPbiAxMi8yOC8yMDIx IDY6NTUgQU0sIEZlaWZlaSBXYW5nIHdyb3RlOg0KPiA+IFRoYW5rcyBmb3IgeW91ciBjb21tZW50 cy4NCj4gPg0KPiA+PiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4+IOWPkeS7tuS6ujogTW9y dGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPj4g5Y+R6YCB5pe26Ze0 OiBTdW5kYXksIERlY2VtYmVyIDI2LCAyMDIxIDY6MjUgUE0NCj4gPj4g5pS25Lu25Lq6OiBGZWlm ZWkgV2FuZyA8RmVpZmVpLldhbmcyQGFybS5jb20+DQo+ID4+IOaKhOmAgTogZGV2QGRwZGsub3Jn OyBuZCA8bmRAYXJtLmNvbT4NCj4gPj4g5Li76aKYOiBSRTogW1JGQyBQQVRDSCB2MSAwLzRdIERp cmVjdCByZS1hcm1pbmcgb2YgYnVmZmVycyBvbiByZWNlaXZlDQo+ID4+IHNpZGUNCj4gPj4NCj4g Pj4+IEZyb206IEZlaWZlaSBXYW5nIFttYWlsdG86ZmVpZmVpLndhbmcyQGFybS5jb21dDQo+ID4+ PiBTZW50OiBGcmlkYXksIDI0IERlY2VtYmVyIDIwMjEgMTcuNDYNCj4gPj4+DQo+ID4+PiBDdXJy ZW50bHksIHRoZSB0cmFuc21pdCBzaWRlIGZyZWVzIHRoZSBidWZmZXJzIGludG8gdGhlIGxjb3Jl IGNhY2hlDQo+ID4+PiBhbmQgdGhlIHJlY2VpdmUgc2lkZSBhbGxvY2F0ZXMgYnVmZmVycyBmcm9t IHRoZSBsY29yZSBjYWNoZS4gVGhlDQo+ID4+PiB0cmFuc21pdCBzaWRlIHR5cGljYWxseSBmcmVl cyAzMiBidWZmZXJzIHJlc3VsdGluZyBpbiAzMio4PTI1NkIgb2YNCj4gPj4+IHN0b3JlcyB0byBs Y29yZSBjYWNoZS4gVGhlIHJlY2VpdmUgc2lkZSBhbGxvY2F0ZXMgMzIgYnVmZmVycyBhbmQNCj4g Pj4+IHN0b3JlcyB0aGVtIGluIHRoZSByZWNlaXZlIHNpZGUgc29mdHdhcmUgcmluZywgcmVzdWx0 aW5nIGluDQo+ID4+PiAzMio4PTI1NkIgb2Ygc3RvcmVzIGFuZCAyNTZCIG9mIGxvYWQgZnJvbSB0 aGUgbGNvcmUgY2FjaGUuDQo+ID4+Pg0KPiA+Pj4gVGhpcyBwYXRjaCBwcm9wb3NlcyBhIG1lY2hh bmlzbSB0byBhdm9pZCBmcmVlaW5nIHRvL2FsbG9jYXRpbmcgZnJvbQ0KPiA+Pj4gdGhlIGxjb3Jl IGNhY2hlLiBpLmUuIHRoZSByZWNlaXZlIHNpZGUgd2lsbCBmcmVlIHRoZSBidWZmZXJzIGZyb20N Cj4gPj4+IHRyYW5zbWl0IHNpZGUgZGlyZWN0bHkgaW50byBpdCdzIHNvZnR3YXJlIHJpbmcuIFRo aXMgd2lsbCBhdm9pZCB0aGUNCj4gPj4+IDI1NkIgb2YgbG9hZHMgYW5kIHN0b3JlcyBpbnRyb2R1 Y2VkIGJ5IHRoZSBsY29yZSBjYWNoZS4gSXQgYWxzbw0KPiA+Pj4gZnJlZXMgdXAgdGhlIGNhY2hl IGxpbmVzIHVzZWQgYnkgdGhlIGxjb3JlIGNhY2hlLg0KPiA+Pj4NCj4gPj4+IEhvd2V2ZXIsIHRo aXMgc29sdXRpb24gcG9zZXMgc2V2ZXJhbCBjb25zdHJhaW50Og0KPiA+Pj4NCj4gPj4+IDEpVGhl IHJlY2VpdmUgcXVldWUgbmVlZHMgdG8ga25vdyB3aGljaCB0cmFuc21pdCBxdWV1ZSBpdCBzaG91 bGQNCj4gPj4+IHRha2UgdGhlIGJ1ZmZlcnMgZnJvbS4gVGhlIGFwcGxpY2F0aW9uIGxvZ2ljIGRl Y2lkZXMgd2hpY2ggdHJhbnNtaXQNCj4gPj4+IHBvcnQgdG8gdXNlIHRvIHNlbmQgb3V0IHRoZSBw YWNrZXRzLiBJbiBtYW55IHVzZSBjYXNlcyB0aGUgTklDIG1pZ2h0DQo+ID4+PiBoYXZlIGEgc2lu Z2xlIHBvcnQgKFsxXSwgWzJdLCBbM10pLCBpbiB3aGljaCBjYXNlIGEgZ2l2ZW4gdHJhbnNtaXQN Cj4gPj4+IHF1ZXVlIGlzIGFsd2F5cyBtYXBwZWQgdG8gYSBzaW5nbGUgcmVjZWl2ZSBxdWV1ZSAo MToxIFJ4IHF1ZXVlOiBUeA0KPiA+Pj4gcXVldWUpLiBUaGlzIGlzIGVhc3kgdG8gY29uZmlndXJl Lg0KPiA+Pj4NCj4gPj4+IElmIHRoZSBOSUMgaGFzIDIgcG9ydHMgKHRoZXJlIGFyZSBzZXZlcmFs IHJlZmVyZW5jZXMpLCB0aGVuIHdlIHdpbGwNCj4gPj4+IGhhdmUNCj4gPj4+IDE6MiAoUlggcXVl dWU6IFRYIHF1ZXVlKSBtYXBwaW5nIHdoaWNoIGlzIHN0aWxsIGVhc3kgdG8gY29uZmlndXJlLg0K PiA+Pj4gSG93ZXZlciwgaWYgdGhpcyBpcyBnZW5lcmFsaXplZCB0byAnTicgcG9ydHMsIHRoZSBj b25maWd1cmF0aW9uIGNhbg0KPiA+Pj4gYmUgbG9uZy4gTW9yZSBvdmVyIHRoZSBQTUQgd291bGQg aGF2ZSB0byBzY2FuIGEgbGlzdCBvZiB0cmFuc21pdA0KPiA+Pj4gcXVldWVzIHRvIHB1bGwgdGhl IGJ1ZmZlcnMgZnJvbS4NCj4gPj4NCj4gPj4gSSBkaXNhZ3JlZSB3aXRoIHRoZSBkZXNjcmlwdGlv biBvZiB0aGlzIGNvbnN0cmFpbnQuDQo+ID4+DQo+ID4+IEFzIEkgdW5kZXJzdGFuZCBpdCwgaXQg ZG9lc24ndCBtYXR0ZXIgbm93IG1hbnkgcG9ydHMgb3IgcXVldWVzIGFyZSBpbg0KPiA+PiBhIE5J QyBvciBzeXN0ZW0uDQo+ID4+DQo+ID4+IFRoZSBjb25zdHJhaW50IGlzIG1vcmUgbmFycm93Og0K PiA+Pg0KPiA+PiBUaGlzIHBhdGNoIHJlcXVpcmVzIHRoYXQgYWxsIHBhY2tldHMgaW5ncmVzc2lu ZyBvbiBzb21lIHBvcnQvcXVldWUNCj4gPj4gbXVzdCBlZ3Jlc3Mgb24gdGhlIHNwZWNpZmljIHBv cnQvcXVldWUgdGhhdCBpdCBoYXMgYmVlbiBjb25maWd1cmVkIHRvDQo+ID4+IHJlYW0gaXRzIGJ1 ZmZlcnMgZnJvbS4gSS5lLiBhbiBhcHBsaWNhdGlvbiBjYW5ub3Qgcm91dGUgcGFja2V0cw0KPiA+ PiBiZXR3ZWVuIG11bHRpcGxlIHBvcnRzIHdpdGggdGhpcyBwYXRjaC4NCj4gPg0KPiA+IEZpcnN0 LCBJIGFncmVlIHdpdGggdGhhdCBkaXJlY3QtcmVhcm0gbW9kZSBpcyBzdWl0YWJsZSBmb3IgdGhl IGNhc2UNCj4gPiB0aGF0IHVzZXIgc2hvdWxkIGtub3cgdGhlIGRpcmVjdGlvbiBvZiB0aGUgZmxv dyBpbiBhZHZhbmNlIGFuZCBtYXANCj4gPiByeC90eCB3aXRoIGVhY2ggb3RoZXIuIEl0IGlzIG5v dCBzdWl0YWJsZSBmb3IgdGhlIG5vcm1hbCBwYWNrZXQgcmFuZG9tIHJvdXRlDQo+IGNhc2UuDQo+ ID4NCj4gPiBTZWNvbmQsIG91ciBwcm9wb3NlZCB0d28gY2FzZXM6IG9uZSBwb3J0IE5JQyBhbmQg dHdvIHBvcnQgTklDIG1lYW5zDQo+ID4gdGhlIGRpcmVjdGlvbiBvZiBmbG93IGlzIGRldGVybWlu ZWQuIEZ1cnRoZXJtb3JlLCBmb3IgdHdvIHBvcnQgTklDLA0KPiA+IHRoZXJlIG1heWJlIHR3byBm bG93IGRpcmVjdGlvbnM6IGZyb20gcG9ydCAwIHRvIHBvcnQgMSwgb3IgZnJvbSBwb3J0IDANCj4g PiB0byBwb3J0IDAuIFRodXMgd2UgbmVlZCB0byBoYXZlDQo+ID4gMToyIChSeCBxdWV1ZSA6ICBU eCBxdWV1ZSkgbWFwcGluZy4NCj4gPg0KPiA+IEF0IGxhc3QsIG1heWJlIHdlIGNhbiBjaGFuZ2Ug b3VyIGRlc2NyaXB0aW9uIGFzIGZvbGxvd3M6DQo+ID4gIlRoZSBmaXJzdCBjb25zdHJhaW50IGlz IHRoYXQgdXNlciBzaG91bGQga25vdyB0aGUgZGlyZWN0aW9uIG9mIHRoZQ0KPiA+IGZsb3cgaW4g YWR2YW5jZSwgYW5kIGJhc2VkIG9uIHRoaXMsIHVzZXIgbmVlZHMgdG8gbWFwIHRoZSBSeCBhbmQg VHgNCj4gcXVldWVzIGFjY29yZGluZyB0byB0aGUgZmxvdyBkaXJlY3Rpb246DQo+ID4gRm9yIGV4 YW1wbGUsIGlmIHRoZSBOSUMganVzdCBoYXMgb25lIHBvcnQNCj4gPiAgIC4uLi4uLg0KPiA+IE9y IGlmIHRoZSBOSUMgaGF2ZSB0d28gcG9ydHMNCj4gPiAuLi4uLi4uIg0KPiA+DQo+ID4+DQo+ID4+ Pg0KPiA+Pj4gMilUaGUgb3RoZXIgZmFjdG9yIHRoYXQgbmVlZHMgdG8gYmUgY29uc2lkZXJlZCBp cyAncnVuLXRvLWNvbXBsZXRpb24nDQo+ID4+PiB2cw0KPiA+Pj4gJ3BpcGVsaW5lJyBtb2RlbHMu IEluIHRoZSBydW4tdG8tY29tcGxldGlvbiBtb2RlbCwgdGhlIHJlY2VpdmUgc2lkZQ0KPiA+Pj4g YW5kIHRoZSB0cmFuc21pdCBzaWRlIGFyZSBydW5uaW5nIG9uIHRoZSBzYW1lIGxjb3JlIHNlcmlh bGx5LiBJbiB0aGUNCj4gPj4+IHBpcGVsaW5lIG1vZGVsLiBUaGUgcmVjZWl2ZSBzaWRlIGFuZCB0 cmFuc21pdCBzaWRlIG1pZ2h0IGJlIHJ1bm5pbmcNCj4gPj4+IG9uIGRpZmZlcmVudCBsY29yZXMg aW4gcGFyYWxsZWwuIFRoaXMgcmVxdWlyZXMgbG9ja2luZy4gVGhpcyBpcyBub3QNCj4gPj4+IHN1 cHBvcnRlZCBhdCB0aGlzIHBvaW50Lg0KPiA+Pj4NCj4gPj4+IDMpVHggYW5kIFJ4IGJ1ZmZlcnMg bXVzdCBiZSBmcm9tIHRoZSBzYW1lIG1lbXBvb2wuIEFuZCB3ZSBhbHNvIG11c3QNCj4gPj4+IGVu c3VyZSBUeCBidWZmZXIgZnJlZSBudW1iZXIgaXMgZXF1YWwgdG8gUnggYnVmZmVyIGZyZWUgbnVt YmVyOg0KPiA+Pj4gKHR4cS0+dHhfcnNfdGhyZXNoID09IFJURV9JNDBFX1JYUV9SRUFSTV9USFJF U0gpIFRodXMsDQo+ICd0eF9uZXh0X2RkJw0KPiA+Pj4gY2FuIGJlIHVwZGF0ZWQgY29ycmVjdGx5 IGluIGRpcmVjdC1yZWFybSBtb2RlLiBUaGlzIGlzIGR1ZSB0bw0KPiA+Pj4gdHhfbmV4dF9kZCBp cyBhIHZhcmlhYmxlIHRvIGNvbXB1dGUgdHggc3ctcmluZyBmcmVlIGxvY2F0aW9uLg0KPiA+Pj4g SXRzIHZhbHVlIHdpbGwgYmUgb25lIG1vcmUgcm91bmQgdGhhbiB0aGUgcG9zaXRpb24gd2hlcmUg bmV4dCB0aW1lDQo+ID4+PiBmcmVlIHN0YXJ0cy4NCj4gPj4+DQo+ID4+DQo+ID4+IFlvdSBhcmUg bWlzc2luZyB0aGUgZm91cnRoIGNvbnN0cmFpbnQ6DQo+ID4+DQo+ID4+IDQpIFRoZSBhcHBsaWNh dGlvbiBtdXN0IHRyYW5zbWl0IGFsbCByZWNlaXZlZCBwYWNrZXRzIGltbWVkaWF0ZWx5LA0KPiA+ PiBpLmUuIFFvUyBxdWV1ZWluZyBhbmQgc2ltaWxhciBpcyBwcm9oaWJpdGVkLg0KPiA+Pg0KPiA+ DQo+ID4gWW91IGFyZSByaWdodCBhbmQgdGhpcyBpcyBpbmRlZWQgb25lIG9mIHRoZSBsaW1pdGF0 aW9ucy4NCj4gPg0KPiA+Pj4gQ3VycmVudCBzdGF0dXMgaW4gdGhpcyBSRkM6DQo+ID4+PiAxKUFu IEFQSSBpcyBhZGRlZCB0byBhbGxvdyBmb3IgbWFwcGluZyBhIFRYIHF1ZXVlIHRvIGEgUlggcXVl dWUuDQo+ID4+PiAgICBDdXJyZW50bHkgaXQgc3VwcG9ydHMgMToxIG1hcHBpbmcuDQo+ID4+PiAy KVRoZSBpNDBlIGRyaXZlciBpcyBjaGFuZ2VkIHRvIGRvIHRoZSBkaXJlY3QgcmUtYXJtIG9mIHRo ZSByZWNlaXZlDQo+ID4+PiAgICBzaWRlLg0KPiA+Pj4gMylMM2Z3ZCBhcHBsaWNhdGlvbiBpcyBo YWNrZWQgdG8gZG8gdGhlIG1hcHBpbmcgZm9yIHRoZSBmb2xsb3dpbmcNCj4gPj4+IGNvbW1hbmQ6 DQo+ID4+PiAgICBvbmUgY29yZSB0d28gZmxvd3MgY2FzZToNCj4gPj4+ICAgICQuL2V4YW1wbGVz L2RwZGstbDNmd2QgLW4gNCAtbCAxIC1hIDAwMDE6MDE6MDAuMCAtYSAwMDAxOjAxOjAwLjENCj4g Pj4+ICAgIC0tIC1wIDB4MyAtUCAtLWNvbmZpZz0nKDAsMCwxKSwoMSwwLDEpJw0KPiA+Pj4gICAg d2hlcmU6DQo+ID4+PiAgICBQb3J0IDAgUnggcXVldWUgMCBpcyBtYXBwZWQgdG8gUG9ydCAxIFR4 IHF1ZXVlIDANCj4gPj4+ICAgIFBvcnQgMSBSeCBxdWV1ZSAwIGlzIG1hcHBlZCB0byBQb3J0IDAg VHggcXVldWUgMA0KPiA+Pj4NCj4gPj4+IFRlc3Rpbmcgc3RhdHVzOg0KPiA+Pj4gMSlUZXN0ZWQg TDNmd2Qgd2l0aCB0aGUgYWJvdmUgY29tbWFuZDoNCj4gPj4+IFRoZSB0ZXN0aW5nIHJlc3VsdHMg Zm9yIEwzZndkIGFyZSBhcyBmb2xsb3dzOg0KPiA+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+Pj4gTjFTRFA6 DQo+ID4+PiBCYXNlIHBlcmZvcm1hbmNlKHdpdGggdGhpcyBwYXRjaCkgICB3aXRoIGRpcmVjdCBy ZS1hcm0gbW9kZSBlbmFibGVkDQo+ID4+PiAgICAgICAgMCUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKzE0LjElDQo+ID4+Pg0KPiA+Pj4gQW1wZXJlIEFsdHJhOg0KPiA+Pj4gQmFz ZSBwZXJmb3JtYW5jZSh3aXRoIHRoaXMgcGF0Y2gpICAgd2l0aCBkaXJlY3QgcmUtYXJtIG1vZGUg ZW5hYmxlZA0KPiA+Pj4gICAgICAgIDAlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsxNy4xJQ0KPiA+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+Pj4gVGhpcyBwYXRjaCBjYW4gbm90IGFmZmVj dCBwZXJmb3JtYW5jZSBvZiBub3JtYWwgbW9kZSwgYW5kIGlmIGVuYWJsZQ0KPiA+Pj4gZGlyZWN0 LXJlYXJtIG1vZGUsIHBlcmZvcm1hbmNlIGNhbiBiZSBpbXByb3ZlZCBieSAxNCUgLSAxNyUgaW4g bjFzZHANCj4gPj4+IGFuZCBhbXBlcmEtYWx0cmEuDQo+ID4+Pg0KPiA+Pj4gRmVlZGJhY2sgcmVx dWVzdGVkOg0KPiA+Pj4gMSkgSGFzIGFueW9uZSBkb25lIGFueSBzaW1pbGFyIGV4cGVyaW1lbnRz LCBhbnkgbGVzc29ucyBsZWFybnQ/DQo+ID4+PiAyKSBGZWVkYmFjayBvbiBBUEkNCj4gPj4+DQo+ ID4+PiBOZXh0IHN0ZXBzOg0KPiA+Pj4gMSkgVXBkYXRlIHRoZSBjb2RlIGZvciBzdXBwb3J0aW5n IDE6TihSeCA6IFRYKSBtYXBwaW5nDQo+ID4+PiAyKSBBdXRvbWF0ZSB0aGUgY29uZmlndXJhdGlv biBpbiBMM2Z3ZCBzYW1wbGUgYXBwbGljYXRpb24NCj4gPj4+DQo+ID4+PiBSZWZlcmVuY2U6DQo+ ID4+PiBbMV0gaHR0cHM6Ly9zdG9yZS5udmlkaWEuY29tL2VuLQ0KPiA+Pj4gdXMvbmV0d29ya2lu Zy9zdG9yZS9wcm9kdWN0L01DWDYyMzEwNUFOLQ0KPiA+Pj4NCj4gPj4NCj4gQ0RBVC9OVklESUFN Q1g2MjMxMDVBTkNEQVRDb25uZWN0WDZEeEVOQWRhcHRlckNhcmQxMDBHYkVDcnlwdA0KPiA+PiBv RGlzYWJsZWQNCj4gPj4+IC8gWzJdDQo+ID4+Pg0KPiBodHRwczovL3d3dy5pbnRlbC5jb20vY29u dGVudC93d3cvdXMvZW4vcHJvZHVjdHMvc2t1LzE5MjU2MS9pbnRlbC0NCj4gPj4+IGV0aGVybmV0 LW5ldHdvcmstYWRhcHRlci1lODEwY3FkYTEvc3BlY2lmaWNhdGlvbnMuaHRtbA0KPiA+Pj4gWzNd IGh0dHBzOi8vd3d3LmJyb2FkY29tLmNvbS9wcm9kdWN0cy9ldGhlcm5ldC0NCj4gPj4gY29ubmVj dGl2aXR5L25ldHdvcmstDQo+ID4+PiBhZGFwdGVycy8xMDBnYi1uaWMtb2NwL24xMTAwZw0KPiA+ Pj4NCj4gPj4+IEZlaWZlaSBXYW5nICg0KToNCj4gPj4+ICAgIG5ldC9pNDBlOiBlbmFibGUgZGly ZWN0IHJlLWFybSBtb2RlDQo+ID4+PiAgICBldGhkZXY6IGFkZCBBUEkgZm9yIGRpcmVjdCByZS1h cm0gbW9kZQ0KPiA+Pj4gICAgbmV0L2k0MGU6IGFkZCBkaXJlY3QgcmUtYXJtIG1vZGUgaW50ZXJu YWwgQVBJDQo+ID4+PiAgICBleGFtcGxlcy9sM2Z3ZDogZ2l2ZSBhbiBleGFtcGxlIGZvciBkaXJl Y3QgcmVhcm0gbW9kZQ0KPiA+Pj4NCj4gPj4+ICAgZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jICAgICAgICB8ICAzNCArKysrKysNCj4gPj4+ICAgZHJpdmVycy9uZXQvaTQwZS9pNDBlX3J4 dHguaCAgICAgICAgICB8ICAgNCArDQo+ID4+PiAgIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4 X3ZlY19uZW9uLmMgfCAxNDkNCj4gPj4gKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPj4+ ICAgZXhhbXBsZXMvbDNmd2QvbWFpbi5jICAgICAgICAgICAgICAgICB8ICAgMyArDQo+ID4+PiAg IGxpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oICAgICAgICAgICAgfCAgMTUgKysrDQo+ID4+PiAg IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5jICAgICAgICAgICAgICAgfCAgMTQgKysrDQo+ID4+PiAg IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oICAgICAgICAgICAgICAgfCAgMzEgKysrKysrDQo+ID4+ PiAgIGxpYi9ldGhkZXYvdmVyc2lvbi5tYXAgICAgICAgICAgICAgICAgfCAgIDMgKw0KPiA+Pj4g ICA4IGZpbGVzIGNoYW5nZWQsIDI1MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+ Pj4NCj4gPj4+IC0tDQo+ID4+PiAyLjI1LjENCj4gPj4+DQo+ID4+DQo+ID4+IFRoZSBwYXRjaCBw cm92aWRlcyBhIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LCBidXQgSSBhbQ0K PiA+PiB3b25kZXJpbmcgaWYgYW55IHJlYWwgd29ybGQgYXBwbGljYXRpb25zIGV4aXN0IHRoYXQg d291bGQgdXNlIHRoaXMuDQo+ID4+IE9ubHkgYSAicm91dGVyIG9uIGEgc3RpY2siIChpLmUuIGEg c2luZ2xlLXBvcnQgcm91dGVyKSBjb21lcyB0byBteQ0KPiA+PiBtaW5kLCBhbmQgdGhhdCBpcyBw cm9iYWJseSBzdWZmaWNpZW50IHRvIGNhbGwgaXQgdXNlZnVsIGluIHRoZSByZWFsDQo+ID4+IHdv cmxkLiBEbyB5b3UgaGF2ZSBhbnkgb3RoZXIgZXhhbXBsZXMgdG8gc3VwcG9ydCB0aGUgdXNlZnVs bmVzcyBvZiB0aGlzDQo+IHBhdGNoPw0KPiA+Pg0KPiA+IE9uZSBjYXNlIEkgaGF2ZSBpcyBhYm91 dCBuZXR3b3JrIHNlY3VyaXR5LiBGb3IgbmV0d29yayBmaXJld2FsbCwgYWxsDQo+ID4gcGFja2V0 cyBuZWVkIHRvIGluZ3Jlc3Mgb24gdGhlIHNwZWNpZmllZCBwb3J0IGFuZCBlZ3Jlc3Mgb24gdGhl IHNwZWNpZmllZA0KPiBwb3J0IHRvIGRvIHBhY2tldCBmaWx0ZXJpbmcuDQo+ID4gSW4gdGhpcyBj YXNlLCB3ZSBjYW4ga25vdyBmbG93IGRpcmVjdGlvbiBpbiBhZHZhbmNlLg0KPiA+DQo+IA0KPiBJ IGFsc28gaGF2ZSBzb21lIGNvbmNlcm5zIG9uIGhvdyB1c2VmdWwgdGhpcyBBUEkgd2lsbCBiZSBp biByZWFsIGxpZmUsIGFuZCBkb2VzDQo+IHRoZSB1c2UgY2FzZSB3b3J0aCB0aGUgY29tcGxleGl0 eSBpdCBicmluZ3MuDQo+IEFuZCBpdCBsb29rcyB0b28gbXVjaCBsb3cgbGV2ZWwgZGV0YWlsIGZv ciB0aGUgYXBwbGljYXRpb24uDQoNCkNvbmNlcm5zIG9mIGRpcmVjdCByZWFybToNCjEuIEVhcmxp ZXIgdmVyc2lvbiBvZiB0aGUgZGVzaWduIHJlcXVpcmVkIHRoZSByeHEvdHhxIHBhaXJpbmcgdG8g YmUgZG9uZSBiZWZvcmUNCnN0YXJ0aW5nIHRoZSBkYXRhIHBsYW5lIHRocmVhZHMuIFRoaXMgcmVx dWlyZWQgdGhlIHVzZXIgdG8ga25vdyB0aGUgZGlyZWN0aW9uDQpvZiB0aGUgcGFja2V0IGZsb3cg aW4gYWR2YW5jZS4gVGhpcyBsaW1pdGVkIHRoZSB1c2UgY2FzZXMuDQoNCkluIHRoZSBsYXRlc3Qg dmVyc2lvbiwgZGlyZWN0LXJlYXJtIG1vZGUgaXMgcGFja2FnZWQgYXMgYSBzZXBhcmF0ZSBBUEku IA0KVGhpcyBhbGxvd3MgZm9yIHRoZSB1c2VycyB0byBjaGFuZ2UgcnhxL3R4cSBwYWlyaW5nIGlu IHJlYWwgdGltZSBpbiBkYXRhIHBsYW5lLA0KYWNjb3JkaW5nIHRvIHRoZSBhbmFseXNpcyBvZiB0 aGUgcGFja2V0IGZsb3cgYnkgdGhlIGFwcGxpY2F0aW9uLCBmb3IgZXhhbXBsZToNCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KU3RlcCAxOiB1cHBl ciBhcHBsaWNhdGlvbiBhbmFseXNlIHRoZSBmbG93IGRpcmVjdGlvbg0KU3RlcCAyOiByeHFfcmVh cm1fZGF0YSA9IHJ0ZV9ldGhfcnhfZ2V0X3JlYXJtX2RhdGEocnhfcG9ydGlkLCByeF9xdWV1ZWlk KQ0KU3RlcCAzOiBydGVfZXRoX2Rldl9kaXJlY3RfcmVhcm0ocnhfcG9ydGlkLCByeF9xdWV1ZWlk LCB0eF9wb3J0aWQsIHR4X3F1ZXVlaWQsIHJ4cV9yZWFybV9kYXRhKTsNClN0ZXAgNDogcnRlX2V0 aF9yeF9idXJzdChyeF9wb3J0aWQscnhfcXVldWVpZCk7DQpTdGVwIDU6IHJ0ZV9ldGhfdHhfYnVy c3QodHhfcG9ydGlkLHR4X3F1ZXVlaWQpOw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpBYm92ZSBjYW4gc3VwcG9ydCB1c2VyIHRvIGNoYW5nZSBy eHEvdHhxIHBhaXJpbmcgIGF0IHJ1bnRpbWUgYW5kIHVzZXIgZG9lcyBub3QgbmVlZCB0bw0Ka25v dyB0aGUgZGlyZWN0aW9uIG9mIGZsb3cgaW4gYWR2YW5jZS4gVGhpcyBjYW4gZWZmZWN0aXZlbHkg ZXhwYW5kIGRpcmVjdC1yZWFybQ0KdXNlIHNjZW5hcmlvcy4NCg0KMi4gRWFybGllciB2ZXJzaW9u IG9mIGRpcmVjdCByZWFybSB3YXMgYnJlYWtpbmcgdGhlIGluZGVwZW5kZW5jZSBiZXR3ZWVuIHRo ZSBSWCBhbmQgVFggcGF0aC4NCkluIHRoZSBsYXRlc3QgdmVyc2lvbiwgd2UgdXNlIGEgc3RydWN0 dXJlIHRvIGxldCBSeCBhbmQgVHggaW50ZXJhY3QsIGZvciBleGFtcGxlOg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCnN0cnVjdCBydGVfZXRoX3J4cV9yZWFybV9kYXRhIHsNCiAgICAgICBzdHJ1Y3QgcnRl X21idWYgKipidWZfcmluZzsgLyoqPCBCdWZmZXIgcmluZyBvZiBSeCBxdWV1ZS4gKi8NCiAgICAg ICB1aW50MTZfdCAqcmVmaWxsX2hlYWQ7ICAgICAgICAgICAgLyoqPCBIZWFkIG9mIGJ1ZmZlciBy aW5nIHJlZmlsbGluZyBkZXNjcmlwdG9ycy4gKi8NCiAgICAgICB1aW50MTZfdCAqcmVjZWl2ZV90 YWlsOyAgICAgICAgICAvKio8IFRhaWwgb2YgYnVmZmVyIHJpbmcgcmVjZWl2aW5nIHBrdHMuICov DQogICAgICAgdWludDE2X3QgbmJfYnVmOyAgICAgICAgICAgICAgICAgICAgLyoqPCBjb25maWd1 cmVkIG51bWJlciBvZiBidWZmZXIgcmluZy4gKi8NCn0gIHJ4cV9yZWFybV9kYXRhOw0KDQpkYXRh IHBhdGg6DQoJLyogR2V0IGRpcmVjdC1yZWFybSBpbmZvIGZvciBhIHJlY2VpdmUgcXVldWUgb2Yg YW4gRXRoZXJuZXQgZGV2aWNlLiAqLw0KCXJ4cV9yZWFybV9kYXRhID0gcnRlX2V0aF9yeF9nZXRf cmVhcm1fZGF0YShyeF9wb3J0aWQsIHJ4X3F1ZXVlaWQpOw0KCXJ0ZV9ldGhfZGV2X2RpcmVjdF9y ZWFybShyeF9wb3J0aWQsIHJ4X3F1ZXVlaWQsIHR4X3BvcnRpZCwgdHhfcXVldWVpZCwgcnhxX3Jl YXJtX2RhdGEpIHsNCg0KCQkvKiAgVXNpbmcgVHggdXNlZCBidWZmZXIgdG8gcmVmaWxsIFJ4IGJ1 ZmZlciByaW5nIGluIGRpcmVjdCByZWFybSBtb2RlICovDQoJCW5iX3JlYXJtID0gcnRlX2V0aF90 eF9maWxsX3N3X3JpbmcodHhfcG9ydGlkLCB0eF9xdWV1ZWlkLCByeHFfcmVhcm1fZGF0YSApOw0K DQoJCS8qIEZsdXNoIFJ4IGRlc2NyaXB0b3IgaW4gZGlyZWN0IHJlYXJtIG1vZGUgKi8NCgkJcnRl X2V0aF9yeF9mbHVzaF9kZXNjcyhyeF9wb3J0aWQsIHJ4X3F1ZXVpZCwgbmJfcmVhcm0pIDsNCgl9 DQoJcnRlX2V0aF9yeF9idXJzdChyeF9wb3J0aWQscnhfcXVldWVpZCk7DQoJcnRlX2V0aF90eF9i dXJzdCh0eF9wb3J0aWQsdHhfcXVldWVpZCk7DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRnVydGhlcm1v cmUsIHRoaXMgbGV0IGRpcmVjdC1yZWFybSB1c2FnZSBubyBsb25nZXIgbGltaXRlZCB0byB0aGUg c2FtZSBwbWQsDQppdCBjYW4gc3VwcG9ydCBtb3ZpbmcgYnVmZmVycyBiZXR3ZWVuIGRpZmZlcmVu dCB2ZW5kb3IgcG1kcywgZXZlbiBjYW4gcHV0IHRoZSBidWZmZXINCmFueXdoZXJlIGludG8geW91 ciBSeCBidWZmZXIgcmluZyBhcyBsb25nIGFzIHRoZSBhZGRyZXNzIG9mIHRoZSBidWZmZXIgcmlu ZyBjYW4gYmUgcHJvdmlkZWQuDQpJbiB0aGUgbGF0ZXN0IHZlcnNpb24sIHdlIGVuYWJsZSBkaXJl Y3QtcmVhcm0gaW4gaTQwZSBwbWQgYW5kIGl4Z2JlIHBtZCwgYW5kIGFsc28gdHJ5IHRvDQp1c2Ug aTQwZSBkcml2ZXIgaW4gUngsIGl4Z2JlIGRyaXZlciBpbiBUeCwgYW5kIHRoZW4gYWNoaWV2ZSA3 LTklIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50DQpieSBkaXJlY3QtcmVhcm0uDQoNCjMuIERpZmZl cmVuY2UgYmV0d2VlbiBkaXJlY3QgcmVhcm0sIFpDIEFQSSB1c2VkIGluIG1lbXBvb2wgIGFuZCBn ZW5lcmFsIHBhdGgNCkZvciBnZW5lcmFsIHBhdGg6IA0KICAgICAgICAgICAgICAgIFJ4OiAzMiBw a3RzIG1lbWNweSBmcm9tIG1lbXBvb2wgY2FjaGUgdG8gcnhfc3dfcmluZw0KICAgICAgICAgICAg ICAgIFR4OiAzMiBwa3RzIG1lbWNweSBmcm9tIHR4X3N3X3JpbmcgdG8gdGVtcG9yYXJ5IHZhcmlh YmxlICsgMzIgcGt0cyBtZW1jcHkgZnJvbSB0ZW1wb3JhcnkgdmFyaWFibGUgdG8gbWVtcG9vbCBj YWNoZQ0KRm9yIFpDIEFQSSB1c2VkIGluIG1lbXBvb2w6DQogICAgICAgICAgICAgICAgUng6IDMy IHBrdHMgbWVtY3B5IGZyb20gbWVtcG9vbCBjYWNoZSB0byByeF9zd19yaW5nDQogICAgICAgICAg ICAgICAgVHg6IDMyIHBrdHMgbWVtY3B5IGZyb20gdHhfc3dfcmluZyB0byB6ZXJvLWNvcHkgbWVt cG9vbCBjYWNoZQ0KICAgICAgICAgICAgICAgIFJlZmVyIGxpbms6IGh0dHA6Ly9wYXRjaGVzLmRw ZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDIzMDIyMTA1NTIwNS4yMjk4NC0yLWthbWFsYWtz aGl0aGEuYWxpZ2VyaUBhcm0uY29tLw0KRm9yIGRpcmVjdF9yZWFybToNCiAgICAgICAgICAgICAg ICBSeC9UeDogMzIgcGt0cyBtZW1jcHkgZnJvbSB0eF9zd19yaW5nIHRvIHJ4X3N3X3JpbmcNClRo dXMgd2UgY2FuIHNlZSBpbiB0aGUgb25lIGxvb3AsIGNvbXBhcmVkIHRvIGdlbmVyYWwgcGF0aCBk aXJlY3QgcmVhcm0gcmVkdWNlIDMyKzMyPTY0IHBrdHMgbWVtY3B5Ow0KQ29tcGFyZWQgdG8gWkMg QVBJIHVzZWQgaW4gbWVtcG9vbCwgd2UgY2FuIHNlZSBkaXJlY3QgcmVhcm0gcmVkdWNlIDMyIHBr dHMgbWVtY3B5IGluIGVhY2ggbG9vcC4NClNvLCBkaXJlY3RfcmVhcm0gaGFzIGl0cyBvd24gYmVu ZWZpdHMuDQoNCjQuIFBlcmZvcm1hbmNlIHRlc3QgYW5kIHJlYWwgY2FzZXMNCkZvciBwZXJmb3Jt YW5jZSB0ZXN0LCBpbiBsM2Z3ZCwgd2UgYWNoaWV2ZSB0aGUgcGVyZm9ybWFuY2UgaW1wcm92ZW1l bnQgb2YgdXAgdG8gMTUlIGluIEFybSBzZXJ2ZXIuDQpGb3IgcmVhbCBjYXNlcywgd2UgaGF2ZSBl bmFibGVkIGRpcmVjdC1yZWFybSBpbiB2cHAgYW5kIGFjaGlldmVkIHBlcmZvcm1hbmNlIGltcHJv dmVtZW50Lg0KDQo+IA0KPiBjYydlZCBhIGZldyBtb3JlIGZvbGtzIGZvciBjb21tZW50Lg0KPiAN Cj4gPj4gQW55d2F5LCB0aGUgcGF0Y2ggZG9lc24ndCBkbyBhbnkgaGFybSBpZiB1bnVzZWQsIGFu ZCB0aGUgb25seQ0KPiA+PiBwZXJmb3JtYW5jZSBjb3N0IGlzIHRoZSAiaWYgKHJ4cS0+ZGlyZWN0 X3J4cmVhcm1fZW5hYmxlKSIgYnJhbmNoIGluDQo+ID4+IHRoZSBFdGhkZXYgZHJpdmVyLiBTbyBJ IGRvbid0IG9wcG9zZSB0byBpdC4NCj4gPj4NCj4gPg0KDQo=