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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2EFBDC7113C for ; Wed, 11 Jun 2025 14:53:37 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E7C2D10E682; Wed, 11 Jun 2025 14:53:34 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=bootlin.com header.i=@bootlin.com header.b="OBVtex+P"; dkim-atps=neutral Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F3FB10E682; Wed, 11 Jun 2025 14:53:29 +0000 (UTC) Received: by mail.gandi.net (Postfix) with ESMTPSA id 07743431EB; Wed, 11 Jun 2025 14:53:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1749653607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sJu5NSgqNOml+9Lox7VvY57DB9A7wKSyNIB2QDnPsGk=; b=OBVtex+PPJ9C5YrO63rD52e2cVGsu/uqOLAY/L5dVGBbk36SdtmKeU5z7a8gjyDMv+3FaT TX/XWmjIZZOc04r1YF58J0UZmzld+Dkri6ScFCWleeIP6lbmHq868ldlq00T+fx8gJgkyI k8hI2/zz6hZhcjDqGHWI3Vyphrs88/33hARFhOWkdMAty3Q8ddiC4Q71ZFC+WQw/ZvU7oL ClgB+Dqt0esvCGIidbCkKPeUDdP7/pboiTDjIH1fcRy78yYoCwHyJMVFxSjAsdluxEF9cD sKyqBcqTttiLXgUfWXVTiRLrRFVDpN5Ap4ZpdRVu8OAa/540HM9YNp4iXMGjYg== From: Miquel Raynal To: "Usyskin, Alexander" Cc: Richard Weinberger , Guenter Roeck , Vignesh Raghavendra , "De Marchi, Lucas" , Thomas =?utf-8?Q?Hellstr=C3=B6m?= , "Vivi, Rodrigo" , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Jani Nikula , Joonas Lahtinen , Tvrtko Ursulin , "Poosa, Karthik" , "Abliyev, Reuven" , "Weil, Oren jer" , linux-mtd , "DRI mailing list" , intel-gfx , linux-kernel Subject: Re: [PATCH v6 01/11] mtd: core: always create master device In-Reply-To: (Alexander Usyskin's message of "Wed, 11 Jun 2025 10:52:36 +0000") References: <20250302140921.504304-1-alexander.usyskin@intel.com> <2e5ebbdd-2a57-4f1f-85c6-7c2dff127b50@roeck-us.net> <1176847729.134356549.1749504429656.JavaMail.zimbra@nod.at> <130790886.134361099.1749560056731.JavaMail.zimbra@nod.at> <877c1ivcym.fsf@bootlin.com> <1612313571.134371311.1749637592940.JavaMail.zimbra@nod.at> User-Agent: mu4e 1.12.7; emacs 29.4 Date: Wed, 11 Jun 2025 16:53:24 +0200 Message-ID: <87y0tytjmj.fsf@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddugdduvdegkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghffgffkfggtgfgsehtqhertddtreejnecuhfhrohhmpefoihhquhgvlhcutfgrhihnrghluceomhhiqhhuvghlrdhrrgihnhgrlhessghoohhtlhhinhdrtghomheqnecuggftrfgrthhtvghrnhepteehkeelvddvheehtdefkedtjeeutedthfegudekgeefleetkeettdekiefftdeinecuffhomhgrihhnpegsohhothhlihhnrdgtohhmnecukfhppeeltddrkeelrdduieefrdduvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledtrdekledrudeifedruddvjedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomhepmhhiqhhuvghlrdhrrgihnhgrlhessghoohhtlhhinhdrtghomhdpnhgspghrtghpthhtohepvddvpdhrtghpthhtoheprghlvgigrghnuggvrhdruhhshihskhhinhesihhnthgvlhdrtghomhdprhgtphhtthhopehrihgthhgrrhgusehnohgurdgrthdprhgtphhtthhopehlihhnuhigsehrohgvtghkqdhushdrnhgvthdprhgtphhtthhopehvihhgnhgvshhhrhesthhirdgtohhmpdhrtghpthhtoheplhhutggrshdruggvmhgrrhgthhhisehin hhtvghlrdgtohhmpdhrtghpthhtohepthhhohhmrghsrdhhvghllhhsthhrohhmsehlihhnuhigrdhinhhtvghlrdgtohhmpdhrtghpthhtoheprhhoughrihhgohdrvhhivhhisehinhhtvghlrdgtohhmpdhrtghpthhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtghomh X-GND-Sasl: miquel.raynal@bootlin.com X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Hello, On 11/06/2025 at 10:52:36 GMT, "Usyskin, Alexander" wrote: >> Subject: Re: [PATCH v6 01/11] mtd: core: always create master device >>=20 >> ----- Urspr=C3=BCngliche Mail ----- >> > Von: "Miquel Raynal" >> >> On 6/10/25 05:54, Richard Weinberger wrote: >> >>> ----- Urspr=C3=BCngliche Mail ----- >> >>>> Von: "Alexander Usyskin" >> >>>> Richard, I've reproduced your setup (modulo that I must load mtdram >> manually) >> >>>> and patch provided in this thread helps to fix the issue. >> >>>> Can you apply and confirm? >> >>> Yes, it fixes the issue here! :-) >> >>> >> >> >> >> It doesn't seem to fix the issue if the partition data is in >> >> devicetree. >> > >> > I had a look at the patch again. The whole mtd core makes assumptions = on >> > parenting, which is totally changed with this patch. There are so many >> > creative ways this can break, I don't believe we are going to continue >> > this route. I propose to revert the patch entirely for now. We need to >> > find another approach, I'm sorry. >>=20 >> I think reverting is a valid option to consider if the issue turns out t= o be >> a "back to the drawing board" problem. >>=20 >> > Alexander, can you please remind me what was your initial problem? I >> > believe you needed to anchor runtime PM on the master device. Can you >> > please elaborate again? Why taking the controller as source (the >> > default, before your change) did not work? Also why was selecting >> > MTD_PARTITIONED_MASTER not an option for you? I'm trying to get to the >> > root of this change again, so we can find a solution fixing "the world" >> > (fast) and in a second time a way to address your problem. >>=20 >> IIRC the problem is that depending on CONFIG_MTD_PARTITIONED_MASTER >> won't fly as PM needs to work with any configuration. >> And enforcing CONFIG_MTD_PARTITIONED_MASTER will break existing >> setups because mtd id's will change. >>=20 >> On the other hand, how about placing the master device at the end >> of the available mtd id space if CONFIG_MTD_PARTITIONED_MASTER=3Dn? >> A bit hacky but IMHO worth a thought. >>=20 >> Thanks, >> //Richard > > The original problem was that general purpose OS never set > CONFIG_MTD_PARTITIONED_MASTER and we need valid device tree > to power management to work. > > We can return to V7 of this patch that only creates dummy master if > CONFIG_MTD_PARTITIONED_MASTER is off. > In this case the hierarchy remains the same. > > Miquel, can you re-review v7 and say if it worth to revert current versio= n and > put v7 instead? After taking inspiration from Richard's wisdom on IRC, we have another proposal. Let's drop the mtd_master class. We need an mtd device to be the master device, we already have one but we cannot keep *at the beginning* of the ID space under the CONFIG_MTD_PARTITIONED_MASTER=3Dn configuration to avoid breaking userspace. So let's keep the master anyway, with the following specificities in the problematic case: - id is allocated from the max value downwards (avoids messing with numbering) - mtd device is simply hidden (same user experience as before) Apparently this second point, while not natively supported, is something the block world already does: https://elixir.bootlin.com/linux/v6.15.1/source/include/linux/blkdev.h#L88 What do you think? Thanks, Miqu=C3=A8l 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E6090C71136 for ; Wed, 11 Jun 2025 19:53:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZW2rxXFgraD2UT2YwyZo/TA7X6XAu10rA0UALPN9BZ0=; b=DTwnFMu8yQuwAV F0rUKRYvEXJdO5V8upd8YKFg/dtNLyMjKXuQ36eLUzKAHQOBPG5Bwl4VQvK2i3/G8bYv8JaNUzOwj KAAUo/55/wK/aAiu8YNZLS6LJqWiQ6WB9oafQQVDIlzH5KWhiuIBD34RvtaPu0P9EM73twn4JD6HY WnjQGYQZN3lUs7OS0gNRqR+rr53qne1jC1H0zWtFus4S6nd63NvK5toE8ZM65PsVwNIiGd3oQs413 Wy6GVWMPTDkss7xo2lhN4yRF+IKDOw3JcMxlKYsnmMdQvnZaDvP3XX1+0OX/VwPuAHprKIvKWKou1 AX/A4Ew+fAc0lTaDuipw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPRVw-0000000B0cE-2RYT; Wed, 11 Jun 2025 19:53:36 +0000 Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPMpV-0000000AHMe-3wdh for linux-mtd@lists.infradead.org; Wed, 11 Jun 2025 14:53:32 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 07743431EB; Wed, 11 Jun 2025 14:53:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1749653607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sJu5NSgqNOml+9Lox7VvY57DB9A7wKSyNIB2QDnPsGk=; b=OBVtex+PPJ9C5YrO63rD52e2cVGsu/uqOLAY/L5dVGBbk36SdtmKeU5z7a8gjyDMv+3FaT TX/XWmjIZZOc04r1YF58J0UZmzld+Dkri6ScFCWleeIP6lbmHq868ldlq00T+fx8gJgkyI k8hI2/zz6hZhcjDqGHWI3Vyphrs88/33hARFhOWkdMAty3Q8ddiC4Q71ZFC+WQw/ZvU7oL ClgB+Dqt0esvCGIidbCkKPeUDdP7/pboiTDjIH1fcRy78yYoCwHyJMVFxSjAsdluxEF9cD sKyqBcqTttiLXgUfWXVTiRLrRFVDpN5Ap4ZpdRVu8OAa/540HM9YNp4iXMGjYg== From: Miquel Raynal To: "Usyskin, Alexander" Cc: Richard Weinberger , Guenter Roeck , Vignesh Raghavendra , "De Marchi, Lucas" , Thomas =?utf-8?Q?Hellstr=C3=B6m?= , "Vivi, Rodrigo" , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Jani Nikula , Joonas Lahtinen , Tvrtko Ursulin , "Poosa, Karthik" , "Abliyev, Reuven" , "Weil, Oren jer" , linux-mtd , "DRI mailing list" , intel-gfx , linux-kernel Subject: Re: [PATCH v6 01/11] mtd: core: always create master device In-Reply-To: (Alexander Usyskin's message of "Wed, 11 Jun 2025 10:52:36 +0000") References: <20250302140921.504304-1-alexander.usyskin@intel.com> <2e5ebbdd-2a57-4f1f-85c6-7c2dff127b50@roeck-us.net> <1176847729.134356549.1749504429656.JavaMail.zimbra@nod.at> <130790886.134361099.1749560056731.JavaMail.zimbra@nod.at> <877c1ivcym.fsf@bootlin.com> <1612313571.134371311.1749637592940.JavaMail.zimbra@nod.at> User-Agent: mu4e 1.12.7; emacs 29.4 Date: Wed, 11 Jun 2025 16:53:24 +0200 Message-ID: <87y0tytjmj.fsf@bootlin.com> MIME-Version: 1.0 X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddugdduvdegkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghffgffkfggtgfgsehtqhertddtreejnecuhfhrohhmpefoihhquhgvlhcutfgrhihnrghluceomhhiqhhuvghlrdhrrgihnhgrlhessghoohhtlhhinhdrtghomheqnecuggftrfgrthhtvghrnhepteehkeelvddvheehtdefkedtjeeutedthfegudekgeefleetkeettdekiefftdeinecuffhomhgrihhnpegsohhothhlihhnrdgtohhmnecukfhppeeltddrkeelrdduieefrdduvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledtrdekledrudeifedruddvjedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomhepmhhiqhhuvghlrdhrrgihnhgrlhessghoohhtlhhinhdrtghomhdpnhgspghrtghpthhtohepvddvpdhrtghpthhtoheprghlvgigrghnuggvrhdruhhshihskhhinhesihhnthgvlhdrtghomhdprhgtphhtthhopehrihgthhgrrhgusehnohgurdgrthdprhgtphhtthhopehlihhnuhigsehrohgvtghkqdhushdrnhgvthdprhgtphhtthhopehvihhgnhgvshhhrhesthhirdgtohhmpdhrtghpthhtoheplhhutggrshdruggvmhgrrhgthhhisehin hhtvghlrdgtohhmpdhrtghpthhtohepthhhohhmrghsrdhhvghllhhsthhrohhmsehlihhnuhigrdhinhhtvghlrdgtohhmpdhrtghpthhtoheprhhoughrihhgohdrvhhivhhisehinhhtvghlrdgtohhmpdhrtghpthhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtghomh X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250611_075330_485223_6D779A50 X-CRM114-Status: GOOD ( 28.42 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGVsbG8sCgpPbiAxMS8wNi8yMDI1IGF0IDEwOjUyOjM2IEdNVCwgIlVzeXNraW4sIEFsZXhhbmRl ciIgPGFsZXhhbmRlci51c3lza2luQGludGVsLmNvbT4gd3JvdGU6Cgo+PiBTdWJqZWN0OiBSZTog W1BBVENIIHY2IDAxLzExXSBtdGQ6IGNvcmU6IGFsd2F5cyBjcmVhdGUgbWFzdGVyIGRldmljZQo+ PiAKPj4gLS0tLS0gVXJzcHLDvG5nbGljaGUgTWFpbCAtLS0tLQo+PiA+IFZvbjogIk1pcXVlbCBS YXluYWwiIDxtaXF1ZWwucmF5bmFsQGJvb3RsaW4uY29tPgo+PiA+PiBPbiA2LzEwLzI1IDA1OjU0 LCBSaWNoYXJkIFdlaW5iZXJnZXIgd3JvdGU6Cj4+ID4+PiAtLS0tLSBVcnNwcsO8bmdsaWNoZSBN YWlsIC0tLS0tCj4+ID4+Pj4gVm9uOiAiQWxleGFuZGVyIFVzeXNraW4iIDxhbGV4YW5kZXIudXN5 c2tpbkBpbnRlbC5jb20+Cj4+ID4+Pj4gUmljaGFyZCwgSSd2ZSByZXByb2R1Y2VkIHlvdXIgc2V0 dXAgKG1vZHVsbyB0aGF0IEkgbXVzdCBsb2FkIG10ZHJhbQo+PiBtYW51YWxseSkKPj4gPj4+PiBh bmQgcGF0Y2ggcHJvdmlkZWQgaW4gdGhpcyB0aHJlYWQgaGVscHMgdG8gZml4IHRoZSBpc3N1ZS4K Pj4gPj4+PiBDYW4geW91IGFwcGx5IGFuZCBjb25maXJtPwo+PiA+Pj4gWWVzLCBpdCBmaXhlcyB0 aGUgaXNzdWUgaGVyZSEgOi0pCj4+ID4+Pgo+PiA+Pgo+PiA+PiBJdCBkb2Vzbid0IHNlZW0gdG8g Zml4IHRoZSBpc3N1ZSBpZiB0aGUgcGFydGl0aW9uIGRhdGEgaXMgaW4KPj4gPj4gZGV2aWNldHJl ZS4KPj4gPgo+PiA+IEkgaGFkIGEgbG9vayBhdCB0aGUgcGF0Y2ggYWdhaW4uIFRoZSB3aG9sZSBt dGQgY29yZSBtYWtlcyBhc3N1bXB0aW9ucyBvbgo+PiA+IHBhcmVudGluZywgd2hpY2ggaXMgdG90 YWxseSBjaGFuZ2VkIHdpdGggdGhpcyBwYXRjaC4gVGhlcmUgYXJlIHNvIG1hbnkKPj4gPiBjcmVh dGl2ZSB3YXlzIHRoaXMgY2FuIGJyZWFrLCBJIGRvbid0IGJlbGlldmUgd2UgYXJlIGdvaW5nIHRv IGNvbnRpbnVlCj4+ID4gdGhpcyByb3V0ZS4gSSBwcm9wb3NlIHRvIHJldmVydCB0aGUgcGF0Y2gg ZW50aXJlbHkgZm9yIG5vdy4gV2UgbmVlZCB0bwo+PiA+IGZpbmQgYW5vdGhlciBhcHByb2FjaCwg SSdtIHNvcnJ5Lgo+PiAKPj4gSSB0aGluayByZXZlcnRpbmcgaXMgYSB2YWxpZCBvcHRpb24gdG8g Y29uc2lkZXIgaWYgdGhlIGlzc3VlIHR1cm5zIG91dCB0byBiZQo+PiBhICJiYWNrIHRvIHRoZSBk cmF3aW5nIGJvYXJkIiBwcm9ibGVtLgo+PiAKPj4gPiBBbGV4YW5kZXIsIGNhbiB5b3UgcGxlYXNl IHJlbWluZCBtZSB3aGF0IHdhcyB5b3VyIGluaXRpYWwgcHJvYmxlbT8gSQo+PiA+IGJlbGlldmUg eW91IG5lZWRlZCB0byBhbmNob3IgcnVudGltZSBQTSBvbiB0aGUgbWFzdGVyIGRldmljZS4gQ2Fu IHlvdQo+PiA+IHBsZWFzZSBlbGFib3JhdGUgYWdhaW4/IFdoeSB0YWtpbmcgdGhlIGNvbnRyb2xs ZXIgYXMgc291cmNlICh0aGUKPj4gPiBkZWZhdWx0LCBiZWZvcmUgeW91ciBjaGFuZ2UpIGRpZCBu b3Qgd29yaz8gQWxzbyB3aHkgd2FzIHNlbGVjdGluZwo+PiA+IE1URF9QQVJUSVRJT05FRF9NQVNU RVIgbm90IGFuIG9wdGlvbiBmb3IgeW91PyBJJ20gdHJ5aW5nIHRvIGdldCB0byB0aGUKPj4gPiBy b290IG9mIHRoaXMgY2hhbmdlIGFnYWluLCBzbyB3ZSBjYW4gZmluZCBhIHNvbHV0aW9uIGZpeGlu ZyAidGhlIHdvcmxkIgo+PiA+IChmYXN0KSBhbmQgaW4gYSBzZWNvbmQgdGltZSBhIHdheSB0byBh ZGRyZXNzIHlvdXIgcHJvYmxlbS4KPj4gCj4+IElJUkMgdGhlIHByb2JsZW0gaXMgdGhhdCBkZXBl bmRpbmcgb24gQ09ORklHX01URF9QQVJUSVRJT05FRF9NQVNURVIKPj4gd29uJ3QgZmx5IGFzIFBN IG5lZWRzIHRvIHdvcmsgd2l0aCBhbnkgY29uZmlndXJhdGlvbi4KPj4gQW5kIGVuZm9yY2luZyBD T05GSUdfTVREX1BBUlRJVElPTkVEX01BU1RFUiB3aWxsIGJyZWFrIGV4aXN0aW5nCj4+IHNldHVw cyBiZWNhdXNlIG10ZCBpZCdzIHdpbGwgY2hhbmdlLgo+PiAKPj4gT24gdGhlIG90aGVyIGhhbmQs IGhvdyBhYm91dCBwbGFjaW5nIHRoZSBtYXN0ZXIgZGV2aWNlIGF0IHRoZSBlbmQKPj4gb2YgdGhl IGF2YWlsYWJsZSBtdGQgaWQgc3BhY2UgaWYgQ09ORklHX01URF9QQVJUSVRJT05FRF9NQVNURVI9 bj8KPj4gQSBiaXQgaGFja3kgYnV0IElNSE8gd29ydGggYSB0aG91Z2h0Lgo+PiAKPj4gVGhhbmtz LAo+PiAvL1JpY2hhcmQKPgo+IFRoZSBvcmlnaW5hbCBwcm9ibGVtIHdhcyB0aGF0IGdlbmVyYWwg cHVycG9zZSBPUyBuZXZlciBzZXQKPiBDT05GSUdfTVREX1BBUlRJVElPTkVEX01BU1RFUiBhbmQg d2UgbmVlZCB2YWxpZCBkZXZpY2UgdHJlZQo+IHRvIHBvd2VyIG1hbmFnZW1lbnQgdG8gd29yay4K Pgo+IFdlIGNhbiByZXR1cm4gdG8gVjcgb2YgdGhpcyBwYXRjaCB0aGF0IG9ubHkgY3JlYXRlcyBk dW1teSBtYXN0ZXIgaWYKPiBDT05GSUdfTVREX1BBUlRJVElPTkVEX01BU1RFUiBpcyBvZmYuCj4g SW4gdGhpcyBjYXNlIHRoZSBoaWVyYXJjaHkgcmVtYWlucyB0aGUgc2FtZS4KPgo+IE1pcXVlbCwg Y2FuIHlvdSByZS1yZXZpZXcgdjcgYW5kIHNheSBpZiBpdCB3b3J0aCB0byByZXZlcnQgY3VycmVu dCB2ZXJzaW9uIGFuZAo+IHB1dCB2NyBpbnN0ZWFkPwoKQWZ0ZXIgdGFraW5nIGluc3BpcmF0aW9u IGZyb20gUmljaGFyZCdzIHdpc2RvbSBvbiBJUkMsIHdlIGhhdmUgYW5vdGhlcgpwcm9wb3NhbC4g TGV0J3MgZHJvcCB0aGUgbXRkX21hc3RlciBjbGFzcy4gV2UgbmVlZCBhbiBtdGQgZGV2aWNlIHRv IGJlCnRoZSBtYXN0ZXIgZGV2aWNlLCB3ZSBhbHJlYWR5IGhhdmUgb25lIGJ1dCB3ZSBjYW5ub3Qg a2VlcCAqYXQgdGhlCmJlZ2lubmluZyogb2YgdGhlIElEIHNwYWNlIHVuZGVyIHRoZSBDT05GSUdf TVREX1BBUlRJVElPTkVEX01BU1RFUj1uCmNvbmZpZ3VyYXRpb24gdG8gYXZvaWQgYnJlYWtpbmcg dXNlcnNwYWNlLiBTbyBsZXQncyBrZWVwIHRoZSBtYXN0ZXIKYW55d2F5LCB3aXRoIHRoZSBmb2xs b3dpbmcgc3BlY2lmaWNpdGllcyBpbiB0aGUgcHJvYmxlbWF0aWMgY2FzZToKLSBpZCBpcyBhbGxv Y2F0ZWQgZnJvbSB0aGUgbWF4IHZhbHVlIGRvd253YXJkcyAoYXZvaWRzIG1lc3Npbmcgd2l0aAog IG51bWJlcmluZykKLSBtdGQgZGV2aWNlIGlzIHNpbXBseSBoaWRkZW4gKHNhbWUgdXNlciBleHBl cmllbmNlIGFzIGJlZm9yZSkKCkFwcGFyZW50bHkgdGhpcyBzZWNvbmQgcG9pbnQsIHdoaWxlIG5v dCBuYXRpdmVseSBzdXBwb3J0ZWQsIGlzIHNvbWV0aGluZwp0aGUgYmxvY2sgd29ybGQgYWxyZWFk eSBkb2VzOgpodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92Ni4xNS4xL3NvdXJjZS9p bmNsdWRlL2xpbnV4L2Jsa2Rldi5oI0w4OAoKV2hhdCBkbyB5b3UgdGhpbms/CgpUaGFua3MsCk1p cXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==