From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC] GuC firmware versioning change Date: Thu, 18 Oct 2018 11:57:06 +0200 Message-ID: References: <20181012202430.GB21521@jeffdesk> <20181012205143.GS10727@intel.com> <20181012213326.GE21521@jeffdesk> <20181012214605.GF21521@jeffdesk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B7DC6E48D for ; Thu, 18 Oct 2018 09:57:19 +0000 (UTC) Received: by mail-qt1-x82e.google.com with SMTP id b4-v6so33463135qtc.7 for ; Thu, 18 Oct 2018 02:57:19 -0700 (PDT) In-Reply-To: <20181012214605.GF21521@jeffdesk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jeff McGee Cc: intel-gfx , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMTIsIDIwMTggYXQgMTE6NDUgUE0gSmVmZiBNY0dlZSA8amVmZi5tY2dlZUBp bnRlbC5jb20+IHdyb3RlOgo+Cj4gT24gRnJpLCBPY3QgMTIsIDIwMTggYXQgMDI6MzM6MjZQTSAt MDcwMCwgSmVmZiBNY0dlZSB3cm90ZToKPiA+IE9uIEZyaSwgT2N0IDEyLCAyMDE4IGF0IDAxOjUx OjQ2UE0gLTA3MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gT24gRnJpLCBPY3QgMTIsIDIw MTggYXQgMDE6MjQ6MzBQTSAtMDcwMCwgSmVmZiBNY0dlZSB3cm90ZToKPiA+ID4gPiBUaGUgR3VD IGZpcm13YXJlIHRlYW0gaXMgcHJvcG9zaW5nIGEgY2hhbmdlIHRvIHRoZSBmaXJtd2FyZSB2ZXJz aW9uaW5nIHNjaGVtZS4KPiA+ID4gPiBUaGUgZ29hbCBpcyB0byBtb3JlIGFjY3VyYXRlbHkgdHJh Y2sgdGhlIGZpcm13YXJlIGludGVyZmFjZSB0byBoZWxwIHVzZXJzCj4gPiA+ID4gbWFuYWdlIGRl cGVuZGVuY2llcyBvbiB0aGF0IGludGVyZmFjZS4gVGhlIHByb3Bvc2VkIHNjaGVtZSBpcyBiYXNl ZCBvbgo+ID4gPiA+IHNlbXZlci5vcmcgd2l0aCBzb21lIGFkZGl0aW9ucyB0byBoYW5kbGUgYnJh bmNoaW5nLgo+ID4gPiA+Cj4gPiA+ID4gVGhlIHByb3Bvc2VkIHZlcnNpb24gbnVtYmVyIHdvdWxk IGhhdmUgNCBmaWVsZHM6IEJBU0UuTUFKT1IuTUlOT1IuUEFUQ0guCj4gPiA+ID4gQ29udHJhc3Qg dGhpcyB3aXRoIHRoZSAyIGZpZWxkcyBpbiB0aGUgY3VycmVudCB2ZXJzaW9uIG51bWJlcjogTUFK T1IuTUlOT1IuCj4gPiA+ID4gU2lkZSBub3RlLCB0aGUgY3VycmVudCBmaXJtd2FyZSBlbmNvZGVz IGEgQlJBTkNIIGFuZCBDTElFTlQgbnVtYmVyIGFzIHdlbGwsIGJ1dAo+ID4gPiA+IHRoZXkgaGF2 ZSBub3QgYmVlbiBuZWVkZWQgYnkgaTkxNS4gU28gYSBmaXJtd2FyZSByZWxlYXNlZCB3aXRoIHRo ZSBwcm9wb3NlZAo+ID4gPiA+IHNjaGVtZSB3b3VsZCBiZSBuYW1lZCA8cGxhdGZvcm0+X2d1Y192 ZXI8YmFzZT5fPG1ham9yPl88bWlub3I+XzxwYXRjaD4uYmluCj4gPiA+ID4gKGV4OiBza2xfZ3Vj X3ZlcjFfNV80XzcuYmluKSBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50Cj4gPiA+ID4gPHBsYXRmb3Jt Pl9ndWNfdmVyPG1ham9yPl88bWlub3I+LmJpbiAoZXg6IHNrbF9ndWNfdmVyOV8zMy5iaW4pLgo+ ID4gPiA+Cj4gPiA+ID4gVGhlIEJBU0UgbnVtYmVyIGlzIGFuIElEIHRoYXQgaXMgdXNlZCB0byBp ZGVudGlmeSBhIHNldCBvZiByZWxlYXNlcyBpbiB3aGljaAo+ID4gPiA+IHRoZSBNQUpPUi5NSU5P Ui5QQVRDSCBzZW1hbnRpY3MgYXJlIGNvbnNpc3RlbnQuIEluIG90aGVyIHdvcmRzLCB0d28gcmVs ZWFzZXMKPiA+ID4gPiBmcm9tIHRoZSBzYW1lIEJBU0UgY2FuIGJlIGNvbXBhcmVkIHZpYSB0aGVp ciBNQUpPUi5NSU5PUi5QQVRDSCB0byBpbmZlciB0aGVpcgo+ID4gPiA+IHJlbGF0aW9uc2hpcCBh cyBkZXNjcmliZWQgYmVsb3cuIFR3byByZWxlYXNlcyBmcm9tIGEgZGlmZmVyZW50IEJBU0UgY2Fu bm90IGJlCj4gPiA+ID4gcmVsaWFibHkgY29tcGFyZWQuIFRoZSBCQVNFIG51bWJlciBmYWNpbGl0 YXRlcyBhcmJpdHJhcnkgYnJhbmNoaW5nIHdoaWNoIGNhbgo+ID4gPiA+IGNyZWF0ZSBkdXBsaWNh dGUgYW5kL29yIGRpc2Nvbm5lY3RlZCBNQUpPUi5NSU5PUi5QQVRDSCB2ZXJzaW9ucy4gVGhpcyB0 eXBlIG9mCj4gPiA+ID4gYnJhbmNoaW5nIGlzIGV4cGVjdGVkIHRvIGJlIHJhcmUsIGFuZCBzbyBC QVNFIHdpbGwgcmFyZWx5IGNoYW5nZS4gV2hlbiBhIG5ldwo+ID4gPiA+IEJBU0UgaXMgY3JlYXRl ZCwgdGhlIE1BSk9SLk1JTk9SLlBBVENIIHJlc2V0IHRvIHN0YXJ0aW5nIHZhbHVlcy4KPiA+ID4K PiA+ID4gQ291bGQgeW91IHBsZWFzZSBjbGFyaWZ5IGEgYml0IHdoYXQgQkFTRSBtZWFucz8KPiA+ ID4gV2hhdCB3b3VsZCBiZSBhIGRpZmZlcmVudCBCQVNFPwo+ID4gPgo+ID4KPiA+IFRoZSBCQVNF IG51bWJlciBzdXBwb3J0cyBnZW5lcmFsIGJyYW5jaGluZyB0aGF0IHdvdWxkIGNhdXNlIHZlcnNp b24gbnVtYmVyCj4gPiBjb25mbGljdHMuIEJyYW5jaGluZyBmb3IgZmlybXdhcmUgcmVsZWFzZXMg aXMgbm90IGRlc2lyYWJsZSwgYnV0IGl0IGlzIGEKPiA+IHByYWN0aWNhbCByZWFsaXR5LiBUaGVy ZWZvcmUgdGhlIHZlcnNpb25pbmcgc2NoZW1lIG11c3QgYWNjb21vZGF0ZSBpdC4gTGV0J3MKPiA+ IHNheSB0aGF0IGEgaGlnaC1wcmlvcml0eSByZXF1ZXN0IGlzIG1hZGUgdG8gcHV0IHNwZWNpZmlj IHVwZGF0ZXMgb24gYW4gb2xkCj4gPiByZWxlYXNlIHRoYXQgc2FpZCBjdXN0b21lciBpcyBsb2Nr ZWQgb24uIFRob3NlIHVwZGF0ZXMgY291bGQgaW5jbHVkZSBhbnkgc29ydAo+ID4gb2YgY2hhbmdl IGluY2x1ZGluZyBpbnRlcmZhY2UgY2hhbmdlLiBUaGVuIHdlIGhhdmUgYSBzZXF1ZW5jZSBsaWtl IGJlbG93Ogo+ID4KPiA+IHYxLjEuMC4wICAgdjEuMS4wLjEgICB2MS4xLjAuMiAgIHYxLjEuMC4z ICAgdjEuMS4xLjAKPiA+IC0tLS1PLS0tLS0tLS0tLU8tLS0tLS0tLS0tTy0tLS0tLS0tLS1PLS0t LS0tLS0tLU8KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8tLS0tLS0tLS0tTwo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICB2Mi4xLjEuMCAgIHYyLjEuMS4xCj4gPgo+ID4gWW91IGNhbiBzZWUg dGhhdCBpZiB3ZSBkb24ndCBoYXZlIGEgQkFTRSBudW1iZXIgdGhhdCBjaGFuZ2VzIGZyb20gMSB0 byAyLCB0aGVuCj4gPiB3ZSBlbmQgdXAgd2l0aCBkdXBsaWNhdGVkIHYxLjEuMCBhbG9uZyB0aGUg ZGlmZmVyZW50IGJyYW5jaGVzIHdoaWNoIGFyZSBub3QgdGhlCj4gPiBzYW1lLiBBcyBJIHdyb3Rl LCB0aGlzIHNob3VsZCBiZSBhIHZlcnkgcmFyZSBzY2VuYXJpbywgYnV0IGl0IGNhbiBoYXBwZW4u IE1heWJlCj4gPiB1cHN0cmVhbSB3aWxsIGFsd2F5cyBiZSBzdXBwbGllZCB3aXRoIHJlbGVhc2Vz IGZyb20gdGhlICJtYWluIiBCQVNFLCBhbmQgeW91Cj4gPiBjYW4gaWdub3JlIHRoaXMgZmllbGQs IGJ1dCBpdCBuZWVkcyB0byBiZSB0aGVyZSBmb3Igb3RoZXIgZmlybXdhcmUKPiA+IGRpc3RyaWJ1 dGlvbnMuCgpUaGUgd2F5IHRoaXMgaXMgdXN1YWxseSBzb2x2ZWQgaW4gc2VtdmVyIGlzIHRvIG5v dCBwcmVwZW5kIGEgQkFTRSwgYnV0CnBvc3RmaXggYSBicmFuY2gtc3BlY2lmaWMgdmVyc2lvbiwg d2hpbGUga2VlcGluZyB0aGUgbWFpbmxpbmUgdmVyc2lvbgp1bmNoYW5nZWQuIFNvCgp2Mi4xLjEu MCBiZWNvbWVzIHYxLjEuMC4xLWJyYW5jaDEtMAp2Mi4xLjEuMSBiZWNvbWVzIHYxLjEuMC4xLWJy YW5jaDEtMQoKV2l0aCB0aGUgcnVsZSB0aGF0IGJyYW5jaGVzIGFyZSBleHBsaWNpdGx5IHVuc29y dGVkICh0aGF0J3MgZGVub3RlZCBieQp0aGUgLSAtIGFyb3VuZCB0aGVtLCBpbnN0ZWFkIG8gdXNp bmcgZG90cyksIHNvIG5vdCBjb21wYXJhYmxlLiBCb251cwpwb2ludHMgaWYgeW91IG5hbWUgdGhl IGJyYW5jaCBwb2ludHMgYnkgdGhlIGN1c3RvbWVycyAoY291bGQgYmUgdGhlCnByb2R1Y3QsIG9y IGludGVybmFsIGN1c3RvbWVyIGdyb3VwIG9yIHdoYXRldmVyKSB0byBtYWtlIHRoZXNlIG5hbWVz CnNsaWdodGx5IG1vcmUgbWVhbmluZ2Z1bC4KClByZWZpeGluZyBhIEJBU0UsIHdpdGggYSBkb3Qs IGlzIHZlcnkgbXVjaCBub3QgaG93IGl0J3MgZG9uZSBhbmQgdmVyeQpjb25mdXNpbmcuIFRoZXJl J3Mgb25lIHRoaW5nIGRlYmlhbiBkb2VzLCBpdCdzIHByZXBlbmRpbmcgYW4gRVBPQ0gsCndoaWNo IGlzIHVzZWQgZm9yIGUuZy4gQysrIHBhY2thZ2VzIHdoZW4gdGhlIGNvbXBpbGVyIGFiaSBjaGFu Z2VzLiBJCnRoaW5rIHJlYWRpbmcgdXAgb24gZGViaWFuJ3MgcnVsZXMgd291bGQgYmUgZ29vZCBp bnNwaXJhdGlvbiBmb3IgdGhpcwpwcm9ibGVtOgoKaHR0cHM6Ly9zZXJ2ZXJmYXVsdC5jb20vcXVl c3Rpb25zLzYwNDU0MS9kZWJpYW4tcGFja2FnZXMtdmVyc2lvbi1jb252ZW50aW9uCgpDaGVlcnMs IERhbmllbAoKPiA+IC1KZWZmCj4gPgo+Cj4gU29ycnksIEkgbWlzcmVwcmVzZW50ZWQgaG93IHRv IHRoZSBudW1iZXJzIHdvdWxkIGNoYW5nZSBpbiB0aGUgYWJvdmUgZXhhbXBsZS4KPiBUaGUgY2hh bmdlIG9mIEJBU0UgZnJvbSAxIHRvIDIgd291bGQgcmVzZXQgTUFKT1IuTUlOT1IuUEFUQ0guIFNv IHRoZSBzZXF1ZW5jZQo+IHNob3VsZCBiZSB2MS4xLjAuMiAtPiB2Mi4xLjAuMCAtPiB2Mi4xLjAu MSBhbmQgc28gb24uCj4KPiBJZiB3ZSBkb24ndCBoYXZlIEJBU0UsIHRoZSBwdXJlIHNlbXZlci5v cmcgc2VxdWVuY2Ugd291bGQgYmU6Cj4KPiAgIHYxLjAuMCAgICAgdjEuMC4xICAgICB2MS4wLjIg ICAgIHYxLjAuMyAgICAgdjEuMS4wCj4gLS0tLU8tLS0tLS0tLS0tTy0tLS0tLS0tLS1PLS0tLS0t LS0tLU8tLS0tLS0tLS0tTwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8tLS0tLS0tLS0tTwo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2MS4xLjAgICAgIHYxLjEuMQo+Cj4gQW5kIHNvIHlvdSBzZWUgdGhl IGR1cGxpY2F0aW9uIG9mIHZlcnNpb24gbnVtYmVyLgo+IC0gSmVmZgo+Cj4gPiA+ID4KPiA+ID4g PiBUaGUgTUFKT1IgbnVtYmVyIGNvbmZvcm1zIHRvIHRoZSBtYWpvciBpbiBzZW12ZXIub3JnLiBJ dCBpbmNyZW1lbnRzIG9uIGEKPiA+ID4gPiBiYWNrd2FyZHMgaW5jb21wYXRpYmxlIGNoYW5nZSBv ZiB0aGUgaW50ZXJmYWNlLiBJdCByZXNldHMgdG8gMSBvbiBhIGNoYW5nZSBvZgo+ID4gPiA+IEJB U0UuIFRoZSBNQUpPUiBudW1iZXIgYmFzaWNhbGx5IHdvcmtzIHRoZSBzYW1lIGJldHdlZW4gdGhl IGN1cnJlbnQgYW5kCj4gPiA+ID4gcHJvcG9zZWQgdmVyc2lvbmluZyBzY2hlbWVzLgo+ID4gPiA+ Cj4gPiA+ID4gVGhlIE1JTk9SIG51bWJlciBjb25mb3JtcyB0byB0aGUgbWlub3IgaW4gc2VtdmVy Lm9yZy4gSXQgaW5jcmVtZW50cyBvbiBhCj4gPiA+ID4gYmFja3dhcmRzIGNvbXBhdGlibGUgY2hh bmdlIG9mIHRoZSBpbnRlcmZhY2UgKG5ldyBpbnRlcmZhY2VzIHRoYXQgYXJlIG9wdGlvbmFsCj4g PiA+ID4gdG8gdXNlKS4gSXQgd2lsbCBhbHNvIGluY3JlbWVudCBvbiBzdWJzdGFudGlhbCBuZXcg aW50ZXJuYWwgZnVuY3Rpb25hbGl0eSB0aGF0Cj4gPiA+ID4gZG9lc24ndCBhZmZlY3QgdGhlIGlu dGVyZmFjZSBidXQgc2hvdWxkIGJlIGNhbGxlZCBvdXQgdG8gdGhlIHVzZXIuIEl0IHJlc2V0cyB0 bwo+ID4gPiA+IDAgb24gYSBjaGFuZ2Ugb2YgTUFKT1IuIFRoZSBNSU5PUiBudW1iZXIgaW4gdGhl IGN1cnJlbnQgdmVyc2lvbmluZyBzY2hlbWUKPiA+ID4gPiBpbmNyZW1lbnRzIG9uIGFueSBiYWNr d2FyZHMgY29tcGF0aWJsZSBjaGFuZ2UuIFRoZSBwcm9wb3NlZCB2ZXJzaW9uaW5nIHNjaGVtZQo+ ID4gPiA+IGJyZWFrcyB0aGlzIGludG8gdGhlIE1JTk9SIG51bWJlciBqdXN0IGRlc2NyaWJlZCBh bmQgdGhlIFBBVENIIG51bWJlciBiZWxvdy4KPiA+ID4gPgo+ID4gPiA+IFRoZSBQQVRDSCBudW1i ZXIgY29uZm9ybXMgdG8gdGhlIHBhdGNoIGluIHNlbXZlci5vcmcuIEl0IGluY3JlbWVudHMgb24g YQo+ID4gPiA+IGJhY2t3YXJkcyBjb21wYXRpYmxlIGludGVybmFsIGNoYW5nZSwgdXN1YWxseSBh IGJ1ZyBmaXguIEl0IHJlc2V0cyB0byAwIG9uIGEKPiA+ID4gPiBjaGFuZ2Ugb2YgTUlOT1IuCj4g PiA+Cj4gPiA+IEkgbGlrZSB0aGUgaWRlYSBvZiBNQUpPUi5NSU5PUi5QQVRDSCBmb2xsb3dpbmcg c2VtdmVyLm9yZy4KPiA+ID4KPiA+ID4gSSB0aGluayBpZiB3ZSByZW1vdmUgdGhlIEJBU0Ugb3V0 IG9mIHBpY3R1cmUgYW5kIGp1c3QgdXNlIHNlbXZlciBjbGVhciwKPiA+ID4gYnV0IG1heWJlIGl0 IGlzIGp1c3QgYmVjYXVzZSBJIGRpZG4ndCBxdWl0ZSB1bmRlcnN0YW5kIEJBU0UuCj4gPiA+Cj4g PiA+ID4KPiA+ID4gPiBUaGUgTUFKT1IuTUlOT1IgY29sbGVjdGl2ZWx5IGRlZmluZSB0aGUgaW50 ZXJmYWNlIHZlcnNpb24uIEJlY2F1c2UgdGhlIE1JTk9SCj4gPiA+ID4gbWF5IGFsc28gaW5jcmVt ZW50IG9uIGEgc3Vic3RhbnRpYWwgaW50ZXJuYWwgY2hhbmdlLCBpdCBkb2Vzbid0IGFsd2F5cyBt YXJrIGFuCj4gPiA+ID4gaW50ZXJmYWNlIGNoYW5nZSwgZS5nLiA0LjUgYW5kIDQuNiBtYXkgaGF2 ZSBpZGVudGljYWwgaW50ZXJmYWNlcy4gQnV0IHRoZQo+ID4gPiA+IGRldGVybWluYXRpb24gb2Yg aW50ZXJmYWNlIGNvbXBhdGliaWxpdHkgaXMgdW5jaGFuZ2VkLCBlLmcuIDQuNiBpcyBhbHdheXMK PiA+ID4gPiBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIDQuNS4KPiA+ID4gPgo+ID4gPiA+IEVh Y2ggTUFKT1IuTUlOT1IgbWF5IGNvbnRpbnVlIHRvIHJlY2VpdmUgaW50ZXJuYWwgZml4ZXMgYWxv bmcgYSBicmFuY2ggZXZlbgo+ID4gPiA+IGFmdGVyIHRoZSBtYWluIGJyYW5jaCBmb3IgdGhhdCBC QVNFIGhhcyBtb3ZlZCBvbiB0byBhbm90aGVyIE1BSk9SLk1JTk9SLgo+ID4gPiA+IFJlbGVhc2Vz IGZyb20gdGhlc2UgZml4LW9ubHkgYnJhbmNoZXMgaW5jcmVtZW50IG9ubHkgdGhlIFBBVENIIG51 bWJlciBvbiB0aGF0Cj4gPiA+ID4gTUFKT1IuTUlOT1IsIGFuZCB0aGVyZWZvcmUgcmVtYWluIHNl bWFudGljYWxseSBjb25zaXN0ZW50IHdpdGggdGhlIG1haW4gYnJhbmNoLgo+ID4gPiA+IE5vIGNo YW5nZSBvZiBCQVNFIGlzIHRoZXJlZm9yZSBuZWVkZWQuIENvbnNpZGVyIGFuIGV4YW1wbGU6Cj4g PiA+ID4KPiA+ID4gPiB2MS4xLjAuMCAgIHYxLjEuMC4xICAgdjEuMS4wLjIgICB2MS4xLjEuMCAg IHYxLjEuMS4xCj4gPiA+ID4gLS0tLU8tLS0tLS0tLS0tTy0tLS0tLS0tLS1PLS0tLS0tLS0tLU8t LS0tLS0tLS0tTyAgICA8LS0gbWFpbiBhZG9wdHMgdjEuMS4xLngKPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPLS0tLS0tLS0tLU8gICAgIDwtLSBmaXhlcyBmb3IgaW50ZXJm YWNlIHYxLjEuMC54Cj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICB2MS4xLjAuMyAg IHYxLjEuMC40Cj4gPiA+Cj4gPiA+IFRoaXMgYXBwcm9hY2ggaXMgY29vbCBhbmQgbW9yZSBvciBs ZXNzIGhvdyBNZXNhIGhhbmRsZXMgdGhlaXIgcmVsZWFzZXMsCj4gPiA+IGV4Y2VwdCBieSB0aGUg ZmFjdCB0aGF0IHRoZWlyIE1ham9yIGlzIHRoZSB5ZWFyIGFuZCBtaW5vciBpcyB0aGUgbW9udGgu Cj4gPiA+Cj4gPiA+IEhvd2V2ZXIsIG9uIHRoZSBmaXJtd2FyZSBzaWRlIEkgaGF2ZSBhIGNvbmNl cm4gYmVjYXVzZSB3ZSBhcmUgc28gZmFyIHRyeWluZwo+ID4gPiB0byBtYWtlIHN1cmUgdGhhdCB3 ZSBoYXZlIDEtMSByZWxhdGlvbnNoaXAgb24ga2VybmVsLWZpcm13YXJlIHZlcnNpb24uCj4gPiA+ Cj4gPiA+IEJ1dCBiYXNlZCBvbiB0aGlzIHZpZXcgYW5kIHdoYXQgQW51c2hhIHRvbGQgbWUgeWVz dGVyZGF5IGl0IHNlZW1zCj4gPiA+IHRoYXQgR3VDIGlzIGdldHRpbmcgY29uc3RhbnQgcmVsZWFz ZXMuIFdpdGggdGhlIGNvbnN0YW50IHBhdGNoZXMgd2Ugd2lsbAo+ID4gPiBzb29uIGV4cGxvZGUg bGludXgtZmlybXdhcmUuZ2l0IHJlcG9zaXRvcnkgc2l6ZS4KPiA+ID4KPiA+ID4gQnV0IHRoaXMg bWF5YmUgaXMgc29tZXRoaW5nIHRvIGJlIHNvbHZlZCBvbiBsaW51eC1maXJtd2FyZSBzaWRlIGFu ZCB3ZSBtYWtlCj4gPiA+IHN1cmUgdGhhdCB3ZSBjbGVhbiB1cCBhbmQgcmVtb3ZlIGZpcm13YXJl IHRoYXQgd2VyZSBuZXZlciByZWxlYXNlZCBpbiBhbnkKPiA+ID4gb2ZmaWNpYWwgTGludXgga2Vy bmVsLiBBbnVzaGEgb3IgQW50b25pbywgdGhvdWdodHM/Cj4gPiA+Cj4gPiA+IFRoYW5rcywKPiA+ ID4gUm9kcmlnby4KPiA+ID4KPiA+Cj4gPiBJIGV4cGVjdCB0aGF0IGk5MTUgd2lsbCBzdGlsbCBy ZXF1aXJlIGEgc2luZ2xlIHZlcnNpb24gb2YgZmlybXdhcmUgcGVyIHBsYXRmb3JtCj4gPiBhcyBp dCBkb2VzIHRvZGF5LiBUaGlzIGNoYW5nZSBzaG91bGQgbm90IGltcGFjdCB0aGF0IG90aGVyIHRo YW4gdG8gcmVxdWlyZSBpOTE1Cj4gPiB0byBjaGVjayA0IG51bWJlcnMgaW5zdGVhZCBvZiAyLgo+ ID4KPiA+IEl0IGlzIHRydWUgdGhhdCBmaXJtd2FyZSByZWxlYXNlcyBhcmUgbWFkZSAqaW50ZXJu YWxseSogKGZyb20gdGhlIGZpcm13YXJlCj4gPiB0ZWFtIHRvIHRoZSBvcGVyYXRpbmcgc3lzdGVt IHRlYW1zKSBhdCBhIGZyZXF1ZW50IHJhdGUuIEl0IGlzIHVwIHRvIGVhY2ggT1MKPiA+IHRlYW0g dG8gZGVjaWRlIHRoZWlyIG93biBjYWRlbmNlIGZvciBpbnRlZ3JhdGluZyBhbmQgZGlzdHJpYnV0 aW5nIHRob3NlCj4gPiBmaXJtd2FyZSBiYXNlZCBvbiB0aGVpciB1bmlxdWUgc2l0dWF0aW9uLiBT byB0aGUgTGludXggdGVhbSBtYXkgZmlsdGVyIHRoZXNlCj4gPiByZWxlYXNlcyBhbmQgdXBkYXRl IHRoZSB1cHN0cmVhbSBtdWNoIGxlc3MgZnJlcXVlbnRseS4KPiA+Cj4gPiA+ID4KPiA+ID4gPiBU aGVyZSBpcyBubyBuZWVkIHRvIGNoYW5nZSB0aGUgQkFTRSBiZWNhdXNlIHRoZSBicmFuY2hpbmcg aGFwcGVuZWQgZnJvbSB0aGUKPiA+ID4gPiBsYXN0IGZpeCAodjEuMS4wLjIpIG9uIHRoZSBtYWlu IGJyYW5jaCBwcmlvciB0byB0aGUgY2hhbmdlIG9mIGludGVyZmFjZQo+ID4gPiA+ICh2MS4xLjEu MCkuIEFzIGxvbmcgYXMgb25seSBmaXhlcyBhcmUgYXBwbGllZCB0byB2MS4xLjAueCwgdGhlcmUg aXMgbm8gcmlzayBvZgo+ID4gPiA+IHZlcnNpb24gbnVtYmVyIGNsYXNoLiBBbGwgb2YgdGhlc2Ug cmVsZWFzZSB2ZXJzaW9ucyByZW1haW4gc2VtYW50aWNhbGx5Cj4gPiA+ID4gY29ubmVjdGVkIHdp dGggb25lIHNtYWxsIGNhdmVhdC4gSWYgdGhpcyBzZXQgb2YgcmVsZWFzZSB2ZXJzaW9ucyBjYW1l Cj4gPiA+ID4gc2VxdWVudGlhbGx5IGFsb25nIGEgc2luZ2xlIGJyYW5jaCwgb25lIGNvdWxkIGlu ZmVyIHRoYXQgdGhlIGV4YWN0IGZpeGVzIGluCj4gPiA+ID4gdjEuMS4wLjQgd2VyZSBpbmhlcml0 ZWQgYnkgdjEuMS4xLjAuIFdpdGggdGhpcyAiaGlkZGVuIiBicmFuY2hpbmcsIHRoaXMgbWF5Cj4g PiA+ID4gbm90IGJlIHRydWUgYXMgaW4gdGhpcyBleGFtcGxlLiBPbmUgd291bGQgbmVlZCB0byBy ZXZpZXcgdGhlIHYxLjEuMS4wIHJlbGVhc2UKPiA+ID4gPiBub3RlcyB0byBjaGVjay4KPiA+ID4g Pgo+ID4gPiA+IFBsZWFzZSBwcm92aWRlIGFueSBmZWVkYmFjayBvbiB0aGUgcHJvcG9zZWQgY2hh bmdlLgo+ID4gPiA+Cj4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+IEplZmYKPiA+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKCgotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KKzQxICgwKSA3OSAz NjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK