From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 2/6] drm/i915: Cache last cmd descriptor when parsing Date: Tue, 1 Dec 2015 19:30:32 +0200 Message-ID: <20151201173032.GI4437@intel.com> References: <1448016961-25331-1-git-send-email-chris@chris-wilson.co.uk> <1448016961-25331-3-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 0E8B26E714 for ; Tue, 1 Dec 2015 09:30:36 -0800 (PST) Content-Disposition: inline In-Reply-To: <1448016961-25331-3-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMjAsIDIwMTUgYXQgMTA6NTU6NTdBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFRoZSBjbWQgcGFyc2VyIGhhcyB0aGUgYmlnZ2VzdCBpbXBhY3Qgb24gdGhlIEJMVCBy aW5nLCBiZWNhdXNlIGl0IGlzCj4gcmVsYXRpdmVseSB2ZXJib3NlIGNvbXBvc2VkIHRvIHRoZSBv dGhlciBlbmdpbmVzIGFzIHRoZSB2ZXJ0ZXggZGF0YSBpcwo+IGlubGluZS4gSXQgYWxzbyB0eXBp Y2FsbHkgaGFzIHJ1bnMgb2YgcmVwZWF0aW5nIGNvbW1hbmRzIChhZ2FpbiBzaW5jZQo+IHRoZSB2 ZXJ0ZXggZGF0YSBpcyBpbmxpbmUsIGl0IHR5cGljYWxseSBoYXMgc2VxdWVuY2VzIG9mIFhZX1NF VFVQX0JMVCwKPiBYWV9TQ0FOTElORV9CTFQuLikgV2UgY2FuIGVhc2lseSByZWR1Y2UgdGhlIGlt cGFjdCBvZiBjbWRwYXJzaW5nIG9uCj4gYmVuY2htYXJrcyBieSB0aGVuIGNhY2hpbmcgdGhlIGxh c3QgZGVzY3JpcHRvciBhbmQgY29tcGFyaW5nIGl0IGFnYWluc3QKPiB0aGUgbmV4dCBjb21tYW5k IGhlYWRlci4gVG8gZ2V0IG1heGltdW0gYmVuZWZpdCwgd2UgYWxzbyB3YW50IHRvIHRha2UKPiBh ZHZhbnRhZ2Ugb2Ygc2tpcHBpbmcgYSBmZXcgdmFsaWRhdGlvbnMgYW5kIGxlbmd0aCBkZXRlcm1p bmF0aW9ucyBpZiB0aGUKPiBoZWFkZXIgaXMgdW5jaGFuZ2VkIGJldHdlZW4gY29tbWFuZHMuCj4g Cj4gaXZiIGk3LTM3MjBRTToKPiB4MTFwZXJmIC1kb3Q6IGJlZm9yZSA1Mi4zTSwgYWZ0ZXIgMTI0 TSAobWF4IDIwM00pCj4gZ2x4Z2VhcnM6IGJlZm9yZSA3MzEwIGZwcywgYWZ0ZXIgNzU1MCBmcHMg KG1heCA3ODYwIGZwcykKPiAKPiB2MjogRml4IGluaXRpYWwgY2FjaGVkIGNtZCBkZXNjcmlwdG9y IHRvIG1hdGNoIE1JX05PT1AuCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCgpEaWRuJ3Qgc3BvdCBhbnl0aGluZyB3cm9uZywg c286CgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jIHwgMTMz ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgICB8ICAxMCArLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNl cnRpb25zKCspLCA3OSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Nt ZF9wYXJzZXIuYwo+IGluZGV4IGRiM2EwNGVhMDM2YS4uYzZmNmQ5ZjJiMmNlIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKPiBAQCAtNzk0LDYgKzc5NCw5IEBAIHZv aWQgaTkxNV9jbWRfcGFyc2VyX2ZpbmlfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQo+ICAJZmluaV9oYXNoX3RhYmxlKHJpbmcpOwo+ICB9Cj4gIAo+ICsvKgo+ICsgKiBSZXR1cm5z IGEgcG9pbnRlciB0byBhIGRlc2NyaXB0b3IgZm9yIHRoZSBjb21tYW5kIHNwZWNpZmllZCBieSBj bWRfaGVhZGVyLgo+ICsgKi8KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9jbWRfZGVz Y3JpcHRvcioKPiAgZmluZF9jbWRfaW5fdGFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPiAgCQkgIHUzMiBjbWRfaGVhZGVyKQo+IEBAIC04MTMsMzcgKzgxNiw2IEBAIGZpbmRfY21k X2luX3RhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAlyZXR1cm4gTlVMTDsK PiAgfQo+ICAKPiAtLyoKPiAtICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBkZXNjcmlwdG9yIGZv ciB0aGUgY29tbWFuZCBzcGVjaWZpZWQgYnkgY21kX2hlYWRlci4KPiAtICoKPiAtICogVGhlIGNh bGxlciBtdXN0IHN1cHBseSBzcGFjZSBmb3IgYSBkZWZhdWx0IGRlc2NyaXB0b3IgdmlhIHRoZSBk ZWZhdWx0X2Rlc2MKPiAtICogcGFyYW1ldGVyLiBJZiBubyBkZXNjcmlwdG9yIGZvciB0aGUgc3Bl Y2lmaWVkIGNvbW1hbmQgZXhpc3RzIGluIHRoZSByaW5nJ3MKPiAtICogY29tbWFuZCBwYXJzZXIg dGFibGVzLCB0aGlzIGZ1bmN0aW9uIGZpbGxzIGluIGRlZmF1bHRfZGVzYyBiYXNlZCBvbiB0aGUK PiAtICogcmluZydzIGRlZmF1bHQgbGVuZ3RoIGVuY29kaW5nIGFuZCByZXR1cm5zIGRlZmF1bHRf ZGVzYy4KPiAtICovCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfY21kX2Rlc2NyaXB0 b3IqCj4gLWZpbmRfY21kKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gLQkgdTMyIGNt ZF9oZWFkZXIsCj4gLQkgc3RydWN0IGRybV9pOTE1X2NtZF9kZXNjcmlwdG9yICpkZWZhdWx0X2Rl c2MpCj4gLXsKPiAtCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9jbWRfZGVzY3JpcHRvciAqZGVzYzsK PiAtCXUzMiBtYXNrOwo+IC0KPiAtCWRlc2MgPSBmaW5kX2NtZF9pbl90YWJsZShyaW5nLCBjbWRf aGVhZGVyKTsKPiAtCWlmIChkZXNjKQo+IC0JCXJldHVybiBkZXNjOwo+IC0KPiAtCW1hc2sgPSBy aW5nLT5nZXRfY21kX2xlbmd0aF9tYXNrKGNtZF9oZWFkZXIpOwo+IC0JaWYgKCFtYXNrKQo+IC0J CXJldHVybiBOVUxMOwo+IC0KPiAtCUJVR19PTighZGVmYXVsdF9kZXNjKTsKPiAtCWRlZmF1bHRf ZGVzYy0+ZmxhZ3MgPSBDTURfREVTQ19TS0lQOwo+IC0JZGVmYXVsdF9kZXNjLT5sZW5ndGgubWFz ayA9IG1hc2s7Cj4gLQo+IC0JcmV0dXJuIGRlZmF1bHRfZGVzYzsKPiAtfQo+IC0KPiAgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1faTkxNV9yZWdfZGVzY3JpcHRvciAqCj4gIGZpbmRfcmVnKGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9yZWdfZGVzY3JpcHRvciAqdGFibGUsCj4gIAkgaW50IGNvdW50LCB1 MzIgYWRkcikKPiBAQCAtODg2LDE3ICs4NTgsNiBAQCBzdGF0aWMgYm9vbCBjaGVja19jbWQoY29u c3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCQkgICAgICBjb25zdCBib29sIGlz X21hc3RlciwKPiAgCQkgICAgICBib29sICpvYWNvbnRyb2xfc2V0KQo+ICB7Cj4gLQlpZiAoZGVz Yy0+ZmxhZ3MgJiBDTURfREVTQ19SRUpFQ1QpIHsKPiAtCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6 IFJlamVjdGVkIGNvbW1hbmQ6IDB4JTA4WFxuIiwgKmNtZCk7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+ IC0JfQo+IC0KPiAtCWlmICgoZGVzYy0+ZmxhZ3MgJiBDTURfREVTQ19NQVNURVIpICYmICFpc19t YXN0ZXIpIHsKPiAtCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IFJlamVjdGVkIG1hc3Rlci1vbmx5 IGNvbW1hbmQ6IDB4JTA4WFxuIiwKPiAtCQkJCSAqY21kKTsKPiAtCQlyZXR1cm4gZmFsc2U7Cj4g LQl9Cj4gLQo+ICAJaWYgKGRlc2MtPmZsYWdzICYgQ01EX0RFU0NfUkVHSVNURVIpIHsKPiAgCQkv Kgo+ICAJCSAqIEdldCB0aGUgZGlzdGFuY2UgYmV0d2VlbiBpbmRpdmlkdWFsIHJlZ2lzdGVyIG9m ZnNldAo+IEBAIC0xMDI3LDE0ICs5ODgsMTUgQEAgaW50IGk5MTVfcGFyc2VfY21kcyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAJCSAgICB1MzIgYmF0Y2hfbGVuLAo+ICAJCSAgICBi b29sIGlzX21hc3RlcikKPiAgewo+IC0JY29uc3Qgc3RydWN0IGRybV9pOTE1X2NtZF9kZXNjcmlw dG9yICpkZXNjOwo+ICsJc3RydWN0IGRybV9pOTE1X2NtZF9kZXNjcmlwdG9yIGRlZmF1bHRfZGVz YyA9IHsgQ01EX0RFU0NfU0tJUCB9Owo+ICsJY29uc3Qgc3RydWN0IGRybV9pOTE1X2NtZF9kZXNj cmlwdG9yICpkZXNjID0gJmRlZmF1bHRfZGVzYzsKPiArCXUzMiBsYXN0X2NtZF9oZWFkZXIgPSAw Owo+ICAJdW5zaWduZWQgZHN0X2l0ZXIsIHNyY19pdGVyOwo+ICAJaW50IG5lZWRzX2NsZmx1c2gg PSAwOwo+ICAJc3RydWN0IGdldF9wYWdlIHJld2luZDsKPiAgCXZvaWQgKnNyYywgKmRzdCwgKnRt cDsKPiAtCXUzMiBwYXJ0aWFsLCBsZW5ndGg7Cj4gKwl1MzIgcGFydGlhbCwgbGVuZ3RoID0gMTsK PiAgCXVuc2lnbmVkIGluLCBvdXQ7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfY21kX2Rlc2NyaXB0b3Ig ZGVmYXVsdF9kZXNjID0geyAwIH07Cj4gIAlib29sIG9hY29udHJvbF9zZXQgPSBmYWxzZTsgLyog T0FDT05UUk9MIHRyYWNraW5nLiBTZWUgY2hlY2tfY21kKCkgKi8KPiAgCWludCByZXQgPSAwOwo+ ICAKPiBAQCAtMTEwMCw0MCArMTA2Miw2MyBAQCBpbnQgaTkxNV9wYXJzZV9jbWRzKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAkJcGFydGlhbCA9IDA7Cj4gIAo+ICAJCWRvIHsKPiAt CQkJaWYgKCpjbWQgPT0gTUlfQkFUQ0hfQlVGRkVSX0VORCkgewo+IC0JCQkJaWYgKG9hY29udHJv bF9zZXQpIHsKPiAtCQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IGJhdGNoIHNldCBPQUNPTlRS T0wgYnV0IGRpZCBub3QgY2xlYXIgaXRcbiIpOwo+IC0JCQkJCWdvdG8gdW5tYXA7Cj4gKwkJCWlm ICgqY21kICE9IGxhc3RfY21kX2hlYWRlcikgewo+ICsJCQkJaWYgKCpjbWQgPT0gTUlfQkFUQ0hf QlVGRkVSX0VORCkgewo+ICsJCQkJCWlmICh1bmxpa2VseShvYWNvbnRyb2xfc2V0KSkgewo+ICsJ CQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IGJhdGNoIHNldCBPQUNPTlRST0wgYnV0IGRpZCBu b3QgY2xlYXIgaXRcbiIpOwo+ICsJCQkJCQlnb3RvIHVubWFwOwo+ICsJCQkJCX0KPiArCj4gKwkJ CQkJY21kKys7IC8qIGNvcHkgdGhpcyBjbWQgdG8gZHN0ICovCj4gKwkJCQkJYmF0Y2hfbGVuID0g dGhpczsgLyogbm8gbW9yZSBzcmMgKi8KPiArCQkJCQlyZXQgPSAwOwo+ICsJCQkJCWJyZWFrOwo+ ICAJCQkJfQo+ICAKPiAtCQkJCWNtZCsrOyAvKiBjb3B5IHRoaXMgY21kIHRvIGRzdCAqLwo+IC0J CQkJYmF0Y2hfbGVuID0gdGhpczsgLyogbm8gbW9yZSBzcmMgKi8KPiAtCQkJCXJldCA9IDA7Cj4g LQkJCQlicmVhazsKPiAtCQkJfQo+IC0KPiAtCQkJZGVzYyA9IGZpbmRfY21kKHJpbmcsICpjbWQs ICZkZWZhdWx0X2Rlc2MpOwo+IC0JCQlpZiAoIWRlc2MpIHsKPiAtCQkJCURSTV9ERUJVR19EUklW RVIoIkNNRDogVW5yZWNvZ25pemVkIGNvbW1hbmQ6IDB4JTA4WFxuIiwKPiAtCQkJCQkJICpjbWQp Owo+IC0JCQkJZ290byB1bm1hcDsKPiAtCQkJfQo+ICsJCQkJZGVzYyA9IGZpbmRfY21kX2luX3Rh YmxlKHJpbmcsICpjbWQpOwo+ICsJCQkJaWYgKGRlc2MpIHsKPiArCQkJCQlpZiAodW5saWtlbHko ZGVzYy0+ZmxhZ3MgJiBDTURfREVTQ19SRUpFQ1QpKSB7Cj4gKwkJCQkJCURSTV9ERUJVR19EUklW RVIoIkNNRDogUmVqZWN0ZWQgY29tbWFuZDogMHglMDhYXG4iLCAqY21kKTsKPiArCQkJCQkJZ290 byB1bm1hcDsKPiArCQkJCQl9Cj4gKwo+ICsJCQkJCWlmICh1bmxpa2VseSgoZGVzYy0+ZmxhZ3Mg JiBDTURfREVTQ19NQVNURVIpICYmICFpc19tYXN0ZXIpKSB7Cj4gKwkJCQkJCURSTV9ERUJVR19E UklWRVIoIkNNRDogUmVqZWN0ZWQgbWFzdGVyLW9ubHkgY29tbWFuZDogMHglMDhYXG4iLCAqY21k KTsKPiArCQkJCQkJZ290byB1bm1hcDsKPiArCQkJCQl9Cj4gKwo+ICsJCQkJCS8qCj4gKwkJCQkJ ICogSWYgdGhlIGJhdGNoIGJ1ZmZlciBjb250YWlucyBhCj4gKwkJCQkJICogY2hhaW5lZCBiYXRj aCwgcmV0dXJuIGFuIGVycm9yIHRoYXQKPiArCQkJCQkgKiB0ZWxscyB0aGUgY2FsbGVyIHRvIGFi b3J0IGFuZAo+ICsJCQkJCSAqIGRpc3BhdGNoIHRoZSB3b3JrbG9hZCBhcyBhCj4gKwkJCQkJICog bm9uLXNlY3VyZSBiYXRjaC4KPiArCQkJCQkgKi8KPiArCQkJCQlpZiAodW5saWtlbHkoZGVzYy0+ Y21kLnZhbHVlID09IE1JX0JBVENIX0JVRkZFUl9TVEFSVCkpIHsKPiArCQkJCQkJcmV0ID0gLUVB Q0NFUzsKPiArCQkJCQkJZ290byB1bm1hcDsKPiArCQkJCQl9Cj4gKwo+ICsJCQkJCWlmIChkZXNj LT5mbGFncyAmIENNRF9ERVNDX0ZJWEVEKQo+ICsJCQkJCQlsZW5ndGggPSBkZXNjLT5sZW5ndGgu Zml4ZWQ7Cj4gKwkJCQkJZWxzZQo+ICsJCQkJCQlsZW5ndGggPSAoKmNtZCAmIGRlc2MtPmxlbmd0 aC5tYXNrKSArIExFTkdUSF9CSUFTOwo+ICsJCQkJfSBlbHNlIHsKPiArCQkJCQl1MzIgbWFzayA9 IHJpbmctPmdldF9jbWRfbGVuZ3RoX21hc2soKmNtZCk7Cj4gKwkJCQkJaWYgKHVubGlrZWx5KCFt YXNrKSkgewo+ICsJCQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IFVucmVjb2duaXplZCBjb21t YW5kOiAweCUwOFhcbiIsICpjbWQpOwo+ICsJCQkJCQlnb3RvIHVubWFwOwo+ICsJCQkJCX0KPiAr Cj4gKwkJCQkJZGVmYXVsdF9kZXNjLmxlbmd0aC5tYXNrID0gbWFzazsKPiArCQkJCQlkZXNjID0g JmRlZmF1bHRfZGVzYzsKPiArCj4gKwkJCQkJbGVuZ3RoID0gKCpjbWQgJiBtYXNrKSArIExFTkdU SF9CSUFTOwo+ICsJCQkJfQo+ICAKPiAtCQkJLyoKPiAtCQkJICogSWYgdGhlIGJhdGNoIGJ1ZmZl ciBjb250YWlucyBhIGNoYWluZWQgYmF0Y2gsIHJldHVybiBhbgo+IC0JCQkgKiBlcnJvciB0aGF0 IHRlbGxzIHRoZSBjYWxsZXIgdG8gYWJvcnQgYW5kIGRpc3BhdGNoIHRoZQo+IC0JCQkgKiB3b3Jr bG9hZCBhcyBhIG5vbi1zZWN1cmUgYmF0Y2guCj4gLQkJCSAqLwo+IC0JCQlpZiAoZGVzYy0+Y21k LnZhbHVlID09IE1JX0JBVENIX0JVRkZFUl9TVEFSVCkgewo+IC0JCQkJcmV0ID0gLUVBQ0NFUzsK PiAtCQkJCWdvdG8gdW5tYXA7Cj4gKwkJCQlsYXN0X2NtZF9oZWFkZXIgPSAqY21kOwo+ICAJCQl9 Cj4gIAo+IC0JCQlpZiAoZGVzYy0+ZmxhZ3MgJiBDTURfREVTQ19GSVhFRCkKPiAtCQkJCWxlbmd0 aCA9IGRlc2MtPmxlbmd0aC5maXhlZDsKPiAtCQkJZWxzZQo+IC0JCQkJbGVuZ3RoID0gKCgqY21k ICYgZGVzYy0+bGVuZ3RoLm1hc2spICsgTEVOR1RIX0JJQVMpOwo+IC0KPiAgCQkJaWYgKHVubGlr ZWx5KGNtZCArIGxlbmd0aCA+IHBhZ2VfZW5kKSkgewo+ICAJCQkJaWYgKHVubGlrZWx5KGNtZCAr IGxlbmd0aCA+IGJhdGNoX2VuZCkpIHsKPiAgCQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IENv bW1hbmQgbGVuZ3RoIGV4Y2VlZHMgYmF0Y2ggbGVuZ3RoOiAweCUwOFggbGVuZ3RoPSV1IGJhdGNo bGVuPSV0ZFxuIiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA4ZDkzOTY0OWI5MTku LjI4ZDViZmNlYWUzYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yMzMzLDEy ICsyMzMzLDEyIEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfZGVzY3JpcHRvciB7Cj4gIAkgKiAgICAg ICAgICAgICAgICAgIGlzIHRoZSBEUk0gbWFzdGVyCj4gIAkgKi8KPiAgCXUzMiBmbGFnczsKPiAr I2RlZmluZSBDTURfREVTQ19TS0lQICAgICAoMCkKPiAgI2RlZmluZSBDTURfREVTQ19GSVhFRCAg ICAoMTw8MCkKPiAtI2RlZmluZSBDTURfREVTQ19TS0lQICAgICAoMTw8MSkKPiAtI2RlZmluZSBD TURfREVTQ19SRUpFQ1QgICAoMTw8MikKPiAtI2RlZmluZSBDTURfREVTQ19SRUdJU1RFUiAoMTw8 MykKPiAtI2RlZmluZSBDTURfREVTQ19CSVRNQVNLICAoMTw8NCkKPiAtI2RlZmluZSBDTURfREVT Q19NQVNURVIgICAoMTw8NSkKPiArI2RlZmluZSBDTURfREVTQ19SRUpFQ1QgICAoMTw8MSkKPiAr I2RlZmluZSBDTURfREVTQ19SRUdJU1RFUiAoMTw8MikKPiArI2RlZmluZSBDTURfREVTQ19CSVRN QVNLICAoMTw8MykKPiArI2RlZmluZSBDTURfREVTQ19NQVNURVIgICAoMTw8NCkKPiAgCj4gIAkv Kgo+ICAJICogVGhlIGNvbW1hbmQncyB1bmlxdWUgaWRlbnRpZmljYXRpb24gYml0cyBhbmQgdGhl IGJpdG1hc2sgdG8gZ2V0IHRoZW0uCj4gLS0gCj4gMi42LjIKPiAKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK