From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Add hot_plug hook for hdmi encoder Date: Tue, 29 Sep 2015 11:04:01 +0200 Message-ID: <20150929090401.GG3383@phenom.ffwll.local> References: <55F6CF73.9010707@intel.com> <1443430564-12547-1-git-send-email-sonika.jindal@intel.com> <20150928133411.GI3383@phenom.ffwll.local> <560A0FD6.60500@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id E09BD6E6FE for ; Tue, 29 Sep 2015 02:01:07 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so5449279wic.1 for ; Tue, 29 Sep 2015 02:01:06 -0700 (PDT) Content-Disposition: inline In-Reply-To: <560A0FD6.60500@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 T24gVHVlLCBTZXAgMjksIDIwMTUgYXQgMDk6NDM6MTBBTSArMDUzMCwgSmluZGFsLCBTb25pa2Eg d3JvdGU6Cj4gCj4gCj4gT24gOS8yOC8yMDE1IDc6MDQgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6 Cj4gPk9uIE1vbiwgU2VwIDI4LCAyMDE1IGF0IDAyOjI2OjA0UE0gKzA1MzAsIFNvbmlrYSBKaW5k YWwgd3JvdGU6Cj4gPj5UaGlzIHBhdGNoIGFkZHMgYSBzZXBhcmF0ZSBwcm9iZSBmdW5jdGlvbiBm b3IgSERNSQo+ID4+RURJRCByZWFkIG92ZXIgRERDIGNoYW5uZWwuIFRoaXMgZnVuY3Rpb24gaGFz IGJlZW4KPiA+PnJlZ2lzdGVyZWQgYXMgYSAuaG90X3BsdWcgaGFuZGxlciBmb3IgSERNSSBlbmNv ZGVyLgo+ID4+Cj4gPj5UaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBoZG1pX2RldGVjdCgp Cj4gPj5mdW5jdGlvbiByZS1zZXRzIHRoZSBjYWNoZWQgSERNSSBlZGlkIChpbiBjb25uZWN0b3It PmRldGVjdF9lZGlkKSBpbgo+ID4+ZXZlcnkgZGV0ZWN0IGNhbGwuVGhpcyBmdW5jdGlvbiBnZXRz IGNhbGxlZCBtYW55IHRpbWVzLCBzb21ldGltZXMKPiA+PmRpcmVjdGx5IGZyb20gdXNlcnNwYWNl IHByb2JlcywgZm9yY2luZyBkcml2ZXJzIHRvIHJlYWQgRURJRCBldmVyeQo+ID4+ZGV0ZWN0IGZ1 bmN0aW9uIGNhbGwuVGhpcyBjYXVzZXMgc2V2ZXJhbCBwcm9ibGVtcyBsaWtlOgo+ID4+Cj4gPj4x LiBSYWNlIGNvbmRpdGlvbnMgaW4gbXVsdGlwbGUgaG90X3BsdWcgLyB1bnBsdWcgY2FzZXMsIGJl dHdlZW4KPiA+PiAgICBpbnRlcnJ1cHRzIGJvdHRvbSBoYWx2ZXMgYW5kIHVzZXJzcGFjZSBkZXRl Y3Rpb25zLgo+ID4+Mi4gTWFueSBVbi1uZWNlc3NhcnkgRURJRCByZWFkcyBmb3Igc2luZ2xlIGhv dHBsdWcvdW5wbHVnCj4gPj4zLiBIRE1JIGNvbXBsYWluY2UgZmFpbHVyZXMgd2hpY2ggZXhwZWN0 cyBvbmx5IG9uZSBFRElEIHJlYWQgcGVyIGhvdHBsdWcKPiA+Pgo+ID4+VGhpcyBmdW5jdGlvbiB3 aWxsIGJlIHNlcnZpbmcgdGhlIHB1cnBvc2Ugb2YgcmVhbGx5IHJlYWRpbmcgdGhlIEVESUQKPiA+ PmJ5IHJlYWxseSBwcm9iaW5nIHRoZSBEREMgY2hhbm5lbCwgYW5kIHVwZGF0aW5nIHRoZSBjYWNo ZWQgRURJRC4KPiA+Pgo+ID4+VGhlIHBsYW4gaXMgdG86Cj4gPj4xLiBpOTE1IElSUSBoYW5kbGVy IGJvdHRvbSBoYWxmIGZ1bmN0aW9uIGFscmVhZHkgY2FsbHMKPiA+PiAgICBpbnRlbF9lbmNvZGVy LT5ob3RwbHVnKCkgZnVuY3Rpb24uIEFkZGluZyBUaGlzIHByb2JlIGZ1bmN0aW9uIHdoaWNoCj4g Pj4gICAgd2lsbCByZWFkIHRoZSBFRElEIG9ubHkgaW4gY2FzZSBvZiBhIGhvdHBsdWcgLyB1bnBs dWcuCj4gPj4yLiBEdXJpbmcgaW5pdF9jb25uZWN0b3IgdGhpcyBwcm9iZSB3aWxsIGJlIGNhbGxl ZCB0byByZWFkIHRoZSBlZGlkCj4gPj4zLiBSZXVzZSB0aGUgY2FjaGVkIEVESUQgaW4gaGRtaV9k ZXRlY3QoKSBmdW5jdGlvbi4KPiA+Pgo+ID4+VGhlICI8IGdlbjciIGNoZWNrIGlzIHRoZXJlIGJl Y2F1c2UgdGhpcyB3YXMgdGVzdGVkIG9ubHkgZm9yID49Z2VuNwo+ID4+cGxhdGZvcm1zLiBGb3Ig b2xkZXIgcGxhdGZvcm1zIHRoZSBob3RwbHVnL3JlYWRpbmcgZWRpZCBwYXRoIHJlbWFpbnMgc2Ft ZS4KPiA+Pgo+ID4+djI6IENhbGxpbmcgc2V0X2VkaWQgaW5zdGVhZCBvZiBoZG1pX3Byb2JlIGR1 cmluZyBpbml0Lgo+ID4+QWxzbywgZm9yIHBsYXRmb3JtcyBoYXZpbmcgRERJLCBpbnRlbF9lbmNv ZGVyIGZvciBEUCBhbmQgSERNSSBpcyBzYW1lCj4gPj4odGFrZW4gZnJvbSBpbnRlbF9kaWdfcG9y dCksIHNvIGZvciBEUCBhbHNvLCBob3RfcGx1ZyBmdW5jdGlvbiBnZXRzIGNhbGxlZAo+ID4+d2hp Y2ggaXMgbm90IGludGVuZGVkIGhlcmUuIFNvLCBjaGVjayBmb3IgSERNSSBpbiBpbnRlbF9oZG1p X3Byb2JlCj4gPj5SZWx5IG9uIEhQRCBmb3IgdXBkYXRpbmcgZWRpZCBvbmx5IGZvciBwbGF0Zm9y bXMgZ2VuID4gOCBhbmQgYWxzbyBmb3IgVkxWLgo+ID4+Cj4gPj52MzogRHJvcHBpbmcgdGhlIGdl biA8IDggfHwgIVZMViAgY2hlY2suIE5vdyBhbGwgcGxhdGZvcm1zIHNob3VsZCByZWx5IG9uCj4g Pj5ob3RwbHVnIG9yIGluaXQgZm9yIHVwZGF0aW5nIHRoZSBlZGlkLihEYW5pZWwpCj4gPj5BbHNv LCBjYWxsaW5nIGhkbWlfcHJvYmUgaW4gaW5pdCBpbnN0ZWFkIG9mIHNldF9lZGlkCj4gPj4KPiA+ PnY0OiBSZW5hbWluZyBpbnRlbF9oZG1pX3Byb2JlIHRvIGludGVsX2hkbWlfaG90X3BsdWcgYW5k IGNoYW5naW5nIHRoZSBwYXRjaAo+ID4+c3ViamVjdC4gQWxzbyBjYWxsaW5nIHRoaXMgaG90cGx1 ZyBoYW5kbGVyIGZyb20gaW50ZWxfaHBkX2luaXQgdG8gdGFrZSBjYXJlCj4gPj5vZiBpbml0IHJl c3VtZSBzY2VuYXJpb3MuCj4gPj4KPiA+PlNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8 c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiA+PlNpZ25lZC1vZmYtYnk6IFNvbmlrYSBKaW5k YWwgPHNvbmlrYS5qaW5kYWxAaW50ZWwuY29tPgo+ID4+LS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYyAgICB8ICAgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMgfCAgIDEx ICsrKysrKysKPiA+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKPiA+Pgo+ID4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4+aW5kZXggYmIz M2M2Ni4uOWMxYTMwOCAxMDA2NDQKPiA+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYwo+ID4+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPj5A QCAtMTM2OSwxOCArMTM2OSwxNiBAQCBpbnRlbF9oZG1pX3NldF9lZGlkKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gPj4gIAlyZXR1cm4gY29ubmVjdGVkOwo+ ID4+ICB9Cj4gPj4KPiA+Pi1zdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ID4+LWlu dGVsX2hkbWlfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9y Y2UpCj4gPj4rdm9pZCBpbnRlbF9oZG1pX2hvdF9wbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyKQo+ID4+ICB7Cj4gPj4tCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3Rh dHVzOwo+ID4+LQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGludGVsX2F0dGFjaGVk X2hkbWkoY29ubmVjdG9yKTsKPiA+Pi0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjb25uZWN0b3ItPmRldik7Cj4gPj4rCXN0cnVjdCBpbnRlbF9oZG1pICppbnRl bF9oZG1pID0KPiA+PisJCQllbmNfdG9faW50ZWxfaGRtaSgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7 Cj4gPj4rCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9Cj4gPj4rCQkJ CWludGVsX2hkbWktPmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiA+PisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNlLmRldik7Cj4gPj4g IAlib29sIGxpdmVfc3RhdHVzID0gZmFsc2U7Cj4gPj4gIAl1bnNpZ25lZCBpbnQgcmV0cnkgPSAz Owo+ID4+Cj4gPj4tCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLAo+ID4+LQkJ ICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOwo+ID4+LQo+ID4+ICAJ d2hpbGUgKCFsaXZlX3N0YXR1cyAmJiAtLXJldHJ5KSB7Cj4gPj4gIAkJbGl2ZV9zdGF0dXMgPSBp bnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LAo+ID4+ICAJCQkJaGRtaV90b19k aWdfcG9ydChpbnRlbF9oZG1pKSk7Cj4gPj5AQCAtMTM5MCwxNSArMTM4OCw0OCBAQCBpbnRlbF9o ZG1pX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ ID4+ICAJaWYgKCFsaXZlX3N0YXR1cykKPiA+PiAgCQlEUk1fREVCVUdfS01TKCJMaXZlIHN0YXR1 cyBub3QgdXAhIik7Cj4gPj4KPiA+Pi0JaW50ZWxfaGRtaV91bnNldF9lZGlkKGNvbm5lY3Rvcik7 Cj4gPj4rCS8qCj4gPj4rCSAqIFdlIGFyZSBoZXJlLCBtZWFucyB0aGVyZSBpcyBhIGhvdHBsdWcg b3IgYSBmb3JjZQo+ID4+KwkgKiBkZXRlY3Rpb24uIENsZWFyIHRoZSBjYWNoZWQgRURJRCBhbmQg cHJvYmUgdGhlCj4gPj4rCSAqIEREQyBidXMgdG8gY2hlY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9m IEhETUkuCj4gPj4rCSAqLwo+ID4+KwlpbnRlbF9oZG1pX3Vuc2V0X2VkaWQoJmludGVsX2Nvbm5l Y3Rvci0+YmFzZSk7Cj4gPj4rCWlmIChpbnRlbF9oZG1pX3NldF9lZGlkKCZpbnRlbF9jb25uZWN0 b3ItPmJhc2UsIGxpdmVfc3RhdHVzKSkKPiA+PisJCURSTV9ERUJVR19EUklWRVIoIkREQyBwcm9i ZTogZ290IEVESURcbiIpOwo+ID4+KwllbHNlCj4gPj4rCQlEUk1fREVCVUdfRFJJVkVSKCJEREMg cHJvYmU6IG5vIEVESURcbiIpOwo+ID4+K30KPiA+Pgo+ID4+LQlpZiAoaW50ZWxfaGRtaV9zZXRf ZWRpZChjb25uZWN0b3IsIGxpdmVfc3RhdHVzKSkgewo+ID4+K3N0YXRpYyBlbnVtIGRybV9jb25u ZWN0b3Jfc3RhdHVzCj4gPj4raW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+Pit7Cj4gPj4rCWVudW0gZHJtX2Nvbm5lY3Rvcl9z dGF0dXMgc3RhdHVzOwo+ID4+KwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0 b3IgPQo+ID4+KwkJCQl0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiA+PisKPiA+PisJ RFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc11cbiIsCj4gPj4rCQkgICAgICBjb25uZWN0 b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gPj4rCj4gPj4rCS8qCj4gPj4rCSAqIFRo ZXJlIGFyZSBtYW55IHVzZXJzcGFjZSBjYWxscyB3aGljaCBwcm9iZSBFRElEIGZyb20KPiA+PisJ ICogZGV0ZWN0IHBhdGguIEluIGNhc2Ugb2YgbXVsdGlwbGUgaG90cGx1Zy91bnBsdWcsIHRoZXNl Cj4gPj4rCSAqIGNhbiBjYXVzZSByYWNlIGNvbmRpdGlvbnMgd2hpbGUgcHJvYmluZyBFRElELiBB bHNvIGl0cwo+ID4+KwkgKiB3YXN0ZSBvZiBDUFUgY3ljbGVzIHRvIHJlYWQgdGhlIEVESUQgYWdh aW4gYW5kIGFnYWluCj4gPj4rCSAqIHVubGVzcyB0aGVyZSBpcyBhIHJlYWwgaG90cGx1Zy4KPiA+ PisJICogU28sIHJlbHkgb24gaG90cGx1Z3MgYW5kIGluaXQgdG8gcmVhZCBlZGlkLgo+ID4+Kwkg KiBDaGVjayBjb25uZWN0b3Igc3RhdHVzIGJhc2VkIG9uIGF2YWlsYWJpbGl0eSBvZiBjYWNoZWQg RURJRC4KPiA+PisJICovCj4gPj4rCj4gPj4rCWlmIChpbnRlbF9jb25uZWN0b3ItPmRldGVjdF9l ZGlkKSB7Cj4gPj4gIAkJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBpbnRlbF9hdHRh Y2hlZF9oZG1pKGNvbm5lY3Rvcik7Cj4gPj4KPiA+PiAgCQloZG1pX3RvX2RpZ19wb3J0KGludGVs X2hkbWkpLT5iYXNlLnR5cGUgPSBJTlRFTF9PVVRQVVRfSERNSTsKPiA+PiAgCQlzdGF0dXMgPSBj b25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiA+Pi0JfSBlbHNlCj4gPj4rCQlEUk1fREVCVUdf RFJJVkVSKCJoZG1pIHN0YXR1cyA9IGNvbm5lY3RlZFxuIik7Cj4gPj4rCX0gZWxzZSB7Cj4gPj4g IAkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7Cj4gPj4rCQlEUk1fREVC VUdfRFJJVkVSKCJoZG1pIHN0YXR1cyA9IGRpc2Nvbm5lY3RlZFxuIik7Cj4gPj4rCX0KPiA+Pgo+ ID4+ICAJcmV0dXJuIHN0YXR1czsKPiA+PiAgfQo+ID4+QEAgLTIxMzEsNiArMjE2Miw3IEBAIHZv aWQgaW50ZWxfaGRtaV9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwKPiA+PiAgCWludGVsX2Nvbm5lY3Rvci0+dW5yZWdpc3RlciA9IGludGVs X2Nvbm5lY3Rvcl91bnJlZ2lzdGVyOwo+ID4+Cj4gPj4gIAlpbnRlbF9oZG1pX2FkZF9wcm9wZXJ0 aWVzKGludGVsX2hkbWksIGNvbm5lY3Rvcik7Cj4gPj4rCWludGVsX2VuY29kZXItPmhvdF9wbHVn ID0gaW50ZWxfaGRtaV9ob3RfcGx1ZzsKPiA+Pgo+ID4+ICAJaW50ZWxfY29ubmVjdG9yX2F0dGFj aF9lbmNvZGVyKGludGVsX2Nvbm5lY3RvciwgaW50ZWxfZW5jb2Rlcik7Cj4gPj4gIAlkcm1fY29u bmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90 cGx1Zy5jCj4gPj5pbmRleCA1M2MwMTczLi4zNmUxNmY2IDEwMDY0NAo+ID4+LS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gPj4rKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ob3RwbHVnLmMKPiA+PkBAIC00NTksNiArNDU5LDcgQEAgdm9pZCBpbnRlbF9o cGRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiA+PiAgCXN0cnVjdCBkcm1fbW9kZV9j b25maWcgKm1vZGVfY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4gPj4gIAlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4+KwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cjsKPiA+PiAgCWludCBpOwo+ID4+Cj4gPj4gIAlmb3JfZWFjaF9ocGRfcGluKGkpIHsKPiA+PkBA IC00ODIsNiArNDgzLDE2IEBAIHZvaWQgaW50ZWxfaHBkX2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ID4+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0 dXApCj4gPj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXYpOwo+ID4+ICAJ c3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4+Kwo+ID4+KwkvKgo+ID4+ KwkgKiBDb25uZWN0ZWQgYm9vdCAvIHJlc3VtZSBzY2VuYXJpb3MgY2FuJ3QgZ2VuZXJhdGUgbmV3 IGhvdCBwbHVnLgo+ID4+KwkgKiBTbywgcHJvYmUgaXQgbWFudWFsbHkuCj4gPj4rCSAqLwo+ID4+ KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVuY29kZXIsICZkZXYtPm1vZGVfY29uZmlnLmVuY29kZXJf bGlzdCwKPiA+PisJCQkgICAgYmFzZS5oZWFkKSB7Cj4gPj4rCQlpZiAoZW5jb2Rlci0+aG90X3Bs dWcpCj4gPj4rCQkJZW5jb2Rlci0+aG90X3BsdWcoZW5jb2Rlcik7Cj4gPj4rCX0KPiA+Cj4gPlNp bmNlIHRoaXMgZG9lc24ndCBqdXN0IGNoYW5nZSBoZG1pIGJ1dCBldmVyeSBlbmNvZGVyIEkgdGhp bmsgd2Ugc2hvdWxkCj4gPnB1bGwgaXQgb3V0IGludG8gYSBzZXBhcmF0ZSBwcmVwIHBhdGNoLiBF c3BlY2lhbGx5IGludGVyYWN0aW9ucyB3aXRoIGRwCj4gPm1zdCBoYW5kbGluZyBsb29rIHRyaWNr eSwgaGF2ZSB5b3UgdGVzdGVkIHRoYXQgbm90aGluZyBibG93cyB1cCB3aXRoIHRoYXQ/Cj4gPlRo ZSBzcGxpdC1vdXQgcGF0Y2ggc2hvdWxkIGRlZmluaXRlbHkgZXhwbGFpbiBpbiBkZXRhaWwgaG93 IHRoaXMgaW50ZXJhY3RzCj4gPndpdGggZHAgaHBkIGhhbmRsaW5nLgo+ID4tRGFuaWVsCj4gPgo+ IFJpZ2h0IG5vdyB3ZSBkb24ndCBzZXQgaG90X3BsdWcgZm9yIERQL2VkcCBlbmNvZGVyLgo+IEl0 IHdhcyB1c2VkIG9ubHkgZm9yIHNkdm8gYW5kIHdpdGggdGhpcyBwYXRjaCB3ZSBhZGQgZm9yIGhk bWkuCj4gQWxzbywgaW4gc2R2b19pbml0IHJpZ2h0IGFmdGVyIGFzc2lnbmluZyB0aGUgaG90X3Bs dWcgZnVuY3Rpb24gcG9pbnRlciwgd2UKPiBjYWxsIGl0cyBob3RfcGx1ZyBmdW5jdGlvbiBmb3Ig aW5pdGlhbGl6YXRpb24uCj4gTWF5YmUgd2l0aCB0aGlzIHBhdGNoLCB3ZSBjYW4gcmVtb3ZlIHRo YXQgcGFydCBhbHNvIGZyb20gc2R2b19pbml0LgoKSG0gcmlnaHQsIEkgZm9yZ290IHRoYXQgd2Ug aGF2ZSB0b28gbWFueSBob3RwbHVnIGNhbGxiYWNrcyBpbiBvdXIgZHJpdmVyCjstKQoKPiBJIGNh biBzcGxpdCB0aGlzIHBhdGNoIGJ1dCB3aXRob3V0IHRoaXMgY2hhbmdlLCBpdCB3aWxsIHJlc3Vs dCBpbiByZWdyZXNzaW9uCj4gd2l0aCBqdXN0IG9uZSBwYXRjaC4gU28gSSB0aG91Z2h0IGl0IHdv dWxkIGJlIGJldHRlciB0byBrZWVwIHRoZW0gdG9nZXRoZXIKPiBpbiBvbmUgcGF0Y2guCgpJZiB5 b3Ugc3BsaXQgaXQgb3V0IGFuZCBtYWtlIGl0IHBhdGNoIDEgYW5kIHRoZW4gdGhlIGhkbWkgY2hh bmdlcyBwYXRjaCAyCm5vdGhpbmcgYnJlYWtzIGluIGJldHdlZW4uCi1EYW5pZWwKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==