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 B6925A0547; Wed, 27 Oct 2021 13:33:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 54D094068C; Wed, 27 Oct 2021 13:33:18 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80079.outbound.protection.outlook.com [40.107.8.79]) by mails.dpdk.org (Postfix) with ESMTP id E9B534003F for ; Wed, 27 Oct 2021 13:33:16 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ejn26AnD/bWGCkiLWEd09OONQUaIX7EiN7tkWHfswoKVZ74J8vHbSkMlaDDFvwY/EuwL8EsB3g7cSkE6RCuR26DEacZCSx8Hc6DbUG6uRC8SYoIN/A9L7HQJslfJSjX//h97xA6hx29k6wSe55P2ZSnF+X9RtUYX6cvrhQefYZIs8VjdWjTJ992XgwThxtKvznjdigxivsBXnBAbC9z7c25+UILkZ2+V1j8YpwZDeHmbVlqpa4F2zWiBV7LZfWXQDpmx55cQC1dSbyaF5QD53JRha5cNuOX6dxtJ1CtlMny/t1MHnugiM4g1D+AvOvpsuVSHJ991ecSRd1AhsUwLFg== 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=XpQidRfBYcpASrBmNUp6cS9dI5v90H+vlLhAO4ukAVM=; b=hv9ZmC4k2Oc0j9pKGDo5mFS9+SUXfxfa7TaxoaSSKrvliDrfFMRxoBNtLZDOwEzgosaDJw6bGIj/1Uxjh7rDjW+s7xeCPTKWDPrpvJ7ImLI2aOHphL/2oK65p1lOnypG9RPrI7VdEcQvlfGCf8gv32Z1OeaZAyRy/61qcVBrmGBHnuvYrNK84oiSqHSGb618krYEiURU7KJhhItEpsiEJOkvuTvbt/80xH6csVn9xB7WUpnf4pkrATY1aOlmtmGqUsRCd+9Jz1Gtw96OKaeLJQp3TIHz7dTXwgl0X31cZSe1P3hvdG5kEJHlTxdQEmY+l6+VMgPYm27+LWNJiVMH+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XpQidRfBYcpASrBmNUp6cS9dI5v90H+vlLhAO4ukAVM=; b=FMHpGbstWfr0iLStFn8RuxSbVkqB8hu1Rkqq7/SG1u4Y+Obhr2PZ+v75O9obuV/joadLBSsAtko/2PCAfKEYsm/cfuB6JDVlM0uQAlATIyKE9uUF1wBq0tlqGXBxUqQlT+a30dc/2s8aujnCxuFrCyaGKK7kh5NwQ5iHPWEPv6c= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by DB9PR07MB7068.eurprd07.prod.outlook.com (2603:10a6:10:213::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.12; Wed, 27 Oct 2021 11:33:15 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8b2:d48f:7cb7:8b3d]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8b2:d48f:7cb7:8b3d%6]) with mapi id 15.20.4649.014; Wed, 27 Oct 2021 11:33:15 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: Aman Kumar , "dev@dpdk.org" CC: "thomas@monjalon.net" , "viacheslavo@nvidia.com" , "anatoly.burakov@intel.com" , "Song, Keesang" , "jerinjacobk@gmail.com" , "konstantin.ananyev@intel.com" , "bruce.richardson@intel.com" Thread-Topic: [dpdk-dev] [PATCH v4 2/2] lib/eal: add temporal store memcpy support for AMD platform Thread-Index: AQHXywRDKNBHNfYp30yOmXLbyQHWs6vmttSA Date: Wed, 27 Oct 2021 11:33:15 +0000 Message-ID: <49dd4ef7-0ed7-0114-df2b-1abdee5c5a62@ericsson.com> References: <20211026155645.246783-1-aman.kumar@vvdntech.in> <20211027072810.257795-1-aman.kumar@vvdntech.in> <20211027072810.257795-2-aman.kumar@vvdntech.in> In-Reply-To: <20211027072810.257795-2-aman.kumar@vvdntech.in> Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9dac92f4-d5ff-4f78-134c-08d9993d9122 x-ms-traffictypediagnostic: DB9PR07MB7068: x-ld-processed: 92e84ceb-fbfd-47ab-be52-080c6b87953f,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2803; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PAA+eOOAj56Y5YQTc8F3DNrDiGZ0YCGCy+ApGPyHLwh4q7H2kZDdQT34EbEYqwg/jqr+fE2TUWkhYVmZoHKfUKB/9V0EJQRDwUwp5tZcdwfYyhIE9LWmXj9yEqy6w7m57upOYf0zeLcGAvrAPsXe53aEOXwhEw1j4PKZdVczIyYxlef7QdVgdkPXqR0a2CegL726X0XKm3ObYkuoBFrZLveW59yAxQj+opkiNs1/Ur/lOmFrtUmVk6NMJWGE4T0csFfAxNPprv1YyuCRYYnKmOEm0jrsEbFssp3w/Ou+0BNZpOrdBSuB6G2q040gJplVBKbGZuHWZySrD7vzIgpQiyGr4/7pFssuAR7tEX5QZ8+TG9UwOKvf1jdHSYw14lGb9YKH/ap+CfB7tkTKChzTihsw77AVqixHOuFTe/OMEu5nBp6fLg13WknsSduksD+dYQymu5cASIptSvTRfz5B5TbOgzMaqJZAYVJ0ntpokFf2xHkeSM5VOvzqpAik+GTjoe6InvCdluna5q1gvmqzWbblXfBrxmj/bbU/GINJkbUNCHgtvv/uxpYbgW3EkWE+we80CGYBg7rEaA8VpZzkvyB1X403BdlY+DKzhVslpzuxir4JefPY3vTkXRJRdVZiwIcTCxcC2Gxd/tUJpJvsac378iwveAjySP0U5jbNHJqgiZoA636297n5yPsbbFZoO/KqdDVvj5xY4LPOT5wMuUEQx3bHVt58DXZ2eTcovF7NpTGucv+Mlrmr8k+FCIrxx0jN+cMaRzhJFtRs0mp2sg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(316002)(54906003)(36756003)(53546011)(8936002)(6512007)(38070700005)(8676002)(4001150100001)(6506007)(508600001)(110136005)(31686004)(2906002)(26005)(64756008)(6486002)(5660300002)(186003)(66946007)(71200400001)(76116006)(66476007)(38100700002)(85202003)(86362001)(82960400001)(4326008)(2616005)(31696002)(85182001)(66556008)(122000001)(66446008)(83380400001)(43740500002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K2tGcFZkN2g0dW5wUjJYcVp0RFdxd2h5VDcyYXo0STRDbWc4WnUzdkg4UFJR?= =?utf-8?B?RHI1QWd3V2Y5RTQ0dlBtK2grUGw3c0o3T3MvMVRubTJYVmdYa2tkSllNTENL?= =?utf-8?B?RW1hcDZpa1UrQVc3anJ4NVd2SUFEVVJNMHRJN0puS2tSYTNLVyt1Vm1QQTFa?= =?utf-8?B?WXkyMjRpbnN6Y21XN1lQMmVOZ2pJTWZkVFdDeUtJa3dvZDVlU1JrV29DTDlp?= =?utf-8?B?ME1WQkN0UFB5THlHZHRjWnhhTjFaZUVNR25ITDRsc0d4RmlDdmZ0OG1IdUlk?= =?utf-8?B?ODRSWnJPM2ZLK2dtRDlvU2xvL1VMRWRPdGN0Y25BWTJzUGl2QUN6WTE0RCtl?= =?utf-8?B?T0hQU05wV1JVODZtbUM3TWFtZEphdVNwbGdpWURzRFhWOUM4UDdBS3pvc2Ru?= =?utf-8?B?cjg2VWZ1NXZ3a0lQWWtseG9nWVNEd0NFWW9yZlZyNmpFaXlrcGNrQy8yWlk2?= =?utf-8?B?OGMwSEFmS2lmWDJLaHhGcmdnQ1M0eUJDTXhmNnRrbVdZdXVONmtCRW5WN2ZL?= =?utf-8?B?aEt2QXhJSXZweFNjdXI1YU0wRmlLdXlGUzhDT2VwZ3JDcmNDU3FrNzNpZ0Uw?= =?utf-8?B?TWgxYXJpUUtiWXVRQzZBb1lTOHRFM3diMFp3WFJqZVFrVFpZSzFUajFaTzRh?= =?utf-8?B?M2ZKVis3THloeFVQU0tTaW9iVkxCMHp2ODl0YkhTenZFNUtWRld1QkM4YmFY?= =?utf-8?B?QlJwTFlXTGdLYUhSbDRWYm9DdDZ5aENReUJDRzdVVnpTUURlZkR3Snl1Rnc1?= =?utf-8?B?WDhtUjJsdXQrektiS21tTEJRVGF6Sy9RN2xPYjJuVUVEaFU2RW04cnNQRzVx?= =?utf-8?B?a0hNTS9MZUEyMmNSeG82dzNXMkRqVVQ2cy9JRFc3RFVHcjBkUjZRVDk4MDdQ?= =?utf-8?B?OStNdkx4cmd6TzhlR3pOREQ5U1Z0WlFMcms3Nk9NSU0xSy9mYnFMV1E2Mlgr?= =?utf-8?B?VTNxUTZxLzM1TGY3QUJRNnlCK3NhQklaKyt0cVZESE1rUG5DOGN6WFJETy9R?= =?utf-8?B?YXNRWWRyVzBaWGxIV25PdThOL1daKzJTaXJxUUw5b3ZlbGlZcTZLZExyU0sz?= =?utf-8?B?WlRLc1FIL0tTTzN6bzJCWUYvaVFiMW9BQ0FVOGZMdHRFai81ZFVvR1dtT1dP?= =?utf-8?B?NmJpK0F4a29YTTBCZytPZ2NxUEVEYlUxT3V0R0pmeERhdDJ2UTZyeUZNMGMr?= =?utf-8?B?OTU5N0ttS2RrZW9zOS8zSjFtVFU2NzhBdWdBenFpcHVxMU13dnhncVF3YWZj?= =?utf-8?B?b2NRV2RFc1dUdTlXY0dZNy9OMXBzYS9Gem1DeTFtSGROVkVYTnI5dTFIczI0?= =?utf-8?B?dHdwZElqZ2w5MncvMExWdTdrSWVUZDMxR1ZJM3FtUnZkaHZkc1BvVERmSjh1?= =?utf-8?B?Z25pd1RMcEZDRlpTUTNjY21HaGY2eklaWkw1ZXBtNVFvQVU3Vzl5eHJxMGU0?= =?utf-8?B?NGhpa255aDRTTzEzMWE4Zi9ITU96a1JQczRMOHpxUWtFTDhBbEJXMlVOY2Q2?= =?utf-8?B?WWVDMzczQk5jUVU4RmU1MDlpR28vdjU0cFc0aDFEWmw1TndqTDUvNlJQSCtR?= =?utf-8?B?K0s4Z0ladnhCb1lkVnpyQldWanpNR01uaitRMk1EYS83MURtVkpkV0F3M3Qr?= =?utf-8?B?OEJpaG9KMEhZZm1PUmRKRkVkQTJSZWpwTnJpY2IwQ1k1UUR0RC80M1V4dDZu?= =?utf-8?B?elRkMm1lZVkvL0Q0OUxoSS9jYWxaU2xPY0JPMCs2MThzQzBhb2h0bGxLR1My?= =?utf-8?B?VUtQSUdEV29zWk1wakh5akoxY1YxSmtOMkNKOWhmc0FnMnFvTTErZTMyVU14?= =?utf-8?B?a00wTm1lOXBRQ2lVZElIbmt5bWVneHVUb2NHR016YnMrSWhwR2FLTWUvdWwr?= =?utf-8?B?azJ0MUh5V2dudytiVmZMeURQVFQrdXp0QnV4MDl2UTlaTU5lS1RJaWoxUU9E?= =?utf-8?B?WVhPdWJPZzdqcHBERFpSZ3kxUGpUZE1OdjZHVVh4bHhmL2ZPOVd2Z0k3V0E2?= =?utf-8?B?Znp4N2RUSW5EbmVOWTRPYzZpTUFXZi9IMWhBTlRacjNZdDdLTCtHZVJIWVh6?= =?utf-8?B?Z04rQitIdGVhdWMvcmx6Y2V5SFN4RFNweTBkcWdGdUtCVFd5eHlYR0FkNE51?= =?utf-8?B?WGN5bzgyZDBsK1p6RUNwLzJNOHFYcnlJdXdrTFBqRXJyUkJGM29nd1VNU2Fn?= =?utf-8?B?OWx1czQyWWlDM1BaU1hzSnpOcDQ4Ry81dzIraGIvTWRZazY1S1RJekg1Y3dh?= =?utf-8?B?RFpiczh6amJMemFqekR3eXhDVGxRPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9dac92f4-d5ff-4f78-134c-08d9993d9122 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2021 11:33:15.6140 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: IReN0Q4sQxKAWFnO2akbnugRb/SlXKiqigttTVJkqrfe5FSYaDn1vjvGV5YoR9JmAOdpmBq2Qc5bvyoTXD7yMqRFx3pIqCvf7YETZGdJHpQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR07MB7068 Subject: Re: [dpdk-dev] [PATCH v4 2/2] lib/eal: add temporal store memcpy support for AMD platform 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" T24gMjAyMS0xMC0yNyAwOToyOCwgQW1hbiBLdW1hciB3cm90ZToNCj4gVGhpcyBwYXRjaCBwcm92 aWRlcyBhIHJ0ZV9tZW1jcHkqIGNhbGwgd2l0aCB0ZW1wb3JhbCBzdG9yZXMuDQo+IFVzZSAtRGNw dV9pbnN0cnVjdGlvbl9zZXQ9em52ZXJYIHdpdGggYnVpbGQgdG8gZW5hYmxlIHRoaXMgQVBJLg0K Pg0KPiBTaWduZWQtb2ZmLWJ5OiBBbWFuIEt1bWFyIDxhbWFuLmt1bWFyQHZ2ZG50ZWNoLmluPg0K PiAtLS0NCj4gICBjb25maWcveDg2L21lc29uLmJ1aWxkICAgICAgICAgICB8ICAgMiArDQo+ICAg bGliL2VhbC94ODYvaW5jbHVkZS9ydGVfbWVtY3B5LmggfCAxMTQgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKykNCj4N Cj4gZGlmZiAtLWdpdCBhL2NvbmZpZy94ODYvbWVzb24uYnVpbGQgYi9jb25maWcveDg2L21lc29u LmJ1aWxkDQo+IGluZGV4IDIxY2RhNmZkMzMuLjU2ZGFlNGFjYTcgMTAwNjQ0DQo+IC0tLSBhL2Nv bmZpZy94ODYvbWVzb24uYnVpbGQNCj4gKysrIGIvY29uZmlnL3g4Ni9tZXNvbi5idWlsZA0KPiBA QCAtNzgsNiArNzgsOCBAQCBpZiBnZXRfb3B0aW9uKCdjcHVfaW5zdHJ1Y3Rpb25fc2V0JykgPT0g J3pudmVyMScNCj4gICAgICAgZHBka19jb25mLnNldCgnUlRFX01BWF9MQ09SRScsIDI1NikNCj4g ICBlbGlmIGdldF9vcHRpb24oJ2NwdV9pbnN0cnVjdGlvbl9zZXQnKSA9PSAnem52ZXIyJw0KPiAg ICAgICBkcGRrX2NvbmYuc2V0KCdSVEVfTUFYX0xDT1JFJywgNTEyKQ0KPiArICAgIGRwZGtfY29u Zi5zZXQoJ1JURV9NRU1DUFlfQU1ERVBZQycsIDEpDQo+ICAgZWxpZiBnZXRfb3B0aW9uKCdjcHVf aW5zdHJ1Y3Rpb25fc2V0JykgPT0gJ3pudmVyMycNCj4gICAgICAgZHBka19jb25mLnNldCgnUlRF X01BWF9MQ09SRScsIDUxMikNCj4gKyAgICBkcGRrX2NvbmYuc2V0KCdSVEVfTUVNQ1BZX0FNREVQ WUMnLCAxKQ0KPiAgIGVuZGlmDQo+IGRpZmYgLS1naXQgYS9saWIvZWFsL3g4Ni9pbmNsdWRlL3J0 ZV9tZW1jcHkuaCBiL2xpYi9lYWwveDg2L2luY2x1ZGUvcnRlX21lbWNweS5oDQo+IGluZGV4IDFi NmM2ZTU4NWYuLjhmZTc4MjJjYjQgMTAwNjQ0DQo+IC0tLSBhL2xpYi9lYWwveDg2L2luY2x1ZGUv cnRlX21lbWNweS5oDQo+ICsrKyBiL2xpYi9lYWwveDg2L2luY2x1ZGUvcnRlX21lbWNweS5oDQo+ IEBAIC0zNzYsNiArMzc2LDEyMCBAQCBydGVfbW92MTI4YmxvY2tzKHVpbnQ4X3QgKmRzdCwgY29u c3QgdWludDhfdCAqc3JjLCBzaXplX3QgbikNCj4gICAJfQ0KPiAgIH0NCj4gICANCj4gKyNpZiBk ZWZpbmVkIFJURV9NRU1DUFlfQU1ERVBZQw0KPiArDQo+ICsvKioNCj4gKyAqIENvcHkgMTYgYnl0 ZXMgZnJvbSBvbmUgbG9jYXRpb24gdG8gYW5vdGhlciwNCj4gKyAqIHdpdGggdGVtcG9yYWwgc3Rv cmVzDQo+ICsgKi8NCj4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gK3J0ZV9j b3B5MTZfdHModWludDhfdCAqZHN0LCB1aW50OF90ICpzcmMpDQo+ICt7DQo+ICsJX19tMTI4aSB2 YXIxMjg7DQo+ICsNCj4gKwl2YXIxMjggPSBfbW1fc3RyZWFtX2xvYWRfc2kxMjgoKF9fbTEyOGkg KilzcmMpOw0KPiArCV9tbV9zdG9yZXVfc2kxMjgoKF9fbTEyOGkgKilkc3QsIHZhcjEyOCk7DQo+ ICt9DQo+ICsNCj4gKy8qKg0KPiArICogQ29weSAzMiBieXRlcyBmcm9tIG9uZSBsb2NhdGlvbiB0 byBhbm90aGVyLA0KPiArICogd2l0aCB0ZW1wb3JhbCBzdG9yZXMNCj4gKyAqLw0KPiArc3RhdGlj IF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiArcnRlX2NvcHkzMl90cyh1aW50OF90ICpkc3Qs IHVpbnQ4X3QgKnNyYykNCj4gK3sNCj4gKwlfX20yNTZpIHltbTA7DQo+ICsNCj4gKwl5bW0wID0g X21tMjU2X3N0cmVhbV9sb2FkX3NpMjU2KChjb25zdCBfX20yNTZpICopc3JjKTsNCj4gKwlfbW0y NTZfc3RvcmV1X3NpMjU2KChfX20yNTZpICopZHN0LCB5bW0wKTsNCj4gK30NCj4gKw0KPiArLyoq DQo+ICsgKiBDb3B5IDY0IGJ5dGVzIGZyb20gb25lIGxvY2F0aW9uIHRvIGFub3RoZXIsDQo+ICsg KiB3aXRoIHRlbXBvcmFsIHN0b3Jlcw0KPiArICovDQo+ICtzdGF0aWMgX19ydGVfYWx3YXlzX2lu bGluZSB2b2lkDQo+ICtydGVfY29weTY0X3RzKHVpbnQ4X3QgKmRzdCwgdWludDhfdCAqc3JjKQ0K PiArew0KPiArCXJ0ZV9jb3B5MzJfdHMoZHN0ICsgMCAqIDMyLCBzcmMgKyAwICogMzIpOw0KPiAr CXJ0ZV9jb3B5MzJfdHMoZHN0ICsgMSAqIDMyLCBzcmMgKyAxICogMzIpOw0KPiArfQ0KPiArDQo+ ICsvKioNCj4gKyAqIENvcHkgMTI4IGJ5dGVzIGZyb20gb25lIGxvY2F0aW9uIHRvIGFub3RoZXIs DQo+ICsgKiB3aXRoIHRlbXBvcmFsIHN0b3Jlcw0KPiArICovDQo+ICtzdGF0aWMgX19ydGVfYWx3 YXlzX2lubGluZSB2b2lkDQo+ICtydGVfY29weTEyOF90cyh1aW50OF90ICpkc3QsIHVpbnQ4X3Qg KnNyYykNCj4gK3sNCj4gKwlydGVfY29weTMyX3RzKGRzdCArIDAgKiAzMiwgc3JjICsgMCAqIDMy KTsNCj4gKwlydGVfY29weTMyX3RzKGRzdCArIDEgKiAzMiwgc3JjICsgMSAqIDMyKTsNCj4gKwly dGVfY29weTMyX3RzKGRzdCArIDIgKiAzMiwgc3JjICsgMiAqIDMyKTsNCj4gKwlydGVfY29weTMy X3RzKGRzdCArIDMgKiAzMiwgc3JjICsgMyAqIDMyKTsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsg KiBDb3B5IGxlbiBieXRlcyBmcm9tIG9uZSBsb2NhdGlvbiB0byBhbm90aGVyLA0KPiArICogd2l0 aCB0ZW1wb3JhbCBzdG9yZXMgMTZCIGFsaWduZWQNCj4gKyAqLw0KPiArc3RhdGljIF9fcnRlX2Fs d2F5c19pbmxpbmUgdm9pZCAqDQo+ICtydGVfbWVtY3B5X2FsaWduZWRfdHN0b3JlMTZfZ2VuZXJp Yyh2b2lkICpkc3QsIHZvaWQgKnNyYywgaW50IGxlbikNCj4gK3sNCj4gKwl2b2lkICpkZXN0ID0g ZHN0Ow0KPiArDQo+ICsJd2hpbGUgKGxlbiA+PSAxMjgpIHsNCj4gKwkJcnRlX2NvcHkxMjhfdHMo KHVpbnQ4X3QgKilkc3QsICh1aW50OF90ICopc3JjKTsNCj4gKwkJZHN0ID0gKHVpbnQ4X3QgKilk c3QgKyAxMjg7DQo+ICsJCXNyYyA9ICh1aW50OF90ICopc3JjICsgMTI4Ow0KPiArCQlsZW4gLT0g MTI4Ow0KPiArCX0NCj4gKwl3aGlsZSAobGVuID49IDY0KSB7DQo+ICsJCXJ0ZV9jb3B5NjRfdHMo KHVpbnQ4X3QgKilkc3QsICh1aW50OF90ICopc3JjKTsNCj4gKwkJZHN0ID0gKHVpbnQ4X3QgKilk c3QgKyA2NDsNCj4gKwkJc3JjID0gKHVpbnQ4X3QgKilzcmMgKyA2NDsNCj4gKwkJbGVuIC09IDY0 Ow0KPiArCX0NCj4gKwl3aGlsZSAobGVuID49IDMyKSB7DQo+ICsJCXJ0ZV9jb3B5MzJfdHMoKHVp bnQ4X3QgKilkc3QsICh1aW50OF90ICopc3JjKTsNCj4gKwkJZHN0ID0gKHVpbnQ4X3QgKilkc3Qg KyAzMjsNCj4gKwkJc3JjID0gKHVpbnQ4X3QgKilzcmMgKyAzMjsNCj4gKwkJbGVuIC09IDMyOw0K PiArCX0NCj4gKwlpZiAobGVuID49IDE2KSB7DQo+ICsJCXJ0ZV9jb3B5MTZfdHMoKHVpbnQ4X3Qg Kilkc3QsICh1aW50OF90ICopc3JjKTsNCj4gKwkJZHN0ID0gKHVpbnQ4X3QgKilkc3QgKyAxNjsN Cj4gKwkJc3JjID0gKHVpbnQ4X3QgKilzcmMgKyAxNjsNCj4gKwkJbGVuIC09IDE2Ow0KPiArCX0N Cj4gKwlpZiAobGVuID49IDgpIHsNCj4gKwkJKih1aW50NjRfdCAqKWRzdCA9ICooY29uc3QgdWlu dDY0X3QgKilzcmM7DQo+ICsJCWRzdCA9ICh1aW50OF90ICopZHN0ICsgODsNCj4gKwkJc3JjID0g KHVpbnQ4X3QgKilzcmMgKyA4Ow0KPiArCQlsZW4gLT0gODsNCj4gKwl9DQo+ICsJaWYgKGxlbiA+ PSA0KSB7DQo+ICsJCSoodWludDMyX3QgKilkc3QgPSAqKGNvbnN0IHVpbnQzMl90ICopc3JjOw0K PiArCQlkc3QgPSAodWludDhfdCAqKWRzdCArIDQ7DQo+ICsJCXNyYyA9ICh1aW50OF90ICopc3Jj ICsgNDsNCj4gKwkJbGVuIC09IDQ7DQo+ICsJfQ0KPiArCWlmIChsZW4gIT0gMCkgew0KPiArCQlk c3QgPSAodWludDhfdCAqKWRzdCAtICg0IC0gbGVuKTsNCj4gKwkJc3JjID0gKHVpbnQ4X3QgKilz cmMgLSAoNCAtIGxlbik7DQo+ICsJCSoodWludDMyX3QgKilkc3QgPSAqKGNvbnN0IHVpbnQzMl90 ICopc3JjOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiBkZXN0Ow0KDQoNCllvdSBkb24ndCBuZWVk IGEgX21tX3NmZW5jZSBhZnRlciB0aGUgTlQgc3RvcmVzIHRvIGF2b2lkIHN1cnByaXNlcyAoZS5n LCANCmlmIHlvdSB1c2UgdGhpcyBOVCBtZW1jcHkoKSBpbiBjb21iaW5hdGlvbiB3aXRoIERQREsg cmluZ3MpPyBOVCBzdG9yZXMgDQphcmUgd2Vha2x5IG9yZGVyZWQgb24geDg2XzY0LCBmcm9tIHdo YXQgSSB1bmRlcnN0YW5kLg0KDQoNCj4gK30NCj4gKw0KPiArc3RhdGljIF9fcnRlX2Fsd2F5c19p bmxpbmUgdm9pZCAqDQo+ICtydGVfbWVtY3B5X2FsaWduZWRfdHN0b3JlMTYodm9pZCAqZHN0LCB2 b2lkICpzcmMsIGludCBsZW4pDQoNCg0KU2hvdWxkbid0IGJvdGggZHN0IGFuZCBzcmMgYmUgbWFy a2VkIF9fcmVzdHJpY3Q/IEdvZXMgZm9yIGFsbCB0aGVzZSANCmZ1bmN0aW9ucy4NCg0KPiArew0K PiArCXJldHVybiBydGVfbWVtY3B5X2FsaWduZWRfdHN0b3JlMTZfZ2VuZXJpYyhkc3QsIHNyYywg bGVuKTsNCj4gK30NCj4gKw0KPiArI2VuZGlmIC8qIFJURV9NRU1DUFlfQU1ERVBZQyAqLw0KDQoN CldoYXQgZG9lcyB4ODZfNjQgTlQgc3RvcmVzIGhhdmUgdG8gZG8gd2l0aCBFUFlDPw0KDQoNCj4g Kw0KPiAgIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQgKg0KPiAgIHJ0ZV9tZW1jcHlf Z2VuZXJpYyh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IG4pDQo+ICAgew0KDQoN Cg==