From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 2/3] drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus speed Date: Tue, 1 Sep 2015 17:13:39 +0200 Message-ID: <20150901151339.GS1367@phenom.ffwll.local> References: <1440514590-30837-1-git-send-email-ville.syrjala@linux.intel.com> <1440618907-11169-1-git-send-email-ville.syrjala@linux.intel.com> <1440618907-11169-2-git-send-email-ville.syrjala@linux.intel.com> <20150901091443.GJ1367@phenom.ffwll.local> <20150901111301.GE29811@intel.com> <20150901151145.GR1367@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8588B6E70D for ; Tue, 1 Sep 2015 08:13:47 -0700 (PDT) Received: by wicjd9 with SMTP id jd9so36805963wic.1 for ; Tue, 01 Sep 2015 08:13:46 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150901151145.GR1367@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: moosotc@gmail.com, dri-devel@lists.freedesktop.org, Simon Farnsworth List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBTZXAgMDEsIDIwMTUgYXQgMDU6MTE6NDVQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIFNlcCAwMSwgMjAxNSBhdCAwMjoxMzowMVBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUdWUsIFNlcCAwMSwgMjAxNSBhdCAxMToxNDo0M0FNICsw MjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBXZWQsIEF1ZyAyNiwgMjAxNSBhdCAx MDo1NTowNlBNICswMzAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+ ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4gPiA+IAo+ID4gPiA+IENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHJldHJpZXMgd2Ugc2hv dWxkIGRvIGZvciBlYWNoIGkyYy1vdmVyLWF1eAo+ID4gPiA+IG1lc3NhZ2UgYmFzZWQgb24gdGhl IHRpbWUgaXQgdGFrZXMgdG8gcGVyZm9ybSB0aGUgaTJjIHRyYW5zZmVyIHZzLiB0aGUKPiA+ID4g PiBhdXggdHJhbnNmZXIuIFdlIGFzc3VtZSB0aGUgc2hvcnRlc3QgcG9zc2libGUgbGVuZ3RoIGZv ciB0aGUgYXV4Cj4gPiA+ID4gdHJhbnNmZXIsIGFuZCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSAoZXhs dWRpbmcgY2xvY2sgc3RyZXRjaGluZykgZm9yIHRoZQo+ID4gPiA+IGkyYyB0cmFuc2Zlci4KPiA+ ID4gPiAKPiA+ID4gPiBUaGUgRFAgc3BlYyBoYXMgc29tZSBleGFtcGxlcyBvbiBob3cgdG8gY2Fs Y3VsYXRlIHRoaXMsIGJ1dCB3ZSBkb24ndAo+ID4gPiA+IGNhbGN1bGF0ZSB0aGluZ3MgcXVpdGUg dGhlIHNhbWUgd2F5LiBUaGUgc3BlYyBkb2Vzbid0IGFjY291bnQgZm9yIHRoZQo+ID4gPiA+IHJl dHJ5IGludGVydmFsIChhc3N1bWVzIGltbWVkaWF0ZSByZXRyeSBvbiBkZWZlciksIGFuZCBkb2Vz bid0IGFzc3VtZQo+ID4gPiA+IHRoZSBiZXN0L3dvcnN0IGNhc2UgYmVoYXZpb3VyIGFzIHdlIGRv Lgo+ID4gPiA+IAo+ID4gPiA+IE5vdGUgdGhhdCBjdXJyZW50bHkgd2UgYXNzdW1lIDEwIGtIeiBz cGVlZCBmb3IgdGhlIGkyYyBidXMuIFNvbWUgcmVhbAo+ID4gPiA+IHdvcmxkIGRldmljZXMgKGVn LiBzb21lIEFwcGxlIERQLT5WR0EgZG9uZ2xlKSBmYWlscyB3aXRoIGxlc3MgdGhhbiAxNgo+ID4g PiA+IHJldHJpZXMuIGFuZCB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gc29tZXRoaW5nIGNsb3Nl IHRvIDE1IGtIeiAod2l0aAo+ID4gPiA+IG91ciBtZXRob2Qgb2YgY2FsY3VsYXRpbmcgdGhpbmdz KSBCdXQgbGV0J3MganVzdCBnbyBmb3IgMTAga0h6IHRvIGJlCj4gPiA+ID4gb24gdGhlIHNhZmUg c2lkZS4gSWRlYWxseSB3ZSBzaG91bGQgcXVlcnkvc2V0IHRoZSBpMmMgYnVzIHNwZWVkIHZpYQo+ ID4gPiA+IERQQ0QgYnV0IGZvciBub3cgdGhpcyBzaG91bGQgYXQgbGVhYXN0IHJlbW92ZSB0aGUg cmVncmVzc2lvbiBmcm9tIHRoZQo+ID4gPiA+IDEtPjE2IGJ5dGUgdHJhc25mZXIgc2l6ZSBjaGFu Z2UuIEFuZCBvZiBjb3Vyc2UgaWYgdGhlIHNpbmsgY29tcGxldGVzCj4gPiA+ID4gdGhlIHRyYW5z ZmVyIHF1aWNrZXIgdGhpcyBzaG91bGRuJ3Qgc2xvdyB0aGluZ3MgZG93biBzaW5jZSB3ZSBkb24n dAo+ID4gPiA+IGNoYW5nZSB0aGUgaW50ZXJ2YWwgYmV0d2VlbiByZXRyaWVzLgo+ID4gPiA+IAo+ ID4gPiA+IEkgZGlkIGEgZmV3IGV4cGVyaW1lbnRzIHdpdGggYSBEUC0+RFZJIGRvbmdsZSBJIGhh dmUgdGhhdCBhbGxvd3MgeW91Cj4gPiA+ID4gdG8gY2hhbmdlIHRoZSBpMmMgYnVzIHNwZWVkLiBI ZXJlIGFyZSB0aGUgcmVzdWx0cyBvZiBtZSBjaGFuZ2luZyB0aGUKPiA+ID4gPiBhY3R1YWwgYnVz IHNwZWVkIGFuZCB0aGUgYXNzdW1lZCBidXMgc3BlZWQgYW5kIHNlZWluZyB3aGVuIHdlIHN0YXJ0 Cj4gPiA+ID4gdG8gZmFpbCB0aGUgb3BlcmF0aW9uOgo+ID4gPiA+IAo+ID4gPiA+IGFjdHVhbCBp MmMga2h6ICAgICAgICAgIGFzc3VtZWQgaTJjIGtoeiAgICAgICAgIG1heCByZXRyaWVzCj4gPiA+ ID4gMSAgICAgICAgICAgICAgICAgICAgICAgMSBvayAtPiAyIGZhaWwgICAgICAgICAgMjExIG9r IC0+IDEwNiBmYWlsCj4gPiA+ID4gNSAgICAgICAgICAgICAgICAgICAgICAgOCBvayAtPiA5IGZh aWwgICAgICAgICAgMjcgb2sgLT4gMjQgZmFpbAo+ID4gPiA+IDEwICAgICAgICAgICAgICAgICAg ICAgIDE3IG9rIC0+IDE4IGZhaWwgICAgICAgIDEzIG9rIC0+IDEyIGZhaWwKPiA+ID4gPiAxMDAg ICAgICAgICAgICAgICAgICAgICAyMTAgb2sgLT4gMjExIGZhaWwgICAgICAyIG9rIC0+IDEgZmFp bAo+ID4gPiA+IAo+ID4gPiA+IFNvIGJhc2VkIG9uIHRoYXQgd2UgaGF2ZSBhIGZhaXJseSBkZWNl bnQgc2FmZXR5IG1hcmdpbiBiYWtlZCBpbnRvCj4gPiA+ID4gdGhlIGZvcm11bGEgdG8gY2FsY3Vs YXRlIHRoZSBtYXggbnVtYmVyIG9mIHJldHJpZXMuCj4gPiA+ID4gCj4gPiA+ID4gRml4ZXMgYSBy ZWdyZXNzaW9uIHdpdGggc29tZSBEUCBkb25nbGVzIGZyb206Cj4gPiA+ID4gY29tbWl0IDFkMDAy ZmE3MjA3MzhiY2QwYmRkYjkxNzhlOWVhMDc3MzI4OGUxZGQKPiA+ID4gPiBBdXRob3I6IFNpbW9u IEZhcm5zd29ydGggPHNpbW9uLmZhcm5zd29ydGhAb25lbGFuLmNvLnVrPgo+ID4gPiA+IERhdGU6 ICAgVHVlIEZlYiAxMCAxODozODowOCAyMDE1ICswMDAwCj4gPiA+ID4gCj4gPiA+ID4gICAgIGRy bS9kcDogVXNlIGxhcmdlIHRyYW5zYWN0aW9ucyBmb3IgSTJDIG92ZXIgQVVYCj4gPiA+ID4gCj4g PiA+ID4gdjI6IFVzZSBiZXN0IGNhc2UgZm9yIEFVWCBhbmQgd29yc3QgY2FzZSBmb3IgaTJjIChT aW1vbiBGYXJuc3dvcnRoKQo+ID4gPiA+ICAgICBBZGQgYSBkZWZpbmUgb3VyIEFVWCByZXRyeSBp bnRlcnZhbCBhbmQgYWNjb3VudCBmb3IgaXQKPiA+ID4gPiAKPiA+ID4gPiBDYzogU2ltb24gRmFy bnN3b3J0aCA8c2ltb24uZmFybnN3b3J0aEBvbmVsYW4uY29tPgo+ID4gPiA+IENjOiBtb29zb3Rj QGdtYWlsLmNvbQo+ID4gPiA+IFRlc3RlZC1ieTogbW9vc290Y0BnbWFpbC5jb20KPiA+ID4gPiBC dWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE0 NTEKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+ID4gPiA+IC0tLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2RwX2hlbHBlci5jIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBf aGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCj4gPiA+ID4gaW5kZXgg NzA2OWU1NC4uMjNiOWZjYyAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX2hlbHBlci5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIu Ywo+ID4gPiA+IEBAIC00MjQsNiArNDI0LDc4IEBAIHN0YXRpYyB1MzIgZHJtX2RwX2kyY19mdW5j dGlvbmFsaXR5KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKPiA+ID4gPiAgCSAgICAgICBJ MkNfRlVOQ18xMEJJVF9BRERSOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICsjZGVmaW5l IEFVWF9QUkVDSEFSR0VfTEVOIDEwIC8qIDEwIHRvIDE2ICovCj4gPiA+ID4gKyNkZWZpbmUgQVVY X1NZTkNfTEVOICgxNiArIDQpIC8qIHByZWFtYmxlICsgQVVYX1NZTkNfRU5EICovCj4gPiA+ID4g KyNkZWZpbmUgQVVYX1NUT1BfTEVOIDQKPiA+ID4gPiArI2RlZmluZSBBVVhfQ01EX0xFTiA0Cj4g PiA+ID4gKyNkZWZpbmUgQVVYX0FERFJFU1NfTEVOIDIwCj4gPiA+ID4gKyNkZWZpbmUgQVVYX1JF UExZX1BBRF9MRU4gNAo+ID4gPiA+ICsjZGVmaW5lIEFVWF9MRU5HVEhfTEVOIDgKPiA+ID4gPiAr Cj4gPiA+ID4gKy8qCj4gPiA+ID4gKyAqIENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHRoZSBBVVgg cmVxdWVzdC9yZXBseS4gR2l2ZXMgdGhlICJiZXN0Igo+ID4gPiA+ICsgKiBjYXNlIGVzdGltYXRl LCBpZS4gc3VjY2Vzc2Z1bCB3aGlsZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4KPiA+ID4gPiArICov Cj4gPiA+ID4gK3N0YXRpYyBpbnQgZHJtX2RwX2F1eF9yZXFfbGVuKGNvbnN0IHN0cnVjdCBkcm1f ZHBfYXV4X21zZyAqbXNnKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlpbnQgbGVuID0gQVVYX1BSRUNI QVJHRV9MRU4gKyBBVVhfU1lOQ19MRU4gKyBBVVhfU1RPUF9MRU4gKwo+ID4gPiA+ICsJCUFVWF9D TURfTEVOICsgQVVYX0FERFJFU1NfTEVOICsgQVVYX0xFTkdUSF9MRU47Cj4gPiA+ID4gKwo+ID4g PiA+ICsJaWYgKChtc2ctPnJlcXVlc3QgJiBEUF9BVVhfSTJDX1JFQUQpID09IDApCj4gPiA+ID4g KwkJbGVuICs9IG1zZy0+c2l6ZSAqIDg7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJcmV0dXJuIGxlbjsK PiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIGludCBkcm1fZHBfYXV4X3JlcGx5 X2xlbihjb25zdCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykKPiA+ID4gPiArewo+ID4gPiA+ ICsJaW50IGxlbiA9IEFVWF9QUkVDSEFSR0VfTEVOICsgQVVYX1NZTkNfTEVOICsgQVVYX1NUT1Bf TEVOICsKPiA+ID4gPiArCQlBVVhfQ01EX0xFTiArIEFVWF9SRVBMWV9QQURfTEVOOwo+ID4gPiA+ ICsKPiA+ID4gPiArCS8qCj4gPiA+ID4gKwkgKiBGb3IgcmVhZCB3ZSBleHBlY3Qgd2hhdCB3YXMg YXNrZWQuIEZvciB3cml0ZXMgdGhlcmUgd2lsbAo+ID4gPiA+ICsJICogYmUgMCBvciAxIGRhdGEg Ynl0ZXMuIEFzc3VtZSAwIGZvciB0aGUgImJlc3QiIGNhc2UuCj4gPiA+ID4gKwkgKi8KPiA+ID4g PiArCWlmIChtc2ctPnJlcXVlc3QgJiBEUF9BVVhfSTJDX1JFQUQpCj4gPiA+ID4gKwkJbGVuICs9 IG1zZy0+c2l6ZSAqIDg7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJcmV0dXJuIGxlbjsKPiA+ID4gPiAr fQo+ID4gPiA+ICsKPiA+ID4gPiArI2RlZmluZSBJMkNfU1RBUlRfTEVOIDEKPiA+ID4gPiArI2Rl ZmluZSBJMkNfU1RPUF9MRU4gMQo+ID4gPiA+ICsjZGVmaW5lIEkyQ19BRERSX0xFTiA5IC8qIEFE RFJFU1MgKyBSL1cgKyBBQ0svTkFDSyAqLwo+ID4gPiA+ICsjZGVmaW5lIEkyQ19EQVRBX0xFTiA5 IC8qIERBVEEgKyBBQ0svTkFDSyAqLwo+ID4gPiA+ICsKPiA+ID4gPiArLyoKPiA+ID4gPiArICog Q2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGkyYyB0cmFuc2ZlciAoaW4gQVVYIGNsb2NrcykK PiA+ID4gPiArICogYXNzdW1pbmcgdGhlIGkyYyBidXMgc3BlZWQgaXMgYXMgc3BlY2lmaWVkLiBH aXZlcyB0aGUgdGhlCj4gPiA+ID4gKyAqICJ3b3JzdCIgY2FzZSBlc3RpbWF0ZSwgaWUuIHN1Y2Nl c3NmdWwgd2hpbGUgYXMgbG9uZyBhcyBwb3NzaWJsZS4KPiA+ID4gPiArICogRG9lc24ndCBhY2Nv dW50IHRoZSB0aGUgIk1PVCIgYml0LCBhbmQgaW5zdGVhZCBhc3N1bWVzIGVhY2gKPiA+ID4gPiAr ICogbWVzc2FnZSBpbmNsdWRlcyBhIFNUQVJULCBBRERSRVNTIGFuZCBTVE9QLiBOZWl0aGVyIGRv ZXMgaXQKPiA+ID4gPiArICogYWNjb3VudCBmb3IgYWRkaXRpb25hbCByYW5kb20gdmFyaWFibGVz IHN1Y2ggYXMgY2xvY2sgc3RyZXRjaGluZy4KPiA+ID4gPiArICovCj4gPiA+ID4gK3N0YXRpYyBp bnQgZHJtX2RwX2kyY19tc2dfbGVuKGNvbnN0IHN0cnVjdCBkcm1fZHBfYXV4X21zZyAqbXNnLAo+ ID4gPiA+ICsJCQkgICAgICBpbnQgaTJjX3NwZWVkX2toeikKPiA+ID4gPiArewo+ID4gPiA+ICsJ cmV0dXJuIChJMkNfU1RBUlRfTEVOICsgSTJDX0FERFJfTEVOICsgbXNnLT5zaXplICogSTJDX0RB VEFfTEVOICsKPiA+ID4gPiArCQlJMkNfU1RPUF9MRU4pICogMTAwMCAvIGkyY19zcGVlZF9raHo7 Cj4gPiA+IAo+ID4gPiBUaGlzIGRvZXNuJ3Qgc2VlbSB0byBjb21wdXRlIHRoZSBsZW5naHQsIGJ1 dCB0aGUgdGltZSBhIHRyYW5zZmVyIHRha2VzLCBpbgo+ID4gPiB1c2VjIChpZiBJIGhhdmVuJ3Qg c2NyZXdlZCB1cCBteSBudW1iZXJzIC4uLikuIEFsc28gRElWX1JPVU5EX0RPV04gdG8gbWFrZQo+ ID4gPiB0aGUgZGVmZW5zaXZlbmVzcyBjbGVhcj8KPiA+IAo+ID4gV2VsbCBpdCBzdGFydGVkIG91 dCBhcyBsZW5ndGgsIGFuZCB0aGVuIEkgZmlndXJlZCBJJ2xsIGp1c3Qgc2hvdmUgdGhlCj4gPiBp MmMtPmF1eCB1bml0IGNvbnZlcnNpb24gaW4gaGVyZS4gSXQncyBhIGxlbmd0aCBpbiB0aW1lIGlm IHlvdSB3aWxsIDspCj4gPiAKPiA+IEFuZCBpdCBzaG91bGQgcmF0aGVyIGJlIERJVl9ST1VORF9V UCgpIHNpbmNlIHdlIHdhbnQgdGhlICJtYXhpbXVtIiBoZXJlLgo+IAo+IEhtIHJpZ2h0LCBtaXhl ZCB0aGF0IHVwLgo+IAo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICsvKgo+ID4gPiA+ICsg KiBEZXRlcmluZSBob3cgbWFueSByZXRyaWVzIHNob3VsZCBiZSBhdHRlbXB0ZWQgdG8gc3VjY2Vz c2Z1bGx5IHRyYW5zZmVyCj4gPiA+IAo+ID4gPiBEZXRlcmlfbV9lLgo+ID4gPiAKPiA+ID4gPiAr ICogdGhlIHNwZWNpZmllZCBtZXNzYWdlLCBiYXNlZCBvbiB0aGUgZXN0aW1hdGVkIGR1cmF0aW9u cyBvZiB0aGUKPiA+ID4gPiArICogaTJjIGFuZCBBVVggdHJhbnNmZXJzLgo+ID4gPiA+ICsgKi8K PiA+ID4gPiArc3RhdGljIGludCBkcm1fZHBfaTJjX3JldHJ5X2NvdW50KGNvbnN0IHN0cnVjdCBk cm1fZHBfYXV4X21zZyAqbXNnLAo+ID4gPiA+ICsJCQkgICAgICBpbnQgaTJjX3NwZWVkX2toeikK PiA+ID4gPiArewo+ID4gPiA+ICsJaW50IGF1eF9sZW4gPSBkcm1fZHBfYXV4X3JlcV9sZW4obXNn KSArIGRybV9kcF9hdXhfcmVwbHlfbGVuKG1zZyk7Cj4gPiA+ID4gKwlpbnQgaTJjX2xlbiA9IGRy bV9kcF9pMmNfbXNnX2xlbihtc2csIGkyY19zcGVlZF9raHopOwo+ID4gPiA+ICsKPiA+ID4gPiAr CXJldHVybiBESVZfUk9VTkRfVVAoaTJjX2xlbiwgYXV4X2xlbiArIEFVWF9SRVRSWV9JTlRFUlZB TCk7Cj4gPiA+IAo+ID4gPiBTbyBhc3N1bWluZyBJIGdldCB0aGluZ3MgcmlnaHQgaTJjX2xlbiBp cyBhY3R1YWxseSBpMmNfdGltZV91cywgYnV0Cj4gPiA+IGF1eF9sZW4gaXMgc3RpbGwganVzdCBh IGxlbmd0aCAoYW5kIHNpbmNlIHRoZSBidXMgcnVucyBhdCAyTUh6IGl0IGRvZXNuJ3QKPiA+ID4g c2VlbSB0byBqdXN0IGFkZCB1cCBjb3JyZWN0bHkpLgo+ID4gCj4gPiBBVVggYml0cmF0ZSBpcyAx TUh6Cj4gCj4gUmlnaHQgSSByZW1lbWJlcmVkIG9ubHkgdGhhdCB3ZSBuZWVkIHRvIHB1dCBpbiB0 aGUgY2xvY2sgZGl2aWRlciBmb3IgMk1Iego+IGZvciBpbnRlbCBkcCBhdXggdHJhbnNmZXJzIGFu ZCBnb3QgY29uZnVzZWQgYnkgdGhhdCBodyByZXF1aXJlbWVudC4KPiAKPiBTdGlsbCBhIGNvbW1l bnQgdGhhdCB0aGUgYXV4IGNsb2NrIGlzIDFNSHogcGx1cyByZW5hbWluZyBhdXhfbGVuIHRvCj4g YXV4X3RpbWVfdXNlY3Mgd291bGQgYmUgZ3JlYXQgZm9yIGNsYXJpdHkuCgpGb3Jnb3QgdG8gYWRk OiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4gZm9y IHRoZQplbnRpcmUgc2VyaWVzIGlmIHlvdSByZW5hbWUgdGhlIGZ1bmN0aW9ucy92YXJpYWJsZXMg d2hlcmUgYXBwcm9yaWF0ZSB0bwptYWtlIGl0IGNsZWFyIHRoYXQgeW91IGNvbXB1dGUgdXNlY3Mg YW5kIGFkZCBhIGNvbW1lbnQgYWJvdXQgdGhlIDFNSHogYXV4CmNsb2NrIGFzIHJlbWluZGVyIGZv ciBwZW9wbGUgbGlrZSBtZSBoZXJlIGluIHRoaXMgcGF0Y2guCi1EYW5pZWwKLS0gCkRhbmllbCBW ZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZm d2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==