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 X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 17AEFC49EA5 for ; Thu, 24 Jun 2021 14:57:25 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id 8544E61375 for ; Thu, 24 Jun 2021 14:57:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8544E61375 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9BCE940040; Thu, 24 Jun 2021 16:57:23 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 9297D4003C for ; Thu, 24 Jun 2021 16:57:21 +0200 (CEST) IronPort-SDR: Fx83irCQ9FPu+jOkwevesAnw0hbM4Oz2Kbzf4aktpMqcCAXzuu6DX5DzoZ2EzL5Iz2MqdkvfGC iEYZjgr5UACA== X-IronPort-AV: E=McAfee;i="6200,9189,10025"; a="207523837" X-IronPort-AV: E=Sophos;i="5.83,296,1616482800"; d="scan'208";a="207523837" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 07:57:20 -0700 IronPort-SDR: NhT3/aidqG0g/p0NUA73m0G2tAnRJ1NVcdWhDwG8oH5nEcSj6ElhYdN4z8yjWk66fC8D1qPr4D uSH5iebEAZnw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,296,1616482800"; d="scan'208";a="424099191" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga002.jf.intel.com with ESMTP; 24 Jun 2021 07:57:20 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 24 Jun 2021 07:57:19 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Thu, 24 Jun 2021 07:57:19 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Thu, 24 Jun 2021 07:57:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rg8gRRjYvpn8OEBLF8nAK3iej2BLPyu7XQXB8Efwsjf7KILfiJ08xOIbRS2c+2iKIAD4b66UHYRCzkM81kS/Puc8qKS/I/XkHSwv7qj3BwUIIeii8LuHeLLol7ZLgv6b51dtUnH6rrAGhXSNHoXkJUkIqDPgbx6101Zes+ys0VslYJueLCp9duBvkfvu/mKtrNDzivrooV1p6kfg144Iu/BDOgrVYyzNDvY1kJbro/WNrKVk2eSqFjwhARwQdcnS9ABpt7Dw6r0rmXlct6p5J9rmy27uvc9IXDU8nY79kPlM6g+wGdmTbakCVMOsfAiZ22HyjEVKpc/fKU1hQZo58w== 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=32/FTTivaHSqWdklOL8M9WEbb/p06QIj7INbEHSUzfA=; b=iMvq95uHZnHJAD5XjZUT5LfjK6//nd2Te2rFOAH5q2uoyaul52sDxN0eMEIGl2y7KC6ke1k+DTk/GE79JFsr9ffK9lNMCKMEhVioKhwX7Dm1DmSKP33anzNaHv1olkWD/zJsTOd2FOmTfNuDF9VEZ6MUjRgMmBmwXb8PbHkVp5o3NpHkShgNKmPUWoydxnc/3iIPn7ShS4RicdcEWl7QGFND7Gm5DUxi3LNugyFLmjGuKeyAaVe8CcPDaw9miljXlUwUH+SFWiNh9ot2vOPp7yrDW0F5N6Vl3wj0oIdu14JTaAQUIN4aLlbibDCI/8KqRvfMw7OC3I3YUK2kaYESCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=32/FTTivaHSqWdklOL8M9WEbb/p06QIj7INbEHSUzfA=; b=rCkvaCjNWRUOSKyPoF1fgR3iWea2SLHpJTQ2YilSZaG+NTI94lI3rpMy7lK5FoScSbhmrFNZhqFkzdkA20PiJT4LT/H7TJzPq8W/d6kwtbtK+2iTBx1ingygD7P8hAqLHxIpVMi9PG7zEPAtvXPIUs5S8Kq75uAzl9f2Yg38O5Q= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4545.namprd11.prod.outlook.com (2603:10b6:5:2ae::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18; Thu, 24 Jun 2021 14:57:17 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4242.025; Thu, 24 Jun 2021 14:57:17 +0000 From: "Ananyev, Konstantin" To: "Burakov, Anatoly" , "dev@dpdk.org" , "Richardson, Bruce" CC: "Loftus, Ciara" , "Hunt, David" Thread-Topic: [PATCH v1 1/7] power_intrinsics: allow monitor checks inversion Thread-Index: AQHXVt3hXKEPl/Wz7069wuvKSGP/iKseiW0ggALxP4CAAAKX8IAAAj6AgAAOaaCAABZuAIAAE8aQgAAOCwCAAUFKYIAAVvQAgAACHzA= Date: Thu, 24 Jun 2021 14:57:17 +0000 Message-ID: References: <8007029ea9e5129ea43f0c11708169406a16727f.1622548381.git.anatoly.burakov@intel.com> <53ac7ee0-e4bc-099a-2ddd-0d74949eea9d@intel.com> <249f6957-0f10-926f-9f0e-5cb10fc4d2c3@intel.com> <22ddddf1-6523-8219-dcef-86205e662756@intel.com> <084a42d9-1422-f4a5-f57e-53b4667c1f44@intel.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7c720fd5-c946-4230-b467-08d937205c50 x-ms-traffictypediagnostic: DM6PR11MB4545: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JJHmVSvdOIjzDmKU4vn5i5H1w2w2kvkAZ314YMNmp6+3aI0R8CGrMIQSoy6K+vnTOTeMBR1dwIGT+4bpWSOmccieB/7IVlapdfkBVHSffSFhff9M8JI1iraytZHYRa5iXD3fUXY56ldrSPQ4o8tMlYfdqyvMcNDr3bpzU3FW2V1t5tEMfhVGuaZXtCy2DFRBD5orWRswWAQZJxcvu52I5ly6rRQbIh9rJXOnLJUok5UBRVbPPqvJ+wRarh1NZSApk1cq9Su+Hu5MuT2dT+s4FvVE9PZqt9GOcn2XcbzbR898yDNko8/HCthEPM0vXd02XDMIy+MlvmBTiPkeREX8X3oZ1Y8s7+0FUAKJco/O5VfTnf89FUMXy7UwQYlQXtZqDzaYTiz0EgdpHxsaDfvl8hbR/LdJA2Q5X1gKCJ2811x3qjVzuU7pKCvp87DJoc5KtAfYa+SjLHZtxwD+oBnoeI4gIYJ2iq0zB5E9SGkKnZRX1wNPWC8FxUno6XdVXGXJnesY4HPKbe5iUj1gb+YlykM9lZOIw0LyN6HfxrgiLNTkKU1chFm0R0QvKUljR0eNkaKnkMMWlHhjccDn9K2jCqM9FBZyp2Tfz62Lugy/4r4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(346002)(396003)(39860400002)(366004)(9686003)(122000001)(83380400001)(478600001)(33656002)(186003)(71200400001)(38100700002)(26005)(6636002)(4326008)(55016002)(52536014)(5660300002)(8676002)(107886003)(86362001)(6506007)(55236004)(8936002)(76116006)(66446008)(66556008)(64756008)(66476007)(66946007)(2906002)(110136005)(54906003)(316002)(7696005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R3JtMHlxZ21OazIrSzFLVzlVWmhYRmhLSVIxVkhUWW5VS2ZXc2hxMk9jbmU1?= =?utf-8?B?dmFIWjN6QzFYRmU0ZENUUVl3ZmdHbVQyYmE0blEzc0lKWEpqc2xIcDhHSlM4?= =?utf-8?B?cms5eGlrdUxIaWptUUdRZFZoellvaEtQS1JKNklIdi9kNEs5bnB6Zk9YN2Zo?= =?utf-8?B?SjE2RUlKRWxGSm1GZktjbE9IS1Y0eHRNaFFncmFWQ25FMjZocS9rdXNsMndr?= =?utf-8?B?NGNwWFZyai9Xc0NCVkdqU3AxcUxjeGtEdU9zRnZBWVltejhscFcvUUJ4ZjVB?= =?utf-8?B?TWNTWWhCVkV1ZlhHbUc2YklaZ0RMVGlKT003NktzYW1RRjhSVlcvQ3VIWVVx?= =?utf-8?B?WUFxbCtpOWIrTFlEM3pMZEpxMnR3d3laMjF0c2Rwb2FsaDRTcWNKdTRTK2hS?= =?utf-8?B?NWI5dktLYXFDa3J5VitDQ1FmbG9tYlZGVGhVeFNBQTdYVkRsU3I4UURPbmZF?= =?utf-8?B?OHA2TXFmVUpjd1J0VlNaVThrUHdtYWJQUkd4cVhXdFcxaHJMKzc2S2hlNUtu?= =?utf-8?B?bUtuOWE1TzcraFhJNi9EQzhxa28ydE9HYjVSOTRmeEhITE5VSTR6ZlZTOGM4?= =?utf-8?B?cWQ2dlQ3RXMveWI2VFU5S1kvbWlQbEtSeFBEVnlUUHU2dGwyYnVmTzE4bFR6?= =?utf-8?B?MVlMa1FSMnFEYVpXd2d1U3pEUk9WOVZsS2JJc3RYVG40R0F5NldTZVdyTzRx?= =?utf-8?B?Wk95bXEwRFFkS3FMVVBRanBMemF2ekUxOExOL1BqNklmSXNaZHJMU2hYaXVs?= =?utf-8?B?ajhyK0ZrNWZ5M2lCbC9zOEJWK3ByZHZHcVNPeXRjc3hSZlF2dFl2VWRKTWJ2?= =?utf-8?B?WDdsNEVpVENFNWc4VHpmcTZ6S2VOcjFheE9ZZzluQS9pZEVRU3Q0SXppNSsw?= =?utf-8?B?eHVwL2xOd2ZjR3pZUEF5cWtobWZ6ZHdWdDFTMTlPVndHRGtGRTdNS05Ta0JZ?= =?utf-8?B?aWdLTk8ydll6SUJlRW9IOU9IVjBnTGg0aTRzQ2hGT25JYXlYUnNhM2R4TTZ6?= =?utf-8?B?TmZQRmU1emlGUG45UTR2bXM1YzlkMEpwTEdVaFhabXl5ZWRjcjJmVE4vVFNN?= =?utf-8?B?dW9pTXlXRTVxMW9DN3lsaFA5bTNSRFZLWGdJeXdzME1oZU9FOGgyUzFvTStP?= =?utf-8?B?S084eCtIWVU2c1F3anVPckhNeS8vMGRtZzVrVkcrak9ER2RHVytwQ0FzaWxM?= =?utf-8?B?SmNyUzlVcUpJSmU1eExRSFpINVZHL3JPNS9ydkk5eUlPdDAydWVaRE0wSFpF?= =?utf-8?B?Tkp1anpSNVJDYXVhdGNwZ0JuNDlzSVhzMlhJVlBFZzhvOC9OcW40YjZORlhT?= =?utf-8?B?K05pWHY0WWVUWWRoZnZ2SWlFbllVa1FPMmM4V0RwVk1VV3RDMkNHZ01vK1Vr?= =?utf-8?B?L0ZMbUxPMGl4eDlRSlFaZUNvR3BubDI4WWdyWFB5QXNGcUNMMWFLa1RCY0ZR?= =?utf-8?B?Z2hEZzBsVHZ3a1RIVVVaclNBdFA2Lzhtci9aa3dCZEw3bDlDa2RpTTdnb2dG?= =?utf-8?B?WGJtdDd2N2l3Z1dQVEVMSHpDeFhqaHlWbERrbXpLV3VtS1p3OTRhKy9jSWQ3?= =?utf-8?B?OHBmVzErU2pNUmYvUlFacW5QaGxLNVVrR2NORUkxUUlEYSs0VUh3eU9aeTE2?= =?utf-8?B?QUNPUUFHMEVWbEQ2NXRIMXJTWjM3UGZqZkFOTGZEU0xaSENwUWd5cHdTeCt4?= =?utf-8?B?K3BXZzAwUW9xN1p2SEo2WmZnRDM0eFordkd6YmlJSFozYisxZW5CNFBUL0JN?= =?utf-8?Q?Z576Jn3ZRrzCECgRfHsiKk1VZ/Jjsy8Z5jRruAP?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c720fd5-c946-4230-b467-08d937205c50 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2021 14:57:17.5590 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kGl6hWRIaS9yzGpGUKVeEHRjCtfOxIB82pIWUfRry5eFxrbQ03wl4H51vjeyzDczIT1TuQ4cLnwIFimL2y+J0nsfaBpp7Q2D0xxM3t1KRlM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4545 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1 1/7] power_intrinsics: allow monitor checks inversion 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" DQoNCj4gPj4+PiBJIGRpZCBhIHF1aWNrIHByb3RvdHlwZSBmb3IgdGhpcywgYW5kIGkgZG9uJ3Qg dGhpbmsgaXQgaXMgZ29pbmcgdG8gd29yay4NCj4gPj4+Pg0KPiA+Pj4+IENhbGxiYWNrcyB3aXRo IGp1c3QgImN1cnJlbnQgdmFsdWUiIGFzIGFyZ3VtZW50IHdpbGwgYmUgcHJldHR5IGxpbWl0ZWQN Cj4gPj4+PiBhbmQgd2lsbCBvbmx5IHJlYWxseSB3b3JrIGZvciBjYXNlcyB3aGVyZSB3ZSBrbm93 IHdoYXQgd2UgYXJlIGV4cGVjdGluZy4NCj4gPj4+PiBIb3dldmVyLCBmb3IgY2FzZXMgbGlrZSBl dmVudC9kbGIgb3IgbmV0L21seDUsIHRoZSBleHBlY3RlZCB2YWx1ZSBpcyAob3INCj4gPj4+PiBh cHBlYXJzIHRvIGJlKSBkZXBlbmRlbnQgdXBvbiBzb21lIGludGVybmFsIGRldmljZSBkYXRhLCBh bmQgaXMgbm90DQo+ID4+Pj4gY29uc3RhbnQgbGlrZSBpbiBjYXNlIG9mIG5ldC9peGdiZSBmb3Ig ZXhhbXBsZS4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgY2FuIGJlIGZpeGVkIGJ5IHBhc3NpbmcgYW4g b3BhcXVlIHBvaW50ZXIsIGVpdGhlciBieSBzdG9yaW5nIGl0IGluDQo+ID4+Pj4gdGhlIG1vbml0 b3IgY29uZGl0aW9uLCBvciBieSBwYXNzaW5nIGl0IGRpcmVjdGx5IHRvIHJ0ZV9wb3dlcl9tb25p dG9yIGF0DQo+ID4+Pj4gaW52b2NhdGlvbiB0aW1lLg0KPiA+Pj4+DQo+ID4+Pj4gVGhlIGxhdHRl ciBkb2Vzbid0IHdvcmsgd2VsbCBiZWNhdXNlIHdoZW4gd2UgY2FsbCBydGVfcG93ZXJfbW9uaXRv ciBmcm9tDQo+ID4+Pj4gaW5zaWRlIHRoZSBydGVfcG93ZXIgbGlicmFyeSwgd2UgbGFjayB0aGUg Y29udGV4dCBuZWNlc3NhcnkgdG8gZ2V0IHNhaWQNCj4gPj4+PiBvcGFxdWUgcG9pbnRlci4NCj4g Pj4+Pg0KPiA+Pj4+IFRoZSBmb3JtZXIgZG9lc24ndCB3b3JrIGVpdGhlciwgYmVjYXVzZSB0aGUg b25seSBwbGFjZSB3aGVyZSB3ZSBjYW4gZ2V0DQo+ID4+Pj4gdGhpcyBhcmd1bWVudCBpcyBpbnNp ZGUgZ2V0X21vbml0b3JfYWRkciwgYnV0IHRoZSBvcGFxdWUgcG9pbnRlciBtdXN0DQo+ID4+Pj4g cGVyc2lzdCBhZnRlciB3ZSBleGl0IHRoYXQgZnVuY3Rpb24gaW4gb3JkZXIgdG8gYXZvaWQgdXNl LWFmdGVyLWZyZWUgLQ0KPiA+Pj4+IHdoaWNoIG1lYW5zIHRoYXQgaXQgZWl0aGVyIGhhcyB0byBi ZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCAod2hpY2ggbWVhbnMNCj4gPj4+PiBpdCdzIG5vdCB0aHJl YWQtc2FmZSBmb3IgYSBub24tdHJpdmlhbCBjYXNlKSwgb3IgZHluYW1pY2FsbHkgYWxsb2NhdGVk DQo+ID4+Pj4gKHdoaWNoIGEgYmlnIG5vLW5vIG9uIGEgaG90cGF0aCkuDQo+ID4+Pg0KPiA+Pj4g SWYgSSBnZXQgeW91IHJpZ2h0LCBleHBlY3RlZF92YWx1ZSAoYW5kIHByb2JhYmx5IG1hc2spIGNh biBiZSB2YXJpYWJsZSBvbmVzLg0KPiA+Pj4gU28gZm9yIGNhbGxiYWNrIGFwcHJvYWNoIHRvIHdv cmsgd2UgbmVlZCB0byBwYXNzIGFsbCB0aGlzIGFzIHBhcmFtZXRlcnMNCj4gPj4+IHRvIFBNRCBj b21wYXJpc29uIGNhbGxiYWNrOg0KPiA+Pj4gaW50IHBtY19jYWxsYmFjayh1aW50NjRfdCByZWFs X3ZhbCwgdWludDY0X3QgZXhwZWN0ZWRfdmFsLCB1aW50NjRfdCBtYXNrKQ0KPiA+Pj4gQ29ycmVj dD8NCj4gPj4NCj4gPj4gSWYgd2UgaGF2ZSBib3RoIGV4cGVjdGVkIHZhbHVlLCBtYXNrLCBhbmQg Y3VycmVudCB2YWx1ZSwgdGhlbiB3aGF0J3MgdGhlDQo+ID4+IHBvaW50IG9mIHRoZSBjYWxsYmFj az8gVGhlIHBvaW50IG9mIHRoZSBjYWxsYmFjayB3b3VsZCBiZSB0byBwYXNzIGp1c3QNCj4gPj4g dGhlIGN1cnJlbnQgdmFsdWUsIGFuZCBsZXQgdGhlIGNhbGxiYWNrIGRlY2lkZSB3aGF0J3MgdGhl IGV4cGVjdGVkIHZhbHVlDQo+ID4+IGFuZCBob3cgdG8gY29tcGFyZSBpdC4NCj4gPg0KPiA+IEZv ciBtZSB0aGUgbWFpbiBwb2ludCBvZiBjYWxsYmFjayBpcyB0byBoaWRlIFBNRCBzcGVjaWZpYyBj b21wYXJpc29uIHNlbWFudGljcy4NCj4gPiBCYXNpY2FsbHkgdGhleSBwcm92aWRlIHVzIHdpdGgg c29tZSB2YWx1ZXMgaW4gc3RydWN0IHJ0ZV9wb3dlcl9tb25pdG9yX2NvbmQsDQo+ID4gYW5kIHRo ZW4gaXQgaXMgdXAgdG8gdGhlbSBob3cgdG8gaW50ZXJwcmV0IHRoZW0gaW4gdGhlaXIgY29tcGFy aXNvbiBmdW5jdGlvbi4NCj4gPiBBbGwgd2UnbGwgZG8gZm9yIHRoZW06IHdpbGwgcmVhZCB0aGUg dmFsdWUgYXQgYWRkcmVzcyBwcm92aWRlZC4NCj4gPiBJIHVuZGVyc3RhbmQgdGhhdCBpdCBsb29r cyBsaWtlIGFuIG92ZXJraWxsLCBhcyBtYWpvcml0eSBvZiB0aGVzZSBjb21wYXJpc29uIGZ1bmN0 aW9ucw0KPiA+IHdpbGwgYmUgbGlrZToNCj4gPiBpbnQgY21wX2NhbGxiYWNrKHVpbnQ2NF90IHJl YWxfdmFsLCB1aW50NjRfdCBleHBlY3RlZF92YWwsIHVpbnQ2NF90IG1hc2spDQo+ID4gew0KPiA+ ICAgICAgICAgIHJldHVybiAoKHJlYWxfdmFsICYgbWFzaykgPT0gZXhwZWN0ZWRfdmFsKTsNCj4g PiB9DQo+ID4gVGhvdWdoIHFzb3J0KCkgYW5kIGJzZWFyY2goKSB3b3JrIGluIGEgc2ltaWxhciBt YW5uZXIsIGFuZCBldmVyeW9uZSBzZWVtcyBvayB3aXRoIGl0Lg0KPiA+DQo+ID4+DQo+ID4+IFNv LCB3ZSBjYW4gZWl0aGVyIGxldCBjYWxsYmFjayBoYW5kbGUgZXhwZWN0ZWQgdmFsdWVzIGl0c2Vs ZiBieSBoYXZpbmcNCj4gPj4gYW4gb3BhcXVlIGNhbGxiYWNrLXNwZWNpZmljIGFyZ3VtZW50ICh3 aGljaCBtZWFucyBpdCBoYXMgdG8gcGVyc2lzdA0KPiA+PiBiZXR3ZWVuIC5nZXRfbW9uaXRvcl9h ZGRyKCkgYW5kIHJ0ZV9wb3dlcl9tb25pdG9yKCkgY2FsbHMpLA0KPiA+DQo+ID4gQnV0IHRoYXQn cyB3aGF0IHdlIGRvaW5nIGFscmVhZHkgLSBQTUQgZmlsbHMgcnRlX3Bvd2VyX21vbml0b3JfY29u ZCB2YWx1ZXMNCj4gPiBmb3IgdXMsIHdlIHN0b3JlIHRoZW0gc29tZXdoZXJlIGFuZCB0aGVuIHVz ZSB0aGVtIHRvIGRlY2lkZSBzaG91bGQgd2UgZ28gdG8gc2xlZXAgb3Igbm90Lg0KPiA+IEFsbCBj YWxsYmFjayBkb2VzIC0gbW92ZXMgYWN0dWFsIHZhbHVlcyBpbnRlcnByZXRhdGlvbiBiYWNrIHRv IFBNRDoNCj4gPiBSaWdodCBub3c6DQo+ID4gUE1EOiAgICAgIHByb3ZpZGUgUE1DIHZhbHVlcw0K PiA+IFBPV0VSOiBzdG9yZSBQTUMgdmFsdWVzIHNvbWV3aGVyZQ0KPiA+ICAgICAgICAgICAgICAg ICAgcmVhZCB0aGUgdmFsdWUgYXQgYWRkcmVzcyBwcm92aWRlZCBpbiBQTUMNCj4gPiAgICAgICAg ICAgICAgICAgIGludGVycHJldCBQTUMgdmFsdWVzIGFuZCBuZXdseSByZWFkIHZhbHVlIGFuZCBt YWtlIHRoZSBkZWNpc2lvbg0KPiA+DQo+ID4gV2l0aCBjYWxsYmFjazoNCj4gPiBQTUQ6ICAgICAg cHJvdmlkZSBQTUMgdmFsdWVzDQo+ID4gUE9XRVI6IHN0b3JlIFBNQyB2YWx1ZXMgc29tZXdoZXJl DQo+ID4gICAgICAgICAgICAgICAgICByZWFkIHRoZSB2YWx1ZSBhdCBhZGRyZXNzIHByb3ZpZGVk IGluIFBNQw0KPiA+IFBNRDogICAgICBpbnRlcnByZXQgUE1DIHZhbHVlcyBhbmQgbmV3bHkgcmVh ZCB2YWx1ZSBhbmQgbWFrZSB0aGUgZGVjaXNpb24NCj4gPg0KPiA+IE9yIGRpZCB5b3UgbWVhbiBz b21ldGhpbmcgZGlmZmVyZW50IGhlcmU/DQo+ID4NCj4gPj4gb3Igd2UgZG8gdGhlDQo+ID4+IGNv bXBhcmlzb25zIGluc2lkZSBydGVfcG93ZXJfbW9uaXRvcigpLCBhbmQgc3RvcmUgdGhlIGV4cGVj dGVkL21hc2sNCj4gPj4gdmFsdWVzIGluIHRoZSBtb25pdG9yIGNvbmRpdGlvbiwgYW5kICpkb24n dCogaGF2ZSBhbnkgY2FsbGJhY2tzIGF0IGFsbC4NCj4gPj4gQXJlIHlvdSBzdWdnZXN0aW5nIGFu IGFsdGVybmF0aXZlIHRvIHRoZSBhYm92ZSB0d28gb3B0aW9ucz8NCj4gPg0KPiA+IEFzIEkgc2Fp ZCBpbiBteSBmaXJzdCBtYWlsIC0gd2UgY2FuIGp1c3QgcmVwbGFjZSAnaW52ZXJzZScgd2l0aCAn b3AnLg0KPiA+IFRoYXQgYXQgbGVhc3Qgd2lsbCBtYWtlIHRoaXMgQVBJIGV4dGVuZGFibGUsIGlm IHNvbWVvbmUgd2lsbCBuZWVkDQo+ID4gc29tZXRoaW5nIGRpZmZlcmVudCBpbiBmdXR1cmUuDQo+ ID4NCj4gPiBBbm90aGVyIG9wdGlvbiBpcw0KPiANCj4gUmlnaHQsIHNvIHRoZSBpZGVhIGlzIHN0 b3JlIHRoZSBQTUQtc3BlY2lmaWMgZGF0YSBpbiB0aGUgbW9uaXRvcg0KPiBjb25kaXRpb24sIGFu ZCBsZWF2ZSBpdCB0byB0aGUgY2FsbGJhY2sgdG8gaW50ZXJwcmV0IGl0Lg0KPiANCj4gVGhlIG9i dmlvdXMgcXVlc3Rpb24gdGhlbiBpcywgaG93IG1hbnkgdmFsdWVzIGlzIGVub3VnaD8gVHdvPyBU aHJlZT8NCj4gRm91cj8gVGhpcyBvcHRpb24gZG9lc24ndCByZWFsbHkgc29sdmUgdGhlIGJhc2lj IGlzc3VlLCBpdCBqdXN0IGtpY2tzDQo+IHRoZSBjYW4gZG93biB0aGUgcm9hZC4gSSBndWVzcyB0 aHJlZSB2YWx1ZXMgc2hvdWxkIGJlIGVub3VnaCBmb3INCj4gZXZlcnlvbmUgKHRtKSA/IDpEDQo+ IA0KPiBJIGRvbid0IGxpa2UgdGhlICdvcCcgdGhpbmcgYmVjYXVzZSBpZiB0aGUgZ29hbCBpcyB0 byBiZSBmbGV4aWJsZSwgaXQncw0KPiB1bm5lY2Vzc2FyaWx5IGxpbWl0aW5nICphbmQqIG1ha2Vz IHRoZSBBUEkgZXZlbiBtb3JlIGNvbXBsZXggdG8gdXNlLiBJDQo+IHdvdWxkIHJhdGhlciBoYXZl IGEgbnVtYmVyIG9mIFBNRC1zcGVjaWZpYyB2YWx1ZXMgYW5kIGxlYXZlIGl0IHVwIHRvIHRoZQ0K PiBjYWxsYmFjayB0byBpbnRlcnByZXQgdGhlbSwgYmVjYXVzZSBhdCBsZWFzdCB0aGF0IHdheSB3 ZSdyZSBub3QgbGltaXRlZA0KPiB0byBwcmVkZWZpbmVkIG9wZXJhdGlvbnMgb24gdGhlIG1vbml0 b3IgY29uZGl0aW9uIGRhdGEuDQoNCkp1c3QgdG8gbWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFi b3V0IHRoZSBzYW1lLCBkb2VzIHdoYXQgeW91IHByb3Bvc2UNCmxvb2tzIGxpa2UgdGhhdDoNCg0K IHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kIHsNCiAgICAgICAgdm9sYXRpbGUgdm9pZCAq YWRkcjsgIC8qKjwgQWRkcmVzcyB0byBtb25pdG9yIGZvciBjaGFuZ2VzICovDQogICAgICAgIHVp bnQ4X3Qgc2l6ZTsgICAgLyoqPCBEYXRhIHNpemUgKGluIGJ5dGVzKSB0aGF0IHdpbGwgYmUgdXNl ZCB0byBjb21wYXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICogICBleHBlY3RlZCB2YWx1 ZSAoYHZhbGApIHdpdGggZGF0YSByZWFkIGZyb20gdGhlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICogICBtb25pdG9yZWQgbWVtb3J5IGxvY2F0aW9uIChgYWRkcmApLiBDYW4gYmUgMSwgMiwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIDQsIG9yIDguIFN1cHBseWluZyBhbnkgb3Ro ZXIgdmFsdWUgd2lsbCByZXN1bHQgaW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIGFu IGVycm9yLiAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICovDQogICAgICAgIGludCAoKmNt cCkodWludDY0X3QgcmVhbF92YWx1ZSwgY29uc3QgdWludDY0X3Qgb3BhcXVlWzRdKTsNCiAgICAg ICAgdWludDY0X3Qgb3BhcXVlWzRdOyAgLypQTUQgc3BlY2lmaWMgZGF0YSwgdXNlZCBieSBjb21w YXJpc29uIGNhbGwtYmFjayBiZWxvdyAqLw0KfTsNCg0KQW5kIHRoZW4gaW4gcnRlX3Bvd2VyX21v bml0b3IoKToNCi4uLg0KdWludDY0X3QgY3VyX3ZhbHVlID0gX19nZXRfdW13YWl0X3ZhbChwbWMt PmFkZHIsIHBtYy0+c2l6ZSk7DQppZiAocG1jLT5jbXAoY3VyX3ZhbHVlLCBwbWMtPm9wYXF1ZSkg IT0gMCkgew0KICAgIC8qIGdvdG8gc2xlZXAgKi8NCn0NCg0KPw0KIA0K