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 8D7C6C54E60 for ; Thu, 14 Mar 2024 13:40:56 +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:In-Reply-To:References:To:Cc:Subject: From:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AZrTG5Jinkr+OTHsBGjbauYQRmelfOSyHDkfi6b+G4Q=; b=i+qNOWO/tn1ges F6D+JSzUesbgMnAj2P3HlKzXV09yQRYp0cNkwgQRsR3XONlBCbyiLhq5rdj2SqgR1xH8tFbQLubKf RJ4g9K2ekQTIAhpoov6eZkhlhhU72teAEXghmEiEDfPgVsJp0k3/kPrtVVnDizhHhp4CL3qfni9nc QQTuj0km/GzJbcQl8nFC06/mLw+j3aEMkiUSey3ydO0UxTXrOpuXgkhCCJ8nmDvmmsV81vMWDQg94 1Tm/iWRSZOm0KksJcbCft5h3WZM/E6OOqT9GRr3c8qMdMjqK/KLNKncuHhjuHIUOXLhhMAVemWKUA IjoH4L2v47q+xMZWOD7A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rklK4-0000000ESmn-3t2H; Thu, 14 Mar 2024 13:40:40 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rklK2-0000000ESlq-0Kcg for linux-arm-kernel@lists.infradead.org; Thu, 14 Mar 2024 13:40:40 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 6B0A560006; Thu, 14 Mar 2024 13:40:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1710423632; 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=CLf5KWnS0dc/LL0QiiVlehpC6eAdJafxsnoavfmgLwM=; b=TMbtXgu4lYq5V/tieYmz1HsaYW6Rf/HEvX1GdFOAxI1luJbA3OTFwnc25WNGUP7TapolIZ cDcKPi2ywWCc9mMVPnVjQROKoWDsMLHGCIZ7TzidDZ+YwGYO+OAluQc2ndlAc0PJsEmefJ XrJTBbJ28o/xljiXryj/iOIiX/LRX6nscU3dmPaSAiFfsQwrBcR37hWb+lg7QFQeHi16lr CNnPofB0aC4ATC7UGT+Kb9lKFywZSibzLB6wcLKnOi+FdLoy2uqn8UL5Ej3IGUO5qkGx96 krup5ruJqBBYd/pfzqFIEb/JtE2OyukuLukbVMD7prikikeyrYPt+VvYWglrNA== Mime-Version: 1.0 Date: Thu, 14 Mar 2024 14:40:31 +0100 Message-Id: From: =?utf-8?q?Th=C3=A9o_Lebrun?= Subject: Re: [PATCH v4 4/9] usb: cdns3-ti: support reset-on-resume behavior Cc: "Thomas Petazzoni" , =?utf-8?q?Gr=C3=A9gory_Clement?= , "Alan Stern" , , , , To: "Kevin Hilman" , "Greg Kroah-Hartman" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "Roger Quadros" , "Peter Chen" , "Pawel Laszczak" , "Nishanth Menon" , "Vignesh Raghavendra" , "Tero Kristo" X-Mailer: aerc 0.15.2 References: <20240307-j7200-usb-suspend-v4-0-5ec7615431f3@bootlin.com> <20240307-j7200-usb-suspend-v4-4-5ec7615431f3@bootlin.com> <7h4jdgperi.fsf@baylibre.com> In-Reply-To: <7h4jdgperi.fsf@baylibre.com> X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240314_064038_597939_F71AF193 X-CRM114-Status: GOOD ( 37.97 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGVsbG8sCgpPbiBGcmkgTWFyIDgsIDIwMjQgYXQgMTA6NTggUE0gQ0VULCBLZXZpbiBIaWxtYW4g d3JvdGU6Cj4gVGjDqW8gTGVicnVuIDx0aGVvLmxlYnJ1bkBib290bGluLmNvbT4gd3JpdGVzOgo+ ID4gQWRkIG1hdGNoIGRhdGEgc3VwcG9ydCwgd2l0aCBvbmUgYm9vbGVhbiB0byBpbmRpY2F0ZSB3 aGV0aGVyIHRoZQo+ID4gaGFyZHdhcmUgcmVzZXRzIGFmdGVyIGEgc3lzdGVtLXdpZGUgc3VzcGVu ZC4gSWYgaGFyZHdhcmUgcmVzZXRzLCB3ZQo+ID4gZm9yY2UgZXhlY3V0ZSAtPnJ1bnRpbWVfcmVz dW1lKCkgYXQgc3lzdGVtLXdpZGUgcmVzdW1lIHRvIHJ1biB0aGUKPiA+IGhhcmR3YXJlIGluaXQg c2VxdWVuY2UuCj4KPiBJcyAid2hldGhlciB0aGUgaGFyZHdhcmUgcmVzZXRzIGFmdGVyIGEgc3lz dGVtLXdpZGUgc3VzcGVuZCIgcmVhbGx5IGEKPiBmdW5jdGlvbiBvZiB0aGUgSVAgaXRzZWxmLCBv ciByYXRoZXIgd2hldGhlciB0aGUgSVAgaXMgaW4gYSBwb3dlciBkb21haW4KPiB0aGF0IG1pZ2h0 IHBvd2VyIGRvd24/CgpJcyBhIGNvbXBhdGlibGUgZGVmaW5pbmcgKDEpIHRoZSBJUCBibG9jayBp bnZvbHZlZCBvciAoMikgdGhlIElQIGJsb2NrCmludm9sdmVkIGFuZCBpdHMgaW50ZWdyYXRpb24/ IFRoaXMgaXMgYSByZXRob3JpY2FsIHF1ZXN0aW9uLCBJJ3ZlIGFza2VkCml0IGludGVybmFsbHkg YXQgQm9vdGxpbiBhbmQgd2UgaGFkIHNvbWUgaW50ZXJlc3RpbmcgZGlzY3Vzc2lvbnMuIDotKQoK V2hldGhlciBjb21wYXRpYmxlIG9yIHNvbWUgb3RoZXIgbWVjaGFuaXNtIGluZGljYXRlIGV4cGVj dGVkIHN1c3BlbmQKYmVoYXZpb3IsIHdlIGFncmVlZCB0aGF0IHN1c3BlbmQgdHlwZXMgd2hlcmUg bm90IG1vZGVsZWQgcHJvcGVybHkgYnkKdGhlIGtlcm5lbCBjdXJyZW50bHkuCgo+ID4gTm8gY29t cGF0aWJsZSBleHBsb2l0cyB0aGlzIGZ1bmN0aW9uYWxpdHksIGp1c3QgeWV0Lgo+ID4KPiA+IFNp Z25lZC1vZmYtYnk6IFRow6lvIExlYnJ1biA8dGhlby5sZWJydW5AYm9vdGxpbi5jb20+Cj4gPiAt LS0KPiA+ICBkcml2ZXJzL3VzYi9jZG5zMy9jZG5zMy10aS5jIHwgMjcgKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKPiA+Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2RuczMvY2RuczMtdGkuYyBiL2RyaXZlcnMvdXNi L2NkbnMzL2NkbnMzLXRpLmMKPiA+IGluZGV4IDRjOGE1NTdlNmE2Zi4uZjc2MzI3NTY2Nzk4IDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy91c2IvY2RuczMvY2RuczMtdGkuYwo+ID4gKysrIGIvZHJp dmVycy91c2IvY2RuczMvY2RuczMtdGkuYwo+ID4gQEAgLTU3LDkgKzU3LDE0IEBAIHN0cnVjdCBj ZG5zX3RpIHsKPiA+ICAJdW5zaWduZWQgdmJ1c19kaXZpZGVyOjE7Cj4gPiAgCXN0cnVjdCBjbGsg KnVzYjJfcmVmY2xrOwo+ID4gIAlzdHJ1Y3QgY2xrICpscG1fY2xrOwo+ID4gKwljb25zdCBzdHJ1 Y3QgY2Ruc190aV9tYXRjaF9kYXRhICptYXRjaF9kYXRhOwo+ID4gIAlpbnQgdXNiMl9yZWZjbGtf cmF0ZV9jb2RlOwo+ID4gIH07Cj4gPiAgCj4gPiArc3RydWN0IGNkbnNfdGlfbWF0Y2hfZGF0YSB7 Cj4gPiArCWJvb2wgcmVzZXRfb25fcmVzdW1lOwo+ID4gK307Cj4gPiArCj4gPiAgc3RhdGljIGNv bnN0IGludCBjZG5zX3RpX3JhdGVfdGFibGVbXSA9IHsJLyogaW4gS0haICovCj4gPiAgCTk2MDAs Cj4gPiAgCTEwMDAwLAo+ID4gQEAgLTEwMSw2ICsxMDYsNyBAQCBzdGF0aWMgaW50IGNkbnNfdGlf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ICAJcGxhdGZvcm1fc2V0X2Ry dmRhdGEocGRldiwgZGF0YSk7Cj4gPiAgCj4gPiAgCWRhdGEtPmRldiA9IGRldjsKPiA+ICsJZGF0 YS0+bWF0Y2hfZGF0YSA9IGRldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ID4gIAo+ID4gIAlk YXRhLT51c2JzcyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKPiA+ ICAJaWYgKElTX0VSUihkYXRhLT51c2JzcykpIHsKPiA+IEBAIC0yMjAsOCArMjI2LDI5IEBAIHN0 YXRpYyBpbnQgY2Ruc190aV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiAg CXJldHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgaW50IGNkbnNfdGlfc3VzcGVuZChz dHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiArewo+ID4gKwlzdHJ1Y3QgY2Ruc190aSAqZGF0YSA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gKwo+ID4gKwlpZiAoZGF0YS0+bWF0Y2hfZGF0YSAmJiBk YXRhLT5tYXRjaF9kYXRhLT5yZXNldF9vbl9yZXN1bWUpCj4gPiArCQlyZXR1cm4gcG1fcnVudGlt ZV9mb3JjZV9zdXNwZW5kKGRldik7Cj4gPiArCWVsc2UKPiA+ICsJCXJldHVybiAwOwo+ID4gK30K PiA+ICsKPiA+ICtzdGF0aWMgaW50IGNkbnNfdGlfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikK PiA+ICt7Cj4gPiArCXN0cnVjdCBjZG5zX3RpICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7 Cj4gPiArCj4gPiArCWlmIChkYXRhLT5tYXRjaF9kYXRhICYmIGRhdGEtPm1hdGNoX2RhdGEtPnJl c2V0X29uX3Jlc3VtZSkKPiA+ICsJCXJldHVybiBwbV9ydW50aW1lX2ZvcmNlX3Jlc3VtZShkZXYp Owo+ID4gKwllbHNlCj4gPiArCQlyZXR1cm4gMDsKPiA+ICt9Cj4KPiBDb25kaXRpb25hbGx5IGZv cmNpbmcgcnVudGltZSBzdXNwZW5kL3Jlc3VtZSBiYXNlZCBvbiBhIHByb3BlcnR5IG9mIHRoZQo+ IElQIGRvZXNuJ3QgZmVlbCByaWdodCB0byBtZS4KPgo+IElNTywgdGhlIGRldmljZSBzaG91bGQg YWx3YXlzIHJ1bnRpbWUgc3VzcGVuZC9yZXN1bWUsIGFuZCBpbiB0aGUKPiBydW50aW1lIFBNIGhv b2tzIGlzIHdoZXJlIHRoZSBjb25kaXRpb25hbCBsb2dpYyBzaG91bGQgYmUuCj4KPiBBbmQgc3Bl YWtpbmcgb2YgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljLi4uIGxldCdzIGdvIGJhY2sgdG8gd2hldGhl cgo+ICJyZXNldHNfb25fcmVzdW1lIiBpcyBhIHByb3BlcnR5IG9mIHRoZSBJUCBvciB0aGUgZW5j bG9zaW5nIHBvd2VyCj4gZG9tYWluLgo+Cj4gSW5zdGVhZCBvZiBoYXZpbmcgYW4gSVAtc3BlY2lm aWMgZmxhZywgYW5vdGhlciB3YXkgb2YgYXBwcm9hY2hpbmcgdGhpcwo+IHdoZW4gLT5ydW50aW1l X3Jlc3VtZSgpIGlzIGNhbGxlZCBldmVyeSB0aW1lIGlzIHNpbXBseSBmb3IgdGhhdCBob29rIHRv Cj4gY2hlY2sgaWYgYSByZXNldCBoYXMgaGFwcGVuZC4gIFNvbWV0aW1lcyB5b3UgY2FuIHRlbGwg dGhpcyBzaW1wbHkgYnkKPiByZWFkaW5nIGEgcmVnaXN0ZXIgdGhhdCBoYXMgYmVlbiBwcmV2aW91 c2x5IHByb2dyYW1tZWQgYnkgdGhlIGRyaXZlciBidXQKPiBoYXMgYSBrbm93biByZXNldC4gIFNp bXBseSBjaGVjayB0aGF0IHJlZ2lzaXN0ZXIgYW5kIHlvdSBjYW4gdGVsbAo+IHdoZXRoZXIgY29u dGV4dCBoYXMgYmVlbiBsb3N0Lgo+Cj4gRG9pbmcgaXQgdGhpcyB3YXkgbWFrZXMgdGhlIGRyaXZl ciAic21hcnQiIGFuZCB0aGVuIHlvdSBkb24ndCBoYXZlIHRvCj4gcmVseSBvbiBib29sIGZsYWcg YmFzZWQgb24gdGhlIElQIGFuZCBkZXBlbmRlbnQgb24gdGhlIERUIGNvbXBhdGlibGUuCgpJIGFn cmVlISBJIG5ldmVyIGRpZ2dlZCBpbnRvIHRoaXMgZm9yIGEgcmVhc29uOiB0aGUgSFhDSSBzdWJz eXN0ZW0gdGFrZXMKYSBxdWlyayBmbGFnIHRoYXQgdGVsbHMgaXQgd2hldGhlciBpdCByZXNldHMg b24gcmVzdW1lCihYSENJX1JFU0VUX09OX1JFU1VNRSkuIE15IHBsYW5zIHdlcmVuJ3QgZ3JhbmRp b3NlIGVub3VnaCB0byB0aGluawphYm91dCB0b3VjaGluZyB0aGlzIGFzcGVjdC4gVGhhdCBtZWFu cyB3ZSBuZWVkIHRvIGtub3cgdGhpcyBib29sIHZhbHVlCmF0IHByb2JlLgoKQWJvdXQgYSBzbWFy dCAtPnJ1bnRpbWVfcmVzdW1lKCkgaW1wbGVtZW50YXRpb246IGl0IGlzIGRvYWJsZS4gSSd2ZQpl eHBlcmltZW50ZWQgd2l0aCB0aGF0IGZvbGxvd2luZyB5b3VyIG1lc3NhZ2UuIFRoZSBjb25kaXRp b24gaXMgcmF0aGVyCnNpbXBsZSwgbG9va2luZyBsaWtlOgoKCXN0YXRpYyBpbnQgY2Ruc190aV9y dW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCgl7CgkJc3RydWN0IGNkbnNfdGkgKmRh dGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKCQl1MzIgdzEsIG1hc2s7CgoJCXcxID0gY2Ruc190 aV9yZWFkbChkYXRhLCBVU0JTU19XMSk7CgkJbWFzayA9IFVTQlNTX1cxX1BXUlVQX1JTVCB8IFVT QlNTX1cxX01PREVTVFJBUF9TRUw7CgoJCWlmICgodzEgJiBtYXNrKSAhPSBtYXNrKQoJCQljZG5z X3RpX3Jlc2V0X2FuZF9pbml0X2h3KGRldiwgZGF0YSk7CgoJCXJldHVybiAwOwoJfQoKVGVzdGVk IG9uIEo3MjAwLUVWTSwgd29ya3MgYXMgZXhwZWN0ZWQuIEJvdGggYml0cyByZXNldCB0byB6ZXJv LiBGaXJzdAppcyBzb2Z0d2FyZSByZXNldDsgc2Vjb25kIGlzIGRlc2NyaWJlZCBhcyAidGhpcyBi aXQgaGFzIHRvIGJlIGFsd2F5cwpzZXQgdG8gMSIuCgpjZG5zX3RpX3Jlc2V0X2FuZF9pbml0X2h3 KCkgd291bGQgYWxzbyBiZSBjYWxsIGF0IHByb2JlIGJlZm9yZSBlbmFibGluZwpydW50aW1lIFBN IHRvIGVuc3VyZSB3ZSBhbHdheXMgcmVzZXQgdGhlIElQIGF0IHByb2JlLgpUaGVuIC0+cnVudGlt ZV9yZXN1bWUoKSB3b3VsZCBnZXQgY2FsbGVkIG9uY2UgZHVyaW5nIHByb2JlIHdpdGhvdXQgYW55 CmltcGFjdCBhcyB0aGUgY29uZGl0aW9uYWwgd291bGQgcmV0dXJuIGZhbHNlLiBJdCB3b3VsZCB0 cmlnZ2VyIGF0CnJlc3VtZS4gU3lzdGVtLXdpZGUgc3VzcGVuZC9yZXN1bWUgaG9va3Mgd291bGQg YmVjb21lOgoKCVNZU1RFTV9TTEVFUF9QTV9PUFMocG1fcnVudGltZV9mb3JjZV9zdXNwZW5kLAoJ CQlwbV9ydW50aW1lX2ZvcmNlX3Jlc3VtZSkKCkRvIHlvdSBoYXZlIGFueSBpZGVhcyByZWxhdGVk IHRvIHRoZSBoYW5kbGluZyBvZiBYSENJX1JFU0VUX09OX1JFU1VNRT8KU2VlIHhoY2lfcmVzdW1l KCkuIFNvbWUgbm90ZXM6CgogLSBYSENJIGlzIGNhcGFibGUgb2YgZGV0ZWN0IHdoYXQgaXQgY2Fs bHMgcmVpbml0IChyZXNldCBhZnRlciByZXN1bWUpLgogICBUaGUgZmxhZ3Mgb25seSBzaG9ydGN1 dCB0aGUgcmVzdG9yZSBhdHRlbXB0ICh3aGljaCBpcyB1c2VsZXNzIHdoZW4KICAgdGhlIGNvbnRy b2xsZXIgcmVzZXQpIGFuZCBkaXNhYmxlcyB3YXJuaW5nIGJlY2F1c2Ugb2YgcmVpbml0LiBMb2dz CiAgIGNvbnRhaW4gdGhpcyB3aGVuIHdlIGRvIG5vdCBwYXNzIHRoZSBmbGFnOgoKICAgWyAgIDE4 LjUxODEzOF0geGhjaS1oY2QgeGhjaS1oY2QuMTEuYXV0bzogeEhDIGVycm9yIGluIHJlc3VtZSwg VVNCU1RTIDB4NDAxLCBSZWluaXQKICAgWyAgIDE4LjUyNTUyMl0gdXNiIHVzYjE6IHJvb3QgaHVi IGxvc3QgcG93ZXIgb3Igd2FzIHJlc2V0CiAgIFsgICAxOC41MzA2NDddIHVzYiB1c2IyOiByb290 IGh1YiBsb3N0IHBvd2VyIG9yIHdhcyByZXNldAoKIC0gV2F5cyBmb3J3YXJkIEkgY2FuIGltYWdp bmU6CgogICAgLSBBIHF1aWNrIGFuZCBkaXJ0eSBzb2x1dGlvbiB3b3VsZCBiZSB0byBncmFiIGEg cmVmZXJlbmNlIHRvIHRoZQogICAgICB4aGNpX2hjZCBzdHJ1Y3QgcG9pbnRlciBmcm9tIFRJIHdy YXBwZXIgYW5kIHVwZGF0ZSBxdWlya3Mgb24gdGhlCiAgICAgIGdvLgoKICAgIC0gQW5vdGhlciBv bmUgd291bGQgYmUgdG8ga2VlcCBhcy1pcyBhbmQgbGV0IHhoY2ktaGNkIHdhcm4gb24gZWFjaAog ICAgICByZXN1bWUuIE1lbnRpb25pbmcgdGhpcyBmb3IgZXhoYXVzdGl2ZW5lc3MuCgogICAgLSBJ bnRyb2R1Y2UgYSBuZXcgbWVjaGFuaXNtIHRvIGNvbW11bmljYXRlIHRocm91Z2ggdGhlIHN0YWNr OiBmcm9tCiAgICAgIHRoZSBUSSB3cmFwcGVyLCB0byBjZG5zMyBjb3JlLCB0byB0aGUgeGhjaS1o Y2QgZGV2aWNlLiBPciB1c2UgYW4KICAgICAgZXhpc3RpbmcgbWVjaGFuaXNtIGlmIG9uZSBpcyBw cmVzZW50LgoKICAgIC0gUmVtb3ZlIHRoZSBhc3N1bXB0aW9uIHhIQ0kgZG9lcyB0aGF0IGEgc3Vz cGVuZCBpcyBicm9rZW4gaWYgdGhlCiAgICAgIGNvbnRyb2xsZXIgd2FzIHJlc2V0IGR1cmluZyBp dC4gVGhhdCBkb2Vzbid0IHNvdW5kIHJpZ2h0IHRvIG1lLAogICAgICBjYW4geW91IGNvbmZpcm0/ CgpUaGFua3MhCgotLQpUaMOpbyBMZWJydW4sIEJvb3RsaW4KRW1iZWRkZWQgTGludXggYW5kIEtl cm5lbCBlbmdpbmVlcmluZwpodHRwczovL2Jvb3RsaW4uY29tCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=