From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Introduce concept of a sub-platform Date: Fri, 15 Mar 2019 13:32:54 +0000 Message-ID: <8545582e-d977-ffbb-b346-52313ca4f80c@linux.intel.com> References: <20190315122633.11421-1-tvrtko.ursulin@linux.intel.com> <155265581890.4168.3701444671149052204@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 011876E415 for ; Fri, 15 Mar 2019 13:32:59 +0000 (UTC) In-Reply-To: <155265581890.4168.3701444671149052204@skylake-alporthouse-com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Intel-gfx@lists.freedesktop.org Cc: Jani Nikula , Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE1LzAzLzIwMTkgMTM6MTYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE5LTAzLTE1IDEyOjI2OjMzKQo+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pgo+PiBDb25jZXB0IG9mIGEgc3ViLXBsYXRmb3Jt IGFscmVhZHkgZXhpc3QgaW4gb3VyIGNvZGUgKGxpa2UgVUxYIGFuZCBVTFQKPj4gcGxhdGZvcm0g dmFyaWFudHMgYW5kIHNpbWlsYXIpLGltcGxlbWVudGVkIHZpYSB0aGUgbWFjcm9zIHdoaWNoIGNo ZWNrIGEKPj4gbGlzdCBvZiBkZXZpY2UgaWRzIHRvIGRldGVybWluZSBhIG1hdGNoLgo+Pgo+PiBX aXRoIHRoaXMgcGF0Y2ggd2UgY29uc29saWRhdGUgZGV2aWNlIGlkcyBjaGVja2luZyBpbnRvIGEg c2luZ2xlIGZ1bmN0aW9uCj4+IGNhbGxlZCBkdXJpbmcgZWFybHkgZHJpdmVyIGxvYWQuCj4+Cj4+ IEEgZmV3IGxvdyBiaXRzIGluIHRoZSBwbGF0Zm9ybSBtYXNrIGFyZSByZXNlcnZlZCBmb3Igc3Vi LXBsYXRmb3JtCj4+IGlkZW50aWZpY2F0aW9uIGFuZCBkZWZpbmVkIGFzIGEgcGVyLXBsYXRmb3Jt IG5hbWVzcGFjZS4KPj4KPj4gQXQgdGhlIHNhbWUgdGltZSBpdCBmdXR1cmUgcHJvb2ZzIHRoZSBw bGF0Zm9ybV9tYXNrIGhhbmRsaW5nIGJ5IHByZXBhcmluZwo+PiB0aGUgY29kZSBmb3IgZWFzeSBl eHRlbmRpbmcsIGFuZCB0aWRpZXMgdGhlIHZlcnkgdmVyYm9zZSBXQVJOIHN0cmluZ3MKPj4gZ2Vu ZXJhdGVkIHdoZW4gSVNfUExBVEZPUk0gbWFjcm9zIGFyZSBlbWJlZGRlZCBpbnRvIGEgV0FSTiB0 eXBlCj4+IHN0YXRlbWVudHMuCj4+Cj4+IFRoZSBhcHByb2FjaCBpcyBhbHNvIGJlbmVmaWNpYWwg dG8gZHJpdmVyIHNpemUsIHdpdGggYW4gY29tYmluZWQgc2hyaW5rIG9mCj4+IGNvZGUgYW5kIHN0 cmluZ3Mgb2YgYXJvdW5kIDEuNyBraUIuCj4+Cj4+IHYyOiBGaXhlZCBJU19TVUJQTEFURk9STS4g VXBkYXRlZCBjb21taXQgbXNnLgo+PiB2MzogQ2hyaXMgd2FzIHJpZ2h0LCB0aGVyZSBpcyBhbiBv cmRlcmluZyBwcm9ibGVtLgo+Pgo+PiB2NDoKPj4gICAqIENhdGNoLXVwIHdpdGggbmV3IHN1Yi1w bGF0Zm9ybXMuCj4+ICAgKiBSZWJhc2UgZm9yIFJVTlRJTUVfSU5GTy4KPj4gICAqIERyb3Agc3Vi cGxhdGZvcm0gbWFzayB1bmlvbiB0cmlja3MgYW5kIGNvbnZlcnQgcGxhdGZvcm1fbWFzayB0byBh bgo+PiAgICAgYXJyYXkgZm9yIGV4dGVuc2liaWxpdHkuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+IFN1Z2dlc3RlZC1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+IENjOiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBpbnRlbC5jb20+Cj4+IENjOiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGlu dGVsLmNvbT4KPj4gQ2M6IEpvc2UgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+PiAtLS0K Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgIHwgICA3ICstCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8IDExMCArKysrKysr KysrKysrKystLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgICAg ICAgICAgfCAgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5m by5jIHwgIDc5ICsrKysrKysrKysrKysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5oIHwgIDI4ICsrKysrLQo+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMTc5IGlu c2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK Pj4gaW5kZXggMGQ3NDM5MDdlN2JjLi4zMjE4MzUwY2QyMjUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+PiBAQCAtODYzLDYgKzg2Myw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJf aW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgICAgICAg IGlmIChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKPj4gICAgICAgICAgICAgICAgICByZXR1 cm4gLUVOT0RFVjsKPj4gICAKPj4gKyAgICAgICBpbnRlbF9kZXZpY2VfaW5mb19zdWJwbGF0Zm9y bV9pbml0KGRldl9wcml2KTsKPj4gKwo+PiAgICAgICAgICBzcGluX2xvY2tfaW5pdCgmZGV2X3By aXYtPmlycV9sb2NrKTsKPj4gICAgICAgICAgc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5ncHVf ZXJyb3IubG9jayk7Cj4+ICAgICAgICAgIG11dGV4X2luaXQoJmRldl9wcml2LT5iYWNrbGlnaHRf bG9jayk7Cj4+IEBAIC0xNzUyLDEwICsxNzU0LDExIEBAIHN0YXRpYyB2b2lkIGk5MTVfd2VsY29t ZV9tZXNzYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgICAgICAg IGlmIChkcm1fZGVidWcgJiBEUk1fVVRfRFJJVkVSKSB7Cj4+ICAgICAgICAgICAgICAgICAgc3Ry dWN0IGRybV9wcmludGVyIHAgPSBkcm1fZGVidWdfcHJpbnRlcigiaTkxNSBkZXZpY2UgaW5mbzoi KTsKPj4gICAKPj4gLSAgICAgICAgICAgICAgIGRybV9wcmludGYoJnAsICJwY2lpZD0weCUwNHgg cmV2PTB4JTAyeCBwbGF0Zm9ybT0lcyBnZW49JWlcbiIsCj4+ICsgICAgICAgICAgICAgICBkcm1f cHJpbnRmKCZwLCAicGNpaWQ9MHglMDR4IHJldj0weCUwMnggcGxhdGZvcm09JXMgKCV4KSBnZW49 JWlcbiIsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFTF9ERVZJRChkZXZfcHJp diksCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFTF9SRVZJRChkZXZfcHJpdiks Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9wbGF0Zm9ybV9uYW1lKElOVEVM X0lORk8oZGV2X3ByaXYpLT5wbGF0Zm9ybSksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtX21hc2tbSU5URUxfSU5GTyhkZXZfcHJp diktPnBsYXRmb3JtIC8gKEJJVFNfUEVSX1RZUEUoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+cGxh dGZvcm1fbWFza1swXSkgLSBJTlRFTF9TVUJQTEFURk9STV9CSVRTKV0sCj4gCj4gSSBob3BlIHRo YXQncyBhIG9uZS1vZmYhCgpJdCdzIGluZGVlZCBob3JyaWJsZS4gSSB3YXMgdGhpbmtpbmcgb2Yg YWRkaW5nIGEgaGVscGVyIGJ1dCBkZWNpZGVkIHRvIAp3YWl0IGZvciBzb21lIGdlbmVyYWwgYWNr cyBmaXJzdC4KCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFTF9HRU4oZGV2X3By aXYpKTsKPj4gICAKPj4gICAgICAgICAgICAgICAgICBpbnRlbF9kZXZpY2VfaW5mb19kdW1wX2Zs YWdzKElOVEVMX0lORk8oZGV2X3ByaXYpLCAmcCk7Cj4+IEBAIC0xNzk4LDggKzE4MDEsNiBAQCBp OTE1X2RyaXZlcl9jcmVhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lf ZGV2aWNlX2lkICplbnQpCj4+ICAgICAgICAgIG1lbWNweShkZXZpY2VfaW5mbywgbWF0Y2hfaW5m bywgc2l6ZW9mKCpkZXZpY2VfaW5mbykpOwo+PiAgICAgICAgICBSVU5USU1FX0lORk8oaTkxNSkt PmRldmljZV9pZCA9IHBkZXYtPmRldmljZTsKPj4gICAKPj4gLSAgICAgICBCVUlMRF9CVUdfT04o SU5URUxfTUFYX1BMQVRGT1JNUyA+Cj4+IC0gICAgICAgICAgICAgICAgICAgIEJJVFNfUEVSX1RZ UEUoZGV2aWNlX2luZm8tPnBsYXRmb3JtX21hc2spKTsKPj4gICAgICAgICAgQlVHX09OKGRldmlj ZV9pbmZvLT5nZW4gPiBCSVRTX1BFUl9UWVBFKGRldmljZV9pbmZvLT5nZW5fbWFzaykpOwo+PiAg IAo+PiAgICAgICAgICByZXR1cm4gaTkxNTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IGlu ZGV4IGRjY2I2MDA2YWFiZi4uMzQyODJjZjY2Y2IwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPj4gQEAgLTIyODEsNyArMjI4MSw0NiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGlu dCBpOTE1X3NnX3NlZ21lbnRfc2l6ZSh2b2lkKQo+PiAgICNkZWZpbmUgSVNfUkVWSUQocCwgc2lu Y2UsIHVudGlsKSBcCj4+ICAgICAgICAgIChJTlRFTF9SRVZJRChwKSA+PSAoc2luY2UpICYmIElO VEVMX1JFVklEKHApIDw9ICh1bnRpbCkpCj4+ICAgCj4+IC0jZGVmaW5lIElTX1BMQVRGT1JNKGRl dl9wcml2LCBwKSAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtX21hc2sgJiBCSVQocCkp Cj4+ICsjZGVmaW5lIF9fSVNfUExBVEZPUk0oZGV2X3ByaXYsIHApIFwKPj4gKyh7IFwKPj4gKyAg ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgcGJpdHNfXyA9IFwKPj4gKyAgICAgICAgICAgICAgIEJJ VFNfUEVSX1RZUEUoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+cGxhdGZvcm1fbWFza1swXSkgLSBc Cj4+ICsgICAgICAgICAgICAgICBJTlRFTF9TVUJQTEFURk9STV9CSVRTOyBcCj4+ICsgICAgICAg Y29uc3QgdW5zaWduZWQgaW50IHBpX18gPSAocCkgLyBwYml0c19fOyBcCj4+ICsgICAgICAgY29u c3QgdW5zaWduZWQgaW50IHBiX18gPSAocCkgJSBwYml0c19fICsgSU5URUxfU1VCUExBVEZPUk1f QklUUzsgXAo+IAo+IE9oLCBwIGlzIGEgY29tcGlsZSB0aW1lIGNvbnN0YW50LCBzbyB0aGVzZSBj YW4gYWxsIGJlIGV2YWx1YXRlZCBhdAo+IGNvbXBpbGUgdGltZS4gU28gbm90IGEgd29ycnkuCj4g Cj4+ICtcCj4+ICsgICAgICAgQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChwKSk7 IFwKPj4gK1wKPj4gKyAgICAgICAoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+cGxhdGZvcm1fbWFz a1twaV9fXSAmIEJJVChwYl9fKSk7IFwKPj4gK30pCj4+ICsKPj4gKyNkZWZpbmUgX19JU19TVUJQ TEFURk9STShkZXZfcHJpdiwgcCwgcykgXAo+PiArKHsgXAo+PiArICAgICAgIGNvbnN0IHVuc2ln bmVkIGludCBwYml0c19fID0gXAo+PiArICAgICAgICAgICAgICAgQklUU19QRVJfVFlQRShSVU5U SU1FX0lORk8oZGV2X3ByaXYpLT5wbGF0Zm9ybV9tYXNrWzBdKSAtIFwKPj4gKyAgICAgICAgICAg ICAgIElOVEVMX1NVQlBMQVRGT1JNX0JJVFM7IFwKPj4gKyAgICAgICBjb25zdCB1bnNpZ25lZCBp bnQgcGlfXyA9IChwKSAvIHBiaXRzX187IFwKPj4gKyAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg cGJfXyA9IChwKSAlIHBiaXRzX18gKyBJTlRFTF9TVUJQTEFURk9STV9CSVRTOyBcCj4+ICtcCj4+ ICsgICAgICAgQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChwKSk7IFwKPj4gKyAg ICAgICBCVUlMRF9CVUdfT04oIV9fYnVpbHRpbl9jb25zdGFudF9wKHMpKTsgXAo+PiArICAgICAg IEJVSUxEX0JVR19PTigocykgPj0gSU5URUxfU1VCUExBVEZPUk1fQklUUyk7IFwKPj4gK1wKPj4g KyAgICAgICAoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+cGxhdGZvcm1fbWFza1twaV9fXSAmIChC SVQocGJfXykgfCBCSVQocykpKTsgXAo+PiArfSkKPj4gKwo+PiArc3RhdGljIGlubGluZSBib29s Cj4+ICtJU19QTEFURk9STShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZW51 bSBpbnRlbF9wbGF0Zm9ybSBwKQo+PiArewo+PiArICAgICAgIHJldHVybiBfX0lTX1BMQVRGT1JN KGk5MTUsIHApOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIGJvb2wKPj4gK0lTX1NVQlBM QVRGT1JNKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+PiArICAgICAgICAg ICAgICBlbnVtIGludGVsX3BsYXRmb3JtIHAsIHVuc2lnbmVkIGludCBzKQo+PiArewo+PiArICAg ICAgIHJldHVybiBfX0lTX1NVQlBMQVRGT1JNKGk5MTUsIHAsIHMpOwo+PiArfQo+IAo+IE9rLCB0 aGF0IGFsbCBtYWtlcyBzZW5zZSBhcyBhIGN1c3RvbSBiaXRtYXAuCgpIbSBoZWFkIHNjcmF0Y2gu LiB3aHkgSSBuZWVkZWQgbWFjcm8gYW5kIGEgc3RhdGljIGlubGluZT8gSSdsbCBjaGVjayBpZiAK SSBjYW4gZ2V0IGF3YXkgd2l0aCBvbmx5IHRoZSBsYXR0ZXIuIFRoaXMgZmlkZGxpbmcgd2FzIGFs bCBhYm91dCBrZWVwaW5nIApXQVJOX09OIHN0cmluZ3MgcmVhZGFibGUgKGFuZCBzaG9ydCEpLgoK PiAKPj4gK3ZvaWQgaW50ZWxfZGV2aWNlX2luZm9fc3VicGxhdGZvcm1faW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4gK3sKPj4gKyAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg cGJpdHMgPQo+PiArICAgICAgICAgICAgICAgQklUU19QRVJfVFlQRShSVU5USU1FX0lORk8oaTkx NSktPnBsYXRmb3JtX21hc2tbMF0pIC0KPj4gKyAgICAgICAgICAgICAgIElOVEVMX1NVQlBMQVRG T1JNX0JJVFM7Cj4+ICsgICAgICAgY29uc3QgdW5zaWduZWQgaW50IHBpID0gSU5URUxfSU5GTyhp OTE1KS0+cGxhdGZvcm0gLyBwYml0czsKPj4gKyAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgcGIg PQo+PiArICAgICAgICAgICAgICAgSU5URUxfSU5GTyhpOTE1KS0+cGxhdGZvcm0gJSBwYml0cyAr IElOVEVMX1NVQlBMQVRGT1JNX0JJVFM7Cj4+ICsgICAgICAgc3RydWN0IGludGVsX3J1bnRpbWVf aW5mbyAqaW5mbyA9IFJVTlRJTUVfSU5GTyhpOTE1KTsKPj4gKyAgICAgICB1MTYgZGV2aWQgPSBJ TlRFTF9ERVZJRChpOTE1KTsKPj4gKwo+PiArICAgICAgIEJVSUxEX0JVR19PTihJTlRFTF9NQVhf UExBVEZPUk1TID4KPj4gKyAgICAgICAgICAgICAgICAgICAgcGJpdHMgKiBBUlJBWV9TSVpFKFJV TlRJTUVfSU5GTyhpOTE1KS0+cGxhdGZvcm1fbWFzaykpOwo+PiArCj4+ICsgICAgICAgaW5mby0+ cGxhdGZvcm1fbWFza1twaV0gPSBCSVQocGIpOwo+PiArCj4+ICsgICAgICAgaWYgKElTX1BJTkVW SUVXKGk5MTUpKSB7Cj4+ICsgICAgICAgICAgICAgICBpZiAoZGV2aWQgPT0gMHhhMDAxKQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5wbGF0Zm9ybV9tYXNrW3BpXSB8PQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJVChJTlRFTF9TVUJQTEFURk9STV9QSU5FVklF V19HKTsKPj4gKyAgICAgICAgICAgICAgIGVsc2UgaWYgKGRldmlkID09IDB4YTAxMSkKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgaW5mby0+cGxhdGZvcm1fbWFza1twaV0gfD0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoSU5URUxfU1VCUExBVEZPUk1fUElORVZJRVdf TSk7Cj4gCj4gaWYgKElTX1BJTkVWSUVXKGk5MTUpKSB7Cj4gCWludCBzdWJwbGF0Zm9ybSA9IDA7 Cj4gCj4gCWlmIChkZXZpZCA9PSAweGEwMDEpCj4gCQlzdWJwbGF0Zm9ybSA9IElOVEVMX1NVQlBM QVRGT1JNX1BJTkVWSUVXX0c7Cj4gCWVsc2UgaWYgKGRldmlkID09IDB4YTAwMSkKPiAJCXN1YnBs YXRmb3JtID0gSU5URUxfU1VCUExBVEZPUk1fUElORVZJRVdfTTsKPiAJZWxzZQo+IAkJTUlTU0lO R19DQVNFKGRldmlkKTsKCldpdGggTUlTU0lOR19DQVNFIHlvdSBhcmUgdGFsa2luZyBzcGVjaWZp Y2FsbHkgZm9yIFBpbmV2aWV3IHNpbmNlIGl0IApvbmx5IGhhcyBhIHRvdGFsIG9mIHR3byBpZHM/ IFlvdSBleHBlY3QgbW9yZSBwYXJ0cyB0byBzaGlwPyA6KSkKCk90aGVyd2lzZSB0aGUgbG9naWMg aGVyZSBpcyBvbmx5IHRvIG1lbnRpb24gaWRzIHdoaWNoIGFyZSBzcGVjaWFsLCBub3QgCmFsbCBw bGF0Zm9ybSBrbm93cyBvZi4gU28gYXMgYSBnZW5lcmFsIHBhdHRlcm4gTUlTU0lOR19DQVNFIHdv dWxkbid0IHdvcmsuCgo+IAo+IAlpbmZvLT5wbGF0Zm9ybV9tYXNrW3BpXSB8PSBCSVQoc3VicGxh dGZvcm0pOwo+IAlXQVJOX09OKCFJU19TVUJQTEFURk9STShpOTE1LCBJTlRFTF9QTEFURk9STV9Q SU5FVklFVywgc3VicGxhdGZvcm0pKTsKPiB9Cj4gCj4gU28gd2UgY2F0Y2ggbWlzc2luZyBpZHMs IGFuZCB2YWxpZGF0ZSBzdWJwbGF0Zm9ybSBhZ2FpbnN0Cj4gU1VCUExBVEZPUk1fQklUUy4KCk5v dCBzbyBzdHJhaWdodGZvcndhcmQgd2l0aCB0aGUgVUxUIGFuZCBVTFggYnVuY2ggc2luY2Ugc29t ZSBvZiB0aG9zZSAKYXJlIGJvdGguCgpXaGF0IEkgaGF2ZSBhZGRlZCBsb2NhbGx5IGhvd2V2ZXIg aXMgdGhpczoKCglHRU1fQlVHX09OKG1hc2sgJiB+SU5URUxfU1VCUExBVEZPUk1fQklUUyk7CgoJ UlVOVElNRV9JTkZPKGk5MTUpLT5wbGF0Zm9ybV9tYXNrW3BpXSB8PSBtYXNrOwoKTW92ZWQgdGhl IG1hc2sgYXNzaWdubWVudCB0byBlbmQgc28gdGhhdCBJIGNhbiBjaGVjayBzdWJwbGF0Zm9ybSBk aWQgbm90IApvdmVyZmxvdyB0aGUgYWxsb2NhdGVkIHNwYWNlLgoKPj4gICAvKioKPj4gICAgKiBp bnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQgLSBpbml0aWFsaXplIHJ1bnRpbWUgaW5mbwo+ PiAgICAqIEBkZXZfcHJpdjogdGhlIGk5MTUgZGV2aWNlCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGV2aWNlX2luZm8uaAo+PiBpbmRleCAwNDdkMTBiZGQ0NTUuLmIwM2ZiZDJlNDUxYSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4+IEBAIC00 NCw3ICs0NCw3IEBAIGVudW0gaW50ZWxfcGxhdGZvcm0gewo+PiAgICAgICAgICBJTlRFTF9JOTE1 RywKPj4gICAgICAgICAgSU5URUxfSTkxNUdNLAo+PiAgICAgICAgICBJTlRFTF9JOTQ1RywKPj4g LSAgICAgICBJTlRFTF9JOTQ1R00sCj4+ICsgICAgICAgSU5URUxfSTk0NUdNID0gOCwKPj4gICAg ICAgICAgSU5URUxfRzMzLAo+PiAgICAgICAgICBJTlRFTF9QSU5FVklFVywKPj4gICAgICAgICAg LyogZ2VuNCAqLwo+PiBAQCAtNTUsNyArNTUsNyBAQCBlbnVtIGludGVsX3BsYXRmb3JtIHsKPj4g ICAgICAgICAgLyogZ2VuNSAqLwo+PiAgICAgICAgICBJTlRFTF9JUk9OTEFLRSwKPj4gICAgICAg ICAgLyogZ2VuNiAqLwo+PiAtICAgICAgIElOVEVMX1NBTkRZQlJJREdFLAo+PiArICAgICAgIElO VEVMX1NBTkRZQlJJREdFID0gMTYsCj4+ICAgICAgICAgIC8qIGdlbjcgKi8KPj4gICAgICAgICAg SU5URUxfSVZZQlJJREdFLAo+PiAgICAgICAgICBJTlRFTF9WQUxMRVlWSUVXLAo+PiBAQCAtNjYs NyArNjYsNyBAQCBlbnVtIGludGVsX3BsYXRmb3JtIHsKPj4gICAgICAgICAgLyogZ2VuOSAqLwo+ PiAgICAgICAgICBJTlRFTF9TS1lMQUtFLAo+PiAgICAgICAgICBJTlRFTF9CUk9YVE9OLAo+PiAt ICAgICAgIElOVEVMX0tBQllMQUtFLAo+PiArICAgICAgIElOVEVMX0tBQllMQUtFID0gMjQsCj4g Cj4gTG9va3MgbGlrZSB5b3UgYXJlIGp1c3Qga2VlcGluZyBhIHRhbGx5LCBhbmQgbm8gSSBoYXZl IG5vIGlkZWEgaG93IHRvCj4gYWRkIGEgY29tbWVudCB0byBtYWtlIHRoYXQgY2xlYXIuCj4gCj4g LyogdGFsbHkgKi8KPiAvKiB0YWxseSBzbyBmYXIgKi8KClllYWguLiBJIGtlcHQgcmUtY291bnRp bmcgdG8gc2VlIGhvdyBpdCB3aWxsIGxvb2sgd2hlbiB0aGUgYXJyYXkgaXMgCmV4cGFuZGVkLCB3 aGV0aGVyIEkgc2hvdWxkIHJlc2VydmUgbW9yZSBzdXBsYXRmb21zIGJpdHMgcmlnaHQgbm93IGZv ciAKY3V0LW9mZiB0byBmYWxsIHNvbWV3aGVyZSByZWFzb25hYmxlLgoKSSBjYW4gcmVtb3ZlIHRo ZXNlIG1hcmtlcnMsIHRoZXkgYXJlIG5vdCB0aGF0IHVzZWZ1bC4KCj4gCj4+ICAgICAgICAgIElO VEVMX0dFTUlOSUxBS0UsCj4+ICAgICAgICAgIElOVEVMX0NPRkZFRUxBS0UsCj4+ICAgICAgICAg IC8qIGdlbjEwICovCj4+IEBAIC03Niw2ICs3NiwyNCBAQCBlbnVtIGludGVsX3BsYXRmb3JtIHsK Pj4gICAgICAgICAgSU5URUxfTUFYX1BMQVRGT1JNUwo+PiAgIH07Cj4+ICAgCj4+ICsvKgo+PiAr ICogU3VicGxhdGZvcm0gYml0cyBzaGFyZSB0aGUgc2FtZSBuYW1lc3BhY2UgcGVyIHBhcmVudCBw bGF0Zm9ybS4gSW4gb3RoZXIgd29yZHMKPj4gKyAqIGl0IGlzIGZpbmUgZm9yIHRoZSBzYW1lIGJp dCB0byBiZSB1c2VkIG9uIG11bHRpcGxlIHBhcmVudCBwbGF0Zm9ybXMuCj4+ICsgKi8KPj4gKwo+ PiArI2RlZmluZSBJTlRFTF9TVUJQTEFURk9STV9CSVRTICgzKQo+IAo+PiArI2RlZmluZSBJTlRF TF9TVUJQTEFURk9STV9JUk9OTEFLRV9NICgwKQo+IAo+IEkgY2FuJ3QgYmVsaWV2ZSB5b3UgaGF2 ZW4ndCBkb25lIGk4NTIvaTg1NSEgKE9yIHdoYXRldmVyIHRoYXQgdmFyaWFudAo+IHdhcyBjYWxs ZWQuKQoKSVNfSTg1WD8gSSBkb24ndCBzZWUgYW55IHN1Yi1wbGF0Zm9ybXMgdGhlcmUuCgo+IENv dWxkbid0IHNwb3QgYW55dGhpbmcgd3JvbmcsIGFuZCBzbyBsb25nIGFzIHN1YnBsYXRmb3JtIHJl bWFpbnMgY2xlYXIKPiBpbiB0aGUgZXJyb3Igc3RhdGUsIGhpbnQgaGludCwgSSdtIGhhcHB5LgoK TGlrZSBob3c/IFdpdGggYSBzdHJpbmcgbGlrZSBwbGF0Zm9ybSBuYW1lcz8gV291bGQgYmUgcG9z c2libGUgYnV0IGlzIGl0IApyZWFsbHkgbmVlZGVkIG9uIHRvcCBvZiBkZXZpZD8KClJlZ2FyZHMs CgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4