From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: track relative-constants-mode per-context not per-device Date: Mon, 19 Oct 2015 15:26:11 +0200 Message-ID: <20151019132611.GB13786@phenom.ffwll.local> References: <1444742405-9322-1-git-send-email-david.s.gordon@intel.com> <20151013152823.GI26718@phenom.ffwll.local> <5624DF12.5020201@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 C06596E77F for ; Mon, 19 Oct 2015 06:26:15 -0700 (PDT) Received: by wicfx6 with SMTP id fx6so5740498wic.1 for ; Mon, 19 Oct 2015 06:26:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: <5624DF12.5020201@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMTksIDIwMTUgYXQgMDE6MTY6MThQTSArMDEwMCwgRGF2ZSBHb3Jkb24gd3Jv dGU6Cj4gT24gMTMvMTAvMTUgMTY6MjgsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPk9uIFR1ZSwg T2N0IDEzLCAyMDE1IGF0IDAyOjIwOjA1UE0gKzAxMDAsIERhdmUgR29yZG9uIHdyb3RlOgo+ID4+ J3JlbGF0aXZlX2NvbnN0YW50c19tb2RlJyBoYXMgYWx3YXlzIGJlZW4gdHJhY2tlZCBwZXItZGV2 aWNlLCBidXQgdGhpcwo+ID4+aXMgd3JvbmcgaW4gZXhlY2xpc3RzIChvciBHdUMpIG1vZGUsIGFz IElOU1RQTSBpcyBzYXZlZCBhbmQgcmVzdG9yZWQKPiA+PndpdGggdGhlIGxvZ2ljYWwgY29udGV4 dCwgYW5kIHRoZSBwZXItY29udGV4dCB2YWx1ZSBjb3VsZCB0aGVyZWZvcmUgZ2V0Cj4gPj5vdXQg b2Ygc3luYyB3aXRoIHRoZSB0cmFja2VkIHZhbHVlLiBUaGlzIHBhdGNoIG1vdmVzIHRoZSB0cmFj a2luZwo+ID4+ZWxlbWVudCBmcm9tIHRoZSBkZXZfcHJpdiBzdHJ1Y3R1cmUgaW50byB0aGUgaW50 ZWxfY29udGV4dCBzdHJ1Y3R1cmUsCj4gPj53aXRoIGNvcnJlc3BvbmRpbmcgYWRqdXN0bWVudHMg dG8gdGhlIGNvZGUgdGhhdCBpbml0aWFsaXNlcyBhbmQgdXNlcyBpdC4KPiA+Pgo+ID4+VGVzdCBj YXNlIChpZiBhbnlvbmUgd2FudHMgdG8gd3JpdGUgaXQpIHdvdWxkIGJlIHRvIGNyZWF0ZSB0d28g Y29udGV4dHMsCj4gPj5zdWJtaXQgYSBiYXRjaCB3aXRoIGEgbm9uLWRlZmF1bHQgbW9kZSBpbiB0 aGUgZmlyc3QgY29udGV4dCwgc3VibWl0IGEKPiA+PmJhdGNoIHdpdGggdGhlIGRlZmF1bHQgbW9k ZSBpbiB0aGUgb3RoZXIgY29udGV4dCwgc3VibWl0IGFub3RoZXIgYmF0Y2gKPiA+PmluIHRoZSBm aXJzdCBjb250ZXh0LCBidXQgdGhpcyB0aW1lIGluIGRlZmF1bHQgbW9kZS4gVGhlIGRyaXZlciB3 aWxsCj4gPj5mYWlsIHRvIGluc2VydCB0aGUgaW5zdHJ1Y3Rpb25zIHRvIHJlc2V0IElOU1RQTSBp bnRvIHRoZSBmaXJzdCBjb250ZXh0J3MKPiA+PnJpbmdidWZmZXIuCj4gPj4KPiA+PkJ1Z3ppbGxh OiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05MjQ0OAo+ID4+ Cj4gPj5TaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29t Pgo+ID4KPiA+RG9lc24ndCB0aGlzIGJyZWFrIHByZS1nZW44PyBPciBtYXliZSBsZWdhY3kgbW9k ZSBpbnN0ZWFkIG9mIGV4ZWNsaXN0LAo+ID5kdW5uby4gSWYgaXQncyBwcmUtZ2VuOCB3ZSBuZWVk IGEgY2hlY2ssIGlmIGl0J3MgZXhlY2xpc3QgdnMuIGxlZ2FjeSB0aGVuCj4gPndlIGNvdWxkIGp1 c3QgbW92ZSB0aGlzIGludG8gdGhlIHJpbmcgaW5zdGVhZC4KPiA+LURhbmllbAo+IAo+IEkgZG9u J3QgdGhpbmsgaXQgd2lsbCBicmVhayBhbnl0aGluZy4gUHJlLWdlbjYgdGhlcmUncyBvbmx5IG9u ZSBoL3cgY29udGV4dCwKPiBhbmQgeW91IGNhbid0IGNyZWF0ZSBvciB1c2UgYWRkaXRpb25hbCBv bmVzLiBTbyBldmVyeSByZXF1ZXN0IHdpbGwgdXNlIHRoZQo+IHNhbWUgZGVmYXVsdCBjb250ZXh0 LCBhbmQgdGhlcmVmb3JlIHN0b3JpbmcgdGhlIGxhc3QgbW9kZSBpbiB0aGUgKG9uZSBhbmQKPiBv bmx5KSBjb250ZXh0IHdpbGwgYmUgbm8gZGlmZmVyZW50IGZyb20gc3RvcmluZyBpdCBhdCB0aGUg ZGV2aWNlIGxldmVsLgo+IAo+IEZvciBnZW42KywgdGhlIElOU1RQTSByZWdpc3RlciBjb250YWlu aW5nIHRoaXMgYml0IGlzIHNhdmVkICYgcmVzdG9yZWQgd2l0aAo+IHRoZSBjb250ZXh0LCBpbiBi b3RoIGxlZ2FjeSAoTUlfU0VUX0NPTlRFWFQpIGFuZCBleGVjbGlzdCBtb2Rlcywgc28gdHJhY2tp bmcKPiBpdCBpbiB0aGUgaW50ZWxfY29udGV4dCBpcyBuZWNlc3NhcnkgdG8ga2VlcCB0aGUgcy93 IGluIHN5bmMgd2l0aCB3aGF0IHRoZQo+IGgvdyBpcyBkb2luZyAoaWYgaXQgYXBwbGllZCBwZXIt ZW5naW5lIHdlJ2QgaGF2ZSB0byBtb3ZlIGl0IGRvd24gYW5vdGhlcgo+IGxldmVsLCBidXQgaXQn cyByZW5kZXItb25seTsgYW5kIGRpc2NvbnRpbnVlZCBpbiBTS0wrIHRvbykuCj4gCj4gQUZBSUNT IHRoaXMgaGFzIGJlZW4gYnJva2VuIHNpbmNlIGdlbjYgaW50cm9kdWNlZCBIL1cgY29udGV4dHMg YW5kIHRoZSBzL3cKPiBkaWRuJ3QgZ2V0IHVwZGF0ZWQgdG8gbWF0Y2ghIFdoaWNoIHJhdGhlciBz dWdnZXN0cyB0aGF0IG5vYm9keSB1c2VzIHRoaXMgYW5kCj4gd2Ugc2hvdWxkIGp1c3QgZGVsZXRl IHRoZSB3aG9sZSBsb3QgaW5zdGVhZCBvZiBmaXhpbmcgaXQuCgpOYWgsIG11Y2ggbW9yZSBsaWtl bHkgaXMgdGhhdCBpdCBtaWdodCBvciBtaWdodCBub3Qgc2VlIHRoZSByYW5kb20gcGlsZSBvZgpo YW5ncyB3ZSd2ZSBiZWVuIHNlZWluZyBldmVyIHNpbmNlIGNvbnRleHRzIGhhdmUgYmVlbiBlbmFi bGVkIGJ5IGRlZmF1bHQuCgpCdXQgdGhlIGFib3ZlIGlzIGNydWNpYWwgaW5mb3JtYXRpb24gdG8g YXNzZXNzIGNvcnJlY3RuZXNzIG9mIHlvdXIgcGF0Y2gsCnNvIHNob3VsZCBiZSBpbmNsdWRlZCBp biB0aGUgY29tbWl0IG1lc3NhZ2UuCi1EYW5pZWwKCj4gCj4gLkRhdmUuCj4gCj4gPj4tLS0KPiA+ PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgNCArKy0tCj4g Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDIgLS0KPiA+ PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgIHwgMyArKysKPiA+ PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgNiArKystLS0K PiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgNiArKyst LS0KPiA+PiAgNSBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkKPiA+Pgo+ID4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj5pbmRleCA1MWVlYTI5Li4yOTE3 MzcwIDEwMDY0NAo+ID4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+ KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+QEAgLTg3Miw2ICs4NzIs OCBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCB7Cj4gPj4gIAlzdHJ1Y3QgaTkxNV9jdHhfaGFuZ19z dGF0cyBoYW5nX3N0YXRzOwo+ID4+ICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0Owo+ID4+ Cj4gPj4rCWludCByZWxhdGl2ZV9jb25zdGFudHNfbW9kZTsKPiA+PisKPiA+PiAgCS8qIExlZ2Fj eSByaW5nIGJ1ZmZlciBzdWJtaXNzaW9uICovCj4gPj4gIAlzdHJ1Y3Qgewo+ID4+ICAJCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpyY3Nfc3RhdGU7Cj4gPj5AQCAtMTcwNyw4ICsxNzA5LDYg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4+Cj4gPj4gIAljb25zdCBzdHJ1Y3QgaW50 ZWxfZGV2aWNlX2luZm8gaW5mbzsKPiA+Pgo+ID4+LQlpbnQgcmVsYXRpdmVfY29uc3RhbnRzX21v ZGU7Cj4gPj4tCj4gPj4gIAl2b2lkIF9faW9tZW0gKnJlZ3M7Cj4gPj4KPiA+PiAgCXN0cnVjdCBp bnRlbF91bmNvcmUgdW5jb3JlOwo+ID4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPj5pbmRleCBm MGNmYmI5Li4zNzRhZjJkIDEwMDY0NAo+ID4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+ID4+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4+QEAg LTQ4OTQsOCArNDg5NCw2IEBAIGk5MTVfZ2VtX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiA+PiAgCQkJICBpOTE1X2dlbV9pZGxlX3dvcmtfaGFuZGxlcik7Cj4gPj4gIAlpbml0X3dhaXRx dWV1ZV9oZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlKTsKPiA+Pgo+ID4+LQlk ZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JF TF9HRU5FUkFMOwo+ID4+LQo+ID4+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcgJiYg IUlTX1ZBTExFWVZJRVcoZGV2KSkKPiA+PiAgCQlkZXZfcHJpdi0+bnVtX2ZlbmNlX3JlZ3MgPSAz MjsKPiA+PiAgCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQgfHwgSVNfSTk0NUco ZGV2KSB8fCBJU19JOTQ1R00oZGV2KSB8fCBJU19HMzMoZGV2KSkKPiA+PmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiA+PmluZGV4IDc0YWEwYzkuLjQ2NWUzZTAgMTAwNjQ0 Cj4gPj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiA+Pisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ID4+QEAgLTIyMiw2 ICsyMjIsOSBAQCBfX2NyZWF0ZV9od19jb250ZXh0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g Pj4gIAkgKiBpcyBubyByZW1hcCBpbmZvLCBpdCB3aWxsIGJlIGEgTk9QLiAqLwo+ID4+ICAJY3R4 LT5yZW1hcF9zbGljZSA9ICgxIDw8IE5VTV9MM19TTElDRVMoZGV2KSkgLSAxOwo+ID4+Cj4gPj4r CS8qIEZpcnN0IGV4ZWNidWZmZXIgd2lsbCBvdmVycmlkZSB0aGlzICovCj4gPj4rCWN0eC0+cmVs YXRpdmVfY29uc3RhbnRzX21vZGUgPSAtMTsKPiA+PisKPiA+PiAgCWN0eC0+aGFuZ19zdGF0cy5i YW5fcGVyaW9kX3NlY29uZHMgPSBEUk1fSTkxNV9DVFhfQkFOX1BFUklPRDsKPiA+Pgo+ID4+ICAJ cmV0dXJuIGN0eDsKPiA+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKPiA+PmluZGV4IGVkYzE3YmUuLjk4MzNjOGEgMTAwNjQ0Cj4gPj4tLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiA+PisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ID4+QEAgLTEyODMsNyArMTI4Myw3IEBAIGk5 MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFt cyAqcGFyYW1zLAo+ID4+ICAJCQlnb3RvIGVycm9yOwo+ID4+ICAJCX0KPiA+Pgo+ID4+LQkJaWYg KGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7Cj4gPj4r CQlpZiAoaW5zdHBfbW9kZSAhPSBwYXJhbXMtPmN0eC0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUp IHsKPiA+PiAgCQkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkgewo+ID4+ICAJCQkJRFJN X0RFQlVHKCJubyByZWwgY29uc3RhbnRzIG9uIHByZS1nZW40XG4iKTsKPiA+PiAgCQkJCXJldCA9 IC1FSU5WQUw7Cj4gPj5AQCAtMTMwOSw3ICsxMzA5LDcgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9z dWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gPj4gIAl9 Cj4gPj4KPiA+PiAgCWlmIChyaW5nID09ICZkZXZfcHJpdi0+cmluZ1tSQ1NdICYmCj4gPj4tCQkJ aW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKPiA+PisJ CQlpbnN0cF9tb2RlICE9IHBhcmFtcy0+Y3R4LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSkgewo+ ID4+ICAJCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocGFyYW1zLT5yZXF1ZXN0LCA0KTsKPiA+PiAg CQlpZiAocmV0KQo+ID4+ICAJCQlnb3RvIGVycm9yOwo+ID4+QEAgLTEzMjAsNyArMTMyMCw3IEBA IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3Bh cmFtcyAqcGFyYW1zLAo+ID4+ICAJCWludGVsX3JpbmdfZW1pdChyaW5nLCBpbnN0cF9tYXNrIDw8 IDE2IHwgaW5zdHBfbW9kZSk7Cj4gPj4gIAkJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwo+ID4+ Cj4gPj4tCQlkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBpbnN0cF9tb2RlOwo+ ID4+KwkJcGFyYW1zLT5jdHgtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0gaW5zdHBfbW9kZTsK PiA+PiAgCX0KPiA+Pgo+ID4+ICAJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0dFTjdfU09M X1JFU0VUKSB7Cj4gPj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4+aW5kZXggODI1ZmE3YS4u OWZmNDA5ZCAxMDA2NDQKPiA+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j Cj4gPj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4+QEAgLTg4OSw3 ICs4ODksNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhl Y2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiA+PiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPj4gIAkJ fQo+ID4+Cj4gPj4tCQlpZiAoaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3Rh bnRzX21vZGUpIHsKPiA+PisJCWlmIChpbnN0cF9tb2RlICE9IHBhcmFtcy0+Y3R4LT5yZWxhdGl2 ZV9jb25zdGFudHNfbW9kZSkgewo+ID4+ICAJCQlpZiAoaW5zdHBfbW9kZSA9PSBJOTE1X0VYRUNf Q09OU1RBTlRTX1JFTF9TVVJGQUNFKSB7Cj4gPj4gIAkJCQlEUk1fREVCVUcoInJlbCBzdXJmYWNl IGNvbnN0YW50cyBtb2RlIGludmFsaWQgb24gZ2VuNStcbiIpOwo+ID4+ICAJCQkJcmV0dXJuIC1F SU5WQUw7Cj4gPj5AQCAtOTI5LDcgKzkyOSw3IEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlz c2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+ID4+ICAJCXJldHVy biByZXQ7Cj4gPj4KPiA+PiAgCWlmIChyaW5nID09ICZkZXZfcHJpdi0+cmluZ1tSQ1NdICYmCj4g Pj4tCSAgICBpbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSkg ewo+ID4+KwkgICAgaW5zdHBfbW9kZSAhPSBwYXJhbXMtPmN0eC0+cmVsYXRpdmVfY29uc3RhbnRz X21vZGUpIHsKPiA+PiAgCQlyZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocGFyYW1zLT5y ZXF1ZXN0LCA0KTsKPiA+PiAgCQlpZiAocmV0KQo+ID4+ICAJCQlyZXR1cm4gcmV0Owo+ID4+QEAg LTk0MCw3ICs5NDAsNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5 MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiA+PiAgCQlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdChyaW5nYnVmLCBpbnN0cF9tYXNrIDw8IDE2IHwgaW5zdHBfbW9kZSk7Cj4gPj4gIAkJaW50 ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7Cj4gPj4KPiA+Pi0JCWRldl9wcml2LT5y ZWxhdGl2ZV9jb25zdGFudHNfbW9kZSA9IGluc3RwX21vZGU7Cj4gPj4rCQlwYXJhbXMtPmN0eC0+ cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBpbnN0cF9tb2RlOwo+ID4+ICAJfQo+ID4+Cj4gPj4g IAlleGVjX3N0YXJ0ID0gcGFyYW1zLT5iYXRjaF9vYmpfdm1fb2Zmc2V0ICsKPiA+Pi0tCj4gPj4x LjkuMQo+ID4+Cj4gPj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4+SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4+SW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4+aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo+ID4KPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVy LCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=