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 D09F6C7EE39 for ; Wed, 25 Jun 2025 20:35:13 +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:Cc:To:MIME-Version:Message-Id:Date: Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=OPl6y43q6VV0951MnkrTZoVWjn5ve1NYE6Nn2EvgJA0=; b=1sLfpgMWaxXl2o oW5vETabCWxXOnVfRuuqrnce/T2FdSku9XDxiTtFaj6se8gfrrW4C/56Cm/OTVr0zV1hnJBBF7SAe 146LkZguRjcKKzpR9AvOqf2xZ6USelVM5l0V5r76FosuyJPrtivVgg4fSngFmryho4N27gwTjjQiF Q02d2Gr6RvPeHlQjstuAbNOMhAYhDBxYR+nuALT3OARLqu6aN41vYGAkDwgOTMzeHijSXwVHo2hxp 1L2K2h5RY44lCA6v2ixpDWhltE0GcpaGbBydDdZH/aOROyqc257QRrheKbdEGKdgmX+avwxoBX6wX +8OXDmpSU8eVvCoqIvyw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uUWph-00000009r7m-2t5C; Wed, 25 Jun 2025 20:35:01 +0000 Received: from relay5-d.mail.gandi.net ([217.70.183.197]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uUTFn-00000009Lug-3zVV for linux-amlogic@lists.infradead.org; Wed, 25 Jun 2025 16:45:46 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id C80D744384; Wed, 25 Jun 2025 16:45:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1750869939; 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; bh=UAePG0vUXhaRNj9mevWdeevJm5P79lMTjP9E/BZsM4I=; b=jVtQ+rTJWj2SIXS/jzojK+YZSMt0Yt5pIWdj9uVZ6QUs1IBSI1JZc+PpD/hdKmuVpMz9HK ZAYIa/gE0/iSapQaTdA6tTWM104NqqrMD7rVQq90kIXHF3HzVaiCthfIY5VETMM7krs5ax 8/p8WUwjoj+4WPaTgsuzF4Fv9zVTghreQlAHCAhW3vEDmgwJkALQ5sViZQTYYHkZsbBznG eggj0SsP+vtk9ktSfiG3RdNw3Wzf1Nlz161v+kSfZ4Ltw3iIaqEGwCfu/7z12hlQjMwCvX 9lEDTY/dayfZC7tPS0fhVkWzYQJ/yPK3wflgiglNdE3APAJjsZUPo3iQZYD1Sg== From: Luca Ceresoli Subject: [PATCH 00/32] drm/mipi-dsi: avoid DSI host drivers to have pointers to DSI devices Date: Wed, 25 Jun 2025 18:45:04 +0200 Message-Id: <20250625-drm-dsi-host-no-device-ptr-v1-0-e36bc258a7c5@bootlin.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAJAnXGgC/x3MQQqEMAxA0atI1hOoxYp6FZmFmFSzsJVERBDvb nH5Fv/fYKzCBkN1g/IpJjkV1L8K5nVKC6NQMXjng2t9QNINyQTXbAemjFSimXE/FH0IsYvkXN9 0UAa7cpTrm4//53kBvpQt+2wAAAA= X-Change-ID: 20250625-drm-dsi-host-no-device-ptr-255f8fd00948 To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Inki Dae , Jagan Teki , Marek Szyprowski , Jani Nikula , Dmitry Baryshkov Cc: Hui Pu , Thomas Petazzoni , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev, Luca Ceresoli , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , linux-amlogic@lists.infradead.org X-Mailer: b4 0.14.2 X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddvgddvfedvkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffufffkgggtgffvvefosehtkeertdertdejnecuhfhrohhmpefnuhgtrgcuvegvrhgvshholhhiuceolhhutggrrdgtvghrvghsohhlihessghoohhtlhhinhdrtghomheqnecuggftrfgrthhtvghrnhepjeejhffgffelveehhfefudehtdeftdettdekgfekueeihedtieefudevjeffveegnecuffhomhgrihhnpehfrhgvvgguvghskhhtohhprdhorhhgpdhkvghrnhgvlhdrohhrghenucfkphepvdgrtddvmeeijedtmedvtddvtdemvggrtddumegsvgegudemleehvgejmeefgeefmeeludefvgenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpedvrgdtvdemieejtdemvddtvddtmegvrgdtudemsggvgedumeelhegvjeemfeegfeemledufegvpdhhvghloheplgduledvrdduieekrddujeekrdejhegnpdhmrghilhhfrhhomheplhhutggrrdgtvghrvghsohhlihessghoohhtlhhinhdrtghomhdpnhgspghrtghpthhtohepvdeipdhrtghpthhtohepjhhonhgrsheskhifihgsohhordhsvgdprhgtphhtthhopehthhhomhgrshdrphgvthgriiiiohhnihessghoohhtlhhinhdrtghomhdprhgtp hhtthhopehlihhnuhigqdhsuhhngihisehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtohepmhdrshiihihprhhofihskhhisehsrghmshhunhhgrdgtohhmpdhrtghpthhtoheprhhfohhssheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtghomhdprhgtphhtthhopehkhhhilhhmrghnsegsrgihlhhisghrvgdrtghomhdprhgtphhtthhopehnvghilhdrrghrmhhsthhrohhngheslhhinhgrrhhordhorhhg X-GND-Sasl: luca.ceresoli@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250625_094544_727220_FF572F10 X-CRM114-Status: GOOD ( 28.58 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhpcyBzZXJpZXMgaXMgdGhlIGZpcnN0IGF0dGVtcHQgYXQgYXZvaWRpbmcgRFNJIGhvc3QgZHJp dmVycyB0byBoYXZlCnBvaW50ZXJzIHRvIERTSSBkZXZpY2VzIChzdHJ1Y3QgbWlwaV9kc2lfZGV2 aWNlKSwgYXMgZGlzY3Vzc2VkIGR1cmluZyB0aGUKTGludXggUGx1bWJlcnMgQ29uZmVyZW5jZSAy MDI0IHdpdGggTWF4aW1lIGFuZCBEbWl0cnkuCgpJdCBpcyB3b3JraW5nLCBidXQgSSBjb25zaWRl ciB0aGlzIGEgZHJhZnQgaW4gb3JkZXIgdG8gZGlzY3VzcyBhbmQKY2hhbGxlbmdlIHRoZSBwcm9w b3NlZCBhcHByb2FjaC4KCk92ZXJhbGwgd29yawo9PT09PT09PT09PT0KClRoaXMgaXMgcGFydCBv ZiB0aGUgd29yayB0b3dhcmRzIHJlbW92YWwgb2YgYnJpZGdlcyBmcm9tIGEgc3RpbGwgZXhpc3Rp bmcKRFJNIHBpcGVsaW5lIHdpdGhvdXQgdXNlLWFmdGVyLWZyZWUuIFRoZSBncmFuZCBwbGFuIGFz IGRpc2N1c3NlZCBpbiBbMV0uCkhlcmUncyB0aGUgd29yayBicmVha2Rvd24gKOKenCBtYXJrcyB0 aGUgY3VycmVudCBzZXJpZXMpOgoKIDEuIOKApiBhZGQgcmVmY291bnRpbmcgdG8gRFJNIGJyaWRn ZXMgKHN0cnVjdCBkcm1fYnJpZGdlKQogICAgKGJhc2VkIG9uIGRldm1fZHJtX2JyaWRnZV9hbGxv YygpIFswXSkKICAgIEEuIOKclCBhZGQgbmV3IGFsbG9jIEFQSSBhbmQgcmVmY291bnRpbmcgKGlu IHY2LjE2LXJjMSkKICAgIEIuIOKclCBjb252ZXJ0IGFsbCBicmlkZ2UgZHJpdmVycyB0byBuZXcg QVBJIChub3cgaW4gZHJtLW1pc2MtbmV4dCkKICAgIEMuIOKclCBrdW5pdCB0ZXN0cyAobm93IGlu IGRybS1taXNjLW5leHQpCiAgICBELiDigKYgYWRkIGdldC9wdXQgdG8gZHJtX2JyaWRnZV9hZGQv cmVtb3ZlKCkgKyBhdHRhY2gvZGV0YWNoKCkKICAgICAgICAgYW5kIHdhcm4gb24gb2xkIGFsbG9j YXRpb24gcGF0dGVybiAodW5kZXIgcmV2aWV3KQogICAgRS4g4oCmIGFkZCBnZXQvcHV0IG9uIGRy bV9icmlkZ2UgYWNjZXNzb3JzCiAgICAgICAxLiDigKYgZHJtX2JyaWRnZV9jaGFpbl9nZXRfZmly c3RfYnJpZGdlKCkgKyBhZGQgYSBjbGVhbnVwIGFjdGlvbgogICAgICAgMi4g4oCmIGRybV9icmlk Z2VfY2hhaW5fZ2V0X2xhc3RfYnJpZGdlKCkKICAgICAgIDMuIGRybV9icmlkZ2VfZ2V0X3ByZXZf YnJpZGdlKCkKICAgICAgIDQuIGRybV9icmlkZ2VfZ2V0X25leHRfYnJpZGdlKCkKICAgICAgIDUu IGRybV9mb3JfZWFjaF9icmlkZ2VfaW5fY2hhaW4oKQogICAgICAgNi4gZHJtX2JyaWRnZV9jb25u ZWN0b3JfaW5pdAogICAgICAgNy4gb2ZfZHJtX2ZpbmRfYnJpZGdlCiAgICAgICA4LiBkcm1fb2Zf ZmluZF9wYW5lbF9vcl9icmlkZ2UsICpfb2ZfZ2V0X2JyaWRnZQogICAgRi4gZGVidWdmcyBpbXBy b3ZlbWVudHMKIDIuIGhhbmRsZSBncmFjZWZ1bGx5IGF0b21pYyB1cGRhdGVzIGR1cmluZyBicmlk Z2UgcmVtb3ZhbAogMy4g4p6cIGF2b2lkIERTSSBob3N0IGRyaXZlcnMgdG8gaGF2ZSBkYW5nbGlu ZyBwb2ludGVycyB0byBEU0kgZGV2aWNlcwogICAgICAodGhpcyBzZXJpZXMpCiA0LiBmaW5pc2gg dGhlIGhvdHBsdWcgYnJpZGdlIHdvcmssIHJlbW92aW5nIHRoZSAiYWx3YXlzLWRpc2Nvbm5lY3Rl ZCIKICAgIGNvbm5lY3RvciwgbW92aW5nIGNvZGUgdG8gdGhlIGNvcmUgYW5kIHBvdGVudGlhbGx5 IHJlbW92aW5nIHRoZQogICAgaG90cGx1Zy1icmlkZ2UgaXRzZWxmICh0aGlzIG5lZWRzIHRvIGJl IGNsYXJpZmllZCBhcyBwb2ludHMgMS0zIGFyZQogICAgZGV2ZWxvcGVkKQoKWzBdIGh0dHBzOi8v Z2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9kcm0vbWlzYy9rZXJuZWwvLS9jb21taXQvMGNjNmFhZGQ3 ZmMxZTYyOWI3MTVlYTNkMWJhNTM3ZWYyZGE5NWVlYwpbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvbGttbC8yMDI1MDIwNi1ob3RwbHVnLWRybS1icmlkZ2UtdjYtMC05ZDZmMmM5YzMwNThAYm9v dGxpbi5jb20vdC8jdQoKTW90aXZhdGlvbgo9PT09PT09PT09CgpUaGUgbW90aXZhdGlvbiBmb3Ig dGhpcyBzZXJpZXMgaXMgdGhhdCB3aXRoIGhvdC1wbHVnZ2FibGUgaGFyZHdhcmUgYSBEU0kKZGV2 aWNlIGNhbiBiZSBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgRFNJIGhvc3QgYXQgcnVudGltZSwgYW5k IGxhdGVyIG9uCnJlY29ubmVjdGVkLCBwb3RlbnRpYWxseSB3aXRoIGEgZGlmZmVyZW50IG1vZGVs IGhhdmluZyBkaWZmZXJlbnQgYnVzCnBhcmFtZXRlcnMuCgpEU0kgaG9zdCBkcml2ZXJzIGN1cnJl bnRseSByZWNlaXZlIGEgc3RydWN0IG1pcGlfZHNpX2RldmljZSBwb2ludGVyIGluIHRoZQphdHRh Y2ggY2FsbGJhY2sgYW5kIHNvbWUgc3RvcmUgaXQgcGVybWFuZW50bHkgZm9yIGxhdGVyIGFjY2Vz cyB0byB0aGUgYnVyCmZvcm1hdCBkYXRhIChsYW5lcywgY2hhbm5lbCwgcGl4ZWwgZm9ybWF0IGV0 YykuIFRoZSBzdG9yZWQgcG9pbnRlciBjYW4KYmVjb21lIGRhbmdsaW5nIGlmIHRoZSBkZXZpY2Ug aXMgcmVtb3ZlZCwgbGVhZGluZyB0byBhIHVzZS1hZnRlci1mcmVlLgoKQ3VycmVudGx5IHRoZSBk YXRhIGV4Y2hhbmdlIGJldHdlZW4gRFNJIGhvc3QgYW5kIGRldmljZSBoYXBwZW5zIHByaW1hcmls eQpieSB0d28gbWVhbnM6CgogKiB0aGUgZGV2aWNlIHJlcXVlc3RzIGF0dGFjaCwgZGV0YWNoIGFu ZCBtZXNzYWdlIHRyYW5zZmVyIHRvIHRoZSBob3N0IGJ5CiAgIGNhbGxpbmcgbWlwaV9kc2lfYXR0 YWNoL2RldGFjaC90cmFuc2ZlciB3aGljaCBpbiB0dXJuIGNhbGwgdGhlIGNhbGxiYWNrcwogICBp biBzdHJ1Y3QgbWlwaV9kc2lfaG9zdF9vcHMKICAgIC0gZm9yIHRoaXMgdG8gd29yaywgc3RydWN0 IG1pcGlfZHNpX2RldmljZSBoYXMgYSBwb2ludGVyIHRvIHRoZSBob3N0OgogICAgICB0aGlzIGlz IE9LIGJlY2F1c2UgdGhlIGdvYWwgaXMgc3VwcG9ydGluZyBob3RwbHVnIG9mIHRoZSAicmVtb3Rl IgogICAgICBwYXJ0IG9mIHRoZSBEUk0gcGlwZWxpbmUKICogdGhlIGhvc3QgYWNjZXNzZXMgZGly ZWN0bHkgdGhlIGZpZWxkcyBvZiBzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlLCB0bwogICB3aGljaCBp dCByZWNlaXZlcyBhIHBvaW50ZXIgaW4gdGhlIC5hdHRhY2ggYW5kIC5kZXRhY2ggY2FsbGJhY2tz CgpUaGUgc2Vjb25kIGJ1bGxldCBpcyB0aGUgcHJvYmxlbWF0aWMgb25lLCB3aGljaCB3ZSB3YW50 IHRvIHJlbW92ZS4KClN0cmF0ZWd5Cj09PT09PT09CgpJIGRldmlzZWQgdHdvIHBvc3NpYmxlIHN0 cmF0ZWdpZXMgdG8gYWRkcmVzcyBpdDoKCiAxLiBjaGFuZ2UgdGhlIGhvc3Qgb3BzIHRvIG5vdCBw YXNzIGEgc3RydWN0IG1pcGlfZHNpX2RldmljZSwgYnV0IGluc3RlYWQKICAgIHRvIHBhc3Mgb25s eSBhIGNvcHkgb2YgdGhlIG5lZWRlZCBpbmZvcm1hdGlvbiAoYnVzIGZvcm1hdCBtYWlubHkpLCBz bwogICAgdGhlIGhvc3QgZHJpdmVyIGRvZXMgbmV2ZXIgYWNjZXNzIGFueSBpbmZvIGZyb20gdGhl IGRldmljZQogICAgCiAyLiBsZXQgdGhlIGhvc3QgZ2V0IGluZm8gZnJvbSB0aGUgZGV2aWNlIGFz IG5lZWRlZCwgYnV0IHdpdGhvdXQgaGF2aW5nIGEKICAgIHBvaW50ZXIgdG8gaXQ7IHRoaXMgaXMg YmUgYmFzZWQgb246CiAgICAgLSBzdG9yaW5nIGEgX19wcml2YXRlIG1pcGlfZHNpX2RldmljZSBw b2ludGVyIGluIHN0cnVjdCBtaXBpX2RzaV9ob3N0CiAgICAgLSBhZGRpbmcgZ2V0dGVycyB0byB0 aGUgRFNJIGNvcmUgZm9yIHRoZSBob3N0IHRvIHF1ZXJ5IHRoZSBuZWVkZWQKICAgICAgIGluZm8s IGUuZy4gZHJtX21pcGlfZHNpX2hvc3RfZ2V0X2RldmljZV9sYW5lcyhob3N0KSAodGhlIGdldHRl cnMKICAgICAgIHdvdWxkIGJlIGFsbG93ZWQgdG8gZGVyZWZlcmVuY2UgdGhlIGRldmljZSBwb2lu dGVyKQoKVGhpcyBzZXJpZXMgaW1wbGVtZW50cyBzdHJhdGVneSAxLiBJdCBkb2VzIHNvIGJ5IGFk ZGluZyBhIC5hdHRhY2hfbmV3IGhvc3QKb3AsIHdoaWNoIGRvZXMgbm90IHRha2UgYSBtaXBpX2Rz aV9kZXZpY2UgcG9pbnRlciwgYW5kIGNvbnZlcnRpbmcgbW9zdCBob3N0CmRyaXZlcnMgdG8gaXQu IE9uY2UgYWxsIGRyaXZlcnMgYXJlIGNvbnZlcnRlZCwgdGhlIG9sZCBvcCBjYW4gYmUgcmVtb3Zl ZCwKYW5kIC5hdHRhY2hfbmV3IHJlbmFtZWQgdG8gLmF0dGFjaC4KCkxpbWl0YXRpb25zIG9mIHRo aXMgc2VyaWVzCj09PT09PT09PT09PT09PT09PT09PT09PT09CgpJIGNvdWxkIG5vdCBjb252ZXJ0 IGEgZmV3IGRyaXZlcnMgaXMgYW4gb2J2aW91cyB3YXksIGR1ZSB0byB0aGUgdXNlIHRoZXkKbWFr ZSBvZiB0aGUgZGV2aWNlIHBvaW50ZXIuIFRob3NlIGFyZSBub3QgY29udmVydGVkIGluIHRoaXMg c2VyaWVzICh0aHVzCnRoZSAiZHJhZnQiIHN0YXR1cyBtZW50aW9uZWQgYWJvdmUpLiBUaGV5IGFy ZSBkZXNjcmliZWQgaW4gYSBkZWRpY2F0ZWQKc2VjdGlvbiBiZWxvdy4KCkFsc28sIHRoaXMgc2Vy aWVzIG9ubHkgYWRkcmVzcyB0aGUgLmF0dGFjaCBvcC4gaWYgdGhlIGFwcHJvYWNoIGlzIGdlbmVy YWxseQphZ3JlZWQgSSB3aWxsIHByb2NlZWQgdG8gLmRldGFjaCBhcyB3ZWxsLCB3aGljaCBJIGVz dGltYXRlIHRvIGJlIG11Y2gKZWFzaWVyLgoKSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3 aGlsZSB0aGUgRFNJIGJ1cyBzcGVjaWZpY2F0aW9uIGFsbG93cwpjb25uZWN0aW5nIG11bHRpcGxl IGRldmljZXMgdG8gdGhlIHNhbWUgYnVzIHVzaW5nIGRpZmZlcmVudCBjaGFubmVscywgbm9uZQpv ZiB0aGUgZHJpdmVycyBpbiB0aGUgY3VycmVudCBMaW51eCBrZXJuZWwgYXBwZWFycyB0byBzdXBw b3J0IGl0LCBhbmQgdGhpcwpzZXJpZXMgZG9lcyBub3QgdHJ5IHRvIGZpbGwgdGhhdCBnYXAuCgpT ZXJpZXMgbGF5b3V0Cj09PT09PT09PT09PT0KClRoZSBjb3JlIG9mIHRoaXMgd29yayBpcyBpbiBw YXJ0IDQgKGFkZGluZyAuYXR0YWNoX25ldykgYW5kIHRoZSBkcml2ZXIKY29udmVyc2lvbiBpbiBw YXJ0IDUuCgpUaGUgZmlyc3QgdHdvIHBhcnRzIGFyZSBnZW5lcmljIGNsZWFudXBzIHRoYXQgSSBk ZWVtIGdlbmVyYWxseSBhIGdvb2QKaW1wcm92ZW1lbnQgYW5kIGNhbiBiZSBhcHBsaWVkIGluZGVw ZW5kZW50bHkuIFRoZXkgYXJlIGluIHRoZSBzYW1lIHNlcmllcwpvbmx5IHRvIGF2b2lkIHBhdGNo IGNvbmZsaWN0cy4gUGFydCAzIGlzIGFsc28gcXVpdGUgb3J0aG9nb25hbCB0byB0aGUgbWFpbgp0 b3BpYyBvZiB0aGUgc2VyaWVzLiAKClRoZSBhYm92ZSByZXN1bHRzIGluIGxvdHMgb2YgcGF0Y2hl cyBhbmQgbG90cyBvZiBmaWxlcywgc28gSSBoYWQgdG8gdHJpbQp0aGUgcmVjaXBpZW50cyBsaXN0 IGluIG9yZGVyIHRvIHNlbmQgYSBzZXJpZXMgdGhhdCBpcyBjb21wcmVoZW5zaXZlIGVub3VnaAp0 byBzaG93IHRoZSBtYWluIGlkZWEuIEknbSBPSyB3aXRoIHNwbGl0dGluZyBpdCBpbiBzbWFsbGVy IHNlcmllcyBpZiB0aGUKcHJpbmNpcGxlIGlzIE9LLiBJdCB3b3VsZCBiZSBuaWNlIGlmIHRoZXNl IDMgcGFydHMgY291bGQgYmUgYXBwbGllZCBxdWlja2x5CnRob3VnaCwgdG8gc2hhdmUgdGhlIG51 bWJlciBvZiBzaW1wbGUgcGF0Y2hlcyB0byBtYWludGFpbiBvdmVyIGl0ZXJhdGlvbnMuCgogKiBH ZW5lcmljIGNsZWFudXA6IGFkZCBsYW5lIG51bWJlciBjaGVjayBpbiB0aGUgY29yZQoKICAgICBk cm0vbWlwaS1kc2k6IGFkZCBzYW5pdHkgY2hlY2sgb2YgbGFuZSBudW1iZXIgaW4gbWlwaV9kc2lf YXR0YWNoKCkKICAgICBkcm0vaGlzaWxpY29uL2tpcmluOiByZW1vdmUgcmVkdW5kYW50IGxhbmVz IG51bWJlciBjaGVjawogICAgIGRybS9icmlkZ2U6IG53bC1kc2k6IHJlbW92ZSByZWR1bmRhbnQg bGFuZXMgbnVtYmVyIGNoZWNrCiAgICAgZHJtL21jZGU6IHJlbW92ZSByZWR1bmRhbnQgbGFuZXMg bnVtYmVyIGNoZWNrCgogKiBHZW5lcmljIGNsZWFudXA6IG1vdmUgYXR0YWNoL2RldGFjaCBsb2dn aW5nIHRvIHRoZSBjb3JlCgogICAgIGRybS9taXBpLWRzaTogbG9nIERTSSBkZXZpY2UgYXR0YWNo IGFuZCBkZXRhY2gKICAgICBkcm0vYnJpZGdlOiBzYW1zdW5nLWRzaW06IHJlbW92ZSByZWR1bmRh bnQgbG9nZ2luZwogICAgIGRybS9icmlkZ2U6IG53bC1kc2k6IHJlbW92ZSByZWR1bmRhbnQgbG9n Z2luZwogICAgIGRybS9icmlkZ2U6IGNkbnMtZHNpOiByZW1vdmUgcmVkdW5kYW50IGxvZ2dpbmcK ICAgICBkcm0vbWNkZTogcmVtb3ZlIHJlZHVuZGFudCBsb2dnaW5nCiAgICAgZHJtL3N1bjRpOiBk c2k6IHJlbW92ZSByZWR1bmRhbnQgbG9nZ2luZwoKICogUmVtb3ZlIHNvbWUgb25lLWZvLWEta2lu ZCBtaXBpX2RzaV9kZXZpY2UgZGVyZWZlcmVuY2VzCiAKICAgICBkcm0vYnJpZGdlOiBzeW5vcHN5 cy9kc2kyOiByZW1vdmUgRFNJIGRldmljZSBwb2ludGVyIGZyb20gcHJpdmF0ZSBjYWxsYmFja3MK ICAgICBbUkZDIV0gZHJtL21lc29uOiBkc2k6IHJlbW92ZSB1bm5lZWRlZCBEU0kgZGV2aWNlIGNo ZWNrCgogKiBJbnRyb2R1Y2UgLmF0dGFjaF9uZXcgaG9zdCBvcAogCiAgICAgZHJtL21pcGktZHNp OiBtb3ZlIGZvcm1hdCBkZWZpbmUgYWJvdmUKICAgICBkcm0vbWlwaS1kc2k6IGFkZCAuYXR0YWNo X25ldyB0byBtaXBpX2RzaV9ob3N0X29wcwoKICogQ29udmVydCBtb3N0IGRyaXZlcnMgdG8gYXR0 YWNoX25ldyAoaW4gaW5jcmVhc2luZyBvcmRlciBvZiBjb21wbGV4aXR5KQoKICAgICBkcm06IGFk cDogbWlwaTogY29udmVydCB0byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICBkcm0va21iOiBkc2k6 IGNvbnZlcnQgdG8gdGhlIC5hdHRhY2hfbmV3IG9wCiAgICAgZHJtL2k5MTUvZHNpOiBjb252ZXJ0 IHRvIHRoZSAuYXR0YWNoX25ldyBvcAogICAgIGRybS9oaXNpbGljb24va2lyaW46IGNvbnZlcnQg dG8gdGhlIC5hdHRhY2hfbmV3IG9wCiAgICAgZHJtL2JyaWRnZTogc3lub3BzeXMvZHNpMjogY29u dmVydCB0byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICBkcm0vbXNtL2RzaTogY29udmVydCB0byB0 aGUgLmF0dGFjaF9uZXcgb3AKICAgICBkcm0vcmNhci1kdTogZHNpOiBjb252ZXJ0IHRvIHRoZSAu YXR0YWNoX25ldyBvcAogICAgIGRybTogcmVuZXNhczogcnotZHU6IHJ6ZzJsX21pcGlfZHNpOiBj b252ZXJ0IHRvIHRoZSAuYXR0YWNoX25ldyBvcAogICAgIGRybS92YzQ6IGRzaTogY29udmVydCB0 byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICBkcm0vbWVkaWF0ZWs6IGRzaTogY29udmVydCB0byB0 aGUgLmF0dGFjaF9uZXcgb3AKICAgICBkcm0vYnJpZGdlOiBud2wtZHNpOiBjb252ZXJ0IHRvIHRo ZSAuYXR0YWNoX25ldyBvcAogICAgIGRybS9icmlkZ2U6IGNkbnMtZHNpOiBjb252ZXJ0IHRvIHRo ZSAuYXR0YWNoX25ldyBvcAogICAgIGRybS9icmlkZ2U6IHRjMzU4NzY4OiBjb252ZXJ0IHRvIHRo ZSAuYXR0YWNoX25ldyBvcAogICAgIGRybS9zcHJkOiBjb252ZXJ0IHRvIHRoZSAuYXR0YWNoX25l dyBvcAogICAgIGRybS9icmlkZ2U6IHN5bm9wc3lzOiBkdy1taXBpLWRzaTogY29udmVydCB0byB0 aGUgLmF0dGFjaF9uZXcgb3AKICAgICBkcm0vbWNkZTogc3RvcmUgYSBwb2ludGVyIHRvIG1pcGlf ZHNpX2hvc3QgdG8gcGVyZm9ybSBURSByZXF1ZXN0cwogICAgIGRybS9tY2RlOiB1c2UgdGhlIERT SSBob3N0IHBvaW50ZXIgaW4gbWNkZV9kc2lfaXJxCiAgICAgZHJtL21jZGU6IGNvbnZlcnQgdG8g dGhlIC5hdHRhY2hfbmV3IG9wCgpQcm9ibGVtYXRpYyBjYXNlcywgbm90IHlldCBjb252ZXJ0ZWQK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpEcml2ZXJzIHJlcXVlc3Rpbmcg YW4gSVJRIGluIGNvbW1hbmQgbW9kZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKVHdvIGhvc3QgZHJpdmVycyByZWdpc3RlciBhbiBJUlEgd2hlbiBpbiBEU0kgY29t bWFuZCBtb2RlLCBib3RoIHVzaW5nCm1pcGlfZHNpX2RldmljZS5kZXYgdG8gZ2V0IHRoZSBURSBH UElPLgoKICogc2Ftc3VuZy1kc2ltLmMgKHNhbXN1bmdfZHNpbV9ob3N0X2F0dGFjaCksIHdoaWNo IGhhcyBhbiBpbnRlcmVzdGluZwogICBjb21tZW50IHNheWluZyB0aGlzIHNob3VsZCBiZSBjaGFu Z2VkOgogICAKIAkvKgogCSAqIFRoaXMgaXMgYSB0ZW1wb3Jhcnkgc29sdXRpb24gYW5kIHNob3Vs ZCBiZSBtYWRlIGJ5IG1vcmUgZ2VuZXJpYyB3YXkuCiAJICoKIAkgKiBJZiBhdHRhY2hlZCBwYW5l bCBkZXZpY2UgaXMgZm9yIGNvbW1hbmQgbW9kZSBvbmUsIGRzaSBzaG91bGQgcmVnaXN0ZXIKIAkg KiBURSBpbnRlcnJ1cHQgaGFuZGxlci4KIAkgKi8KIAlpZiAoIShkZXZpY2UtPm1vZGVfZmxhZ3Mg JiBNSVBJX0RTSV9NT0RFX1ZJREVPKSkgewoJCXJldCA9IHNhbXN1bmdfZHNpbV9yZWdpc3Rlcl90 ZV9pcnEoZHNpLCAmZGV2aWNlLT5kZXYpOwoKICogb21hcGRybS9kc3MvZHNpLmMgKG9tYXBfZHNp X2hvc3RfYXR0YWNoKSwgZG9pbmcgc2ltaWxhcmx5IGJ1dCB3aXRob3V0CiAgIGNvbW1lbnRzOgog CiAJaWYgKGNsaWVudC0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU8pIHsKIAkJZHNp LT5tb2RlID0gT01BUF9EU1NfRFNJX1ZJREVPX01PREU7CiAJfSBlbHNlIHsKCQlyID0gb21hcF9k c2lfcmVnaXN0ZXJfdGVfaXJxKGRzaSwgY2xpZW50KTsKCk1heWJlIHRoaXMgY291bGQgYmUgaGFu ZGxlZCBieSB0aGUgY29yZT8KCkRyaXZlcnMgbG9va2luZyBmb3IgYSBwYW5lbAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KClR3byBob3N0IGRyaXZlcnMgdXNlIG1pcGlfZHNpX2RldmljZS0+ ZGV2Lm9mX25vZGUgdG8gbG9vayB1cCBhIHBhbmVsIHZpYQpvZl9kcm1fZmluZF9wYW5lbCgpIGlu IC5hdHRhY2g6CgogKiBzdW42aV9taXBpX2RzaS5jIChzdW42aV9kc2lfYXR0YWNoKToKIAogCXN0 cnVjdCBzdW42aV9kc2kgKmRzaSA9IGhvc3RfdG9fc3VuNmlfZHNpKGhvc3QpOwoJc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwgPSBvZl9kcm1fZmluZF9wYW5lbChkZXZpY2UtPmRldi5vZl9ub2RlKTsK CiAqIHRlZ3JhL2RzaS5jLCB3aGljaCBhZGRpdGlvbmFsbHkgZG9lcyBzb21lIGNoZWNrcyBpbiAu ZGV0YWNoOgogCiAgICAtIHRlZ3JhX2RzaV9ob3N0X2F0dGFjaDoKCiAJaWYgKCFkc2ktPm1hc3Rl cikgewogCQlzdHJ1Y3QgdGVncmFfb3V0cHV0ICpvdXRwdXQgPSAmZHNpLT5vdXRwdXQ7CiAKCQlv dXRwdXQtPnBhbmVsID0gb2ZfZHJtX2ZpbmRfcGFuZWwoZGV2aWNlLT5kZXYub2Zfbm9kZSk7CiAJ CWlmIChJU19FUlIob3V0cHV0LT5wYW5lbCkpCiAJCQlvdXRwdXQtPnBhbmVsID0gTlVMTDsKCQku Li4JCiAJfQoJCiAgICAtIHRlZ3JhX2RzaV9ob3N0X2RldGFjaCAtLSBub3Qgc3VyZSB0aGlzIGNo ZWNrIGlzIHJlYWxseSBuZWVkZWQsCiAgICAgIHNpbWlsYXJseSB0byBwYXRjaCAiW1JGQyFdIGRy bS9tZXNvbjogZHNpOiByZW1vdmUgdW5uZWVkZWQgRFNJIGRldmljZQogICAgICBjaGVjayIgaW4g dGhpcyBzZXJpZXM6CgogCXN0cnVjdCB0ZWdyYV9kc2kgKmRzaSA9IGhvc3RfdG9fdGVncmEoaG9z dCk7CiAJc3RydWN0IHRlZ3JhX291dHB1dCAqb3V0cHV0ID0gJmRzaS0+b3V0cHV0OwogCglpZiAo b3V0cHV0LT5wYW5lbCAmJiAmZGV2aWNlLT5kZXYgPT0gb3V0cHV0LT5wYW5lbC0+ZGV2KSB7CiAJ CW91dHB1dC0+cGFuZWwgPSBOVUxMOwogCiAJCWlmIChvdXRwdXQtPmNvbm5lY3Rvci5kZXYpCiAJ CQlkcm1faGVscGVyX2hwZF9pcnFfZXZlbnQob3V0cHV0LT5jb25uZWN0b3IuZGV2KTsKIAl9CgpB bnVzaGEsIE1heGltZSwgZG8geW91IHRoaW5rIHRoZSBvbmdvaW5nIHdvcmsgb24gcGFuZWwgbGlm ZXRpbWUgYW5kIHRoZQpwYW5lbF9icmlkZ2UgY2FuIGludGVyYWN0IHdpdGggdGhpcz8gRE8geW91 IHNlZSBhbnkgc2hvcnQtdGVybSBzb2xpdXRpb24Kd2hpbGUgdGhhdCBwcm9ncmVzc2VzPwoKQmVz dCByZWdhcmRzLApMdWNhCgpTaWduZWQtb2ZmLWJ5OiBMdWNhIENlcmVzb2xpIDxsdWNhLmNlcmVz b2xpQGJvb3RsaW4uY29tPgotLS0KTHVjYSBDZXJlc29saSAoMzIpOgogICAgICBkcm0vbWlwaS1k c2k6IGFkZCBzYW5pdHkgY2hlY2sgb2YgbGFuZSBudW1iZXIgaW4gbWlwaV9kc2lfYXR0YWNoKCkK ICAgICAgZHJtL2hpc2lsaWNvbi9raXJpbjogcmVtb3ZlIHJlZHVuZGFudCBsYW5lcyBudW1iZXIg Y2hlY2sKICAgICAgZHJtL2JyaWRnZTogbndsLWRzaTogcmVtb3ZlIHJlZHVuZGFudCBsYW5lcyBu dW1iZXIgY2hlY2sKICAgICAgZHJtL21jZGU6IHJlbW92ZSByZWR1bmRhbnQgbGFuZXMgbnVtYmVy IGNoZWNrCiAgICAgIGRybS9taXBpLWRzaTogbG9nIERTSSBkZXZpY2UgYXR0YWNoIGFuZCBkZXRh Y2gKICAgICAgZHJtL2JyaWRnZTogc2Ftc3VuZy1kc2ltOiByZW1vdmUgcmVkdW5kYW50IGxvZ2dp bmcKICAgICAgZHJtL2JyaWRnZTogbndsLWRzaTogcmVtb3ZlIHJlZHVuZGFudCBsb2dnaW5nCiAg ICAgIGRybS9icmlkZ2U6IGNkbnMtZHNpOiByZW1vdmUgcmVkdW5kYW50IGxvZ2dpbmcKICAgICAg ZHJtL21jZGU6IHJlbW92ZSByZWR1bmRhbnQgbG9nZ2luZwogICAgICBkcm0vc3VuNGk6IGRzaTog cmVtb3ZlIHJlZHVuZGFudCBsb2dnaW5nCiAgICAgIGRybS9icmlkZ2U6IHN5bm9wc3lzL2RzaTI6 IHJlbW92ZSBEU0kgZGV2aWNlIHBvaW50ZXIgZnJvbSBwcml2YXRlIGNhbGxiYWNrcwogICAgICBb UkZDXSBkcm0vbWVzb246IGRzaTogcmVtb3ZlIHVubmVlZGVkIERTSSBkZXZpY2UgY2hlY2sKICAg ICAgZHJtL21pcGktZHNpOiBtb3ZlIGZvcm1hdCBkZWZpbmUgYWJvdmUKICAgICAgZHJtL21pcGkt ZHNpOiBhZGQgLmF0dGFjaF9uZXcgdG8gbWlwaV9kc2lfaG9zdF9vcHMKICAgICAgZHJtOiBhZHA6 IG1pcGk6IGNvbnZlcnQgdG8gdGhlIC5hdHRhY2hfbmV3IG9wCiAgICAgIGRybS9rbWI6IGRzaTog Y29udmVydCB0byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICAgZHJtL2k5MTUvZHNpOiBjb252ZXJ0 IHRvIHRoZSAuYXR0YWNoX25ldyBvcAogICAgICBkcm0vaGlzaWxpY29uL2tpcmluOiBjb252ZXJ0 IHRvIHRoZSAuYXR0YWNoX25ldyBvcAogICAgICBkcm0vYnJpZGdlOiBzeW5vcHN5cy9kc2kyOiBj b252ZXJ0IHRvIHRoZSAuYXR0YWNoX25ldyBvcAogICAgICBkcm0vbXNtL2RzaTogY29udmVydCB0 byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICAgZHJtL3JjYXItZHU6IGRzaTogY29udmVydCB0byB0 aGUgLmF0dGFjaF9uZXcgb3AKICAgICAgZHJtOiByZW5lc2FzOiByei1kdTogcnpnMmxfbWlwaV9k c2k6IGNvbnZlcnQgdG8gdGhlIC5hdHRhY2hfbmV3IG9wCiAgICAgIGRybS92YzQ6IGRzaTogY29u dmVydCB0byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICAgZHJtL21lZGlhdGVrOiBkc2k6IGNvbnZl cnQgdG8gdGhlIC5hdHRhY2hfbmV3IG9wCiAgICAgIGRybS9icmlkZ2U6IG53bC1kc2k6IGNvbnZl cnQgdG8gdGhlIC5hdHRhY2hfbmV3IG9wCiAgICAgIGRybS9icmlkZ2U6IGNkbnMtZHNpOiBjb252 ZXJ0IHRvIHRoZSAuYXR0YWNoX25ldyBvcAogICAgICBkcm0vYnJpZGdlOiB0YzM1ODc2ODogY29u dmVydCB0byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICAgZHJtL3NwcmQ6IGNvbnZlcnQgdG8gdGhl IC5hdHRhY2hfbmV3IG9wCiAgICAgIGRybS9icmlkZ2U6IHN5bm9wc3lzOiBkdy1taXBpLWRzaTog Y29udmVydCB0byB0aGUgLmF0dGFjaF9uZXcgb3AKICAgICAgZHJtL21jZGU6IHN0b3JlIGEgcG9p bnRlciB0byBtaXBpX2RzaV9ob3N0IHRvIHBlcmZvcm0gVEUgcmVxdWVzdHMKICAgICAgZHJtL21j ZGU6IHVzZSB0aGUgRFNJIGhvc3QgcG9pbnRlciBpbiBtY2RlX2RzaV9pcnEKICAgICAgZHJtL21j ZGU6IGNvbnZlcnQgdG8gdGhlIC5hdHRhY2hfbmV3IG9wCgogZHJpdmVycy9ncHUvZHJtL2FkcC9h ZHAtbWlwaS5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL2NhZGVuY2UvY2Rucy1kc2ktY29yZS5jICAgfCAgNjYgKysrKysrKy0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvY2FkZW5jZS9jZG5zLWRzaS1jb3JlLmggICB8ICAgMiArLQogZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvaW14OTMtbWlwaS1kc2kuYyAgICAgIHwgICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vYnJpZGdlL253bC1kc2kuYyAgICAgICAgICAgICAgICAgfCAgMTYgKyst LQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zYW1zdW5nLWRzaW0uYyAgICAgICAgICAgIHwgICA1 IC0tCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LW1pcGktZHNpLmMgICAgfCAg MTggKystLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaTIuYyAg IHwgIDIwICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY4LmMgICAgICAgICAg ICAgICAgfCAgNDAgKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21pcGlfZHNpLmMgICAg ICAgICAgICAgICAgICAgfCAgMzggKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v a2lyaW4vZHdfZHJtX2RzaS5jICAgICB8ICAxMiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaWNsX2RzaS5jICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS92bHZfZHNpLmMgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0va21i L2ttYl9kc2kuYyAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9t Y2RlL21jZGVfZGlzcGxheS5jICAgICAgICAgICAgICB8ICAxOCArKy0tCiBkcml2ZXJzL2dwdS9k cm0vbWNkZS9tY2RlX2RybS5oICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1 L2RybS9tY2RlL21jZGVfZHNpLmMgICAgICAgICAgICAgICAgICB8ICA5NyArKysrKysrKysrLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMgICAgICAgICAgICAg ICB8ICAxMCArLS0KIGRyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kd19taXBpX2RzaS5jICAg ICAgICB8ICAyMSArKy0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hvc3QuYyAgICAg ICAgICAgICAgIHwgIDE4ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvcmNh cl9taXBpX2RzaS5jICB8ICAxMCArLS0KIGRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3J6LWR1L3J6 ZzJsX21pcGlfZHNpLmMgICB8ICAxOCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHct bWlwaS1kc2ktcm9ja2NoaXAuYyAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9k dy1taXBpLWRzaTItcm9ja2NoaXAuYyB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL3NwcmQvbWVn YWNvcmVzX3BsbC5jICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vc3ByZC9z cHJkX2RwdS5jICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9zcHJk L3NwcmRfZHNpLmMgICAgICAgICAgICAgICAgICB8ICAyOCArKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9zcHJkL3NwcmRfZHNpLmggICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUv ZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMgICAgICAgICAgIHwgICAyIC0KIGRyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2RzaS5jICAgICAgICAgICAgICAgICAgICB8ICAxMiArLS0KIGluY2x1ZGUv ZHJtL2JyaWRnZS9kd19taXBpX2RzaS5oICAgICAgICAgICAgICAgICB8ICAgMyArLQogaW5jbHVk ZS9kcm0vYnJpZGdlL2R3X21pcGlfZHNpMi5oICAgICAgICAgICAgICAgIHwgICA2ICstCiBpbmNs dWRlL2RybS9kcm1fbWlwaV9kc2kuaCAgICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysr KysrKysrKystLS0tLS0tLS0KIDMzIGZpbGVzIGNoYW5nZWQsIDMyMCBpbnNlcnRpb25zKCspLCAy ODcgZGVsZXRpb25zKC0pCi0tLQpiYXNlLWNvbW1pdDogMTE3NGJmMTViZDYwMWYxNzU1NmY3MjE3 OThjZDkxODNlMTY5NTQ5YQpjaGFuZ2UtaWQ6IDIwMjUwNjI1LWRybS1kc2ktaG9zdC1uby1kZXZp Y2UtcHRyLTI1NWY4ZmQwMDk0OAoKQmVzdCByZWdhcmRzLAotLSAKTHVjYSBDZXJlc29saSA8bHVj YS5jZXJlc29saUBib290bGluLmNvbT4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2lj QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1hbWxvZ2ljCg==