From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/6] drm/i915: Add HDMI probe function Date: Mon, 14 Sep 2015 10:30:08 +0200 Message-ID: <20150914083008.GI3383@phenom.ffwll.local> References: <1441373176-22302-1-git-send-email-sonika.jindal@intel.com> <1441373176-22302-3-git-send-email-sonika.jindal@intel.com> <20150904144839.GB26318@phenom.ffwll.local> <55F2B0D3.2020001@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9620F6E11B for ; Mon, 14 Sep 2015 01:27:25 -0700 (PDT) Received: by wicfx3 with SMTP id fx3so129446722wic.1 for ; Mon, 14 Sep 2015 01:27:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55F2B0D3.2020001@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Jindal, Sonika" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBTZXAgMTEsIDIwMTUgYXQgMDQ6MTU6MzlQTSArMDUzMCwgSmluZGFsLCBTb25pa2Eg d3JvdGU6Cj4gCj4gCj4gT24gOS8xMC8yMDE1IDEyOjI1IEFNLCBSb2RyaWdvIFZpdmkgd3JvdGU6 Cj4gPkkgbGlrZWQgdGhlIGFwcHJvYWNoIGFuZCBhZ3JlZSB3aXRoIERhbmllbCwgc28gd2l0aCBo aXMgc3VnZ2VzdGlvbnMgZmVlbAo+ID5mcmVlIHRvIHVzZToKPiA+UmV2aWV3ZWQtYnk6IFJvZHJp Z28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbQo+ID48bWFpbHRvOnJvZHJpZ28udml2aUBp bnRlbC5jb20+Pgo+ID4KPiA+T24gRnJpLCBTZXAgNCwgMjAxNSBhdCA3OjQ2IEFNIERhbmllbCBW ZXR0ZXIgPGRhbmllbEBmZndsbC5jaAo+ID48bWFpbHRvOmRhbmllbEBmZndsbC5jaD4+IHdyb3Rl Ogo+ID4KPiA+ICAgIE9uIEZyaSwgU2VwIDA0LCAyMDE1IGF0IDA2OjU2OjEyUE0gKzA1MzAsIFNv bmlrYSBKaW5kYWwgd3JvdGU6Cj4gPiAgICAgPiBGcm9tOiBTaGFzaGFuayBTaGFybWEgPHNoYXNo YW5rLnNoYXJtYUBpbnRlbC5jb20KPiA+ICAgIDxtYWlsdG86c2hhc2hhbmsuc2hhcm1hQGludGVs LmNvbT4+Cj4gPiAgICAgPgo+ID4gICAgID4gVGhpcyBwYXRjaCBhZGRzIGEgc2VwYXJhdGUgcHJv YmUgZnVuY3Rpb24gZm9yIEhETUkKPiA+ICAgICA+IEVESUQgcmVhZCBvdmVyIEREQyBjaGFubmVs LiBUaGlzIGZ1bmN0aW9uIGhhcyBiZWVuCj4gPiAgICAgPiByZWdpc3RlcmVkIGFzIGEgLmhvdF9w bHVnIGhhbmRsZXIgZm9yIEhETUkgZW5jb2Rlci4KPiA+ICAgICA+Cj4gPiAgICAgPiBUaGUgY3Vy cmVudCBpbXBsZW1lbnRhdGlvbiBvZiBoZG1pX2RldGVjdCgpCj4gPiAgICAgPiBmdW5jdGlvbiBy ZS1zZXRzIHRoZSBjYWNoZWQgSERNSSBlZGlkIChpbiBjb25uZWN0b3ItPmRldGVjdF9lZGlkKSBp bgo+ID4gICAgID4gZXZlcnkgZGV0ZWN0IGNhbGwuVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBt YW55IHRpbWVzLCBzb21ldGltZXMKPiA+ICAgICA+IGRpcmVjdGx5IGZyb20gdXNlcnNwYWNlIHBy b2JlcywgZm9yY2luZyBkcml2ZXJzIHRvIHJlYWQgRURJRCBldmVyeQo+ID4gICAgID4gZGV0ZWN0 IGZ1bmN0aW9uIGNhbGwuVGhpcyBjYXVzZXMgc2V2ZXJhbCBwcm9ibGVtcyBsaWtlOgo+ID4gICAg ID4KPiA+ICAgICA+IDEuIFJhY2UgY29uZGl0aW9ucyBpbiBtdWx0aXBsZSBob3RfcGx1ZyAvIHVu cGx1ZyBjYXNlcywgYmV0d2Vlbgo+ID4gICAgID4gICAgaW50ZXJydXB0cyBib3R0b20gaGFsdmVz IGFuZCB1c2Vyc3BhY2UgZGV0ZWN0aW9ucy4KPiA+ICAgICA+IDIuIE1hbnkgVW4tbmVjZXNzYXJ5 IEVESUQgcmVhZHMgZm9yIHNpbmdsZSBob3RwbHVnL3VucGx1Zwo+ID4gICAgID4gMy4gSERNSSBj b21wbGFpbmNlIGZhaWx1cmVzIHdoaWNoIGV4cGVjdHMgb25seSBvbmUgRURJRCByZWFkIHBlcgo+ ID4gICAgaG90cGx1Zwo+ID4gICAgID4KPiA+ICAgICA+IFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBz ZXJ2aW5nIHRoZSBwdXJwb3NlIG9mIHJlYWxseSByZWFkaW5nIHRoZSBFRElECj4gPiAgICAgPiBi eSByZWFsbHkgcHJvYmluZyB0aGUgRERDIGNoYW5uZWwsIGFuZCB1cGRhdGluZyB0aGUgY2FjaGVk IEVESUQuCj4gPiAgICAgPgo+ID4gICAgID4gVGhlIHBsYW4gaXMgdG86Cj4gPiAgICAgPiAxLiBp OTE1IElSUSBoYW5kbGVyIGJvdHRvbSBoYWxmIGZ1bmN0aW9uIGFscmVhZHkgY2FsbHMKPiA+ICAg ICA+ICAgIGludGVsX2VuY29kZXItPmhvdHBsdWcoKSBmdW5jdGlvbi4gQWRkaW5nIFRoaXMgcHJv YmUgZnVuY3Rpb24KPiA+ICAgIHdoaWNoCj4gPiAgICAgPiAgICB3aWxsIHJlYWQgdGhlIEVESUQg b25seSBpbiBjYXNlIG9mIGEgaG90cGx1ZyAvIHVucGx1Zy4KPiA+ICAgICA+IDIuIER1cmluZyBp bml0X2Nvbm5lY3RvciBoaXMgcHJvYmUgd2lsbCBiZSBjYWxsZWQgdG8gcmVhZCB0aGUgZWRpZAo+ ID4gICAgID4gMy4gUmV1c2UgdGhlIGNhY2hlZCBFRElEIGluIGhkbWlfZGV0ZWN0KCkgZnVuY3Rp b24uCj4gPiAgICAgPgo+ID4gICAgID4gVGhlICI8IGdlbjciIGNoZWNrIGlzIHRoZXJlIGJlY2F1 c2UgdGhpcyB3YXMgdGVzdGVkIG9ubHkgZm9yID49Z2VuNwo+ID4gICAgID4gcGxhdGZvcm1zLiBG b3Igb2xkZXIgcGxhdGZvcm1zIHRoZSBob3RwbHVnL3JlYWRpbmcgZWRpZCBwYXRoCj4gPiAgICBy ZW1haW5zIHNhbWUuCj4gPiAgICAgPgo+ID4gICAgID4gdjI6IENhbGxpbmcgc2V0X2VkaWQgaW5z dGVhZCBvZiBoZG1pX3Byb2JlIGR1cmluZyBpbml0Lgo+ID4gICAgID4gQWxzbywgZm9yIHBsYXRm b3JtcyBoYXZpbmcgRERJLCBpbnRlbF9lbmNvZGVyIGZvciBEUCBhbmQgSERNSSBpcyBzYW1lCj4g PiAgICAgPiAodGFrZW4gZnJvbSBpbnRlbF9kaWdfcG9ydCksIHNvIGZvciBEUCBhbHNvLCBob3Rf cGx1ZyBmdW5jdGlvbgo+ID4gICAgZ2V0cyBjYWxsZWQKPiA+ICAgICA+IHdoaWNoIGlzIG5vdCBp bnRlbmRlZCBoZXJlLiBTbywgY2hlY2sgZm9yIEhETUkgaW4gaW50ZWxfaGRtaV9wcm9iZQo+ID4g ICAgID4gUmVseSBvbiBIUEQgZm9yIHVwZGF0aW5nIGVkaWQgb25seSBmb3IgcGxhdGZvcm1zIGdl biA+IDggYW5kIGFsc28KPiA+ICAgIGZvciBWTFYuCj4gPiAgICAgPgo+ID4gICAgID4gdjM6IERy b3BwaW5nIHRoZSBnZW4gPCA4IHx8ICFWTFYgIGNoZWNrLiBOb3cgYWxsIHBsYXRmb3JtcyBzaG91 bGQKPiA+ICAgIHJlbHkgb24KPiA+ICAgICA+IGhvdHBsdWcgb3IgaW5pdCBmb3IgdXBkYXRpbmcg dGhlIGVkaWQuKERhbmllbCkKPiA+ICAgICA+IEFsc28sIGNhbGxpbmcgaGRtaV9wcm9iZSBpbiBp bml0IGluc3RlYWQgb2Ygc2V0X2VkaWQKPiA+ICAgICA+Cj4gPiAgICAgPiBTaWduZWQtb2ZmLWJ5 OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20KPiA+ICAgIDxtYWls dG86c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4+Cj4gPiAgICAgPiBTaWduZWQtb2ZmLWJ5OiBT b25pa2EgSmluZGFsIDxzb25pa2EuamluZGFsQGludGVsLmNvbQo+ID4gICAgPG1haWx0bzpzb25p a2EuamluZGFsQGludGVsLmNvbT4+Cj4gPiAgICAgPiAtLS0KPiA+ICAgICA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAgIDQ2Cj4gPiAgICArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCj4gPiAgICAgPiAgMSBmaWxlIGNoYW5nZWQsIDQwIGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pCj4gPiAgICAgPgo+ID4gICAgID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gICAgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMKPiA+ICAgICA+IGluZGV4IDViZGIzODYuLjFlZGE3MWEgMTAwNjQ0 Cj4gPiAgICAgPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ICAg ICA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gICAgID4gQEAg LTEzNjgsMjMgKzEzNjgsNTMgQEAgaW50ZWxfaGRtaV9zZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcgo+ID4gICAgKmNvbm5lY3RvcikKPiA+ICAgICA+ICAgICAgIHJldHVybiBjb25uZWN0ZWQ7 Cj4gPiAgICAgPiAgfQo+ID4gICAgID4KPiA+ICAgICA+ICt2b2lkIGludGVsX2hkbWlfcHJvYmUo c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gPgo+ID4gICAgUGxlYXNlIGNh bGwgaXQgX2hvdF9wbHVnIGlmIGl0J3MgZm9yIHRoZSBfaG90X3BsdWcgcGF0aC4KPiA+Cj4gSG1t LCBpbml0aWFsIHBsYW4gd2FzIHRvIGNhbGwgaXQgZnJvbSBvdGhlciBwbGFjZXMgaWYgYW55Li4K PiBCdXQgbm93IGl0IHNlZW1zIG1vcmUgbG9naWNhbCB0byBuYW1lIGl0IF9ob3RfcGx1Zy4KPiBJ IHdpbGwgZG8gdGhhdC4KPiAKPiA+ICAgICA+ICt7Cj4gPiAgICAgPiArICAgICBzdHJ1Y3QgaW50 ZWxfaGRtaSAqaW50ZWxfaGRtaSA9Cj4gPiAgICAgPiArICAgICAgICAgICAgICAgICAgICAgZW5j X3RvX2ludGVsX2hkbWkoJmludGVsX2VuY29kZXItPmJhc2UpOwo+ID4gICAgID4gKyAgICAgc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0KPiA+ICAgICA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludGVsX2hkbWktPmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiA+ ICAgICA+ICsKPiA+ICAgICA+ICsgICAgIC8qCj4gPiAgICAgPiArICAgICAgKiBXZSBhcmUgaGVy ZSwgbWVhbnMgdGhlcmUgaXMgYSBob3RwbHVnIG9yIGEgZm9yY2UKPiA+ICAgICA+ICsgICAgICAq IGRldGVjdGlvbi4gQ2xlYXIgdGhlIGNhY2hlZCBFRElEIGFuZCBwcm9iZSB0aGUKPiA+ICAgICA+ ICsgICAgICAqIEREQyBidXMgdG8gY2hlY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIEhETUkuCj4g PiAgICAgPiArICAgICAgKi8KPiA+ICAgICA+ICsgICAgIGludGVsX2hkbWlfdW5zZXRfZWRpZCgm aW50ZWxfY29ubmVjdG9yLT5iYXNlKTsKPiA+ICAgICA+ICsgICAgIGlmIChpbnRlbF9oZG1pX3Nl dF9lZGlkKCZpbnRlbF9jb25uZWN0b3ItPmJhc2UpKQo+ID4gICAgID4gKyAgICAgICAgICAgICBE Uk1fREVCVUdfRFJJVkVSKCJEREMgcHJvYmU6IGdvdCBFRElEXG4iKTsKPiA+ICAgICA+ICsgICAg IGVsc2UKPiA+ICAgICA+ICsgICAgICAgICAgICAgRFJNX0RFQlVHX0RSSVZFUigiRERDIHByb2Jl OiBubyBFRElEXG4iKTsKPiA+ICAgICA+ICt9Cj4gPiAgICAgPiArCj4gPiAgICAgPiAgc3RhdGlj IGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKPiA+ICAgICA+ICBpbnRlbF9oZG1pX2RldGVjdChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gICAgID4gIHsK PiA+ICAgICA+ICAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOwo+ID4gICAg ID4gKyAgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0KPiA+ICAg ICA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvX2ludGVsX2Nvbm5lY3Rvcihjb25u ZWN0b3IpOwo+ID4gICAgID4KPiA+ICAgICA+ICAgICAgIERSTV9ERUJVR19LTVMoIltDT05ORUNU T1I6JWQ6JXNdXG4iLAo+ID4gICAgID4gICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPmJh c2UuaWQgPGh0dHA6Ly9iYXNlLmlkPiwKPiA+ICAgIGNvbm5lY3Rvci0+bmFtZSk7Cj4gPiAgICAg PiArICAgICAvKgo+ID4gICAgID4gKyAgICAgICogVGhlcmUgYXJlIG1hbnkgdXNlcnNwYWNlIGNh bGxzIHdoaWNoIHByb2JlIEVESUQgZnJvbQo+ID4gICAgID4gKyAgICAgICogZGV0ZWN0IHBhdGgu IEluIGNhc2Ugb2YgbXVsdGlwbGUgaG90cGx1Zy91bnBsdWcsIHRoZXNlCj4gPiAgICAgPiArICAg ICAgKiBjYW4gY2F1c2UgcmFjZSBjb25kaXRpb25zIHdoaWxlIHByb2JpbmcgRURJRC4gQWxzbyBp dHMKPiA+ICAgICA+ICsgICAgICAqIHdhc3RlIG9mIENQVSBjeWNsZXMgdG8gcmVhZCB0aGUgRURJ RCBhZ2FpbiBhbmQgYWdhaW4KPiA+ICAgICA+ICsgICAgICAqIHVubGVzcyB0aGVyZSBpcyBhIHJl YWwgaG90cGx1Zy4KPiA+ICAgICA+ICsgICAgICAqIFNvLCByZWx5IG9uIGhvdHBsdWdzIGFuZCBp bml0IHRvIHJlYWQgZWRpZC4KPiA+ICAgICA+ICsgICAgICAqIENoZWNrIGNvbm5lY3RvciBzdGF0 dXMgYmFzZWQgb24gYXZhaWxhYmlsaXR5IG9mIGNhY2hlZCBFRElELgo+ID4gICAgID4gKyAgICAg ICovCj4gPiAgICAgPgo+ID4gICAgID4gLSAgICAgaW50ZWxfaGRtaV91bnNldF9lZGlkKGNvbm5l Y3Rvcik7Cj4gPiAgICAgPiAtCj4gPiAgICAgPiAtICAgICBpZiAoaW50ZWxfaGRtaV9zZXRfZWRp ZChjb25uZWN0b3IpKSB7Cj4gPiAgICAgPiArICAgICBpZiAoaW50ZWxfY29ubmVjdG9yLT5kZXRl Y3RfZWRpZCkgewo+ID4gICAgID4gICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50 ZWxfaGRtaSA9Cj4gPiAgICBpbnRlbF9hdHRhY2hlZF9oZG1pKGNvbm5lY3Rvcik7Cj4gPiAgICAg PiAtCj4gPiAgICAgPiAtICAgICAgICAgICAgIGhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSkt PmJhc2UudHlwZSA9Cj4gPiAgICBJTlRFTF9PVVRQVVRfSERNSTsKPiA+ICAgICA+ICAgICAgICAg ICAgICAgc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gPiAgICAgPiAtICAg ICB9IGVsc2UKPiA+ICAgICA+ICsgICAgICAgICAgICAgaGRtaV90b19kaWdfcG9ydChpbnRlbF9o ZG1pKS0+YmFzZS50eXBlID0KPiA+ICAgIElOVEVMX09VVFBVVF9IRE1JOwo+ID4gICAgID4gKyAg ICAgICAgICAgICBEUk1fREVCVUdfRFJJVkVSKCJoZG1pIHN0YXR1cyA9IGNvbm5lY3RlZFxuIik7 Cj4gPiAgICAgPiArICAgICB9IGVsc2Ugewo+ID4gICAgID4gICAgICAgICAgICAgICBzdGF0dXMg PSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiA+ICAgICA+ICsgICAgICAgICAgICAg RFJNX0RFQlVHX0RSSVZFUigiaGRtaSBzdGF0dXMgPSBkaXNjb25uZWN0ZWRcbiIpOwo+ID4gICAg ID4gKyAgICAgfQo+ID4gICAgID4KPiA+ICAgICA+ICAgICAgIHJldHVybiBzdGF0dXM7Cj4gPiAg ICAgPiAgfQo+ID4gICAgID4gQEAgLTIxMDQsMTEgKzIxMzQsMTUgQEAgdm9pZCBpbnRlbF9oZG1p X2luaXRfY29ubmVjdG9yKHN0cnVjdAo+ID4gICAgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCwKPiA+ICAgICA+ICAgICAgIGludGVsX2Nvbm5lY3Rvci0+dW5yZWdpc3RlciA9IGlu dGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyOwo+ID4gICAgID4KPiA+ICAgICA+ICAgICAgIGludGVs X2hkbWlfYWRkX3Byb3BlcnRpZXMoaW50ZWxfaGRtaSwgY29ubmVjdG9yKTsKPiA+ICAgICA+ICsg ICAgIGludGVsX2VuY29kZXItPmhvdF9wbHVnID0gaW50ZWxfaGRtaV9wcm9iZTsKPiA+ICAgICA+ Cj4gPiAgICAgPiAgICAgICBpbnRlbF9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoaW50ZWxfY29u bmVjdG9yLCBpbnRlbF9lbmNvZGVyKTsKPiA+ICAgICA+ICAgICAgIGRybV9jb25uZWN0b3JfcmVn aXN0ZXIoY29ubmVjdG9yKTsKPiA+ICAgICA+ICAgICAgIGludGVsX2hkbWktPmF0dGFjaGVkX2Nv bm5lY3RvciA9IGludGVsX2Nvbm5lY3RvcjsKPiA+ICAgICA+Cj4gPiAgICAgPiArICAgICAvKiBT ZXQgZWRpZCBkdXJpbmcgaW5pdCAqLwo+ID4gICAgID4gKyAgICAgaW50ZWxfaGRtaV9wcm9iZShp bnRlbF9lbmNvZGVyKTsKPiA+Cj4gPiAgICBTZXBhcmF0ZSBwYXRjaCwgYnV0IHdlIHJlYWxseSBk b24ndCB3YW50IHRoaXMsIGluaXRpYWwgcHJvYmUgc2hvdWxkIGJlCj4gPiAgICBkb25lIGFzeW5j IHRvIGF2b2lkIHN0YWxsaW5nIHRoZSBkcml2ZXIuCj4gPiAgICAtRGFuaWVsCj4gCj4gV2hlcmUg ZWxzZSBkbyB5b3Ugc3VnZ2VzdCB0byBkbyB0aGlzPyBkZXRlY3QgY2FsbCBpcyBvbmUgcGxhY2Ug d2hpY2ggZG9lcwo+IHRoaXMgZm9yIERQIGFuZCB1c2VkIHRvIGRvIGZvciBIRE1JIGFsc28uCj4g QnV0IHNpbmNlIHdlIG5lZWQgdG8gdGFrZSB0aGUgZWRpZCByZWFkaW5nIHBhcnQgb3V0IG9mIGVk aWQsIEkgZG9udCBzZWUgYW55Cj4gb3RoZXIgcGxhY2UuCj4gUGxlYXNlIHN1Z2dlc3QuCgpZb3Ug bmVlZCB0byBpbmplY3QgYSBmYWtlIGhwZCBvciBzaW1pbGFyIGV2ZXJ5dGltZSB0aGUgd29ybGQg bWlnaHQgaGF2ZQpjaGFuZ2VkIGZyb20gdW5kZXIgdXMsIHdoaWNoIGlzbid0IGp1c3QgaW5pdCBi dXQgYWxzbyBzeXN0ZW0gcmVzdW1lLgoKV2UgZG8gdGhhdCBhbHJlYWR5LCBzbyB5b3UganVzdCBo YXZlIHRvIG1ha2Ugc3VyZSB0aGF0IGtlZXBzIG9uIHdvcmtpbmcuClByb2JhYmx5IGFub3RoZXIg cmVhc29uIHdoeSBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gcmV3b3JrIHRoYXQgZW50aXJlIGhwZApo YW5kbGluZy9kZXRlY3Rpb24gY29kZSwgdG8gbWFrZSBzdXJlIGl0J3MgY2xlYW4gYW5kIGNhbiBi ZSB1bmRlcnN0b29kLgoKQWRkaW5nIGhhY2tzIGxpa2UgdGhlc2UgaW4gdGhlIGluaXQgY29kZSBp cyBjZXJ0YWlubHkgdGhlIHdyb25nIGFwcHJvYWNoLApzaW5jZSB3ZSBuZXZlciBkb25lIGRldGVj dGlvbiB0aGlzIGVhcmx5IChzbyBzdXJwcmlzaW5nIGZyb20gYSBoaWdoLWxldmVsCm9yZGVyaW5n KSBhbmQgaXQgYWxzbyBtaXNzZXMgcmVzdW1lICh3aGljaCBpcyB3aHkgaXQgc2hvdWxkIGJlIGRv bmUgaW4KY29kZSBzaGFyZWQgYmV0d2VlbiBkcml2ZXIgbG9hZCBhbmQgcmVzdW1lKS4KLURhbmll bAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24K aHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK