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 377E6A0546; Wed, 7 Apr 2021 04:41:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1ED8F141042; Wed, 7 Apr 2021 04:41:57 +0200 (CEST) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-eopbgr760080.outbound.protection.outlook.com [40.107.76.80]) by mails.dpdk.org (Postfix) with ESMTP id EB0BA407FF for ; Wed, 7 Apr 2021 04:41:55 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cku4v4kjFlNmV/vw9nKzKNepzmOXRnSm5bSdr7RtWicNZ1IewN+gHWg3HY63hXM/pWsvMZee51n1J7ldQ/1Ccdf6O2/MmUYq2ARGaDpPrv4RSrinSK6ny4Msfy3lHgPvKPm8de6nckU492UvlqTgyJTasUoCYHdKNKOt9KTWuXNewRrJbG/bk1LpUG4EFQ6CATARtQ4ITM/4NJHsXWTJJudYuMxUHdr8bsbM+X64aPhczRo4UNmHsXw5GFLeDqJkz9eDj0RHUpazScsU5u1Mvlsf/WEyoigjxhd6cM/mbyFR4XFGGB+5yERRixfF0ySpBV+hmM9k3xs2JLQ61mamrw== 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=SluS+NQiWsSvMkd1POrV+h30lc26/RaGXFhj9lU2VZQ=; b=WG7IjuR76SlnFvL2fMZrutM95XZiZBlLVIoZDA1B85nDmfY3goJxdDh+J2WVmEpzMTbCB6MY0uYlKtKapgFyb309ToqxGRhjJu8U2YHs/o8jXY95iPubTHrENOx4MtpqqU86434Solw8FIU+yGiW45P9MEO+FgCtWcZ0vRKRBsOPOYMLK4QwUyQG/z/NhLW7Tv58JAEo0fszmkgNuOE8g8ClBIpU4Am8SDLnwMSNxDEurl1T9a5mKnjJ2Z1qeKPpYIrekmNSUaONQCPbyfDQjHn1XZqsNy3hU12kBXgWaS2QeaZTy13N43cDtXmWK9Z7G+cTYmZNF57ykNOUTd0mWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SluS+NQiWsSvMkd1POrV+h30lc26/RaGXFhj9lU2VZQ=; b=Yf/vkIODT8cJe1q5TFmDHs9jsJymcuBo9ry4xrfEZjgnBpgTLPz+IcvgyTGBv9PGshY75/kqzS/Di2I94ednB1UfV7fN/drOgq8dx1DwziswIpemyzXyV3DFWPUHB8G+NZPp3478yvSaXugkvh1O31Iw3vKf7wBsVrSU64TPqkxEFZl5oDLXDaxCcge4SZqqWTMkpu9DL/UxOo2yQGMjtPHqQkzsKEUeva3O01JN0ON9ltUJGHN+CL7646e8uFKSCW5V+cR0Kf7+wbZABRFIfY+LivaaIMq3ImhzBa36hq/JDChmhprCqk+shvkBlQpJW7+OvoHan2ADrO1xMdEuJA== Received: from MN2PR12MB2909.namprd12.prod.outlook.com (2603:10b6:208:103::13) by MN2PR12MB3344.namprd12.prod.outlook.com (2603:10b6:208:c5::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.32; Wed, 7 Apr 2021 02:41:53 +0000 Received: from MN2PR12MB2909.namprd12.prod.outlook.com ([fe80::7cbc:e499:e936:7408]) by MN2PR12MB2909.namprd12.prod.outlook.com ([fe80::7cbc:e499:e936:7408%7]) with mapi id 15.20.3999.032; Wed, 7 Apr 2021 02:41:52 +0000 From: Bing Zhao To: Ajit Khaparde CC: Ori Kam , NBU-Contact-Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , dpdk-dev Thread-Topic: [dpdk-dev] [RFC] ethdev: introduce conntrack flow action and item Thread-Index: AQHXG8ieAkK7P/LGNEG66ZD351aVJaqSQI0AgBYfOiA= Date: Wed, 7 Apr 2021 02:41:52 +0000 Message-ID: References: <1616052616-344969-1-git-send-email-bingz@nvidia.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: broadcom.com; dkim=none (message not signed) header.d=none;broadcom.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [103.150.130.69] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c0758c3f-64b4-42ec-4190-08d8f96eb3a0 x-ms-traffictypediagnostic: MN2PR12MB3344: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CaEnMpk3GrV3ew4biYkpiHHubcvyeFLya3Zt0UmcqUbvDr6lWqi21lW/wVDAiUoN6RR6RZ4Yg7JzZZC2Gbj37xWG3/Eh2gJdzshYVuGNR8rc+p9dkVAaW9nLHCKmSuzXxgRsqJEsUgOkloPyWX7Hxtnu9SKUKKj2CWB6PQirw1JYSoRanwwwSvwFB0XHYWASWoF3eWRa1QZpDwxwKGbUQt2JZwe54LOVv1qPR6xmWzu3od+g7Xz8WzXiBZliwjC4FvLl/LeMUF7wAgU2Mtnw8X35GMCObDTCLQvIVao0BS0lJLj7zjuk/RBaNJy1VqPgGd2cIK8JEuIzTxMlY5oSmgGKT6qiSGr/+b7Ty1+KjhnXWtVs22/l+JbweGlBN4ymPLvqSJkgSeemCJM7GN9obp36DzjagRrp2uPBpfpoKSTiyyolqSjdcBXc8vdJ8vJFyFo3ZOVzWx5mIWqAOyQwppXkoox5ic03QGXVuZ+Dmpn4Dd6r/8Gxmj5jiRwWdwpWQ0WevdBJkre34ocC9/irTzSvnhV3SQqdaQb//rhA/1smvWoHjXDUd8XE7JRXsP843Xuqt2cF34tpFqLEHek6xjJJTMP5wVbSt6ooqF22I8jBSB7g0jS/L3tCIkRLS/fdiiDc0zjQ0QvcJSm5x6VNEUKCWYi0MBmPqrVo03mP4wCUhPEkD3uOFw7attFniDCq x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB2909.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(39860400002)(376002)(396003)(346002)(38100700001)(55016002)(316002)(52536014)(8676002)(86362001)(76116006)(6916009)(54906003)(66946007)(26005)(8936002)(83380400001)(7696005)(478600001)(30864003)(71200400001)(33656002)(53546011)(4326008)(6506007)(186003)(66476007)(66556008)(64756008)(66446008)(5660300002)(9686003)(2906002)(21314003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?UmpyWkNMZTlQV1AzOEs0TWtxeW9rVWFGQ2F0Ym5QeW5YQzdhS0hTZXcrSWN1?= =?utf-8?B?WHhVVzBFb2MzQW9iNUh3azV4UjkyQVZuT1hVdm9UY2lEaUgyMTVaMTZaYXps?= =?utf-8?B?M0lKQ1JLYmlmbnlkaFlZZ3ZiZSt5eVpMZFVhcU44TXVZdlVaT2E0dXF5anli?= =?utf-8?B?aldiMmY4bytXeFRwMmxBVHdMSTF2bFJFK1JHNmJRa1Zra0xiSzJKVVRndDRn?= =?utf-8?B?cW9KRDhJeS91RndHQ1o5RTROYndNaEVmRzlDUVoyMGVYNytRR2haaHRaN0ov?= =?utf-8?B?TkZORVV1a2o3MC9VUmNHemlLenU3Mmg2VVJWcWEwaXErVE9vemxCbHV6alZK?= =?utf-8?B?azVKbGxmaDg5WGJ5U29mNmFieWxsMHRzb3JJc0x6VytabXZ0aGh3dUpuYVVG?= =?utf-8?B?a3ZiRGNBdkVRQTVyV0k1REFTUU1yUTBFdXdMQ25rOVhVcnFFUUZEdm9paW9l?= =?utf-8?B?SVFwSW1ONjl1L0xFMi91NndKc2RuMG4rdHVITmZjaVhaejRmMzlKODBFOTNJ?= =?utf-8?B?U21UNGZpTmpMcW44eHZXdW1lSW9PRUQyalN0YmpMRklSOGZSWXpJQ0FUclQ0?= =?utf-8?B?WU4xT0FXWng5K1M5QmFWdGg3ZjgxaFBXbzZFY0c0emVlT0sxNzBZd0xGdWl1?= =?utf-8?B?QS9XOGhTYWQ3S3pLZEZKTnZSbld0dy9mUDNCcVpXOUl6WWUyV1JWS0JhUDJ1?= =?utf-8?B?SFNEZmZONHl2TTQzSzFSWFhQc0JZUHEwVm5WbTJDbkZGSXdOVWgvaE8vVzJY?= =?utf-8?B?ZUZpMGhBVVhLYTdwOHpJZFQremZ1OGhCbmhQWjVjdXkvMkRwajNxbVVQNGVP?= =?utf-8?B?NjREb0dPNVpjZUFmQ08zVmhxY1BTZG1ROERBYVpIR0xYc2F5aHorb29PdXha?= =?utf-8?B?cGhSaEszSS8wdklLZ1lTTmZmQkU4Y29RWUI3NHVWN1ZmekF1dUR0R3ZxSDdS?= =?utf-8?B?SVRhMlYvQ0MvYUVXQUR4MkFRN2F1M3lpUHorSURIaVRLVUMyMnBEcWJqa0NP?= =?utf-8?B?M1hsSURrZFBoTUpSN1ZGYlRpRWIwODRGQkpWdUxnQk9tVE1iY1UrMWZ6N1J5?= =?utf-8?B?UzNGL0lJK1kvZmZKL2VqZ2pKbC83bVFKWjlMaFJDME1tMDcrK3JoTjhMS29M?= =?utf-8?B?ampxUTcrQjJYWkp5MDgyblZXWk9OU1VZUWZmWjRBRzY3aVExSWxHR2JWb2ts?= =?utf-8?B?aTBWVGk1V2ZNVE4ycSt4QUdaZ3FZY2VoUExrYk5MUXh3R2J5d2lHeHFLemJN?= =?utf-8?B?TlA4U0VFd3N3eVJwUkhQRjVtWkQxOFVTYXlhNWt4L0VoWUtNbWg5UGV6UVBK?= =?utf-8?B?SG1sTnhiZEk0WGN6azhxUWhSTFR3NCtSUDNCNURvNlhZZStwNkxWamE0Y2E0?= =?utf-8?B?SzJ2M3RUTW9MYW05Z0dwZUp4Zko2KzZSZVdNUXdWNHRYT0N5OXJPWDVlSjgz?= =?utf-8?B?OXRzYVgwV24wQWpxZEdJZlhVeHdYU2x5aDVKWHpEWmhnVUNDQ01NZmJrTGRV?= =?utf-8?B?dHpxNE1RMDlLS2xRNkJLeGRxVnlIdjZxTGo5RlE1U2dsMXBYV0dCcVlhcUp5?= =?utf-8?B?c2ZrNWxaM2llajhMM0Vmb3VaUlY5MHhVOEliRDdXblJ5NkhrMXhIOVJDMHNz?= =?utf-8?B?OTFwSzhJbldqVGVXajJDUWJySXVpU1JEcXJjeWRYVk1ZWmZtZERoRVZUT1FV?= =?utf-8?B?aitsVzJIQ3BpWVk0WVlPcHVDenMwTzAxTVRSMEFrNWlST0k5YlU5dW92ZkJt?= =?utf-8?Q?xF2cnbEYvxlZ108Vs7s09VKTDundlDfij//FVLF?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB2909.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0758c3f-64b4-42ec-4190-08d8f96eb3a0 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2021 02:41:52.5749 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ljKHdVAyuuV4NMrBn/aPAzWoJCx2TKbSp/jxEIvrVUXbWPv2xUlKM9P8Gpb/QJ5q/7ff8VU5oKOw6uQTOSSaLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3344 Subject: Re: [dpdk-dev] [RFC] ethdev: introduce conntrack flow action and item 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 Sender: "dev" SGVsbG8sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWppdCBLaGFw YXJkZSA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTWFy Y2ggMjQsIDIwMjEgNzoyNyBBTQ0KPiBUbzogQmluZyBaaGFvIDxiaW5nekBudmlkaWEuY29tPg0K PiBDYzogT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25q YWxvbg0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0 QGludGVsLmNvbT47IEFuZHJldw0KPiBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRs YWJzLnJ1PjsgZHBkay1kZXYgPGRldkBkcGRrLm9yZz4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRl dl0gW1JGQ10gZXRoZGV2OiBpbnRyb2R1Y2UgY29ubnRyYWNrIGZsb3cNCj4gYWN0aW9uIGFuZCBp dGVtDQo+IA0KPiBPbiBUaHUsIE1hciAxOCwgMjAyMSBhdCAxMjozMCBBTSBCaW5nIFpoYW8gPGJp bmd6QG52aWRpYS5jb20+IHdyb3RlOg0KPiA+DQo+ID4gVGhpcyBjb21taXQgaW50cm9kdWNlZCB0 aGUgY29ubnRyYWNrIGFjdGlvbiBhbmQgaXRlbS4NCj4gPg0KPiA+IFVzdWFsbHkgdGhlIEhXIG9m ZmxvYWRpbmcgaXMgc3RhdGVsZXNzLiBGb3Igc29tZSBzdGF0ZWZ1bA0KPiBvZmZsb2FkaW5nDQo+ ID4gbGlrZSBhIFRDUCBjb25uZWN0aW9uLCBIVyBtb2R1bGUgd2lsbCBoZWxwIHByb3ZpZGUgdGhl IGFiaWxpdHkgb2YNCj4gYQ0KPiA+IGZ1bGwgb2ZmbG9hZGluZyB3L28gU1cgcGFydGljaXBhdGlv biBhZnRlciB0aGUgY29ubmVjdGlvbiB3YXMNCj4gPiBlc3RhYmxpc2hlZC4NCj4gPg0KPiA+IFRo ZSBiYXNpYyB1c2FnZSBpcyB0aGF0IGluIHRoZSBmaXJzdCBmbG93IHRoZSBhcHBsaWNhdGlvbiBz aG91bGQNCj4gYWRkDQo+ID4gdGhlIGNvbm50cmFjayBhY3Rpb24gYW5kIGluIHRoZSBmb2xsb3dp bmcgZmxvdyhzKSB0aGUgYXBwbGljYXRpb24NCj4gPiBzaG91bGQgdXNlIHRoZSBjb25udHJhY2sg aXRlbSB0byBtYXRjaCBvbiB0aGUgcmVzdWx0Lg0KPiA+DQo+ID4gQSBUQ1AgY29ubmVjdGlvbiBo YXMgdHdvIGRpcmVjdGlvbnMgdHJhZmZpYy4gVG8gc2V0IGEgY29ubnRyYWNrDQo+ID4gYWN0aW9u IGNvbnRleHQgY29ycmVjdGx5LCBpbmZvcm1hdGlvbiBmcm9tIHBhY2tldHMgb2YgYm90aA0KPiBk aXJlY3Rpb25zDQo+ID4gYXJlIHJlcXVpcmVkLg0KPiA+DQo+ID4gVGhlIGNvbm50cmFjayBhY3Rp b24gc2hvdWxkIGJlIGNyZWF0ZWQgb24gb25lIHBvcnQgYW5kIHN1cHBseSB0aGUNCj4gPiBwZWVy IHBvcnQgYXMgYSBwYXJhbWV0ZXIgdG8gdGhlIGFjdGlvbi4gQWZ0ZXIgY29udGV4dCBjcmVhdGlu ZywgaXQNCj4gPiBjb3VsZCBvbmx5IGJlIHVzZWQgYmV0d2VlbiB0aGUgcG9ydHMgKGR1YWwtcG9y dCBtb2RlKSBvciBhIHNpbmdsZQ0KPiA+IHBvcnQuIFRoZSBhcHBsaWNhdGlvbiBzaG91bGQgbW9k aWZ5IHRoZSBhY3Rpb24gdmlhDQo+IGFjdGlvbl9jdHhfdXBkYXRlDQo+ID4gaW50ZXJmYWNlIGJl Zm9yZSBlYWNoIHVzZSBpbiBkdWFsLXBvcnQgbW9kZSwgaW4gb3JkZXIgdG8gc2V0IHRoZQ0KPiA+ IGNvcnJlY3QgZGlyZWN0aW9uIGZvciB0aGUgZm9sbG93aW5nIHJ0ZSBmbG93Lg0KPiA+DQo+ID4g UXVlcnkgd2lsbCBiZSBzdXBwb3J0ZWQgdmlhIGFjdGlvbl9jdHhfcXVlcnkgaW50ZXJmYWNlLCBh Ym91dCB0aGUNCj4gPiBjdXJyZW50IHBhY2tldHMgaW5mb3JtYXRpb24gYW5kIGNvbm5lY3Rpb24g c3RhdHVzLg0KPiA+DQo+ID4gRm9yIHRoZSBwYWNrZXRzIHJlY2VpdmVkIGR1cmluZyB0aGUgY29u bnRyYWNrIHNldHVwLCBpdCBpcw0KPiBzdWdnZXN0ZWQNCj4gPiB0byByZS1pbmplY3QgdGhlIHBh Y2tldHMgaW4gb3JkZXIgdG8gdGFrZSBmdWxsIGFkdmFudGFnZSBvZiB0aGUNCj4gPiBjb25udHJh Y2suIE9ubHkgdGhlIHZhbGlkIHBhY2tldHMgc2hvdWxkIHBhc3MgdGhlIGNvbm50cmFjaywNCj4g cGFja2V0cw0KPiA+IHdpdGggaW52YWxpZCBUQ1AgaW5mb3JtYXRpb24sIGxpa2Ugb3V0IG9mIHdp bmRvdywgb3Igd2l0aCBpbnZhbGlkDQo+ID4gaGVhZGVyLCBsaWtlIG1hbGZvcm1lZCwgc2hvdWxk IG5vdCBwYXNzLg0KPiA+DQo+ID4gVGVzdHBtZCBjb21tYW5kIGxpbmUgZXhhbXBsZToNCj4gPg0K PiA+IHNldCBjb25udHJhY2sgW2luZGV4XSBlbmFibGUgaXMgMSBsYXN0X3NlcSBpcyB4eHggbGFz dCBhY2sgaXMgeHh4DQo+IC8NCj4gPiAuLi4gLyBvcmlnX2RpciB3aW5fc2NhbGUgaXMgeHh4IHNl bnRfZW5kIGlzIHh4eCBtYXhfd2luIGlzIHh4eCAuLi4NCj4gLw0KPiA+IHJwbHlfZGlyIC4uLiAv IGVuZA0KPiA+IGZsb3cgYWN0aW9uX2N0eCBbQ1RYXSBjcmVhdGUgaW5ncmVzcyAuLi4gLyBjb25u dHJhY2sgaXMgW2luZGV4XSAvDQo+IGVuZA0KPiA+IGZsb3cgY3JlYXRlIDAgZ3JvdXAgWCBpbmdy ZXNzIHBhdHRlcm5zIC4uLiAvIHRjcCAvIGVuZCBhY3Rpb25zDQo+IGFjdGlvbl9jdHggW0NUWF0N Cj4gPiAvIGp1bXAgZ3JvdXAgWSAvIGVuZA0KPiA+IGZsb3cgY3JlYXRlIDAgZ3JvdXAgWSBpbmdy ZXNzIHBhdHRlcm5zIC4uLiAvIGN0IGlzIFtWYWxpZF0gLyBlbmQNCj4gYWN0aW9ucw0KPiA+IHF1 ZXVlIGluZGV4IFtoYWlycGluIHF1ZXVlXSAvIGVuZA0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTog QmluZyBaaGFvIDxiaW5nekBudmlkaWEuY29tPg0KPiA+IC0tLQ0KPiA+ICBsaWIvbGlicnRlX2V0 aGRldi9ydGVfZmxvdy5oIHwgMTkxDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gYi9saWIvbGlicnRlX2V0 aGRldi9ydGVfZmxvdy5oDQo+ID4gaW5kZXggNjY5ZTY3N2U5MS4uYjJlNGYwNzUxYSAxMDA2NDQN Cj4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gKysrIGIvbGliL2xp YnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+IEBAIC01NTAsNiArNTUwLDE1IEBAIGVudW0gcnRl X2Zsb3dfaXRlbV90eXBlIHsNCj4gPiAgICAgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfaXRl bV9nZW5ldmVfb3B0DQo+ID4gICAgICAgICAgKi8NCj4gPiAgICAgICAgIFJURV9GTE9XX0lURU1f VFlQRV9HRU5FVkVfT1BULA0KPiA+ICsNCj4gPiArICAgICAgIC8qKg0KPiA+ICsgICAgICAgICog W01FVEFdDQo+ID4gKyAgICAgICAgKg0KPiA+ICsgICAgICAgICogTWF0Y2hlcyBjb25udHJhY2sg c3RhdGUuDQo+ID4gKyAgICAgICAgKg0KPiA+ICsgICAgICAgICogU2VlIHN0cnVjdCBydGVfZmxv d19pdGVtX2Nvbm50cmFjay4NCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgUlRFX0ZMT1df SVRFTV9UWVBFX0NPTk5UUkFDSywNCj4gPiAgfTsNCj4gPg0KPiA+ICAvKioNCj4gPiBAQCAtMTY1 NCw2ICsxNjYzLDQ5IEBAIHJ0ZV9mbG93X2l0ZW1fZ2VuZXZlX29wdF9tYXNrID0gew0KPiA+ICB9 Ow0KPiA+ICAjZW5kaWYNCj4gPg0KPiA+ICsvKioNCj4gPiArICogVGhlIHBhY2tldCBpcyB3aXRo IHZhbGlkLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBSVEVfRkxPV19DT05OVFJBQ0tfRkxBR19T VEFURV9WQUxJRCAoMSA8PCAwKQ0KPiA+ICsvKioNCj4gPiArICogVGhlIHN0YXRlIG9mIHRoZSBj b25uZWN0aW9uIHdhcyBjaGFuZ2VkLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBSVEVfRkxPV19D T05OVFJBQ0tfRkxBR19TVEFURV9DSEFOR0VEICgxIDw8IDEpDQo+ID4gKy8qKg0KPiA+ICsgKiBF cnJvciBzdGF0ZSB3YXMgZGV0ZWN0ZWQgb24gdGhpcyBwYWNrZXQgZm9yIHRoaXMgY29ubmVjdGlv bi4NCj4gPiArICovDQo+ID4gKyNkZWZpbmUgUlRFX0ZMT1dfQ09OTlRSQUNLX0ZMQUdfRVJST1Ig KDEgPDwgMikNCj4gPiArLyoqDQo+ID4gKyAqIFRoZSBIVyBjb25uZWN0aW9uIHRyYWNraW5nIG1v ZHVsZSBpcyBkaXNhYmxlZC4NCj4gPiArICogSXQgY2FuIGJlIGR1ZSB0byBhcHBsaWNhdGlvbiBj b21tYW5kIG9yIGFuIGludmFsaWQgc3RhdGUuDQo+ID4gKyAqLw0KPiA+ICsjZGVmaW5lIFJURV9G TE9XX0NPTk5UUkFDS19GTEFHX0RJU0FCTEVEICgxIDw8IDMpDQo+ID4gKy8qKg0KPiA+ICsgKiBU aGUgcGFja2V0IGNvbnRhaW5zIHNvbWUgYmFkIGZpZWxkKHMpLg0KPiA+ICsgKi8NCj4gPiArI2Rl ZmluZSBSVEVfRkxPV19DT05OVFJBQ0tfRkxBR19CQURfUEtUICgxIDw8IDQpDQo+IFdoeSBub3Qg YW4gZW51bT8gV2UgY291bGQgdXNlIHRoZSBiaXRzLCBidXQgZ3JvdXAgdGhlbSB1bmRlciBhbiBl bnVtPw0KPiANCg0KSXQgY291bGQgYmUuIEJUVywgaXMgdGhlcmUgYW55IGNvbnZlbnRpb24gdG8g ZGVzY3JpYmUgd2hlbiB0byB1c2UgI2RlZmluZSBtYWNyb3MgYW5kIHdoZW4gdG8gdXNlIGVudW0g dHlwZXM/DQoNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBF WFBFUklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvcg0KPiBu b3RpY2UNCj4gPiArICoNCj4gPiArICogUlRFX0ZMT1dfSVRFTV9UWVBFX0NPTk5UUkFDSw0KPiA+ ICsgKg0KPiA+ICsgKiBNYXRjaGVzIHRoZSBzdGF0ZSBvZiBhIHBhY2tldCBhZnRlciBpdCBwYXNz ZWQgdGhlIGNvbm5lY3Rpb24NCj4gdHJhY2tpbmcNCj4gPiArICogZXhhbWluYXRpb24uIFRoZSBz dGF0ZSBpcyBhIGJpdCBtYXNrIG9mIG9uZQ0KPiBSVEVfRkxPV19DT05OVFJBQ0tfRkxBRyoNCj4g PiArICogb3IgYSByZWFzb25hYmxlIGNvbWJpbmF0aW9uIG9mIHRoZXNlIGJpdHMuDQo+ID4gKyAq Lw0KPiA+ICtzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9jb25udHJhY2sgew0KPiA+ICsgICAgICAgdWlu dDMyX3QgZmxhZ3M7DQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKiogRGVmYXVsdCBtYXNrIGZvciBS VEVfRkxPV19JVEVNX1RZUEVfQ09OTlRSQUNLLiAqLw0KPiA+ICsjaWZuZGVmIF9fY3BsdXNwbHVz DQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9jb25udHJhY2sNCj4gcnRl X2Zsb3dfaXRlbV9jb25udHJhY2tfbWFzayA9IHsNCj4gPiArICAgICAgIC5mbGFncyA9IDB4ZmZm ZmZmZmYsDQo+ID4gK307DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAqIE1h dGNoaW5nIHBhdHRlcm4gaXRlbSBkZWZpbml0aW9uLg0KPiA+ICAgKg0KPiA+IEBAIC0yMjM2LDYg KzIyODgsMTcgQEAgZW51bSBydGVfZmxvd19hY3Rpb25fdHlwZSB7DQo+ID4gICAgICAgICAgKiBT ZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9tb2RpZnlfZmllbGQuDQo+ID4gICAgICAgICAgKi8N Cj4gPiAgICAgICAgIFJURV9GTE9XX0FDVElPTl9UWVBFX01PRElGWV9GSUVMRCwNCj4gPiArDQo+ ID4gKyAgICAgICAvKioNCj4gPiArICAgICAgICAqIFtNRVRBXQ0KPiA+ICsgICAgICAgICoNCj4g PiArICAgICAgICAqIEVuYWJsZSB0cmFja2luZyBhIFRDUCBjb25uZWN0aW9uIHN0YXRlLg0KPiA+ ICsgICAgICAgICoNCj4gPiArICAgICAgICAqIFNlbmQgcGFja2V0IHRvIEhXIGNvbm5lY3Rpb24g dHJhY2tpbmcgbW9kdWxlIGZvcg0KPiBleGFtaW5hdGlvbi4NCj4gPiArICAgICAgICAqDQo+ID4g KyAgICAgICAgKiBTZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9jb25udHJhY2suDQo+ID4gKyAg ICAgICAgKi8NCj4gPiArICAgICAgIFJURV9GTE9XX0FDVElPTl9UWVBFX0NPTk5UUkFDSywNCj4g PiAgfTsNCj4gPg0KPiA+ICAvKioNCj4gPiBAQCAtMjgyOCw2ICsyODkxLDEzNCBAQCBzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uX3NldF9kc2NwIHsNCj4gPiAgICovDQo+ID4gIHN0cnVjdCBydGVfZmxv d19zaGFyZWRfYWN0aW9uOw0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgKiBUaGUgc3RhdGUgb2YgYSBU Q1AgY29ubmVjdGlvbi4NCj4gPiArICovDQo+ID4gK2VudW0gcnRlX2Zsb3dfY29ubnRyYWNrX3N0 YXRlIHsNCj4gPiArICAgICAgIFJURV9GTE9XX0NPTk5UUkFDS19TVEFURV9TWU5fUkVDViwNCj4g PiArICAgICAgIC8qKjwgU1lOLUFDSyBwYWNrZXQgd2FzIHNlZW4uICovDQo+ID4gKyAgICAgICBS VEVfRkxPV19DT05OVFJBQ0tfU1RBVEVfRVNUQUJMSVNIRUQsDQo+ID4gKyAgICAgICAvKio8IDMt d2F5IGhhbmRzaGFyayB3YXMgZG9uZS4gKi8NCj4gPiArICAgICAgIFJURV9GTE9XX0NPTk5UUkFD S19TVEFURV9GSU5fV0FJVCwNCj4gPiArICAgICAgIC8qKjwgRmlyc3QgRklOIHBhY2tldCB3YXMg cmVjZWl2ZWQgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24uDQo+ICovDQo+ID4gKyAgICAgICBSVEVf RkxPV19DT05OVFJBQ0tfU1RBVEVfQ0xPU0VfV0FJVCwNCj4gPiArICAgICAgIC8qKjwgRmlyc3Qg RklOIHdhcyBBQ0tlZC4gKi8NCj4gPiArICAgICAgIFJURV9GTE9XX0NPTk5UUkFDS19TVEFURV9M QVNUX0FDSywNCj4gPiArICAgICAgIC8qKjwgQWZ0ZXIgc2Vjb25kIEZJTiwgd2FpdGluZyBmb3Ig dGhlIGxhc3QgQUNLLiAqLw0KPiA+ICsgICAgICAgUlRFX0ZMT1dfQ09OTlRSQUNLX1NUQVRFX1RJ TUVfV0FJVCwNCj4gPiArICAgICAgIC8qKjwgU2Vjb25kIEZJTiB3YXMgQUNLZWQsIGNvbm5lY3Rp b24gd2FzIGNsb3NlZC4gKi8NCj4gPiArfTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBUaGUg bGFzdCBwYXNzZWQgVENQIHBhY2tldCBmbGFncyBvZiBhIGNvbm5lY3Rpb24uDQo+ID4gKyAqLw0K PiA+ICtlbnVtIHJ0ZV9mbG93X2Nvbm50cmFja19pbmRleCB7DQo+ID4gKyAgICAgICBSVEVfRkxP V19DT05OVFJBQ0tfSU5ERVhfTk9ORSA9IDAsIC8qKjwgTm8gRmxhZy4gKi8NCj4gPiArICAgICAg IFJURV9GTE9XX0NPTk5UUkFDS19JTkRFWF9TWU4gPSAoMSA8PCAwKSwgLyoqPCBXaXRoIFNZTg0K PiBmbGFnLiAqLw0KPiA+ICsgICAgICAgUlRFX0ZMT1dfQ09OTlRSQUNLX0lOREVYX1NZTl9BQ0sg PSAoMSA8PCAxKSwgLyoqPCBXaXRoDQo+IFNZTitBQ0sgZmxhZy4gKi8NCj4gPiArICAgICAgIFJU RV9GTE9XX0NPTk5UUkFDS19JTkRFWF9GSU4gPSAoMSA8PCAyKSwgLyoqPCBXaXRoIEZJTg0KPiBm bGFnLiAqLw0KPiA+ICsgICAgICAgUlRFX0ZMT1dfQ09OTlRSQUNLX0lOREVYX0FDSyA9ICgxIDw8 IDMpLCAvKio8IFdpdGggQUNLDQo+IGZsYWcuICovDQo+ID4gKyAgICAgICBSVEVfRkxPV19DT05O VFJBQ0tfSU5ERVhfUlNUID0gKDEgPDwgNCksIC8qKjwgV2l0aCBSU1QNCj4gZmxhZy4gKi8NCj4g PiArfTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBF UklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvcg0KPiBub3Rp Y2UNCj4gPiArICoNCj4gPiArICogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciBlYWNoIGRp cmVjdGlvbiBvZiBhIFRDUA0KPiBjb25uZWN0aW9uLg0KPiA+ICsgKi8NCj4gPiArc3RydWN0IHJ0 ZV9mbG93X3RjcF9kaXJfcGFyYW0gew0KPiA+ICsgICAgICAgdWludDMyX3Qgc2NhbGU6NDsgLyoq PCBUQ1Agd2luZG93IHNjYWxpbmcgZmFjdG9yLCAweEYgdG8NCj4gZGlzYWJsZS4gKi8NCj4gPiAr ICAgICAgIHVpbnQzMl90IGNsb3NlX2luaXRpYXRlZDoxOyAvKio8IFRoZSBGSU4gd2FzIHNlbnQg YnkgdGhpcw0KPiBkaXJlY3Rpb24uICovDQo+ID4gKyAgICAgICB1aW50MzJfdCBsYXN0X2Fja19z ZWVuOjE7DQo+ID4gKyAgICAgICAvKio8IEFuIEFDSyBwYWNrZXQgaGFzIGJlZW4gcmVjZWl2ZWQg YnkgdGhpcyBzaWRlLiAqLw0KPiA+ICsgICAgICAgdWludDMyX3QgZGF0YV91bmFja2VkOjE7DQo+ ID4gKyAgICAgICAvKio8IElmIHNldCwgaW5kaWNhdGVzIHRoYXQgdGhlcmUgaXMgdW5hY2tlZCBk YXRhIG9mIHRoZQ0KPiBjb25uZWN0aW9uLiAqLw0KPiA+ICsgICAgICAgdWludDMyX3Qgc2VudF9l bmQ7DQo+ID4gKyAgICAgICAvKio8IE1heGltYWwgdmFsdWUgb2Ygc2VxdWVuY2UgKyBwYXlsb2Fk IGxlbmd0aCBvdmVyIHNlbnQNCj4gPiArICAgICAgICAqIHBhY2tldHMgKG5leHQgQUNLIGZyb20g dGhlIG9wcG9zaXRlIGRpcmVjdGlvbikuDQo+ID4gKyAgICAgICAgKi8NCj4gPiArICAgICAgIHVp bnQzMl90IHJlcGx5X2VuZDsNCj4gPiArICAgICAgIC8qKjwgTWF4aW1hbCB2YWx1ZSBvZiAoQUNL ICsgd2luZG93IHNpemUpIG92ZXIgcmVjZWl2ZWQNCj4gcGFja2V0ICsgbGVuZ3RoDQo+ID4gKyAg ICAgICAgKiBvdmVyIHNlbnQgcGFja2V0IChtYXhpbWFsIHNlcXVlbmNlIGNvdWxkIGJlIHNlbnQp Lg0KPiA+ICsgICAgICAgICovDQo+ID4gKyAgICAgICB1aW50MzJfdCBtYXhfd2luOw0KPiA+ICsg ICAgICAgLyoqPCBNYXhpbWFsIHZhbHVlIG9mIGFjdHVhbCB3aW5kb3cgc2l6ZSBvdmVyIHNlbnQg cGFja2V0cy4NCj4gKi8NCj4gPiArICAgICAgIHVpbnQzMl90IG1heF9hY2s7DQo+ID4gKyAgICAg ICAvKio8IE1heGltYWwgdmFsdWUgb2YgQUNLIG92ZXIgc2VudCBwYWNrZXRzLiAqLw0KPiA+ICt9 Ow0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIEB3YXJuaW5nDQo+ID4gKyAqIEBiIEVYUEVSSU1F TlRBTDogdGhpcyBzdHJ1Y3R1cmUgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yDQo+IG5vdGljZQ0K PiA+ICsgKg0KPiA+ICsgKiBSVEVfRkxPV19BQ1RJT05fVFlQRV9DT05OVFJBQ0sNCj4gPiArICoN Cj4gPiArICogQ29uZmlndXJhdGlvbiBhbmQgaW5pdGlhbCBzdGF0ZSBmb3IgdGhlIGNvbm5lY3Rp b24gdHJhY2tpbmcNCj4gbW9kdWxlLg0KPiA+ICsgKiBUaGlzIHN0cnVjdHVyZSBjb3VsZCBiZSB1 c2VkIGZvciBib3RoIHNldHRpbmcgYW5kIHF1ZXJ5Lg0KPiBDYW4gd2Ugc3BsaXQgdGhlIHN0cnVj dHVyZSBpbnRvIHNldCBhbmQgcXVlcnkuDQo+IFNvbWUgb2YgdGhlIGZpZWxkcyBzZWVtIHRvIGJl IHJlbGV2YW50IGZvciBhIHF1ZXJ5Lg0KPiBBbHNvIHRoZSBuYW1lcyB3aWxsIGJlIHNpbXBsZXIg YW5kIGVhc2llciB0byB1bmRlcnN0YW5kIHRoYXQgd2F5Lg0KPiANCg0KVG8gbXkgdW5kZXJzdGFu ZGluZywgaXQgbWF5IGJlIGJldHRlciB0byBoYXZlIGFsbCBvZiB0aGVtIGluIGEgc2luZ2xlIHN0 cnVjdHVyZS4gRGlmZmVyZW50IEhXIG1heSBoYXZlIGRpZmZlcmVudCBhYmlsaXR5IGZvciBxdWVy eWluZywgYW5kIG1vc3Qgb2YgdGhlIGZpZWxkcyBhcmUgdXNlZCBib3RoIGZvciBxdWVyeSBhbmQg Y3JlYXRlL3VwZGF0ZS4NCklmIHNvbWUgZmllbGQgaXMgbm90IHN1cHBvcnRlZCBmb3IgcXVlcnlp bmcsIHRoZSBQTUQgY291bGQgcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlLCBlLmcuLCAwLiBBbmQg aWYgd2Ugc3BsaXQgcXVlcnkgYW5kIGNyZWF0ZS91cGRhdGU6DQoxLiBRdWVyeSBzdHJ1Y3QgbWF5 IGFsc28gbmVlZHMgdG8gYmUgdGhlIFVOSU9OIG9mIGRpZmZlcmVudCBIVydzIHF1ZXJ5IGNhcGFj aXR5DQoyLiB0aGUgMiBzdHJ1Y3R1cmVzIHdpbGwgaGF2ZSBhIGxvdCBvZiBjb21tb24gZmllbGRz IChtb3N0IG9mIHRoZW0pDQoNCj4gPiArICovDQo+ID4gK3N0cnVjdCBydGVfZmxvd19hY3Rpb25f Y29ubnRyYWNrIHsNCj4gPiArICAgICAgIHVpbnQxNl90IHBlZXJfcG9ydDsgLyoqPCBUaGUgcGVl ciBwb3J0IG51bWJlciwgY2FuIGJlIHRoZQ0KPiBzYW1lIHBvcnQuICovDQo+ID4gKyAgICAgICB1 aW50MzJfdCBpc19vcmlnaW5hbF9kaXI6MTsNCj4gPiArICAgICAgIC8qKjwgRGlyZWN0aW9uIG9m IHRoaXMgY29ubmVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgZmxvdywNCj4gdGhlIHZhbHVlIG9ubHkN Cj4gPiArICAgICAgICAqIGFmZmVjdHMgdGhlIHN1YnNlcXVlbnQgZmxvd3MgY3JlYXRpb24uDQo+ ID4gKyAgICAgICAgKi8NCj4gPiArICAgICAgIHVpbnQzMl90IGVuYWJsZToxOw0KPiA+ICsgICAg ICAgLyoqPCBFbmFibGUgLyBkaXNhYmxlIHRoZSBjb25udHJhY2sgSFcgbW9kdWxlLiBXaGVuDQo+ IGRpc2FibGVkLCB0aGUNCj4gPiArICAgICAgICAqIHJlc3VsdCB3aWxsIGFsd2F5cyBiZSBSVEVf RkxPV19DT05OVFJBQ0tfRkxBR19ESVNBQkxFRC4NCj4gPiArICAgICAgICAqIEluIHRoaXMgc3Rh dGUgdGhlIEhXIHdpbGwgYWN0IGFzIHBhc3N0aHJvdWdoLg0KPiA+ICsgICAgICAgICovDQo+IFdl IHNob3VsZCBiZSBhYmxlIHRvIGVuYWJsZSB0aGUgYmxvY2sgaW4gSFcgaW1wbGljaXRseSBiYXNl ZCBvbiB0aGUNCj4gcnRlX2Zsb3dfY3JlYXRlLg0KPiBJIGRvbid0IHRoaW5rIHRoaXMgaXMgbmVl ZGVkLg0KPiANCj4gPiArICAgICAgIHVpbnQzMl90IGxpdmVfY29ubmVjdGlvbjoxOw0KPiA+ICsg ICAgICAgLyoqPCBBdCBsZWFzdCBvbmUgYWNrIHdhcyBzZWVuLCBhZnRlciB0aGUgY29ubmVjdGlv biB3YXMNCj4gZXN0YWJsaXNoZWQuICovDQo+ID4gKyAgICAgICB1aW50MzJfdCBzZWxlY3RpdmVf YWNrOjE7DQo+ID4gKyAgICAgICAvKio8IEVuYWJsZSBzZWxlY3RpdmUgQUNLIG9uIHRoaXMgY29u bmVjdGlvbi4gKi8NCj4gPiArICAgICAgIHVpbnQzMl90IGNoYWxsZW5nZV9hY2tfcGFzc2VkOjE7 DQo+ID4gKyAgICAgICAvKio8IEEgY2hhbGxlbmdlIGFjayBoYXMgcGFzc2VkLiAqLw0KPiA+ICsg ICAgICAgdWludDMyX3QgbGFzdF9kaXJlY3Rpb246MTsNCj4gPiArICAgICAgIC8qKjwgMTogVGhl IGxhc3QgcGFja2V0IGlzIHNlZW4gdGhhdCBjb21lcyBmcm9tIHRoZQ0KPiBvcmlnaW5hbCBkaXJl Y3Rpb24uDQo+ID4gKyAgICAgICAgKiAwOiBGcm9tIHRoZSByZXBseSBkaXJlY3Rpb24uDQo+ID4g KyAgICAgICAgKi8NCj4gPiArICAgICAgIHVpbnQzMl90IGxpYmVyYWxfbW9kZToxOw0KPiA+ICsg ICAgICAgLyoqPCBObyBUQ1AgY2hlY2sgd2lsbCBiZSBkb25lIGV4Y2VwdCB0aGUgc3RhdGUgY2hh bmdlLiAqLw0KPiA+ICsgICAgICAgZW51bSBydGVfZmxvd19jb25udHJhY2tfc3RhdGUgc3RhdGU7 DQo+IGluaXRpYWxfc3RhdGUgb3IgY3VyX3N0YXRlPw0KPiANCj4gPiArICAgICAgIC8qKjwgVGhl IGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbm5lY3Rpb24uICovDQo+ID4gKyAgICAgICB1aW50OF90 IG1heF9hY2tfd2luZG93Ow0KPiA+ICsgICAgICAgLyoqPCBTY2FsaW5nIGZhY3RvciBmb3IgbWF4 aW1hbCBhbGxvd2VkIEFDSyB3aW5kb3cuICovDQo+ID4gKyAgICAgICB1aW50OF90IHJldHJhbnNt aXNzaW9uX2xpbWl0Ow0KPiA+ICsgICAgICAgLyoqPCBNYXhpbWFsIGFsbG93ZWQgbnVtYmVyIG9m IHJldHJhbnNtaXNzaW9uIHRpbWVzLiAqLw0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9mbG93X3Rj cF9kaXJfcGFyYW0gb3JpZ2luYWxfZGlyOw0KPiA+ICsgICAgICAgLyoqPCBUQ1AgcGFyYW1ldGVy cyBvZiB0aGUgb3JpZ2luYWwgZGlyZWN0aW9uLiAqLw0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9m bG93X3RjcF9kaXJfcGFyYW0gcmVwbHlfZGlyOw0KPiA+ICsgICAgICAgLyoqPCBUQ1AgcGFyYW1l dGVycyBvZiB0aGUgcmVwbHkgZGlyZWN0aW9uLiAqLw0KPiA+ICsgICAgICAgdWludDE2X3QgbGFz dF93aW5kb3c7DQo+ID4gKyAgICAgICAvKio8IFRoZSB3aW5kb3cgdmFsdWUgb2YgdGhlIGxhc3Qg cGFja2V0IHBhc3NlZCB0aGlzDQo+IGNvbm50cmFjay4gKi8NCj4gPiArICAgICAgIGVudW0gcnRl X2Zsb3dfY29ubnRyYWNrX2luZGV4IGxhc3RfaW5kZXg7DQo+IERvIHlvdSBtZWFuIHJ0ZV9mbG93 X2Nvbm50cmFja19sYXN0X3N0YXRlIC0gYXMgaW4gbGFzdCBzdGF0ZSBhcyBzZWVuDQo+IGJ5IEhX IGJsb2NrPw0KPiBPciBtYXliZSBpdCBpcyB0aGUgVENQIGZsYWcgYW5kIG5vdCBzdGF0ZT8NCg0K VGhleSBhcmUgYSBsaXR0bGUgZGlmZmVyZW50LiBJdCBzaG91bGQgYmUgdGhlIDJuZCwgdGhlIFRD UCBmbGFnIG9mIHRoZSBsYXN0IHBhY2tldHMgcGFzc2VkIHRoZSBjb25uZWN0aW9uIHRyYWNraW5n IG1vZHVsZSwgbm90IHRoZSBjb25uZWN0aW9uIHN0YXRlLg0KDQo+IA0KPiA+ICsgICAgICAgdWlu dDMyX3QgbGFzdF9zZXE7DQo+ID4gKyAgICAgICAvKio8IFRoZSBzZXF1ZW5jZSBvZiB0aGUgbGFz dCBwYWNrZXQgcGFzc2VkIHRoaXMgY29ubnRyYWNrLg0KPiAqLw0KPiA+ICsgICAgICAgdWludDMy X3QgbGFzdF9hY2s7DQo+ID4gKyAgICAgICAvKio8IFRoZSBhY2tub3dsZWRnZW1lbnQgb2YgdGhl IGxhc3QgcGFja2V0IHBhc3NlZCB0aGlzDQo+IGNvbm50cmFjay4gKi8NCj4gPiArICAgICAgIHVp bnQzMl90IGxhc3RfZW5kOw0KPiA+ICsgICAgICAgLyoqPCBUaGUgdG90YWwgdmFsdWUgQUNLICsg cGF5bG9hZCBsZW5ndGggb2YgdGhlIGxhc3QNCj4gcGFja2V0IHBhc3NlZA0KPiA+ICsgICAgICAg ICogdGhpcyBjb25udHJhY2suDQo+ID4gKyAgICAgICAgKi8NCj4gPiArfTsNCj4gPiArDQo+ID4g Ky8qKg0KPiA+ICsgKiBSVEVfRkxPV19BQ1RJT05fVFlQRV9DT05OVFJBQ0sNCj4gPiArICoNCj4g PiArICogV3JhcHBlciBzdHJ1Y3R1cmUgZm9yIHRoZSBjb250ZXh0IHVwZGF0ZSBpbnRlcmZhY2Uu DQo+ID4gKyAqIFBvcnRzIGNhbm5vdCBzdXBwb3J0IHVwZGF0aW5nLCBhbmQgdGhlIG9ubHkgdmFs aWQgc29sdXRpb24gaXMNCj4gdG8NCj4gPiArICogZGVzdHJveSB0aGUgb2xkIGNvbnRleHQgYW5k IGNyZWF0ZSBhIG5ldyBvbmUgaW5zdGVhZC4NCj4gPiArICovDQo+IEluIHRoYXQgY2FzZSB3aHkg bm90IGRlc3Ryb3kgdGhlIGZsb3cgYW5kIGNyZWF0ZSBhIG5ldyBvbmU/DQoNCkkgbWF5IG5vdCBx dWl0ZSB1bmRlcnN0YW5kIHlvdXIgcXVlc3Rpb24gYnV0IHdpbGwgdHJ5IHRvIGFuc3dlciBhIGJp dCBtb3JlIGRldGFpbGVkIGFuZCBwbGVhc2UgY29tbWVudC4NClRoZSBjb25uZWN0aW9uIHRyYWNr aW5nIGFjdGlvbiBjb250ZXh0IHdpbGwgYmUgY3JlYXRlZCBiZWZvcmUgYW55IGZsb3cgY3JlYXRp b24sIHRoZW4gaXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBmbG93czoNCjEuIENvbm50cmFjayBhY3Rp b24gd2lsbCBiZSB1c2VkIGZvciB0aGUgZmxvd3Mgb2YgYmktZGlyZWN0aW9uYWwgdHJhZmZpYywg YW5kIHdoZW4gY3JlYXRpbmcgaXQsIHRoZSBpbmZvcm1hdGlvbiBvZiBUQ1AgcGFja2V0cyBmcm9t IGJvdGggZGlyZWN0aW9ucyBhcmUgbmVlZGVkLg0KMi4gVGhpcyBjb25udHJhY2sgYWN0aW9uIGNv dWxkIGJlIHVzZWQgZm9yIG11bHRpcGxlIGZsb3dzIG92ZXIgc2luZ2xlIHBvcnQgb3IgZHVhbCBw b3J0cy4NCjMuIFRoZSBmbG93IGNvdWxkIGJlIGRlc3Ryb3llZCB3L28gZGVzdHJveSB0aGUgYWN0 aW9uIGFuZCB0aGVuIGl0IGNvdWxkIGJlIHJldXNlZCBieSBhIG5ldyBmbG93KGlmIG5lZWRlZCku DQo0LiBPbmUgZGlyZWN0aW9uIGZsb3cgY291bGQgYmUgZGVzdHJveWVkIHcvbyBkZXN0cm95aW5n IHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gZmxvdy4NCg0KU28gaWYgdGhlIHVzZXIgd2FudCB0byBk ZXN0cm95IHRoZSBhY3Rpb24gY29udGV4dCwgaXQgc2hvdWxkIGNhbGwgdGhlIGRlc3Ryb3kgaW50 ZXJmYWNlIGRpcmVjdGx5LiBUaGUgYWN0aW9uIGNvbnRleHQgd2lsbCBiZSBzdGlsbCAiYWxpdmUi IGFmdGVyIG9uZSBmbG93IHRoYXQgdXNpbmcgaXQgaXMgZGVzdHJveWVkLiBJdCBjb3VsZG4ndCBi ZSBkZXN0cm95ZWQgdG9nZXRoZXIgd2l0aCB0aGUgZmxvdy4NCg0KPiANCj4gPiArc3RydWN0IHJ0 ZV9mbG93X21vZGlmeV9jb25udHJhY2sgew0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9mbG93X2Fj dGlvbl9jb25udHJhY2sgbmV3X2N0Ow0KPiA+ICsgICAgICAgLyoqPCBOZXcgY29ubmVjdGlvbiB0 cmFja2luZyBwYXJhbWV0ZXJzIHRvIGJlIHVwZGF0ZWQuICovDQo+ID4gKyAgICAgICB1aW50MzJf dCBkaXJlY3Rpb246MTsgLyoqPCBUaGUgZGlyZWN0aW9uIGZpZWxkIHdpbGwgYmUNCj4gdXBkYXRl ZC4gKi8NCj4gPiArICAgICAgIHVpbnQzMl90IHN0YXRlOjE7DQo+ID4gKyAgICAgICAvKio8IEFs bCB0aGUgb3RoZXIgZmllbGRzIGV4Y2VwdCBkaXJlY3Rpb24gd2lsbCBiZSB1cGRhdGVkLg0KPiAq Lw0KPiA+ICsgICAgICAgdWludDMyX3QgcmVzZXJ2ZWQ6MzA7IC8qKjwgUmVzZXJ2ZWQgYml0cyBm b3IgdGhlIGZ1dHVyZQ0KPiB1c2FnZS4gKi8NCj4gPiArfTsNCj4gPiArDQo+ID4gIC8qKg0KPiA+ ICAgKiBGaWVsZCBJRHMgZm9yIE1PRElGWV9GSUVMRCBhY3Rpb24uDQo+ID4gICAqLw0KPiA+IC0t DQo+ID4gMi4xOS4wLndpbmRvd3MuMQ0KPiA+DQo=