From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 6/6] drm: Add DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags Date: Thu, 4 Aug 2016 10:42:05 +0300 Message-ID: <20160804074205.GY4329@intel.com> References: <1470281981-18172-1-git-send-email-michel@daenzer.net> <1470281981-18172-7-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470281981-18172-7-git-send-email-michel@daenzer.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Michel =?iso-8859-1?Q?D=E4nzer?= Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org T24gVGh1LCBBdWcgMDQsIDIwMTYgYXQgMTI6Mzk6NDFQTSArMDkwMCwgTWljaGVsIETDpG56ZXIg d3JvdGU6Cj4gRnJvbTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+Cj4g Cj4gVGhlc2UgZmxhZ3MgYWxsb3cgdXNlcnNwYWNlIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUg dGFyZ2V0IHZlcnRpY2FsCj4gYmxhbmsgcGVyaW9kIHdoZW4gYSBmbGlwIHNob3VsZCB0YWtlIGVm ZmVjdC4KCkkgbGlrZSB0aGUgaWRlYS4gQXRvbWljIGNvdWxkIHVzZSB0aGlzIHRvbywgYWx0aG91 Z2ggdGhlcmUgd2UnZCBuZWVkIHRvCnBvdGVudGlhbGx5IHBhc3MgaW4gYSB0YXJnZXQgdmJsYW5r IGZvciBlYWNoIGNydGMgdGFraW5nIHBhcnQgb2YgdGhlCm9wZXJhdGlvbiwgb3IgSSBzdXBwb3Nl IHlvdSBjb3VsZCBwYXNzIGl0IG9ubHkgZm9yLCBzYXksIGEgc2luZ2xlIGNydGMKaW4gY2FzZSB5 b3Ugb25seSB3YW50IG90IHN5bmMgdG8gdGhhdCBvbmUuCgpPbmUgdGhpbmcgSSd2ZSBwb25kZXJl ZCBpbiB0aGUgcGFzdCBpcyB0aGUgT01MX3N5bmNfY29udHJvbCBtb2R1bG8gc3R1ZmYuCkxvb2tz IGxpa2Ugd2hhdCB5b3UgaGF2ZSBoZXJlIHdvbid0IGZyZWUgdXAgdXNlcnNwYWNlIGZyb20gZG9p bmcgdGhlCndhaXRfdmJsYW5rK2ZsaXAgc2VxdWVuY2UgaWYgaXQgd2FudHMgdG8gaW1wbGVtZW50 IHRoZSBtb2R1bG8gYmVoYXZpb3VyLgpBbmQgb2YgY291cnNlIGl0J3Mgc3RpbGwgbm90IGd1YXJh bnRlZWQgdG8gaG9ub3IgdGhlIG1vZHVsbyBpZiwgZm9yCmluc3RhbmNlLCB0aGUgZmxpcCBpb2N0 bCBpdHNlbGYgZ2V0cyBibG9ja2VkIG9uIGEgbXV0ZXggZm9yIGEgd2VlIGJpdCB0b28KbG9uZyBh bmQgbWlzc2VzIHRoZSB0YXJnZXQuIFNvIHNob3VsZCB3ZSBqdXN0IGltcGxlbWVudCB0aGUgbW9k dWxvIHN0dWZmCmluIHRoZSBrZXJuZWwgaW5zdGVhZD8KCj4gU2lnbmVkLW9mZi1ieTogTWljaGVs IETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+Cj4gLS0tCj4gCj4gTm90ZSB0aGF0IHRo ZSBwcmV2aW91cyBwYXRjaGVzIGluIHRoaXMgc2VyaWVzIGNhbiBhdm9pZCBkZWxheWluZyBwYWdl Cj4gZmxpcHMgaW4gc29tZSBjYXNlcyBldmVuIHdpdGhvdXQgdGhpcyBwYXRjaCBvciBhbnkgY29y cmVzcG9uZGluZwo+IHVzZXJzcGFjZSBjaGFuZ2VzLiBIZXJlIGFyZSBleGFtcGxlcyBvZiBob3cg dXNlcnNwYWNlIGNhbiB0YWtlIGFkdmFudGFnZQo+IG9mIHRoaXMgcGF0Y2ggdG8gYXZvaWQgZGVs YXlpbmcgcGFnZSBmbGlwcyBpbiBldmVuIG1vcmUgY2FzZXM6Cj4gCj4gaHR0cHM6Ly9jZ2l0LmZy ZWVkZXNrdG9wLm9yZy9+ZGFlbnplci94Zjg2LXZpZGVvLWF0aS9jb21taXQvP2lkPWZjODg0YThh ZjI1MzQ1YzMyYmQ0MTA0Yzg2NGVjZmViOWJiM2RiOWIKPiAKPiBodHRwczovL2NnaXQuZnJlZWRl c2t0b3Aub3JnL35kYWVuemVyL3hmODYtdmlkZW8tYW1kZ3B1L2NvbW1pdC8/aWQ9Yjg2MzFhOWJh NDljMGQwZWJlNWRjZDFkYmZiNjhmY2ZlOTA3Mjk2Zgo+IAo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2NydGMuYyAgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIHwgIDggKysrKysrKysKPiAgaW5jbHVk ZS91YXBpL2RybS9kcm0uaCAgICAgIHwgIDEgKwo+ICBpbmNsdWRlL3VhcGkvZHJtL2RybV9tb2Rl LmggfCAyNCArKysrKysrKysrKysrKysrKysrLS0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDY5IGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gaW5kZXggMTVh ZDdlMi4uYjJmZDg2MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gQEAgLTU0MjEsMTEgKzU0MjEsMTkg QEAgaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBOVUxMOwo+ICAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSA9IE5VTEw7Cj4g LQl1MzIgdGFyZ2V0X3ZibGFuayA9IDA7Cj4gKwl1MzIgdGFyZ2V0X3ZibGFuayA9IHBhZ2VfZmxp cC0+c2VxdWVuY2U7Cj4gIAlpbnQgcmV0ID0gLUVJTlZBTDsKPiAgCj4gLQlpZiAocGFnZV9mbGlw LT5mbGFncyAmIH5EUk1fTU9ERV9QQUdFX0ZMSVBfRkxBR1MgfHwKPiAtCSAgICBwYWdlX2ZsaXAt PnJlc2VydmVkICE9IDApCj4gKwlpZiAocGFnZV9mbGlwLT5mbGFncyAmIH5EUk1fTU9ERV9QQUdF X0ZMSVBfRkxBR1MpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKHBhZ2VfZmxpcC0+ c2VxdWVuY2UgIT0gMCAmJiAhKHBhZ2VfZmxpcC0+ZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBf VEFSR0VUKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwkvKiBPbmx5IG9uZSBvZiB0aGUg RFJNX01PREVfUEFHRV9GTElQX1RBUkdFVF9BQlNPTFVURS9SRUxBVElWRSBmbGFncwo+ICsJICog Y2FuIGJlIHNwZWNpZmllZAo+ICsJICovCj4gKwlpZiAoKHBhZ2VfZmxpcC0+ZmxhZ3MgJiBEUk1f TU9ERV9QQUdFX0ZMSVBfVEFSR0VUKSA9PSBEUk1fTU9ERV9QQUdFX0ZMSVBfVEFSR0VUKQo+ICAJ CXJldHVybiAtRUlOVkFMOwo+ICAKPiAgCWlmICgocGFnZV9mbGlwLT5mbGFncyAmIERSTV9NT0RF X1BBR0VfRkxJUF9BU1lOQykgJiYgIWRldi0+bW9kZV9jb25maWcuYXN5bmNfcGFnZV9mbGlwKQo+ IEBAIC01NDM2LDE1ICs1NDQ0LDQxIEBAIGludCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQlyZXR1cm4gLUVOT0VOVDsKPiAgCj4gIAlpZiAoY3J0 Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQpIHsKPiArCQl1MzIgY3VycmVudF92Ymxhbms7Cj4g IAkJaW50IHI7Cj4gIAo+ICAJCXIgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwo+ICAJCWlm IChyKQo+ICAJCQlyZXR1cm4gcjsKPiAgCj4gLQkJdGFyZ2V0X3ZibGFuayA9IGRybV9jcnRjX3Zi bGFua19jb3VudChjcnRjKSArCj4gLQkJCSEocGFnZV9mbGlwLT5mbGFncyAmIERSTV9NT0RFX1BB R0VfRkxJUF9BU1lOQyk7Cj4gLQl9IGVsc2UgaWYgKGNydGMtPmZ1bmNzLT5wYWdlX2ZsaXAgPT0g TlVMTCkKPiArCQljdXJyZW50X3ZibGFuayA9IGRybV9jcnRjX3ZibGFua19jb3VudChjcnRjKTsK PiArCj4gKwkJc3dpdGNoIChwYWdlX2ZsaXAtPmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX1RB UkdFVCkgewo+ICsJCWNhc2UgRFJNX01PREVfUEFHRV9GTElQX1RBUkdFVF9BQlNPTFVURToKPiAr CQkJaWYgKChpbnQpKHRhcmdldF92YmxhbmsgLSBjdXJyZW50X3ZibGFuaykgPiAxKSB7Cj4gKwkJ CQlEUk1fREVCVUcoIkludmFsaWQgYWJzb2x1dGUgZmxpcCB0YXJnZXQgJXUsICIKPiArCQkJCQkg ICJtdXN0IGJlIDw9ICV1XG4iLCB0YXJnZXRfdmJsYW5rLAo+ICsJCQkJCSAgY3VycmVudF92Ymxh bmsgKyAxKTsKPiArCQkJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7Cj4gKwkJCQlyZXR1cm4g LUVJTlZBTDsKPiArCQkJfQo+ICsJCQlicmVhazsKPiArCQljYXNlIERSTV9NT0RFX1BBR0VfRkxJ UF9UQVJHRVRfUkVMQVRJVkU6Cj4gKwkJCWlmICh0YXJnZXRfdmJsYW5rICE9IDAgJiYgdGFyZ2V0 X3ZibGFuayAhPSAxKSB7Cj4gKwkJCQlEUk1fREVCVUcoIkludmFsaWQgcmVsYXRpdmUgZmxpcCB0 YXJnZXQgJXUsICIKPiArCQkJCQkgICJtdXN0IGJlIDAgb3IgMVxuIiwgdGFyZ2V0X3ZibGFuayk7 Cj4gKwkJCQlkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpOwo+ICsJCQkJcmV0dXJuIC1FSU5WQUw7 Cj4gKwkJCX0KPiArCQkJdGFyZ2V0X3ZibGFuayArPSBjdXJyZW50X3ZibGFuazsKPiArCQkJYnJl YWs7Cj4gKwkJZGVmYXVsdDoKPiArCQkJdGFyZ2V0X3ZibGFuayA9IGN1cnJlbnRfdmJsYW5rICsK PiArCQkJCSEocGFnZV9mbGlwLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQyk7Cj4g KwkJCWJyZWFrOwo+ICsJCX0KPiArCX0gZWxzZSBpZiAoY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcCA9 PSBOVUxMIHx8Cj4gKwkJICAgKHBhZ2VfZmxpcC0+ZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBf VEFSR0VUKSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gIAlkcm1fbW9kZXNldF9sb2NrX2Ny dGMoY3J0YywgY3J0Yy0+cHJpbWFyeSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+IGluZGV4IDMzYWY0YTUu LjAwOTlkMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4gQEAgLTIyOCw2ICsyMjgsNyBAQCBzdGF0 aWMgaW50IGRybV9nZXRzdGF0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ ICBzdGF0aWMgaW50IGRybV9nZXRjYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2V0X2Nh cCAqcmVxID0gZGF0YTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCj4gIAlyZXEtPnZh bHVlID0gMDsKPiAgCXN3aXRjaCAocmVxLT5jYXBhYmlsaXR5KSB7Cj4gQEAgLTI1NCw2ICsyNTUs MTMgQEAgc3RhdGljIGludCBkcm1fZ2V0Y2FwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV8KPiAgCWNhc2UgRFJNX0NBUF9BU1lOQ19QQUdF X0ZMSVA6Cj4gIAkJcmVxLT52YWx1ZSA9IGRldi0+bW9kZV9jb25maWcuYXN5bmNfcGFnZV9mbGlw Owo+ICAJCWJyZWFrOwo+ICsJY2FzZSBEUk1fQ0FQX1BBR0VfRkxJUF9UQVJHRVQ6Cj4gKwkJcmVx LT52YWx1ZSA9IDE7Cj4gKwkJZHJtX2Zvcl9lYWNoX2NydGMoY3J0YywgZGV2KSB7Cj4gKwkJCWlm ICghY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcF90YXJnZXQpCj4gKwkJCQlyZXEtPnZhbHVlID0gMDsK PiArCQl9Cj4gKwkJYnJlYWs7Cj4gIAljYXNlIERSTV9DQVBfQ1VSU09SX1dJRFRIOgo+ICAJCWlm IChkZXYtPm1vZGVfY29uZmlnLmN1cnNvcl93aWR0aCkKPiAgCQkJcmVxLT52YWx1ZSA9IGRldi0+ bW9kZV9jb25maWcuY3Vyc29yX3dpZHRoOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJt L2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAo+IGluZGV4IDQ1MjY3NWYuLmIyYzUyODQg MTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaAo+ICsrKyBiL2luY2x1ZGUvdWFw aS9kcm0vZHJtLmgKPiBAQCAtNjQ2LDYgKzY0Niw3IEBAIHN0cnVjdCBkcm1fZ2VtX29wZW4gewo+ ICAjZGVmaW5lIERSTV9DQVBfQ1VSU09SX1dJRFRICQkweDgKPiAgI2RlZmluZSBEUk1fQ0FQX0NV UlNPUl9IRUlHSFQJCTB4OQo+ICAjZGVmaW5lIERSTV9DQVBfQURERkIyX01PRElGSUVSUwkweDEw Cj4gKyNkZWZpbmUgRFJNX0NBUF9QQUdFX0ZMSVBfVEFSR0VUCTB4MTEKPiAgCj4gIC8qKiBEUk1f SU9DVExfR0VUX0NBUCBpb2N0bCBhcmd1bWVudCB0eXBlICovCj4gIHN0cnVjdCBkcm1fZ2V0X2Nh cCB7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUv dWFwaS9kcm0vZHJtX21vZGUuaAo+IGluZGV4IDQ5YTcyNjUuLjE3NWFhMWYgMTAwNjQ0Cj4gLS0t IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9k cm1fbW9kZS5oCj4gQEAgLTUyMCw3ICs1MjAsMTMgQEAgc3RydWN0IGRybV9jb2xvcl9sdXQgewo+ ICAKPiAgI2RlZmluZSBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQgMHgwMQo+ICAjZGVmaW5lIERS TV9NT0RFX1BBR0VfRkxJUF9BU1lOQyAweDAyCj4gLSNkZWZpbmUgRFJNX01PREVfUEFHRV9GTElQ X0ZMQUdTIChEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlR8RFJNX01PREVfUEFHRV9GTElQX0FTWU5D KQo+ICsjZGVmaW5lIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVRfQUJTT0xVVEUgMHg0Cj4gKyNk ZWZpbmUgRFJNX01PREVfUEFHRV9GTElQX1RBUkdFVF9SRUxBVElWRSAweDgKPiArI2RlZmluZSBE Uk1fTU9ERV9QQUdFX0ZMSVBfVEFSR0VUIChEUk1fTU9ERV9QQUdFX0ZMSVBfVEFSR0VUX0FCU09M VVRFIHwgXAo+ICsJCQkJICAgRFJNX01PREVfUEFHRV9GTElQX1RBUkdFVF9SRUxBVElWRSkKPiAr I2RlZmluZSBEUk1fTU9ERV9QQUdFX0ZMSVBfRkxBR1MgKERSTV9NT0RFX1BBR0VfRkxJUF9FVkVO VCB8IFwKPiArCQkJCSAgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DIHwgXAo+ICsJCQkJICBEUk1f TU9ERV9QQUdFX0ZMSVBfVEFSR0VUKQo+ICAKPiAgLyoKPiAgICogUmVxdWVzdCBhIHBhZ2UgZmxp cCBvbiB0aGUgc3BlY2lmaWVkIGNydGMuCj4gQEAgLTU0MywxNSArNTQ5LDI1IEBAIHN0cnVjdCBk cm1fY29sb3JfbHV0IHsKPiAgICogJ2FzIHNvb24gYXMgcG9zc2libGUnLCBtZWFuaW5nIHRoYXQg aXQgbm90IGRlbGF5IHdhaXRpbmcgZm9yIHZibGFuay4KPiAgICogVGhpcyBtYXkgY2F1c2UgdGVh cmluZyBvbiB0aGUgc2NyZWVuLgo+ICAgKgo+IC0gKiBUaGUgcmVzZXJ2ZWQgZmllbGQgbXVzdCBi ZSB6ZXJvIHVudGlsIHdlIGZpZ3VyZSBvdXQgc29tZXRoaW5nCj4gLSAqIGNsZXZlciB0byB1c2Ug aXQgZm9yLgo+ICsgKiBUaGUgc2VxdWVuY2UgZmllbGQgbXVzdCBiZSB6ZXJvIHVubGVzcyBlaXRo ZXIgb2YgdGhlCj4gKyAqIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVRfQUJTT0xVVEUvUkVMQVRJ VkUgZmxhZ3MgaXMgc3BlY2lmaWVkLiBXaGVuCj4gKyAqIHRoZSBBQlNPTFVURSBmbGFnIGlzIHNw ZWNpZmllZCwgdGhlIHNlcXVlbmNlIGZpZWxkIGRlbm90ZXMgdGhlIGFic29sdXRlCj4gKyAqIHZi bGFuayBzZXF1ZW5jZSB3aGVuIHRoZSBmbGlwIHNob3VsZCB0YWtlIGVmZmVjdC4gV2hlbiB0aGUg UkVMQVRJVkUKPiArICogZmxhZyBpcyBzcGVjaWZpZWQsIHRoZSBzZXF1ZW5jZSBmaWVsZCBkZW5v dGVzIHRoZSByZWxhdGl2ZSAodG8gdGhlCj4gKyAqIGN1cnJlbnQgb25lIHdoZW4gdGhlIGlvY3Rs IGlzIGNhbGxlZCkgdmJsYW5rIHNlcXVlbmNlIHdoZW4gdGhlIGZsaXAKPiArICogc2hvdWxkIHRh a2UgZWZmZWN0LiBOT1RFOiBEUk1fSU9DVExfV0FJVF9WQkxBTksgbXVzdCBzdGlsbCBiZSB1c2Vk IHRvCj4gKyAqIG1ha2Ugc3VyZSB0aGUgdmJsYW5rIHNlcXVlbmNlIGJlZm9yZSB0aGUgdGFyZ2V0 IG9uZSBoYXMgcGFzc2VkIGJlZm9yZQo+ICsgKiBjYWxsaW5nIHRoaXMgaW9jdGwuIFRoZSBwdXJw b3NlIG9mIHRoZQo+ICsgKiBEUk1fTU9ERV9QQUdFX0ZMSVBfVEFSR0VUX0FCU09MVVRFL1JFTEFU SVZFIGZsYWdzIGlzIG1lcmVseSB0byBjbGFyaWZ5Cj4gKyAqIHRoZSB0YXJnZXQgZm9yIHdoZW4g Y29kZSBkZWFsaW5nIHdpdGggYSBwYWdlIGZsaXAgcnVucyBkdXJpbmcgYQo+ICsgKiB2ZXJ0aWNh bCBibGFuayBwZXJpb2QuCj4gICAqLwo+ICAKPiAgc3RydWN0IGRybV9tb2RlX2NydGNfcGFnZV9m bGlwIHsKPiAgCV9fdTMyIGNydGNfaWQ7Cj4gIAlfX3UzMiBmYl9pZDsKPiAgCV9fdTMyIGZsYWdz Owo+IC0JX191MzIgcmVzZXJ2ZWQ7Cj4gKwlfX3UzMiBzZXF1ZW5jZTsKPiAgCV9fdTY0IHVzZXJf ZGF0YTsKPiAgfTsKPiAgCj4gLS0gCj4gMi44LjEKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwg T1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=