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 DFFA6A0C4A; Thu, 17 Jun 2021 19:06:10 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6A6BA4067A; Thu, 17 Jun 2021 19:06:10 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 56FBD40150 for ; Thu, 17 Jun 2021 19:06:09 +0200 (CEST) IronPort-SDR: FWXITxx2jXbGyLR1o9jcRoTOSY2v+3asWVLq6M2tGjLoSodUFDQZ15XgBbha7/LwD+cCxOg5kF d29fCjtQ3H7g== X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="270258575" X-IronPort-AV: E=Sophos;i="5.83,281,1616482800"; d="scan'208";a="270258575" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jun 2021 10:06:02 -0700 IronPort-SDR: j1UsG5Z7AfGdlUgY9yjdQ4LMgPGVrUwBQGHs56SMSx4HRAmbVCeACXxMvBk/3DNZY23TbT31MB eCxYrHD7SsEQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,281,1616482800"; d="scan'208";a="555259938" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga001.fm.intel.com with ESMTP; 17 Jun 2021 10:06:02 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 17 Jun 2021 10:06:02 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 17 Jun 2021 10:06:01 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) 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, 17 Jun 2021 10:06:01 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.47) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Thu, 17 Jun 2021 10:06:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SdpFjdQzUEqabCmORDW3IjXC3q4NIJ+JKuiDcwmYwb9k9L/42nJRnag7sWJwJYANVE/SEfkQ8giPgXHID9AMZrtZEeXAqaFWbmf4EP7CTklqpQ7BjZlFbwJyB8uxelm1xSzHCr4f++89P5WqR37J4osxRSRuCJv6GkgktdbIj8OEPjbN7/EZ2UnFW3cxrHgSr9TZjCDCr4NktOK/YZTo5F0MbWGPCIPoLDZHE3jl83HyVhBxm5UtI6ckOuDJoBiN/r3aarF3KFDrn+fVyqhh2a9bRLVUEWcbDwpcPNjGWiLRlkkQ9vJXSgmZajSsuFVchHk711eigF8pyWqG7p0sww== 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=SqO+wXiRG5wFXt2ZRvzbEiJ6dTmga4l0CFZTAWsmG2Q=; b=hA0WOVE64X1hPlpiPoL8mWEKBwBEq7A88mYQ/t1Il+JyBbMqZTjmWHTeOh+QpdOgRCo0mJQPKbEjFhBx81WbytgZ6Uh06RVqFpzIPyv5NWgjsqajtl1Kl5vfK3GybdYpIFiyfu8XQa26u/Jf1s9ZZpN9bcPDnbCIzYLEXLLpGX8fLOCdczSZ2+UPpUUOoeiRZR3xrHBnAlslJhxSHJv32QpP9vfRjI2iQBQm0VA8+FRXUwN2WEb07VcTb/yAo1uD6na/lurUSG3lDu8fDOAQBzCu979/kAK9buZVD3dy7IyfAcOrqauTm+U+OQazrIbw49K07qcRueGJagsy4qJWPg== 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=SqO+wXiRG5wFXt2ZRvzbEiJ6dTmga4l0CFZTAWsmG2Q=; b=U0DnYvzopAiV9p9jJ/ys6dewCvSnKkq6DGiZuPOJAin4q6TJX3b6hzQlKZlgtZDchs0D0nRL/kSvG6V7ni79BhOKpJEnvyGKT4B0nbMrZWMQyf+A8pDRGA7ruL+y2Q+/xaekgcyDFCns0fAvFA9Qxm8b6FtFB9vdZnJuIDc9AuU= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB2761.namprd11.prod.outlook.com (2603:10b6:5:c0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.19; Thu, 17 Jun 2021 17:05:59 +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.4219.026; Thu, 17 Jun 2021 17:05:59 +0000 From: "Ananyev, Konstantin" To: "Yigit, Ferruh" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Thomas Monjalon , "Richardson, Bruce" CC: "dev@dpdk.org" , "olivier.matz@6wind.com" , "andrew.rybchenko@oktetlabs.ru" , "honnappa.nagarahalli@arm.com" , "jerinj@marvell.com" , "gakhil@marvell.com" Thread-Topic: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays Thread-Index: AQHXYQxT3nKj3OToOE+g04oypCLg2asTbdkAgAAOoICAAATCgIAAFeZggAAOq/CABIvGAIAAHL6ggAAEMgCAABKlgIAADGnQ Date: Thu, 17 Jun 2021 17:05:59 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> <98CBD80474FA8B44BF855DF32C47DC35C61868@smartserver.smartshare.dk> 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: 62625a4c-dc69-44d1-edf1-08d931b22dfe x-ms-traffictypediagnostic: DM6PR11MB2761: 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:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vRi43mpfxzhI3lUGaTGubD8fyG/R0ZDcaQNMLk+cNdRzzRLqLRF6Kxm6/lp9bNYuYM1k7frPs6cVWq37WT2sCU8LnZm70J+hBLBkevMbUGT18/DftOxzGLMvAuH9U1UrPY8ISxIYqtgIg2zaQWvHNYN8H0lS77gLVA3561sV3Nz42BVfBgsUI5d/ICpIyntb7EG2RJYBHo8RC1fSOLq957LjW47ZS3yaFilp40zAedFk8PNni75Qlg8EDZgeddYjGiJ1z/IhL9cLumawx0PsacDHDoFGKIUcec3YPPKIEgaIQcyOajI8yNEZSd4a4M0NgLu2FjDvjOV+SivDsiJHktOKyEk0P8goPFNBp9vy8neC7b6Uf0XxI9XQI50rLIgx2F7yQz5/+sV1PqmORDGI6Ni+JhOipJL/or87VlqN3gSFm8c9R7VzY3IaaWZEVH12XHGZNtU7iv2vDy7hO3lX/UO9pgdpyTL9bQ6ObvYDusZxBo1DJuj3efy4iUFD9FuqgSUzkWgTkzZJR9VMivvBlgoBMQZ1g3rwFCek3Juj2aUKpgzqD8h6wuBypKx6bleBYCLjO9FO+qiXRZYnhJzL6B6axntaXBGGKmdc8f+QbgM= 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)(366004)(396003)(376002)(39860400002)(346002)(478600001)(86362001)(54906003)(8936002)(110136005)(8676002)(26005)(9686003)(6506007)(6636002)(2906002)(64756008)(66476007)(53546011)(66446008)(66946007)(52536014)(7696005)(55236004)(122000001)(38100700002)(66556008)(76116006)(186003)(55016002)(71200400001)(33656002)(5660300002)(4326008)(83380400001)(66574015)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RTBYSmN2aExMZzRjT3F6UDkyeE5zR3hRZGpmWHVZYlcrd2tiR2htUG9BRzVz?= =?utf-8?B?a2xPWTdMV25tNk81NmRsbjkvbEFOaHFJQWZRQUdWc3RVQ2NOQTRkam1LQ3FC?= =?utf-8?B?by9HaTlFejBNV2JZTWExOE1qOFl5cU14bmN4eGtGSnR1TEJTS2o0UWdyYVdX?= =?utf-8?B?Wk1md05oakhmVTBMTXRYNEVZRGhnWHhGSkVCQURKenJENmF4VjVTSi9lUG9C?= =?utf-8?B?QlY3cGIxdFZaa2d0UWoyYkZxMlNCeXM5MXpXRWRpYW9MczFhNkZHL1M0WTgy?= =?utf-8?B?WkFMWVZJUGRJUUxibTY0TnhCV3c3S1JHZXVtWno2Sk1qVXgzUGQzMXY1RE1h?= =?utf-8?B?d1ArM1lHV282Rmpmc3dZWEJlaDNYTnF5Q3NLWi80cCs4Z3U5SG95UTN0UVRz?= =?utf-8?B?TFFTZW9hSG5mKzhWSm53bUZsVWJaNy9pVTNsYk9KZ2g0L3FCNGwyS1BvaTQz?= =?utf-8?B?dDcxZGhINGZoQmFObUFNYWxpZ2YvK21odERUWHBKMnJ3OHRVdlVxSk9qenNH?= =?utf-8?B?RS9jbDJubHR5VHZ6VUY4UTR4NDFNbm9LVkg3NUR3dDNXenhsMi9MM1NzWDhq?= =?utf-8?B?SU12aW9QWGlFUzBjdHpabDZqQTdjQk5uZUFaa2dWWEFoU3FFcXdKYnlhV29X?= =?utf-8?B?Z1FndGU1bkRYcmZjcWgyOSsrQ1VKNlBjd3d2N0VLSE1zQjEwK1B5R3JXaXRn?= =?utf-8?B?SXpuR0V5UEJvWmhDZVFDdVhNZ1NZWFRBVjBhbFRIbjRLMG9EODZLMDBxNjFt?= =?utf-8?B?a0owczlnZ2hEd2VlSG9rSlhBdS9BM1JPWXl0QXFDTzhYS3laOWdldngvK3BD?= =?utf-8?B?NXgycmdIaVk4M05Xczl1dVFUenFjYUhQTHY1UERmK2xzODV4TG5kcnJ2dmxT?= =?utf-8?B?aXpFUmNJbTJpaWRqOVdiSTR2Q3pCaFlOTlNjVFFIUHp0U0Jyejd4REFnMEZp?= =?utf-8?B?dGM3eTNCQWJSMVZldWtFbXRNQmtDZVg5ZEppNE56T01QSEhxeHpUdWE0S1Np?= =?utf-8?B?YlpqdnQ3R3RhZ2x2YjRGUFhTNS8zQXMzMzdTOHZLTHJiNXFHa291VmZ2cWF4?= =?utf-8?B?SDkvRlRER1lyVTZuYnpuL1I4SktESnBrcHhpdElYZ0EweklXWmVPNHFUUFRB?= =?utf-8?B?MkQwYS82WGlUSnFNZVZzZU9pQmZQS1hYNE4rUUFpRFp5eC9WelJlOGZvdWNp?= =?utf-8?B?bndNQXRSelBSUjJKRUFDbHVhbkhPck5Za2ZGYVZUYkJ1Y0dVbGNKMTBUT1lI?= =?utf-8?B?Lzk5R2N1WnhtRXhJU3BmdGtIUzhPNGdnL0F4akdRaFRjVHNLSTF3V2tUNUc0?= =?utf-8?B?dlNybjRFNVdGeWxacTQwYzMxQjMwdm0vWGptaldEdk1UbmlKb0FnVVJNTDVG?= =?utf-8?B?UVZYNXd0R1lSRG02bDN2NXJ0ckFEOWM3TWZzTmJMN2ZmOWszSVRaMzh0VnlL?= =?utf-8?B?Q2lsbzhPV29ydlpXdE5yQXAxVDM4NXhaSFJFZ1JaKzRpeHUvb1c1UnIyNitm?= =?utf-8?B?cnlCaWsrUnQ3Y1VMbE5TYlQ1MGNkR1J5STVpMUZlOG1Cb1B4ZXM4emtwTWk2?= =?utf-8?B?RUhSVzlzcHBPKytmRExUaVAyQytwR2RRNXpGN3dZTzFyWGcrSWZNQnlBeXky?= =?utf-8?B?RnZjSVBtUkE0VkVGSDBhN0tnczdaUmI3R2QreUFsNDcvTitQaFd4QjAzMi9h?= =?utf-8?B?bzVEb2x4d0ZPZk5VMFRsSFNmeDgwalI5bXBHKzNJYzZNRnRVTGxiUmpZSUUz?= =?utf-8?Q?9uNI6Arlk7xD0fnPeDPq1yMlJqTVfcw3s7ughjV?= 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: 62625a4c-dc69-44d1-edf1-08d931b22dfe X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jun 2021 17:05:59.3818 (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: vPLLlk8AzuAXl947wGIBrlkjAgiMTWivq+bf4+IY2EFFW4kUrBjqU62Yl3C/Yz9dZQUByhvBULMA0+P/9WKBiaF6p9U9Mmt/3gI/OoxX75Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2761 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays 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" DQogDQo+IE9uIDYvMTcvMjAyMSA0OjE3IFBNLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPj4g RnJvbTogQW5hbnlldiwgS29uc3RhbnRpbiBbbWFpbHRvOmtvbnN0YW50aW4uYW5hbnlldkBpbnRl bC5jb21dDQo+ID4+IFNlbnQ6IFRodXJzZGF5LCAxNyBKdW5lIDIwMjEgMTYuNTkNCj4gPj4NCj4g Pj4+Pj4+DQo+ID4+Pj4+PiAxNC8wNi8yMDIxIDE1OjE1LCBCcnVjZSBSaWNoYXJkc29uOg0KPiA+ Pj4+Pj4+IE9uIE1vbiwgSnVuIDE0LCAyMDIxIGF0IDAyOjIyOjQyUE0gKzAyMDAsIE1vcnRlbiBC csO4cnVwIHdyb3RlOg0KPiA+Pj4+Pj4+Pj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNA ZHBkay5vcmddIE9uIEJlaGFsZiBPZiBUaG9tYXMNCj4gPj4gTW9uamFsb24NCj4gPj4+Pj4+Pj4+ IFNlbnQ6IE1vbmRheSwgMTQgSnVuZSAyMDIxIDEyLjU5DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ Pj4gUGVyZm9ybWFuY2Ugb2YgYWNjZXNzIGluIGEgZml4ZWQtc2l6ZSBhcnJheSBpcyB2ZXJ5IGdv b2QNCj4gPj4+Pj4+Pj4+IGJlY2F1c2Ugb2YgY2FjaGUgbG9jYWxpdHkNCj4gPj4+Pj4+Pj4+IGFu ZCBiZWNhdXNlIHRoZXJlIGlzIGEgc2luZ2xlIHBvaW50ZXIgdG8gZGVyZWZlcmVuY2UuDQo+ID4+ Pj4+Pj4+PiBUaGUgb25seSBkcmF3YmFjayBpcyB0aGUgbGFjayBvZiBmbGV4aWJpbGl0eToNCj4g Pj4+Pj4+Pj4+IHRoZSBzaXplIG9mIHN1Y2ggYW4gYXJyYXkgY2Fubm90IGJlIGluY3JlYXNlIGF0 IHJ1bnRpbWUuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQW4gYXBwcm9hY2ggdG8gdGhpcyBw cm9ibGVtIGlzIHRvIGFsbG9jYXRlIHRoZSBhcnJheSBhdA0KPiA+PiBydW50aW1lLA0KPiA+Pj4+ Pj4+Pj4gYmVpbmcgYXMgZWZmaWNpZW50IGFzIHN0YXRpYyBhcnJheXMsIGJ1dCBzdGlsbCBsaW1p dGVkIHRvIGENCj4gPj4gbWF4aW11bS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBUaGF0J3Mg d2h5IHRoZSBBUEkgcnRlX3BhcnJheSBpcyBpbnRyb2R1Y2VkLA0KPiA+Pj4+Pj4+Pj4gYWxsb3dp bmcgdG8gZGVjbGFyZSBhbiBhcnJheSBvZiBwb2ludGVyIHdoaWNoIGNhbiBiZSByZXNpemVkDQo+ ID4+Pj4+Pj4+PiBkeW5hbWljYWxseQ0KPiA+Pj4+Pj4+Pj4gYW5kIGF1dG9tYXRpY2FsbHkgYXQg cnVudGltZSB3aGlsZSBrZWVwaW5nIGEgZ29vZCByZWFkDQo+ID4+IHBlcmZvcm1hbmNlLg0KPiA+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IEFmdGVyIHJlc2l6ZSwgdGhlIHByZXZpb3VzIGFycmF5IGlz IGtlcHQgdW50aWwgdGhlIG5leHQgcmVzaXplDQo+ID4+Pj4+Pj4+PiB0byBhdm9pZCBjcmFzaHMg ZHVyaW5nIGEgcmVhZCB3aXRob3V0IGFueSBsb2NrLg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ IEVhY2ggZWxlbWVudCBpcyBhIHBvaW50ZXIgdG8gYSBtZW1vcnkgY2h1bmsgZHluYW1pY2FsbHkN Cj4gPj4gYWxsb2NhdGVkLg0KPiA+Pj4+Pj4+Pj4gVGhpcyBpcyBub3QgZ29vZCBmb3IgY2FjaGUg bG9jYWxpdHkgYnV0IGl0IGFsbG93cyB0byBrZWVwIHRoZQ0KPiA+PiBzYW1lDQo+ID4+Pj4+Pj4+ PiBtZW1vcnkgcGVyIGVsZW1lbnQsIG5vIG1hdHRlciBob3cgdGhlIGFycmF5IGlzIHJlc2l6ZWQu DQo+ID4+Pj4+Pj4+PiBDYWNoZSBsb2NhbGl0eSBjb3VsZCBiZSBpbXByb3ZlZCB3aXRoIG1lbXBv b2xzLg0KPiA+Pj4+Pj4+Pj4gVGhlIG90aGVyIGRyYXdiYWNrIGlzIGhhdmluZyB0byBkZXJlZmVy ZW5jZSBvbmUgbW9yZSBwb2ludGVyDQo+ID4+Pj4+Pj4+PiB0byByZWFkIGFuIGVsZW1lbnQuDQo+ ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gVGhlcmUgaXMgbm90IG11Y2ggbG9ja3MsIHNvIHRoZSBB UEkgaXMgZm9yIGludGVybmFsIHVzZSBvbmx5Lg0KPiA+Pj4+Pj4+Pj4gVGhpcyBBUEkgbWF5IGJl IHVzZWQgdG8gY29tcGxldGVseSByZW1vdmUgc29tZSBjb21waWxhdGlvbi0NCj4gPj4gdGltZQ0K PiA+Pj4+Pj4+Pj4gbWF4aW11bXMuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEkgZ2V0IHRoZSBw dXJwb3NlIGFuZCBvdmVyYWxsIGludGVudGlvbiBvZiB0aGlzIGxpYnJhcnkuDQo+ID4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+IEkgcHJvYmFibHkgYWxyZWFkeSBtZW50aW9uZWQgdGhhdCBJIHByZWZlciAi ZW1iZWRkZWQgc3R5bGUNCj4gPj4gcHJvZ3JhbW1pbmciIHdpdGggZml4ZWQgc2l6ZSBhcnJheXMs IHJhdGhlciB0aGFuIHJ1bnRpbWUNCj4gPj4gY29uZmlndXJhYmlsaXR5Lg0KPiA+Pj4+PiBJdCdz DQo+ID4+Pj4+PiBteSBwZXJzb25hbCBvcGluaW9uLCBhbmQgdGhlIERQREsgVGVjaCBCb2FyZCBj bGVhcmx5IHByZWZlcnMNCj4gPj4gcmVkdWNpbmcgdGhlIGFtb3VudCBvZiBjb21waWxlIHRpbWUg Y29uZmlndXJhYmlsaXR5LCBzbyB0aGVyZSBpcyBubyB3YXkNCj4gPj4+IGZvcg0KPiA+Pj4+Pj4g bWUgdG8gc3RvcCB0aGlzIHByb2dyZXNzLCBhbmQgSSBkbyBub3QgaW50ZW5kIHRvIG9wcG9zZSB0 byB0aGlzDQo+ID4+IGxpYnJhcnkuIDotKQ0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBUaGlzIGxp YnJhcnkgaXMgbGlrZWx5IHRvIGJlY29tZSBhIGNvcmUgbGlicmFyeSBvZiBEUERLLCBzbyBJDQo+ ID4+IHRoaW5rIGl0IGlzIGltcG9ydGFudCBnZXR0aW5nIGl0IHJpZ2h0LiBDb3VsZCB5b3UgcGxl YXNlIG1lbnRpb24gYSBmZXcNCj4gPj4+Pj4gZXhhbXBsZXMNCj4gPj4+Pj4+IHdoZXJlIHlvdSB0 aGluayB0aGlzIGludGVybmFsIGxpYnJhcnkgc2hvdWxkIGJlIHVzZWQsIGFuZCB3aGVyZQ0KPiA+ PiBpdCBzaG91bGQgbm90IGJlIHVzZWQuIFRoZW4gaXQgaXMgZWFzaWVyIHRvIGRpc2N1c3MgaWYg dGhlIGJvcmRlciBsaW5lDQo+ID4+PiBiZXR3ZWVuDQo+ID4+Pj4+PiBjb250cm9sIHBhdGggYW5k IGRhdGEgcGxhbmUgaXMgY29ycmVjdC4gRS5nLiB0aGlzIGxpYnJhcnkgaXMgbm90DQo+ID4+IGlu dGVuZGVkIHRvIGJlIHVzZWQgZm9yIGR5bmFtaWNhbGx5IHNpemVkIHBhY2tldCBxdWV1ZXMgdGhh dCBncm93IGFuZA0KPiA+Pj4gc2hyaW5rDQo+ID4+Pj4+IGluDQo+ID4+Pj4+PiB0aGUgZmFzdCBw YXRoLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBJZiB0aGUgbGlicmFyeSBiZWNvbWVzIGEgY29y ZSBEUERLIGxpYnJhcnksIGl0IHNob3VsZCBwcm9iYWJseQ0KPiA+PiBiZSBwdWJsaWMgaW5zdGVh ZCBvZiBpbnRlcm5hbC4gRS5nLiBpZiB0aGUgbGlicmFyeSBpcyB1c2VkIHRvIG1ha2UNCj4gPj4+ Pj4+IFJURV9NQVhfRVRIUE9SVFMgZHluYW1pYyBpbnN0ZWFkIG9mIGNvbXBpbGUgdGltZSBmaXhl ZCwgdGhlbiBzb21lDQo+ID4+IGFwcGxpY2F0aW9ucyBtaWdodCBhbHNvIG5lZWQgZHluYW1pY2Fs bHkgc2l6ZWQgYXJyYXlzIGZvciB0aGVpcg0KPiA+Pj4+Pj4gYXBwbGljYXRpb24gc3BlY2lmaWMg cGVyLXBvcnQgcnVudGltZSBkYXRhLCBhbmQgdGhpcyBsaWJyYXJ5DQo+ID4+IGNvdWxkIHNlcnZl IHRoYXQgcHVycG9zZSB0b28uDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBUaGFu a3MgVGhvbWFzIGZvciBzdGFydGluZyB0aGlzIGRpc2N1c3Npb24gYW5kIE1vcnRlbiBmb3INCj4g Pj4gZm9sbG93LXVwLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gTXkgdGhpbmtpbmcgaXMgYXMgZm9s bG93cywgYW5kIEknbSBwYXJ0aWN1bGFybHkga2VlcGluZyBpbiBtaW5kDQo+ID4+IHRoZSBjYXNl cw0KPiA+Pj4+Pj4+IG9mIGUuZy4gUlRFX01BWF9FVEhQT1JUUywgYXMgYSBsZWFkaW5nIGNhbmRp ZGF0ZSBoZXJlLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gV2hpbGUgSSBkaXNsaWtlIHRoZSBoYXJk LWNvZGVkIGxpbWl0cyBpbiBEUERLLCBJJ20gYWxzbyBub3QNCj4gPj4gY29udmluY2VkIHRoYXQN Cj4gPj4+Pj4+PiB3ZSBzaG91bGQgc3dpdGNoIGF3YXkgZnJvbSB0aGUgZmxhdCBhcnJheXMgb3Ig dGhhdCB3ZSBuZWVkIGZ1bGx5DQo+ID4+IGR5bmFtaWMNCj4gPj4+Pj4+PiBhcnJheXMgdGhhdCBn cm93L3NocmluayBhdCBydW50aW1lIGZvciBldGhkZXZzLiBJIHdvdWxkIHN1Z2dlc3QNCj4gPj4g YSBoYWxmLXdheQ0KPiA+Pj4+Pj4+IGhvdXNlIGhlcmUsIHdoZXJlIHdlIGtlZXAgdGhlIGV0aGRl dnMgYXMgYW4gYXJyYXksIGJ1dCBvbmUNCj4gPj4gYWxsb2NhdGVkL3NpemVkDQo+ID4+Pj4+Pj4g YXQgcnVudGltZSByYXRoZXIgdGhhbiBzdGF0aWNhbGx5LiBUaGlzIHdvdWxkIGFsbG93IHVzIHRv IGhhdmUgYQ0KPiA+Pj4+Pj4+IGNvbXBpbGUtdGltZSBkZWZhdWx0IHZhbHVlLCBidXQsIGZvciB1 c2UgY2FzZXMgdGhhdCBuZWVkIGl0LA0KPiA+PiBhbGxvdyB1c2Ugb2YgYQ0KPiA+Pj4+Pj4+IGZs YWcgZS5nLiAgIm1heC1ldGhkZXZzIiB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIHBhcmFtZXRl cg0KPiA+PiBnaXZlbiB0byB0aGUNCj4gPj4+Pj4+PiBtYWxsb2MgY2FsbCBmb3IgdGhlIGFycmF5 LiAgVGhpcyBtYXggbGltaXQgY291bGQgdGhlbiBiZQ0KPiA+PiBwcm92aWRlZCB0byBhcHBzDQo+ ID4+Pj4+Pj4gdG9vIGlmIHRoZXkgd2FudCB0byBtYXRjaCBhbnkgYXJyYXkgc2l6ZXMuIFtBbHRl cm5hdGl2ZWx5IHRob3NlDQo+ID4+IGFwcHMgY291bGQNCj4gPj4+Pj4+PiBjaGVjayB0aGUgcHJv dmlkZWQgc2l6ZSBhbmQgZXJyb3Igb3V0IGlmIHRoZSBzaXplIGhhcyBiZWVuDQo+ID4+IGluY3Jl YXNlZCBiZXlvbmQNCj4gPj4+Pj4+PiB3aGF0IHRoZSBhcHAgaXMgZGVzaWduZWQgdG8gdXNlP10u IFRoZXJlIHdvdWxkIGJlIG5vIGV4dHJhDQo+ID4+IGRlcmVmZXJlbmNlcyBwZXINCj4gPj4+Pj4+ PiByeC90eCBidXJzdCBjYWxsIGluIHRoaXMgc2NlbmFyaW8gc28gcGVyZm9ybWFuY2Ugc2hvdWxk IGJlIHRoZQ0KPiA+PiBzYW1lIGFzDQo+ID4+Pj4+Pj4gYmVmb3JlIChwb3RlbnRpYWxseSBiZXR0 ZXIgaWYgYXJyYXkgaXMgaW4gaHVnZXBhZ2UgbWVtb3J5LCBJDQo+ID4+IHN1cHBvc2UpLg0KPiA+ Pj4+Pj4NCj4gPj4+Pj4+IEkgdGhpbmsgd2UgbmVlZCBzb21lIGJlbmNobWFya3MgdG8gZGVjaWRl IHdoYXQgaXMgdGhlIGJlc3QNCj4gPj4gdHJhZGVvZmYuDQo+ID4+Pj4+PiBJIHNwZW50IHRpbWUg b24gdGhpcyBpbXBsZW1lbnRhdGlvbiwgYnV0IHNvcnJ5IEkgd29uJ3QgaGF2ZSB0aW1lDQo+ID4+ IGZvciBiZW5jaG1hcmtzLg0KPiA+Pj4+Pj4gVm9sdW50ZWVycz8NCj4gPj4+Pj4NCj4gPj4+Pj4g SSBoYWQgb25seSBhIHF1aWNrIGxvb2sgYXQgeW91ciBhcHByb2FjaCBzbyBmYXIuDQo+ID4+Pj4+ IEJ1dCBmcm9tIHdoYXQgSSBjYW4gcmVhZCwgaW4gTVQgZW52aXJvbm1lbnQgeW91ciBzdWdnZXN0 aW9uIHdpbGwNCj4gPj4gcmVxdWlyZQ0KPiA+Pj4+PiBleHRyYSBzeW5jaHJvbml6YXRpb24gZm9y IGVhY2ggcmVhZC13cml0ZSBhY2Nlc3MgdG8gc3VjaCBwYXJyYXkNCj4gPj4gZWxlbWVudCAobG9j aywgcmN1LCAuLi4pLg0KPiA+Pj4+PiBJIHRoaW5rIHdoYXQgQnJ1Y2Ugc3VnZ2VzdHMgd2lsbCBi ZSBtdWNoIGxpZ3RoZXIsIGVhc2llciB0bw0KPiA+PiBpbXBsZW1lbnQgYW5kIGxlc3MgZXJyb3Ig cHJvbmUuDQo+ID4+Pj4+IEF0IGxlYXN0IGZvciBydGVfZXRoZGV2c1tdIGFuZCBmcmllbmRzLg0K PiA+Pj4+PiBLb25zdGFudGluDQo+ID4+Pj4NCj4gPj4+PiBPbmUgbW9yZSB0aG91Z2h0IGhlcmUg LSBpZiB3ZSBhcmUgdGFsa2luZyBhYm91dCBydGVfZXRoZGV2W10gaW4NCj4gPj4gcGFydGljdWxh ciwgSSB0aGluayAgd2UgY2FuOg0KPiA+Pj4+IDEuIG1vdmUgcHVibGljIGZ1bmN0aW9uIHBvaW50 ZXJzIChyeF9wa3RfYnVyc3QoKSwgZXRjLikgZnJvbQ0KPiA+PiBydGVfZXRoZGV2IGludG8gYSBz ZXBhcmF0ZSBmbGF0IGFycmF5Lg0KPiA+Pj4+IFdlIGNhbiBrZWVwIGl0IHB1YmxpYyB0byBzdGls bCB1c2UgaW5saW5lIGZ1bmN0aW9ucyBmb3IgJ2Zhc3QnDQo+ID4+IGNhbGxzIHJ0ZV9ldGhfcnhf YnVyc3QoKSwgZXRjLiB0byBhdm9pZA0KPiA+Pj4+IGFueSByZWdyZXNzaW9ucy4NCj4gPj4+PiBU aGF0IGNvdWxkIHN0aWxsIGJlIGZsYXQgYXJyYXkgd2l0aCBtYXhfc2l6ZSBzcGVjaWZpZWQgYXQN Cj4gPj4gYXBwbGljYXRpb24gc3RhcnR1cC4NCj4gPj4+PiAyLiBIaWRlIHJlc3Qgb2YgcnRlX2V0 aGRldiBzdHJ1Y3QgaW4gLmMuDQo+ID4+Pj4gVGhhdCB3aWxsIGFsbG93IHVzIHRvIGNoYW5nZSB0 aGUgc3RydWN0IGl0c2VsZiBhbmQgdGhlIHdob2xlDQo+ID4+IHJ0ZV9ldGhkZXZbXSB0YWJsZSBp biBhIHdheSB3ZSBsaWtlDQo+ID4+Pj4gKGZsYXQgYXJyYXksIHZlY3RvciwgaGFzaCwgbGlua2Vk IGxpc3QpIHdpdGhvdXQgQUJJL0FQSSBicmVha2FnZXMuDQo+ID4+Pj4NCj4gPj4+PiBZZXMsIGl0 IHdvdWxkIHJlcXVpcmUgYWxsIFBNRHMgdG8gY2hhbmdlIHByb3RvdHlwZSBmb3INCj4gPj4gcGt0 X3J4X2J1cnN0KCkgZnVuY3Rpb24NCj4gPj4+PiAodG8gYWNjZXB0IHBvcnRfaWQsIHF1ZXVlX2lk IGluc3RlYWQgb2YgcXVldWUgcG9pbnRlciksIGJ1dCB0aGUNCj4gPj4gY2hhbmdlIGlzIG1lY2hh bmljYWwgb25lLg0KPiA+Pj4+IFByb2JhYmx5IHNvbWUgbWFjcm8gY2FuIGJlIHByb3ZpZGVkIHRv IHNpbXBsaWZ5IGl0Lg0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gV2UgYXJlIGFscmVhZHkgcGxhbm5p bmcgc29tZSB0YXNrcyBmb3IgQUJJIHN0YWJpbGl0eSBmb3IgdjIxLjExLCBJDQo+ID4+IHRoaW5r DQo+ID4+PiBzcGxpdHRpbmcgJ3N0cnVjdCBydGVfZXRoX2RldicgY2FuIGJlIHBhcnQgb2YgdGhh dCB0YXNrLCBpdCBlbmFibGVzDQo+ID4+IGhpZGluZyBtb3JlDQo+ID4+PiBpbnRlcm5hbCBkYXRh Lg0KPiA+Pg0KPiA+PiBPaywgc291bmRzIGdvb2QuDQo+ID4+DQo+ID4+Pg0KPiA+Pj4+IFRoZSBv bmx5IHNpZ25pZmljYW50IGNvbXBsaWNhdGlvbiBJIGNhbiBmb3Jlc2VlIHdpdGggaW1wbGVtZW50 aW5nDQo+ID4+IHRoYXQgYXBwcm9hY2ggLQ0KPiA+Pj4+IHdlJ2xsIG5lZWQgYSBhbiBhcnJheSBv ZiAnZmFzdCcgZnVuY3Rpb24gcG9pbnRlcnMgcGVyIHF1ZXVlLCBub3QNCj4gPj4gcGVyIGRldmlj ZSBhcyB3ZSBoYXZlIG5vdw0KPiA+Pj4+ICh0byBhdm9pZCBleHRyYSBpbmRpcmVjdGlvbiBmb3Ig Y2FsbGJhY2sgaW1wbGVtZW50YXRpb24pLg0KPiA+Pj4+IFRob3VnaCBhcyBhIGJvbnVzIHdlJ2xs IGhhdmUgYWJpbGl0eSB0byB1c2UgZGlmZmVyZW50IFJYL1RYDQo+ID4+IGZ1bmNpb25zIHBlciBx dWV1ZS4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IFdoYXQgZG8geW91IHRoaW5rIHNwbGl0IFJ4L1R4 IGNhbGxiYWNrIGludG8gaXRzIG93biBzdHJ1Y3QgdG9vPw0KPiA+Pj4NCj4gPj4+IE92ZXJhbGwg J3J0ZV9ldGhfZGV2JyBjYW4gYmUgc3BsaXQgaW50byB0aHJlZSBhczoNCj4gPj4+IDEuIHJ0ZV9l dGhfZGV2DQo+ID4+PiAyLiBydGVfZXRoX2Rldl9idXJzdA0KPiA+Pj4gMy4gcnRlX2V0aF9kZXZf Y2INCj4gPj4+DQo+ID4+PiBBbmQgd2UgY2FuIGhpZGUgMSBmcm9tIGFwcGxpY2F0aW9ucyBldmVu IHdpdGggdGhlIGlubGluZSBmdW5jdGlvbnMuDQo+ID4+DQo+ID4+IEFzIGRpc2N1c3NlZCBvZmYt bGluZSwgSSB0aGluazoNCj4gPj4gaXQgaXMgcG9zc2libGUuDQo+ID4+IE15IGFic29sdXRlIHBy ZWZlcmVuY2Ugd291bGQgYmUgdG8gaGF2ZSBqdXN0IDEvMiAod2l0aCBDQiBoaWRkZW4pLg0KPiA+ PiBCdXQgZXZlbiB3aXRoIDEvMi8zIGluIHBsYWNlIEkgdGhpbmsgaXQgd291bGQgYmUgIGEgZ29v ZCBzdGVwIGZvcndhcmQuDQo+ID4+IFByb2JhYmx5IHdvcnRoIHRvIHN0YXJ0IHdpdGggMS8yLzMg Zmlyc3QgYW5kIHRoZW4gc2VlIGhvdyBkaWZmaWN1bHQgaXQNCj4gPj4gd291bGQgYmUgdG8gc3dp dGNoIHRvIDEvMi4NCj4gPj4gRG8geW91IHBsYW4gdG8gc3RhcnQgd29ya2luZyBvbiBpdD8NCj4g Pj4NCj4gPj4gS29uc3RhbnRpbg0KPiA+DQo+ID4gSWYgeW91IGRvIHByb2NlZWQgd2l0aCB0aGlz LCBiZSB2ZXJ5IGNhcmVmdWwuIEUuZy4gdGhlIGlubGluZWQgcngvdHggYnVyc3QgZnVuY3Rpb25z IHNob3VsZCBub3QgdG91Y2ggbW9yZSBjYWNoZSBsaW5lcyB0aGFuIHRoZXkgZG8gdG9kYXkgLQ0K PiBlc3BlY2lhbGx5IGlmIHRoZXJlIGFyZSBtYW55IGFjdGl2ZSBwb3J0cy4gVGhlIGlubGluZWQg cngvdHggYnVyc3QgZnVuY3Rpb25zIGFyZSB2ZXJ5IHNpbXBsZSwgc28gdGhvcm91Z2ggY29kZSBy ZXZpZXcgKGFuZCBwb3NzaWJseSBhbHNvIG9mIHRoZQ0KPiByZXN1bHRpbmcgYXNzZW1ibHkpIGlz IGFwcHJvcHJpYXRlLiBTaW1wbGUgcGVyZm9ybWFuY2UgdGVzdGluZyBtaWdodCBub3QgZGV0ZWN0 IGlmIG1vcmUgY2FjaGUgbGluZXMgYXJlIGFjY2Vzc2VkIHRoYW4gYmVmb3JlIHRoZQ0KPiBtb2Rp ZmljYXRpb25zLg0KPiA+DQo+ID4gRG9uJ3QgZ2V0IG1lIHdyb25nLi4uIEkgZG8gY29uc2lkZXIg dGhpcyBhbiBpbXByb3ZlbWVudCBvZiB0aGUgZXRoZGV2IGxpYnJhcnk7IEknbSBvbmx5IGFza2lu ZyB5b3UgdG8gdGFrZSBleHRyYSBjYXJlIQ0KPiA+DQo+IA0KPiBhY2sNCj4gDQo+IElmIHdlIHNw bGl0IGFzIGFib3ZlLCBJIHRoaW5rIGRldmljZSBzcGVjaWZpYyBkYXRhICdzdHJ1Y3QgcnRlX2V0 aF9kZXZfZGF0YScNCj4gc2hvdWxkIGJlIHBhcnQgb2YgMSAocnRlX2V0aF9kZXYpLiBXaGljaCBt ZWFucyBSeC9UeCBpbmxpbmUgZnVuY3Rpb25zIGFjY2Vzcw0KPiBhZGRpdGlvbmFsIGNhY2hlIGxp bmUuDQo+IA0KPiBUbyBwcmV2ZW50IHRoaXMsIHdoYXQgYWJvdXQgZHVwbGljYXRpbmcgJ2RhdGEn IGluIDIgKHJ0ZV9ldGhfZGV2X2J1cnN0KT8gDQoNCkkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVy IHRvIGNoYW5nZSByeF9wa3RfYnVyc3QoKSB0byBhY2NlcHQgcG9ydF9pZCBhbmQgcXVldWVfaWQs DQppbnN0ZWFkIG9mIHZvaWQgKi4NCkkuRToNCnR5cGVkZWYgdWludDE2X3QgKCpldGhfcnhfYnVy c3RfdCkodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsIHN0cnVjdCBydGVfbWJ1 ZiAqKnJ4X3BrdHMsICB1aW50MTZfdCBuYl9wa3RzKTsNCg0KQW5kIHdlIGNhbiBkbyBhY3R1YWwg ZGUtcmVmZXJlbmNpbmcgb2YgcHJpdmF0ZSByeHEgZGF0YSBpbnNpZGUgdGhlIGFjdHVhbCByeCBm dW5jdGlvbi4NCg0KPiBXZSBoYXZlDQo+IGVub3VnaCBzcGFjZSBmb3IgaXQgdG8gZml0IGludG8g c2luZ2xlIGNhY2hlIGxpbmUsIGN1cnJlbnRseSBpdCBpczoNCj4gc3RydWN0IHJ0ZV9ldGhfZGV2 IHsNCj4gICAgICAgICBldGhfcnhfYnVyc3RfdCAgICAgICAgICAgICByeF9wa3RfYnVyc3Q7ICAg ICAgICAgLyogICAgIDAgICAgIDggKi8NCj4gICAgICAgICBldGhfdHhfYnVyc3RfdCAgICAgICAg ICAgICB0eF9wa3RfYnVyc3Q7ICAgICAgICAgLyogICAgIDggICAgIDggKi8NCj4gICAgICAgICBl dGhfdHhfcHJlcF90ICAgICAgICAgICAgICB0eF9wa3RfcHJlcGFyZTsgICAgICAgLyogICAgMTYg ICAgIDggKi8NCj4gICAgICAgICBldGhfcnhfcXVldWVfY291bnRfdCAgICAgICByeF9xdWV1ZV9j b3VudDsgICAgICAgLyogICAgMjQgICAgIDggKi8NCj4gICAgICAgICBldGhfcnhfZGVzY3JpcHRv cl9kb25lX3QgICByeF9kZXNjcmlwdG9yX2RvbmU7ICAgLyogICAgMzIgICAgIDggKi8NCj4gICAg ICAgICBldGhfcnhfZGVzY3JpcHRvcl9zdGF0dXNfdCByeF9kZXNjcmlwdG9yX3N0YXR1czsgLyog ICAgNDAgICAgIDggKi8NCj4gICAgICAgICBldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNfdCB0eF9k ZXNjcmlwdG9yX3N0YXR1czsgLyogICAgNDggICAgIDggKi8NCj4gICAgICAgICBzdHJ1Y3QgcnRl X2V0aF9kZXZfZGF0YSAqICBkYXRhOyAgICAgICAgICAgICAgICAgLyogICAgNTYgICAgIDggKi8N Cj4gICAgICAgICAvKiAtLS0gY2FjaGVsaW5lIDEgYm91bmRhcnkgKDY0IGJ5dGVzKSAtLS0gKi8N Cj4gDQo+ICdyeF9kZXNjcmlwdG9yX2RvbmUnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVt b3ZlZDsNCg==