From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20190627102019.9019-1-tvrtko.ursulin@linux.intel.com> <20190627105343.9325-1-tvrtko.ursulin@linux.intel.com> <20190627201530.GA2876@intel.intel> From: Tvrtko Ursulin Message-ID: <86d9e921-1bdc-83de-7e09-90a090c70896@linux.intel.com> Date: Fri, 28 Jun 2019 06:39:17 +0100 MIME-Version: 1.0 In-Reply-To: <20190627201530.GA2876@intel.intel> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t v2] tests/i915/gem_ctx_switch: Update with engine discovery List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Andi Shyti Cc: igt-dev@lists.freedesktop.org, Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: Ck9uIDI3LzA2LzIwMTkgMjE6MTUsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gCj4gSGkgVHZydGtvLAo+ IAo+PiArY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICoKPj4gK2dlbV9lYl9m bGFnc190b19lbmdpbmUodW5zaWduZWQgaW50IGZsYWdzKQo+PiArewo+PiArCWNvbnN0IHN0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTI7Cj4+ICsKPj4gKwlfX2Zvcl9lYWNoX3N0YXRp Y19lbmdpbmUoZTIpIHsKPj4gKwkJaWYgKGUyLT5mbGFncyA9PSBmbGFncykKPj4gKwkJCXJldHVy biBlMjsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gTlVMTDsKPj4gK30KPiAKPiB0aGUgYW1vdW50 IG9mICJoZWxwZXJzIiBpcyBnZXR0aW5nIGFsbW9zdCB1bmJlYXJhYmxlIGZvciBhIHNpbXBsZQo+ IG1pbmQgbGlrZSBtaW5lLgo+IAo+IFRoaXMgbWVhbnMgdGhhdCB3ZSBjYW4gZ2V0IHJpZCBvZgo+ IAo+ICAgZ2VtX2V4ZWNidWZfZmxhZ3NfdG9fZW5naW5lX2NsYXNzCj4gICBnZW1fcmluZ19pc19w aHlzaWNhbF9lbmdpbmUKPiAgIGdlbV9yaW5nX2hhc19waHlzaWNhbF9lbmdpbmUKPiAKPiBpbiBp Z3RfZ3QuYywgcmlnaHQ/CgpJZi93aGVuIHRoZXJlIGFyZSBubyBjYWxsZXJzIGxlZnQgd2UgY2Fu IGxpa2UgZXZlcnl0aGluZy4gSSBkb250JyBrbm93IAppZiB0aGF0IGlzIHRoZSBjYXNlIHJpZ2h0 IG5vdy4KCj4+ICtib29sIGdlbV9jb250ZXh0X2hhc19lbmdpbmVfbWFwKGludCBmZCwgdWludDMy X3QgY3R4KQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBwYXJh bSA9IHsKPj4gKwkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMsCj4+ICsJCS5j dHhfaWQgPSBjdHgKPj4gKwl9Owo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlyZXQgPSBfX2dlbV9j b250ZXh0X2dldF9wYXJhbShmZCwgJnBhcmFtKTsKPj4gKwlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7 Cj4+ICsKPj4gKwlyZXR1cm4gcGFyYW0uc2l6ZTsKPiAKPiBhIHNtYWxsIG5pdHBpY2s6IGJvb2wg dG8gbWUgbWVhbnMgJzAnIG9yICcxJy4KPiAKPiBTbywgaWYgeW91IGRvICdyZXR1cm4gcGFyYW0u c2l6ZScsIEkgd291bGQgY2FsbCB0aGUgZnVuY3Rpb24KPiBnZW1fY29udGV4dF9nZXRfcGFyYW1f c2l6ZSwgb3RoZXJ3aXNlIEkgd291bGQgcmV0dXJuCj4gJyEhcGFyYW0uc2l6ZScgYW5kIGtlZXAg aXQgYm9vbC4KClNvbWUgcGVvcGxlIHdvdWxkIHRoZW4gY29tcGxhaW4gISEgd2FzIG5vdCBuZWVk ZWQuIH5vfgoKQW5kIGFjdHVhbGx5IEkgdGhpbmsgSSB3YW50IHRvIHJlbW92ZSB0aGUgZGlzdGlu Y3Rpb24gb2Ygbm8gbWFwIGFuZCBtYXAgCndpdGggbm8gZW5naW5lcyBmb3IgdGhlIGNhbGxlcnMg b2YgdGhpcyBoZWxwZXJzLiBTbyByZXR1cm5pbmcgc2l6ZSB3b3VsZCAKbm90IHdvcmsgZm9yIHRo YXQuCgo+IChXZSBhcmUgYWxzbyBzb21laG93IGFidXNpbmcgb24gdGhlIHNpemUgZGVmaW5pdGlv biBvZiBib29sIGluCj4gQzk5L0MxNyBvciBwcmV2aW91cy4pCj4gCj4gSSdtIG5vdCBhc2tpbmcg eW91IHRvIGNoYW5nZSBpdCwgYnV0IGl0IHdvdWxkIG1ha2UgbWUgaGFwcGllciA6KQoKSSBkb24n dCB1bmRlcnN0YW5kIHRoZSBpc3N1ZSB3aXRoIHNpemUgZGVmaW5pdGlvbi4gU2l6ZSBpcyB1MzIg LSB3aWxsIApub3QgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGp1c3Qgd29yaz8KCj4gCj4+ ICt9Cj4+IGRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmggYi9saWIv aTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKPj4gaW5kZXggMjQxNWZkMWUzNzliLi5iMTc1NDgz ZmFjMWMgMTAwNjQ0Cj4+IC0tLSBhL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAo+PiAr KysgYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKPj4gQEAgLTUzLDYgKzUzLDExIEBA IGludCBnZW1fY29udGV4dF9sb29rdXBfZW5naW5lKGludCBmZCwgdWludDY0X3QgZW5naW5lLCB1 aW50MzJfdCBjdHhfaWQsCj4+ICAgCj4+ICAgdm9pZCBnZW1fY29udGV4dF9zZXRfYWxsX2VuZ2lu ZXMoaW50IGZkLCB1aW50MzJfdCBjdHgpOwo+PiAgIAo+PiArYm9vbCBnZW1fY29udGV4dF9oYXNf ZW5naW5lX21hcChpbnQgZmQsIHVpbnQzMl90IGN0eCk7Cj4+ICsKPj4gK2NvbnN0IHN0cnVjdCBp bnRlbF9leGVjdXRpb25fZW5naW5lMiAqCj4+ICtnZW1fZWJfZmxhZ3NfdG9fZW5naW5lKHVuc2ln bmVkIGludCBmbGFncyk7Cj4+ICsKPj4gICAjZGVmaW5lIF9fZm9yX2VhY2hfc3RhdGljX2VuZ2lu ZShlX18pIFwKPj4gICAJZm9yICgoZV9fKSA9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMjsgKGVf XyktPm5hbWU7IChlX18pKyspCj4+ICAgCj4+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9j dHhfc3dpdGNoLmMgYi90ZXN0cy9pOTE1L2dlbV9jdHhfc3dpdGNoLmMKPj4gaW5kZXggNjQ3OTEx ZDRjNDJlLi40MDc5MDVkZTJkMzQgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9z d2l0Y2guYwo+PiArKysgYi90ZXN0cy9pOTE1L2dlbV9jdHhfc3dpdGNoLmMKPj4gQEAgLTU1LDcg KzU1LDcgQEAgc3RhdGljIGRvdWJsZSBlbGFwc2VkKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqc3Rh cnQsIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqZW5kKQo+PiAgIAo+PiAgIHN0YXRpYyBpbnQgbWVh c3VyZV9xbGVuKGludCBmZCwKPj4gICAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIy ICpleGVjYnVmLAo+PiAtCQkJdW5zaWduZWQgaW50ICplbmdpbmUsIHVuc2lnbmVkIGludCBuZW5n aW5lLAo+PiArCQkJY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICplbmdpbmVzLAo+PiAg IAkJCWludCB0aW1lb3V0KQo+PiAgIHsKPj4gICAJY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9l eGVjX29iamVjdDIgKiBjb25zdCBvYmogPQo+PiBAQCAtNjMsMTUgKzYzLDE3IEBAIHN0YXRpYyBp bnQgbWVhc3VyZV9xbGVuKGludCBmZCwKPj4gICAJdWludDMyX3QgY3R4WzY0XTsKPj4gICAJaW50 IG1pbiA9IElOVF9NQVgsIG1heCA9IDA7Cj4+ICAgCj4+IC0JZm9yIChpbnQgaSA9IDA7IGkgPCBB UlJBWV9TSVpFKGN0eCk7IGkrKykKPj4gKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUo Y3R4KTsgaSsrKSB7Cj4+ICAgCQljdHhbaV0gPSBnZW1fY29udGV4dF9jcmVhdGUoZmQpOwo+PiAr CQlnZW1fY29udGV4dF9zZXRfYWxsX2VuZ2luZXMoZmQsIGN0eFtpXSk7Cj4+ICsJfQo+PiAgIAo+ PiAtCWZvciAodW5zaWduZWQgaW50IG4gPSAwOyBuIDwgbmVuZ2luZTsgbisrKSB7Cj4+ICsJZm9y ICh1bnNpZ25lZCBpbnQgbiA9IDA7IG4gPCBlbmdpbmVzLT5uZW5naW5lczsgbisrKSB7Cj4+ICAg CQl1aW50NjRfdCBzYXZlZCA9IGV4ZWNidWYtPmZsYWdzOwo+PiAgIAkJc3RydWN0IHRpbWVzcGVj IHR2ID0ge307Cj4+ICAgCQlpbnQgcTsKPj4gICAKPj4gLQkJZXhlY2J1Zi0+ZmxhZ3MgfD0gZW5n aW5lW25dOwo+PiArCQlleGVjYnVmLT5mbGFncyB8PSBlbmdpbmVzLT5lbmdpbmVzW25dLmZsYWdz Owo+PiAgIAo+PiAgIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGN0eCk7IGkrKykg ewo+PiAgIAkJCWV4ZWNidWYtPnJzdmQxID0gY3R4W2ldOwo+PiBAQCAtOTAsNyArOTIsOCBAQCBz dGF0aWMgaW50IG1lYXN1cmVfcWxlbihpbnQgZmQsCj4+ICAgCQkgKiBCZSBjb25zZXJ2YXRpdmUg YW5kIGFpbSBub3QgdG8gb3ZlcnNob290IHRpbWVvdXQsIHNvIHNjYWxlCj4+ICAgCQkgKiBkb3du IGJ5IDggZm9yIGhvcGVmdWxseSBhIG1heCBvZiAxMi41JSBlcnJvci4KPj4gICAJCSAqLwo+PiAt CQlxID0gQVJSQVlfU0laRShjdHgpICogdGltZW91dCAqIDFlOSAvIGlndF9uc2VjX2VsYXBzZWQo JnR2KSAvIDggKyAxOwo+PiArCQlxID0gQVJSQVlfU0laRShjdHgpICogdGltZW91dCAqIDFlOSAv IGlndF9uc2VjX2VsYXBzZWQoJnR2KSAvCj4+ICsJCSAgICA4ICsgMTsKPiAKPiBJIGRvbid0IGtu b3cgd2hldGhlciBpdCdzIG1lIHdobyBpcyBwYXJhbm9pYywgYnV0IHRoZSBjaGFuZ2UKPiBhYm92 ZSBkb2Vzbid0IG1hdGNoIHRoZSBjb21taXQgbG9nLgoKV2hhdCBkbyB5b3UgbWVhbjoKCiIiIgpB bHNvIGJld2FyZSBvZiBkcml2ZS1ieSBmb3JtYXR0aW5nIGNoYW5nZXMuCiIiIgoKOykKCkZpbGUg dG8gbWFueSBsaW5lcyBmYWxsaW5nIG9mIDgwIGNoYXIgc28gSSB0aWRpZWQgaXQgYWxvbmdzaWRl LgoKPiAKPj4gICAJCWlmIChxIDwgbWluKQo+PiAgIAkJCW1pbiA9IHE7Cj4+ICAgCQlpZiAocSA+ IG1heCkKPj4gQEAgLTEwNyw3ICsxMTAsNyBAQCBzdGF0aWMgaW50IG1lYXN1cmVfcWxlbihpbnQg ZmQsCj4+ICAgfQo+PiAgIAo+PiAgIHN0YXRpYyB2b2lkIHNpbmdsZShpbnQgZmQsIHVpbnQzMl90 IGhhbmRsZSwKPj4gLQkJICAgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUgKmUs Cj4+ICsJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTIsCj4+ICAg CQkgICB1bnNpZ25lZCBmbGFncywKPj4gICAJCSAgIGNvbnN0IGludCBuY3B1cywKPj4gICAJCSAg IGludCB0aW1lb3V0KQo+PiBAQCAtMTI1LDEzICsxMjgsMTQgQEAgc3RhdGljIHZvaWQgc2luZ2xl KGludCBmZCwgdWludDMyX3QgaGFuZGxlLAo+PiAgIAlzaGFyZWQgPSBtbWFwKE5VTEwsIDQwOTYs IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQgfCBNQVBfQU5PTiwgLTEsIDApOwo+PiAgIAlpZ3RfYXNz ZXJ0KHNoYXJlZCAhPSBNQVBfRkFJTEVEKTsKPj4gICAKPj4gLQlnZW1fcmVxdWlyZV9yaW5nKGZk LCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOwo+PiAtCj4+ICAgCWZvciAobiA9IDA7IG4gPCA2NDsg bisrKSB7Cj4+ICAgCQlpZiAoZmxhZ3MgJiBRVUVVRSkKPj4gICAJCQljb250ZXh0c1tuXSA9IGdl bV9xdWV1ZV9jcmVhdGUoZmQpOwo+PiAgIAkJZWxzZQo+PiAgIAkJCWNvbnRleHRzW25dID0gZ2Vt X2NvbnRleHRfY3JlYXRlKGZkKTsKPj4gKwo+PiArCQlpZiAoZ2VtX2NvbnRleHRfaGFzX2VuZ2lu ZV9tYXAoZmQsIDApKQo+PiArCQkJZ2VtX2NvbnRleHRfc2V0X2FsbF9lbmdpbmVzKGZkLCBjb250 ZXh0c1tuXSk7Cj4+ICAgCX0KPj4gICAKPj4gICAJbWVtc2V0KCZvYmosIDAsIHNpemVvZihvYmop KTsKPj4gQEAgLTE1MiwxMiArMTU2LDEyIEBAIHN0YXRpYyB2b2lkIHNpbmdsZShpbnQgZmQsIHVp bnQzMl90IGhhbmRsZSwKPj4gICAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRl cigmb2JqKTsKPj4gICAJZXhlY2J1Zi5idWZmZXJfY291bnQgPSAxOwo+PiAgIAlleGVjYnVmLnJz dmQxID0gY29udGV4dHNbMF07Cj4+IC0JZXhlY2J1Zi5mbGFncyA9IGUtPmV4ZWNfaWQgfCBlLT5m bGFnczsKPj4gKwlleGVjYnVmLmZsYWdzID0gZTItPmZsYWdzOwo+PiAgIAlleGVjYnVmLmZsYWdz IHw9IExPQ0FMX0k5MTVfRVhFQ19IQU5ETEVfTFVUOwo+PiAgIAlleGVjYnVmLmZsYWdzIHw9IExP Q0FMX0k5MTVfRVhFQ19OT19SRUxPQzsKPj4gICAJaWd0X3JlcXVpcmUoX19nZW1fZXhlY2J1Zihm ZCwgJmV4ZWNidWYpID09IDApOwo+PiAgIAlpZiAoX19nZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYp KSB7Cj4+IC0JCWV4ZWNidWYuZmxhZ3MgPSBlLT5leGVjX2lkIHwgZS0+ZmxhZ3M7Cj4+ICsJCWV4 ZWNidWYuZmxhZ3MgPSBlMi0+ZmxhZ3M7Cj4+ICAgCQlyZWxvYy50YXJnZXRfaGFuZGxlID0gb2Jq LmhhbmRsZTsKPj4gICAJCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7Cj4+ICAgCX0KPj4gQEAg LTE5MCw3ICsxOTQsOCBAQCBzdGF0aWMgdm9pZCBzaW5nbGUoaW50IGZkLCB1aW50MzJfdCBoYW5k bGUsCj4+ICAgCQljbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJm5vdyk7Cj4+ICAgCj4+ ICAgCQlpZ3RfaW5mbygiWyVkXSAlczogJSd1IGN5Y2xlczogJS4zZnVzJXNcbiIsCj4+IC0JCQkg Y2hpbGQsIGUtPm5hbWUsIGNvdW50LCBlbGFwc2VkKCZzdGFydCwgJm5vdykqMWU2IC8gY291bnQs Cj4+ICsJCQkgY2hpbGQsIGUyLT5uYW1lLCBjb3VudCwKPj4gKwkJCSBlbGFwc2VkKCZzdGFydCwg Jm5vdykgKiAxZTYgLyBjb3VudCwKPj4gICAJCQkgZmxhZ3MgJiBJTlRFUlJVUFRJQkxFID8gIiAo aW50ZXJydXB0aWJsZSkiIDogIiIpOwo+PiAgIAo+PiAgIAkJc2hhcmVkW2NoaWxkXS5lbGFwc2Vk ID0gZWxhcHNlZCgmc3RhcnQsICZub3cpOwo+PiBAQCAtMjA5LDcgKzIxNCw3IEBAIHN0YXRpYyB2 b2lkIHNpbmdsZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwKPj4gICAJCX0KPj4gICAKPj4gICAJ CWlndF9pbmZvKCJUb3RhbCAlczogJSdsdSBjeWNsZXM6ICUuM2Z1cyVzXG4iLAo+PiAtCQkJIGUt Pm5hbWUsIHRvdGFsLCBtYXgqMWU2IC8gdG90YWwsCj4+ICsJCQkgZTItPm5hbWUsIHRvdGFsLCBt YXgqMWU2IC8gdG90YWwsCj4+ICAgCQkJIGZsYWdzICYgSU5URVJSVVBUSUJMRSA/ICIgKGludGVy cnVwdGlibGUpIiA6ICIiKTsKPj4gICAJfQo+PiAgIAo+PiBAQCAtMjIzLDI1ICsyMjgsMjAgQEAg c3RhdGljIHZvaWQgYWxsKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1bnNpZ25lZCBmbGFncywg aW50IHRpbWVvdXQpCj4+ICAgewo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIy IGV4ZWNidWY7Cj4+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9ialsyXTsK Pj4gLQl1bnNpZ25lZCBpbnQgZW5naW5lWzE2XSwgZTsKPj4gLQljb25zdCBjaGFyICpuYW1lWzE2 XTsKPj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgZW5naW5lcyA9IHsgfTsKPj4gICAJdWlu dDMyX3QgY29udGV4dHNbNjVdOwo+PiAtCXVuc2lnbmVkIGludCBuZW5naW5lOwo+PiAgIAlpbnQg biwgcWxlbjsKPj4gICAKPj4gLQluZW5naW5lID0gMDsKPj4gLQlmb3JfZWFjaF9waHlzaWNhbF9l bmdpbmUoZmQsIGUpIHsKPj4gLQkJZW5naW5lW25lbmdpbmVdID0gZTsKPj4gLQkJbmFtZVtuZW5n aW5lXSA9IGVfXy0+bmFtZTsKPj4gLQkJbmVuZ2luZSsrOwo+PiAtCX0KPj4gLQlpZ3RfcmVxdWly ZShuZW5naW5lKTsKPj4gKwllbmdpbmVzID0gaW50ZWxfaW5pdF9lbmdpbmVfbGlzdChmZCwgMCk7 Cj4+ICsJaWd0X3JlcXVpcmUoZW5naW5lcy5uZW5naW5lcyk7Cj4gCj4gT2ZmLXRvcGljOgo+IFRo aXMgSSBndWVzcyBjYW4gYmUgdGhlICJmbGFncyIgbWFwcGluZyB0aGF0IENocmlzIHdhcyBzdWdn ZXN0aW5nCj4gb25jZSwgSSBndWVzcyB3ZSBjYW4gYWNoaWV2ZSB0aGF0IGJ5IGp1c3QgZG9pbmcg dGhlIGFib3ZlIHdpdGhvdXQKPiBhZGRpbmcgaGVscGVycyAod2hpY2ggd291bGQgZHJpdmUgY3Jh enkgcGVvcGxlIGxpa2UgbWUpLgoKSSBkb24ndCByZW1lbWJlciB3aGF0IHdhcyB0aGlzIGZsYWdz IG1hcHBpbmcuIFNvbWV0aGluZyB0byByZXR1cm4gYSBsaXN0IApvZiBlYi0+ZmxhZ3MgZm9yIGFs bCBwaHlzaWNhbCBlbmdpbmVzPyBOb3Qgc3VyZSBJIGxpa2UgdGhhdCBzaW5jZSBmbGFncyAKY2Fy cnkgaXMgdmVyeSBsaW1pdGVkIGluZm9ybWF0aW9uLiBIYXZpbmcgYSBsaXN0IG9mIGVuZ2luZSBv YmplY3RzIApzb3VuZHMgbXVjaCBiZXR0ZXIuCgo+IAo+IFRoZSByZXN0IG9mIHRoZSBwYXRjaCBJ IHRydXN0IHlvdSBpdCB3b3JrcyA6KQo+IChob3dldmVyIHRoZSBkZXZvdGlvbiB0byB3aGF0ZXZl ciBpcyBsZWdhY3kgZG9lc24ndCBsZWF2ZSBtZSB3aXRoCj4gYSBnb29kIHRhc3RlIGFmdGVyIGFs bCB0aGUgd29yayBkb25lKQo+IAo+IFlvdSBjYW4gYWRkIG15IFJldmlld2VkLWJ5OiBBbmRpIFNo eXRpIDxhbmRpLnNoeXRpQGludGVsLmNvbT4KPiAKPiBUaGFua3MsIHRoaXMgcGF0Y2ggY2xhcmlm aWVzIGEgZmV3IG1vcmUgdGhpbmdzIGFzIHdlbGwsCgpUaGFua3MhCgpSZWdhcmRzLAoKVHZydGtv Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYg bWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==