From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9CD02C433ED for ; Mon, 19 Apr 2021 14:15:16 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2D73861157 for ; Mon, 19 Apr 2021 14:15:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2D73861157 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A0BB46E364; Mon, 19 Apr 2021 14:15:15 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E2F26E364; Mon, 19 Apr 2021 14:15:15 +0000 (UTC) IronPort-SDR: FSoXKKjZjDmhA1lLpbOsbbPHwNiqtZBoUJpKispterTmHfjctjIDdle+QDHLHVzAnswP/fp0Wz Ri6Yt2W8icFQ== X-IronPort-AV: E=McAfee;i="6200,9189,9959"; a="182829646" X-IronPort-AV: E=Sophos;i="5.82,234,1613462400"; d="scan'208";a="182829646" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2021 07:15:13 -0700 IronPort-SDR: K34DHCEiGPNMHo0uS3zMm/H4rD7FbE4mkD8741lH905cQEc0mIUKlsp8dG9I8e/jNyW1sbDCEj 8U7Cz7lGTitg== X-IronPort-AV: E=Sophos;i="5.82,234,1613462400"; d="scan'208";a="383749704" Received: from ongshuph-mobl.gar.corp.intel.com (HELO [10.214.164.79]) ([10.214.164.79]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2021 07:15:11 -0700 To: Matthew Auld , intel-gfx@lists.freedesktop.org References: <20210412090526.30547-1-matthew.auld@intel.com> <20210412090526.30547-4-matthew.auld@intel.com> <6f87d755-1fe7-a60a-941e-c8ad7657d99d@linux.intel.com> <328dbb78-d1a6-1411-db7c-4e7dd4a9437a@intel.com> From: Tvrtko Ursulin Organization: Intel Corporation UK Plc Message-ID: <20c0fc4f-28fd-813c-fb58-5536939645a4@linux.intel.com> Date: Mon, 19 Apr 2021 15:15:06 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <328dbb78-d1a6-1411-db7c-4e7dd4a9437a@intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 03/19] drm/i915: Create stolen memory region from local memory X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Ck9uIDE2LzA0LzIwMjEgMTY6MDQsIE1hdHRoZXcgQXVsZCB3cm90ZToKPiBPbiAxNC8wNC8yMDIx IDE2OjAxLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4KPj4gT24gMTIvMDQvMjAyMSAxMDowNSwg TWF0dGhldyBBdWxkIHdyb3RlOgo+Pj4gRnJvbTogQ1EgVGFuZyA8Y3EudGFuZ0BpbnRlbC5jb20+ Cj4+Pgo+Pj4gQWRkICJSRUdJT05fU1RPTEVOIiBkZXZpY2UgaW5mbyB0byBkZzEsIGNyZWF0ZSBz dG9sZW4gbWVtb3J5Cj4+PiByZWdpb24gZnJvbSB1cHBlciBwb3J0aW9uIG9mIGxvY2FsIGRldmlj ZSBtZW1vcnksIHN0YXJ0aW5nCj4+PiBmcm9tIERTTUJBU0UuCj4+Pgo+Pj4gdjI6Cj4+PiDCoMKg wqDCoCAtIHMvZHJtX2luZm8vZHJtX2RiZzsgdXNlcnNwYWNlIGxpa2VseSBkb2Vzbid0IGNhcmUg YWJvdXQgc3RvbGVuLgo+Pj4gwqDCoMKgwqAgLSBtZW0tPnR5cGUgaXMgb25seSBzZXR1cCBhZnRl ciB0aGUgcmVnaW9uIHByb2JlLCBzbyBzZXR0aW5nIHRoZSAKPj4+IG5hbWUKPj4+IMKgwqDCoMKg wqDCoCBhcyBzdG9sZW4tbG9jYWwgb3Igc3RvbGVuLXN5c3RlbSBiYXNlZCBvbiB0aGlzIHZhbHVl IHdvbid0IAo+Pj4gd29yay4gU3BsaXQKPj4+IMKgwqDCoMKgwqDCoCBzeXN0ZW0gdnMgbG9jYWwg c3RvbGVuIHNldHVwIHRvIGZpeCB0aGlzLgo+Pj4gwqDCoMKgwqAgLSBraWxsIGFsbCB0aGUgcmVn aW9uLT5kZXZtZW0vaXNfZGV2bWVtIHN0dWZmLiBXZSBhbHJlYWR5IAo+Pj4gZGlmZmVyZW50aWF0 ZQo+Pj4gwqDCoMKgwqDCoMKgIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2Ygc3RvbGVuIHNvIHN1Y2gg dGhpbmdzIHNob3VsZG4ndCBiZSBuZWVkZWQKPj4+IMKgwqDCoMKgwqDCoCBhbnltb3JlLgo+Pj4K Pj4+IFNpZ25lZC1vZmYtYnk6IENRIFRhbmcgPGNxLnRhbmdAaW50ZWwuY29tPgo+Pj4gU2lnbmVk LW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgo+Pj4gLS0tCj4+ PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmMgfCA5OSArKysr KysrKysrKysrKysrKysrLS0tCj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fc3RvbGVuLmggfMKgIDMgKwo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku Y8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxICsKPj4+IMKgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYyB8wqAgNiArKwo+Pj4gwqAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIHzCoCA1ICstCj4+PiDCoCA2 IGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKPj4+Cj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5j IAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmMKPj4+IGlu ZGV4IGIwNTk3ZGUyMDZkZS4uNTZkZDU4YmVmNWVlIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmMKPj4+IEBAIC0xMCw2ICsxMCw3IEBACj4+PiDC oCAjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgo+Pj4gwqAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5o Pgo+Pj4gKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fbG1lbS5oIgo+Pj4gwqAgI2luY2x1ZGUgImdl bS9pOTE1X2dlbV9yZWdpb24uaCIKPj4+IMKgICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+Pj4gwqAg I2luY2x1ZGUgImk5MTVfZ2VtX3N0b2xlbi5oIgo+Pj4gQEAgLTEyMSw2ICsxMjIsMTQgQEAgc3Rh dGljIGludCBpOTE1X2FkanVzdF9zdG9sZW4oc3RydWN0IAo+Pj4gZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+PiDCoMKgwqDCoMKgIH0KPj4+ICvCoMKg wqAgLyoKPj4+ICvCoMKgwqDCoCAqIFdpdGggZGV2aWNlIGxvY2FsIG1lbW9yeSwgd2UgZG9uJ3Qg bmVlZCB0byBjaGVjayB0aGUgYWRkcmVzcyAKPj4+IHJhbmdlLAo+Pj4gK8KgwqDCoMKgICogdGhp cyBpcyBkZXZpY2UgbWVtb3J5IHBoeXNpY2FsIGFkZHJlc3MsIGNvdWxkIG92ZXJsYXAgd2l0aCAK Pj4+IHN5c3RlbQo+Pj4gK8KgwqDCoMKgICogbWVtb3J5Lgo+Pj4gK8KgwqDCoMKgICovCj4+PiAr wqDCoMKgIGlmIChIQVNfTE1FTShpOTE1KSkKPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsK Pj4+ICsKPj4+IMKgwqDCoMKgwqAgLyoKPj4+IMKgwqDCoMKgwqDCoCAqIFZlcmlmeSB0aGF0IG5v dGhpbmcgZWxzZSB1c2VzIHRoaXMgcGh5c2ljYWwgYWRkcmVzcy4gU3RvbGVuCj4+PiDCoMKgwqDC oMKgwqAgKiBtZW1vcnkgc2hvdWxkIGJlIHJlc2VydmVkIGJ5IHRoZSBCSU9TIGFuZCBoaWRkZW4g ZnJvbSB0aGUKPj4+IEBAIC0zNzQsOCArMzgzLDkgQEAgc3RhdGljIHZvaWQgaWNsX2dldF9zdG9s ZW5fcmVzZXJ2ZWQoc3RydWN0IAo+Pj4gZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4+IMKgwqDC oMKgwqAgfQo+Pj4gwqAgfQo+Pj4gLXN0YXRpYyBpbnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+PiArc3RhdGljIGludCBpOTE1X2dlbV9pbml0 X3N0b2xlbihzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtKQo+Pj4gwqAgewo+Pj4gK8Kg wqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG1lbS0+aTkxNTsKPj4+IMKgwqDC oMKgwqAgc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmk5MTUtPnVuY29yZTsKPj4+IMKg wqDCoMKgwqAgcmVzb3VyY2Vfc2l6ZV90IHJlc2VydmVkX2Jhc2UsIHN0b2xlbl90b3A7Cj4+PiDC oMKgwqDCoMKgIHJlc291cmNlX3NpemVfdCByZXNlcnZlZF90b3RhbCwgcmVzZXJ2ZWRfc2l6ZTsK Pj4+IEBAIC0zOTYsMTAgKzQwNiwxMCBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX2luaXRfc3RvbGVu KHN0cnVjdCAKPj4+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+PiDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIDA7Cj4+PiDCoMKgwqDCoMKgIH0KPj4+IC3CoMKgwqAgaWYgKHJlc291cmNlX3Np emUoJmludGVsX2dyYXBoaWNzX3N0b2xlbl9yZXMpID09IDApCj4+PiArwqDCoMKgIGlmIChyZXNv dXJjZV9zaXplKCZtZW0tPnJlZ2lvbikgPT0gMCkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1 cm4gMDsKPj4+IC3CoMKgwqAgaTkxNS0+ZHNtID0gaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3JlczsK Pj4+ICvCoMKgwqAgaTkxNS0+ZHNtID0gbWVtLT5yZWdpb247Cj4+PiDCoMKgwqDCoMKgIGlmIChp OTE1X2FkanVzdF9zdG9sZW4oaTkxNSwgJmk5MTUtPmRzbSkpCj4+PiDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIDA7Cj4+PiBAQCAtNjg0LDIzICs2OTQsMzYgQEAgc3RhdGljIGludCBfaTkxNV9n ZW1fb2JqZWN0X3N0b2xlbl9pbml0KHN0cnVjdCAKPj4+IGludGVsX21lbW9yeV9yZWdpb24gKm1l bSwKPj4+IMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+IMKgIH0KPj4+ICtzdHJ1Y3QgaW50ZWxf bWVtb3J5X3JlZ2lvbiAqaTkxNV9zdG9sZW5fcmVnaW9uKHN0cnVjdCAKPj4+IGRybV9pOTE1X3By aXZhdGUgKmk5MTUpCj4+PiArewo+Pj4gK8KgwqDCoCBpZiAoSEFTX0xNRU0oaTkxNSkpCj4+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuIGk5MTUtPm1tLnJlZ2lvbnNbSU5URUxfUkVHSU9OX1NUT0xF Tl9MTUVNXTsKPj4+ICsKPj4+ICvCoMKgwqAgcmV0dXJuIGk5MTUtPm1tLnJlZ2lvbnNbSU5URUxf UkVHSU9OX1NUT0xFTl9TTUVNXTsKPj4+ICt9Cj4+Cj4+IENvdWxkIGJlIGEgYmlrZXNoZWRkaW5n IGNvbW1lbnQgb25seSAtIGVzcGVjaWFsbHkgc2luY2UgSSB0aGluayB0aGlzIAo+PiBwYXRoIGdl dHMgdmVyeSBsaXR0bGUgdXNlZCBhdCBydW50aW1lIHNvIGl0IGlzIG1vc3QgbGlrZWx5IHBvaW50 bGVzcyAKPj4gdG8gZmlkZGxlIHdpdGggaXQsIGJ1dCBpdCBqdXN0IHN0cmlrZXMgbWUgYSBiaXQg bm90IGZ1bGx5IGVsZWdhbnQgdG8gZG86Cj4+Cj4+IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3Rv bGVuCj4+IMKgwqAtPiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbgo+PiDCoMKgwqDCoCAt PiBpOTE1X3N0b2xlbl9yZWdpb24KPj4KPj4gQW5kIGVuZCB1cCBpbiBoZXJlLCB3aGVuIGFsdGVy bmF0aXZlIGNvdWxkIGJlIGF0IGRyaXZlciBpbml0Ogo+Pgo+PiBpOTE1LT5zdG9sZW5fcmVnaW9u X2lkID0gSEFTX0xNRU0oKSA/IC4uLiA6IC4uLjsKPj4KPj4gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW4KPj4gwqDCoC0+IAo+PiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihpOTE1 LT5tbS5yZWdpb25zW2k5MTUtPnN0b2xlbl9yZWdpb25faWRdKTsKPj4KPj4gT3IgcG9pbnRlciB0 byByZWdpb24uIFdvdWxkIGF2b2lkIGhhdmluZyB0byBleHBvcnQgaTkxNV9zdG9sZW5fcmVnaW9u IAo+PiBhcyB3ZWxsLgo+Pgo+PiBPciBpcyBpOTE1LT5kc20gYWxyZWFkeSB0aGUgcmlnaHQgdGhp bmc/IEJlY2F1c2UuLgo+IAo+IEkgZ3Vlc3Mgd2UgY291bGQganVzdCBoYXZlIGFuIGk5MTUtPnN0 b2xlbl9yZWdpb24gc2hvcnQtY3V0IG9yIHNvbWV0aGluZz8KCmk5MTUtPmRzbSBpcyBub3QgaXQ/ IFdoZXJlIGRvZXMgaTkxNV9nZW1faW5pdF9zdG9sZW4gZXhpc3RzIGZvciAKbG9jYWwtc3RvbGVu IHRoZW4/IEF0IHRoZSAicmVzb3VyY2Vfc2l6ZSgmbWVtLT5yZWdpb24pID09IDAiIGNoZWNrPwoK PiAKPj4KPj4+ICsKPj4+IMKgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKPj4+IMKgIGk5 MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVzb3VyY2Vfc2l6 ZV90IHNpemUpCj4+PiDCoCB7Cj4+PiAtwqDCoMKgIHJldHVybiAKPj4+IGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfcmVnaW9uKGk5MTUtPm1tLnJlZ2lvbnNbSU5URUxfUkVHSU9OX1NUT0xFTl9TTUVN XSwgCj4+Pgo+Pj4gK8KgwqDCoCByZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24o aTkxNV9zdG9sZW5fcmVnaW9uKGk5MTUpLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplLCBJOTE1X0JPX0FMTE9DX0NPTlRJR1VPVVMp Owo+Pj4gwqAgfQo+Pj4gwqAgc3RhdGljIGludCBpbml0X3N0b2xlbihzdHJ1Y3QgaW50ZWxfbWVt b3J5X3JlZ2lvbiAqbWVtKQo+Pj4gwqAgewo+Pj4gLcKgwqDCoCBpbnRlbF9tZW1vcnlfcmVnaW9u X3NldF9uYW1lKG1lbSwgInN0b2xlbiIpOwo+Pj4gK8KgwqDCoCBpZiAoSEFTX0xNRU0obWVtLT5p OTE1KSkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICghaW9fbWFwcGluZ19pbml0X3djKCZtZW0t PmlvbWFwLAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1lbS0+ aW9fc3RhcnQsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVz b3VyY2Vfc2l6ZSgmbWVtLT5yZWdpb24pKSkKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiAtRUlPOwo+Pj4gK8KgwqDCoCB9Cj4+PiDCoMKgwqDCoMKgIC8qCj4+PiDCoMKgwqDCoMKg wqAgKiBJbml0aWFsaXNlIHN0b2xlbiBlYXJseSBzbyB0aGF0IHdlIG1heSByZXNlcnZlIHByZWFs bG9jYXRlZAo+Pj4gwqDCoMKgwqDCoMKgICogb2JqZWN0cyBmb3IgdGhlIEJJT1MgdG8gS01TIHRy YW5zaXRpb24uCj4+PiDCoMKgwqDCoMKgwqAgKi8KPj4+IC3CoMKgwqAgcmV0dXJuIGk5MTVfZ2Vt X2luaXRfc3RvbGVuKG1lbS0+aTkxNSk7Cj4+PiArwqDCoMKgIHJldHVybiBpOTE1X2dlbV9pbml0 X3N0b2xlbihtZW0pOwo+Pgo+PiAuLi4gSSBmaW5kIHRoZSBtZW0gcmVnaW9uIGluaXQgcGF0aHMg YSBiaXQgY29udm9sdXRlZCwgc3RvbGVuIAo+PiBlc3BlY2lhbGx5LCBhbmQgc3RydWdnbGUgdG8g ZmlndXJlIGl0IG91dCBldmVyeSB0aW1lLgo+Pgo+PiBGb3IgaW5zdGFuY2Ugd2UgaGF2ZSBpOTE1 X3JlZ2lvbl9zdG9sZW5fb3BzIHNoYXJlZCBiZXR3ZWVuIHN5c3RlbSBhbmQgCj4+IGxvY2FsIHN0 b2xlbi4gQnV0IHRoZW4gc2hhcmVkIHZmdW5jcyBicmFuY2ggZGVwZW5kaW5nIG9uIHN5c3RlbSB2 cyAKPj4gc3RvbGVuPwo+IAo+IFdlIGNvdWxkIHNwbGl0IHRoZSBpbnRlbF9tZW1vcnlfcmVnaW9u IG9wcz8gTWF5YmUgdGhhdCB3aWxsIG1ha2UgaXQgCj4gc2xpZ2h0bHkgbGVzcyBtdWRkbGVkPwoK SSB0aGluayBzby4gRWFjaCB2ZnVuYyB0YWJsZSB3aXRoIGl0J3Mgb3duIC0+aW5pdCgpIHNob3Vs ZCBtYWtlIGl0IAplYXNpZXIgdG8gZm9sbG93LgoKPiBUaGUgcHJvYmluZyBpcyBzbGlnaHRseSBk aWZmZXJlbnQsIGJ1dCB0aGF0J3Mga2luZCBvZiBleHBlY3RlZCBzaW5jZSAKPiBpdCdzIHF1aXRl IGRpZmZlcmVudCBmcm9tIHRoZSBIVyBwb3YuCj4gCj4gQnV0IG9uY2Ugd2UgZ2V0IGFuIGludGVs X21lbW9yeV9yZWdpb24sIGl0IHNob3VsZCBiZSB0aGUgc2FtZSB3aGV0aGVyIAo+IGl0J3Mgc3Rv bGVuIGRldmljZSBtZW1vcnkgb3Igd2hhdGV2ZXIuCj4gCj4+Cj4+IGk5MTVfZ2VtX2luaXRfc3Rv bGVuIGlzIHNoYXJlZCAtIGJ1dCB3aGljaCBwYXJ0cyBvZiBpdCBhcmUgcmVsZXZhbnQgCj4+IGZv ciBsb2NhbCBzdG9sZW4/Cj4gCj4gQXNraW5nIGFsbCB0aGUgZGlmZmljdWx0IHF1ZXN0aW9ucyA6 KQo+IAo+IEl0J3MganVzdCB0byBwb3B1bGF0ZSBkc20gSSB0aGluay4gSSBjYW4gcmlwIHRoYXQg b3V0IGFuZCB0aGVuIHdlIGRvbid0IAo+IGNhbGwgaTkxNV9nZW1faW5pdF9zdG9sZW4oKSBmb3Ig dGhlIHN0b2xlbiBkZXZpY2UgbWVtb3J5IHBhdGg/IE1heWJlIAo+IHRoYXQgd2lsbCBsb29rIHNs aWdodGx5IGJldHRlcj8KClllcywgd2l0aCB0aGUgYWJvdmUgYXBwcm9hY2ggb2YgdHdvIHN0cnVj dCBpbnRlbF9tZW1vcnlfcmVnaW9uX29wcz8gRXZlbiAKaWYgc29tZSB2ZnVuY3MgYXJlIHNoYXJl ZCBpdCBzaG91bGQgYmUgYmV0dGVyLgoKSSBhbSBhbHNvIGNvbmZ1c2VkIGJ5IC0+cmVsZWFzZSBp ZS4gaTkxNV9nZW1fY2xlYW51cF9zdG9sZW4uIEhvdyBkb2VzIAp0aGF0IHdvcmsgZm9yIHR3byBz dG9sZW4gcmVnaW9ucywgSSBtZWFuIG9uZSBpOTE1LT5tbS5zdG9sZW4/CgpSZWdhcmRzLAoKVHZy dGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=