From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: Re: [PATCH v13 5/7] vfio: ABI for mdev display dma-buf operation Date: Tue, 8 Aug 2017 12:07:55 -0600 Message-ID: <20170808120755.2b74ca64@w520.home> References: <1500974900-31030-1-git-send-email-tina.zhang@intel.com> <1500974900-31030-6-git-send-email-tina.zhang@intel.com> <20170801151812.1f6a216c@w520.home> <237F54289DF84E4997F34151298ABEBC7C58C778@SHSMSX101.ccr.corp.intel.com> <20170802213743.6390b4d9@w520.home> <237F54289DF84E4997F34151298ABEBC7C58C883@SHSMSX101.ccr.corp.intel.com> <20170803084235.5d62d56a@w520.home> <237F54289DF84E4997F34151298ABEBC7C58E625@SHSMSX101.ccr.corp.intel.com> <20170807114325.5a82e8ed@w520.home> <7d7a070a-1fff-ff1e-89ea-72ec8b1c6ee2@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <7d7a070a-1fff-ff1e-89ea-72ec8b1c6ee2@nvidia.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Kirti Wankhede Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "kraxel@redhat.com" , "intel-gvt-dev@lists.freedesktop.org" , "Lv, Zhiyuan" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCA4IEF1ZyAyMDE3IDE0OjE4OjA3ICswNTMwCktpcnRpIFdhbmtoZWRlIDxrd2Fua2hl ZGVAbnZpZGlhLmNvbT4gd3JvdGU6Cgo+IE9uIDgvNy8yMDE3IDExOjEzIFBNLCBBbGV4IFdpbGxp YW1zb24gd3JvdGU6Cj4gPiBPbiBNb24sIDcgQXVnIDIwMTcgMDg6MTE6NDMgKzAwMDAKPiA+ICJa aGFuZywgVGluYSIgPHRpbmEuemhhbmdAaW50ZWwuY29tPiB3cm90ZToKPiA+ICAgCj4gPj4gQWZ0 ZXIgZ29pbmcgdGhyb3VnaCB0aGUgcHJldmlvdXMgZGlzY3Vzc2lvbnMsIGhlcmUgYXJlIHNvbWUg c3VtbWFyaWVzIG1heSBiZSByZWxhdGVkIHRvIHRoZSBjdXJyZW50IGRpc2N1c3Npb246Cj4gPj4g MS4gSG93IGRvZXMgdXNlciBtb2RlIGZpZ3VyZSB0aGUgZGV2aWNlIGNhcGFiaWxpdGllcyBiZXR3 ZWVuIHJlZ2lvbiBhbmQgZG1hLWJ1Zj8KPiA+PiBWRklPX0RFVklDRV9HRVRfUkVHSU9OX0lORk8g Y291bGQgdGVsbCBpZiB0aGUgbWRldiBzdXBwb3J0cyByZWdpb24gY2FzZS4gCj4gPj4gT3RoZXJ3 aXNlLCB0aGUgbWRldiBzdXBwb3J0cyBkbWEtYnVmLiAgCj4gPiAKPiA+IFdoeSBkbyB3ZSBuZWVk IHRvIG1ha2UgdGhpcyBhc3N1bXB0aW9uPyAgCj4gCj4gUmlnaHQsIHdlIHNob3VsZCBub3QgbWFr ZSBzdWNoIGFzc3VtcHRpb24uIFZlbmRvciBkcml2ZXIgbWlnaHQgbm90Cj4gc3VwcG9ydCBib3Ro IG9yIGRpc2FibGUgY29uc29sZSB2bmMgKCBmb3IgZXhhbXBsZSwgZm9yIHBlcmZvcm1hbmNlCj4g dGVzdGluZyBjb25zb2xlIFZOQyBuZWVkIHRvIGJlIGRpc2FibGVkKQo+IAo+ID4gIFdoYXQgaGFw cGVucyB3aGVuIGRtYS1idWYgaXMKPiA+IHN1cGVyc2VkZWQ/ICBXaGF0IGhhcHBlbnMgaWYgYSBk ZXZpY2Ugc3VwcG9ydHMgYm90aCBkbWEtYnVmIGFuZAo+ID4gcmVnaW9ucz8gIFdlIGhhdmUgYSBm bGFncyBmaWVsZCBpbiB2ZmlvX2RldmljZV9nZnhfcGxhbmVfaW5mbywgZG9lc24ndAo+ID4gaXQg bWFrZSBzZW5zZSB0byB1c2UgaXQgdG8gaWRlbnRpZnkgd2hpY2ggZmllbGQsIGJldHdlZW4gcmVn aW9uX2luZGV4Cj4gPiBhbmQgZmQsIGlzIHZhbGlkPyAgV2UgY291bGQgZXZlbiBwdXQgcmVnaW9u X2luZGV4IGFuZCBmZCBpbnRvIGEgdW5pb24KPiA+IHdpdGggdGhlIGZsYWcgYml0cyBpbmRpY2F0 aW5nIGhvdyB0byBpbnRlcnByZXQgdGhlIHVuaW9uLCBidXQgSSdtIG5vdAo+ID4gc3VyZSBldmVy eW9uZSB3YXMgb25ib2FyZCB3aXRoIHRoaXMgaWRlYS4gIFNlZW1zIGxpa2UgYSB3YXN0ZSBvZiA0 Cj4gPiBieXRlcyBub3QgdG8gZG8gdGhhdCB0aG91Z2guCj4gPiAgIAo+IAo+IEFncmVlLgo+IAo+ ID4gVGhpbmtpbmcgZnVydGhlciwgaXMgdGhlIHVzZXIgZXZlciBpbiBhIHNpdHVhdGlvbiB3aGVy ZSB0aGV5IHF1ZXJ5IHRoZQo+ID4gZ3JhcGhpY3MgcGxhbmUgaW5mbyBhbmQgY2FuIGhhbmRsZSBl aXRoZXIgYSBkbWEtYnVmIG9yIGEgcmVnaW9uPyAgSXQKPiA+IHNlZW1zIG1vcmUgbGlrZWx5IHRo YXQgdGhlIHVzZXIgbmVlZHMgdG8ga25vdyBlYXJseSBvbiB3aGljaCBpcwo+ID4gc3VwcG9ydGVk IGFuZCB3b3VsZCB0aGVuIHJlcXVpcmUgdGhhdCB0aGV5IGNvbnRpbnVlIHRvIHNlZSBjb21wYXRp YmxlCj4gPiBwbGFuZSBpbmZvcm1hdGlvbi4uLiAgU2hvdWxkIHRoZSB1c2VyIHRoZW4gYmUgYWJs ZSB0byBzcGVjaWZ5IHdoZXRoZXIKPiA+IHRoZXkgd2FudCBhIGRtYS1idWYgb3IgYSByZWdpb24/ ICBQZXJoYXBzIHRoZXNlIGZsYWcgYml0cyBhcmUgYWN0dWFsbHkKPiA+IGlucHV0IGFuZCB0aGUg cmV0dXJuIHNob3VsZCBiZSAtZXJybm8gaWYgdGhlIGRyaXZlciBjYW5ub3QgcHJvZHVjZQo+ID4g c29tZXRoaW5nIGNvbXBhdGlibGUuCj4gPiAKPiA+IE1heWJlIHdlJ2QgdGhlcmVmb3JlIGRlZmlu ZSAzIGZsYWcgYml0czogUFJPQkUsIERNQUJVRiwgUkVHSU9OLiAgSW4KPiA+IHRoaXMgaW5pdGlh bCBpbXBsZW1lbnRhdGlvbiwgRE1BQlVGIG9yIFJFR0lPTiB3b3VsZCBhbHdheXMgYmUgc2V0IGJ5 Cj4gPiB0aGUgdXNlciB0byByZXF1ZXN0IHRoYXQgdHlwZSBvZiBpbnRlcmZhY2UuICBBZGRpdGlv bmFsbHksIHRoZSBRVUVSWQo+ID4gYml0IGNvdWxkIGJlIHNldCB0byBwcm9iZSBjb21wYXRpYmls aXR5LCB0aHVzIGlmIFBST0JFIGFuZCBSRUdJT04gYXJlCj4gPiBzZXQsIHRoZSB2ZW5kb3IgZHJp dmVyIHdvdWxkIHJldHVybiBzdWNjZXNzIG9ubHkgaWYgaXQgc3VwcG9ydHMgdGhlCj4gPiByZWdp b24gYmFzZWQgaW50ZXJmYWNlLiAgSWYgUFJPQkUgYW5kIERNQUJVRiBhcmUgc2V0LCB0aGUgdmVu ZG9yIGRyaXZlcgo+ID4gcmV0dXJucyBzdWNjZXNzIG9ubHkgaWYgdGhlIGRtYS1idWYgYmFzZWQg aW50ZXJmYWNlIGlzIHN1cHBvcnRlZC4gIFRoZQo+ID4gdmFsdWUgb2YgdGhlIHJlbWFpbmRlciBv ZiB0aGUgc3RydWN0dXJlIGlzIHVuZGVmaW5lZCBmb3IgUFJPQkUuCj4gPiBBZGRpdGlvbmFsbHkg c2V0dGluZyBib3RoIERNQUJVRiBhbmQgUkVHSU9OIGlzIGludmFsaWQuICBVbmRlZmluZWQKPiA+ IGZsYWdzIGJpdHMgbXVzdCBiZSB2YWxpZGF0ZWQgYXMgemVybyBieSB0aGUgZHJpdmVycyBmb3Ig ZnV0dXJlIHVzZQo+ID4gKHRodXMgaWYgd2UgbGF0ZXIgZGVmaW5lIERNQUJVRnYyLCBhbiBvbGRl ciBkcml2ZXIgc2hvdWxkCj4gPiBhdXRvbWF0aWNhbGx5IHJldHVybiAtZXJybm8gd2hlbiBwcm9i ZWQgb3IgcmVxdWVzdGVkKS4KPiA+ICAgCj4gCj4gQXJlIHlvdSBzYXlpbmcgYWxsIG9mIHRoaXMg dG8gYmUgcGFydCBvZiBWRklPX0RFVklDRV9RVUVSWV9HRlhfUExBTkUgaW9jdGw/Cj4gCj4gTGV0 IG1lIHN1bW1hcml6ZSB3aGF0IHdlIG5lZWQsIHRha2luZyBRRU1VIGFzIHJlZmVyZW5jZToKPiAx LiBGcm9tIHZmaW9faW5pdGZuKCksIGZvciBSRUdJT04gY2FzZSwgZ2V0IHJlZ2lvbiBpbmZvOgo+ IHZmaW9fZ2V0X2Rldl9yZWdpb25faW5mbyguLiwgVkZJT19SRUdJT05fU1VCVFlQRV9DT05TT0xF X1JFR0lPTiwKPiAmdmRldi0+Y29uc29sZV9vcHJlZ2lvbikKPiAKPiBJZiBhYm92ZSByZXR1cm4g c3VjY2Vzcywgc2V0dXAgY29uc29sZSBSRUdJT04gYW5kIG1tYXAuCj4gSSBkb24ndCBrbm93IHdo YXQgaXMgcmVxdWlyZWQgZm9yIERNQUJVRiBhdCB0aGlzIG1vbWVudC4KPiAKPiBJZiBjb25zb2xl IFZOQyBpcyBzdXBwb3J0ZWQgZWl0aGVyIERNQUJVRiBvciBSRUdJT04sIGluaXRpYWxpemUgY29u c29sZQo+IGFuZCByZWdpc3RlciBpdHMgY2FsbGJhY2sgb3BlcmF0aW9uczoKPiAKPiBzdGF0aWMg Y29uc3QgR3JhcGhpY0h3T3BzIHZmaW9fY29uc29sZV9vcHMgPSB7Cj4gICAgIC5nZnhfdXBkYXRl ICA9IHZmaW9fY29uc29sZV91cGRhdGVfZGlzcGxheSwKPiB9Owo+IAo+IHZkZXYtPmNvbnNvbGUg PSBncmFwaGljX2NvbnNvbGVfaW5pdChERVZJQ0UodmRldiksIDAsICZ2ZmlvX2NvbnNvbGVfb3Bz LAo+IHZkZXYpOwoKSSBtaWdodCBzdHJ1Y3R1cmUgaXQgdGhhdCB2ZmlvX2luaXRmbigpIHdvdWxk IGNhbGwKaW9jdGwoVkZJT19ERVZJQ0VfUVVFUllfR0ZYX1BMQU5FKSB3aXRoIHRoZSBQUk9CRSBi aXQgc2V0IHdpdGggZWl0aGVyCkRNQUJVRiBvciBSRUdJT04gc2V0IGFzIHRoZSBpbnRlcmZhY2Ug dHlwZSBpbiB0aGUgZmxhZ3MgZmllbGQuICBJZgpSRUdJT04gaXMgdGhlIHByb2JlZCBpbnRlcmZh Y2UgYW5kIHN1Y2Nlc3MgaXMgcmV0dXJuZWQsIHRoZW4gUUVNVSBtaWdodApnbyBsb29rIGZvciBy ZWdpb25zIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBob3dldmVyIHRoZQp2ZmlvX2RldmljZV9n ZnhfcGxhbmVfaW5mbyBzdHJ1Y3R1cmUgaXMgY2Fub25pY2FsIHNvdXJjZSBmb3IgdGhlIHJlZ2lv bgppbmRleCwgc28gUUVNVSB3b3VsZCBwcm9iYWJseSBiZSB3aXNlIHRvIHVzZSB0aGF0IGFuZCBv bmx5IHVzZSB0aGUKcmVnaW9uIHR5cGUgZm9yIGNvbnNpc3RlbmN5IHRlc3RpbmcuCgo+IDIuIE9u IGFib3ZlIGNvbnNvbGUgcmVnaXN0cmF0aW9uLCB2ZmlvX2NvbnNvbGVfdXBkYXRlX2Rpc3BsYXko KSBnZXRzCj4gY2FsbGVkIGZvciBlYWNoIHJlZnJlc2ggY3ljbGUgb2YgY29uc29sZS4gSW4gdGhh dDoKPiAtIGNhbGwgaW9jdGwoVkZJT19ERVZJQ0VfUVVFUllfR0ZYX1BMQU5FKQo+IC0gaWYgKHF1 ZXJpZWQgc2l6ZSA+IDApLCB1cGRhdGUgUUVNVSBjb25zb2xlIHN1cmZhY2UgKGZvciBSRUdJT04g Y2FzZQo+IHJlYWQgbW1hcGVkIHJlZ2lvbiwgZm9yIERNQUJVRiByZWFkIHN1cmZhY2UgdXNpbmcg ZmQpCgpUaGUgaW9jdGwgd291bGQgYmUgY2FsbGVkIHdpdGggUkVHSU9OIG9yIERNQUJVRiBiYXNl ZCBvbiB0aGUgaW5pdGlhbApwcm9iZSBjYWxsLCBleC4gd2UgcHJvYmVkIHRoYXQgUkVHSU9OIGlz IHN1cHBvcnRlZCBhbmQgbm93IHdlIGNvbnRpbnVlCnRvIGFzayBmb3IgcmVnaW9uIGJhc2VkIHVw ZGF0ZXMuICBRRU1VIHdvdWxkIG5lZWQgdG8gdmVyaWZ5IHRoZSByZWdpb24KaW5kZXggbWF0Y2hl cyB0aGF0IGFscmVhZHkgbWFwcGVkLCByZW1hcHBpbmcgYSBkaWZmZXJlbnQgcmVnaW9uIGlmCm5l Y2Vzc2FyeSwgYW5kIGludGVycHJldCB0aGUgZ3JhcGhpY3MgcGFyYW1ldGVycyB0byBwcm92aWRl IHRoZSBzY3JlZW4KdXBkYXRlLgogCj4gQWxleCwgaW4geW91ciBwcm9wb3NhbCBhYm92ZSwgbXkg dW5kZXJzdGFuZGluZyBpcwo+IGlvY3RsKFZGSU9fREVWSUNFX1FVRVJZX0dGWF9QTEFORSkgd2l0 aCBQUk9CRSBmbGFnIHNob3VsZCBiZSBjYWxsZWQgaW4KPiBzdGVwICMxLgo+IEluIHN0ZXAgIzIs IGlvY3RsKFZGSU9fREVWSUNFX1FVRVJZX0dGWF9QTEFORSkgd2lsbCBiZSB3aXRob3V0IFBST0JF Cj4gZmxhZywgYnV0IGVpdGhlciBETUFCVUYgb3IgUkVHSU9OIGZsYWcgYmFzZWQgb24gd2hhdCBp cyByZXR1cm5lZCBhcwo+IHN1cHBvcnRlZCBieSB2ZW5kb3IgZHJpdmVyIGluIHN0ZXAgIzEuIElz IHRoYXQgY29ycmVjdD8KClllcywgdGhhdCdzIHRoZSBpZGVhLiAgRG9lcyBpdCBtYWtlIHNlbnNl L3Byb3ZpZGUgdmFsdWU/Cgo+ID4gSXQgc2VlbXMgbGlrZSB0aGlzIGhhbmRsZXMgYWxsIHRoZSBj YXNlcywgdGhlIHVzZXIgY2FuIGFzayB3aGF0J3MKPiA+IHN1cHBvcnRlZCBhbmQgc3BlY2lmaWVz IHRoZSBpbnRlcmZhY2UgdGhleSB3YW50IG9uIGV2ZXJ5IGNhbGwuICBUaGUKPiA+IHVzZXIgdGhl cmVmb3JlIGNhbiBhbHNvIGNob29zZSBiZXR3ZWVuIHJlZ2lvbl9pbmRleCBhbmQgZmQgYW5kIHdl IGNhbgo+ID4gbWFrZSB0aGF0IGEgdW5pb24uCj4gPiAgCj4gPj4gMi4gRm9yIGRtYS1idWYsIGhv dyB0byBkaWZmZXJlbnRpYXRlIHVuc3VwcG9ydGVkIHZzIG5vdCBpbml0aWFsaXplZD8KPiA+PiBG b3IgZG1hLWJ1Ziwgd2hlbiB0aGUgbWRldiBkb2Vzbid0IHN1cHBvcnQgc29tZSBhcmd1bWVudHMs IC1FSU5WQUwgd2lsbCBiZSByZXR1cm5lZC4gQW5kIC1lcnJubyB3aWxsIHJldHVybiB3aGVuIG1l ZXRpbmcgb3RoZXIgZmFpbHVyZXMsIGxpa2UgLUVOT01FTS4KPiA+PiBJZiB0aGUgbWRldiBpcyBu b3QgaW5pdGlhbGl6ZWQsIHRoZXJlIHdvbid0IGJlIGFueSByZXR1cm5lZCBlcnIuIEp1c3QgemVy byBhbGwgdGhlIGZpZWxkcyBpbiBzdHJ1Y3R1cmUgdmZpb19kZXZpY2VfZ2Z4X3BsYW5lX2luZm8u ICAKPiA+IAo+ID4gU28gd2UncmUgcmVseWluZyBvbiBzcGVjaWFsIHZhbHVlcyBhZ2FpbiA6LVwg IEZvciB3aGljaCBmaWVsZHMgaXMgemVybwo+ID4gbm90IGEgdmFsaWQgdmFsdWU/ICBJIHByZWZl ciB0aGUgcHJvYmUgaW50ZXJmYWNlIGFib3ZlIHVubGVzcyB0aGVyZSBhcmUKPiA+IGJldHRlciBp ZGVhcy4KPiA+ICAgCj4gCj4gUFJPQkUgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHZkZXYgaW5pdGlh bGl6YXRpb24gYW5kIGFmdGVyIHRoYXQKPiB2ZmlvX2NvbnNvbGVfdXBkYXRlX2Rpc3BsYXkoKSBn ZXRzIGNhbGxlZCBhdCBldmVyeSBjb25zb2xlIHJlZnJlc2gKPiBjeWNsZS4gQnV0IHVudGlsIGRy aXZlciBpbiBndWVzdCBpcyBsb2FkZWQsIG1tYXBlZCBidWZmZXIvIERNQUJVRiB3aWxsCj4gbm90 IGJlIHBvcHVsYXRlZCB3aXRoIGNvcnJlY3Qgc3VyZmFjZSBkYXRhLiBJbiB0aGF0IGNhc2UgZm9y IFFVRVJZLAo+IHZlbmRvciBkcml2ZXIgc2hvdWxkIHJldHVybiAoYXRsZWFzdCkgc2l6ZT0wIHdo aWNoIG1lYW5zIHRoZXJlIGlzCj4gbm90aGluZyB0byBjb3B5LiBPbmNlIGd1ZXN0IGRyaXZlciBp cyBsb2FkZWQgYW5kIHN1cmZhY2UgaXMgY3JlYXRlZCBieQo+IGd1ZXN0IGRyaXZlciwgUVVFUlkg aW50ZXJmYWNlIHNob3VsZCByZXR1cm4gdmFsaWQgc2l6ZS4KClRoYXQgc2VlbXMgcmVhc29uYWJs ZSBhbmQgd2VsbCBzcGVjaWZpZWQuICBUaGFua3MsCgpBbGV4Cgo+ID4+IDMuIFRoZSBpZCBmaWVs ZCBpbiBzdHJ1Y3R1cmUgdmZpb19kZXZpY2VfZ2Z4X3BsYW5lX2luZm8KPiA+PiBTbyBmYXIgd2Ug aGF2ZW4ndCBmaWd1cmVkIG91dCB0aGUgdXNhZ2Ugb2YgdGhpcyBmaWVsZCBmb3IgZG1hLWJ1ZiB1 c2FnZS4gU28sIHRoaXMgZmllbGQgaXMgY2hhbmdlZCB0byAicmVnaW9uX2luZGV4IiBhbmQgb25s eSB1c2VkIGZvciByZWdpb24gdXNhZ2UuCj4gPj4gSW4gcHJldmlvdXMgZGlzY3Vzc2lvbnMsIHdl IHRob3VnaHQgdGhpcyAiaWQiIGZpZWxkIG1pZ2h0IGJlIHVzZWQgZm9yIGJvdGggZG1hLWJ1ZiBh bmQgcmVnaW9uIHVzYWdlcy4KPiA+PiBTbywgd2UgcHJvcG9zZWQgc29tZSB3YXlzLCBsaWtlIGFk ZGluZyBmbGFncyBmaWVsZCB0byB0aGUgc3RydWN0dXJlLiBBbm90aGVyIHdheSB0byBkbyBpdCB3 YXMgdG8gYWRkIHRoaXM6Cj4gPj4gZW51bSB2ZmlvX2RldmljZV9nZnhfdHlwZSB7Cj4gPj4gICAg ICAgICAgVkZJT19ERVZJQ0VfR0ZYX05PTkUsCj4gPj4gICAgICAgICAgVkZJT19ERVZJQ0VfR0ZY X0RNQUJVRiwKPiA+PiAgICAgICAgICBWRklPX0RFVklDRV9HRlhfUkVHSU9OLAo+ID4+ICB9Owo+ ID4+ICAKPiA+PiAgc3RydWN0IHZmaW9fZGV2aWNlX2dmeF9xdWVyeV9jYXBzIHsKPiA+PiAgICAg ICAgICBfX3UzMiBhcmdzejsKPiA+PiAgICAgICAgICBfX3UzMiBmbGFnczsKPiA+PiAgICAgICAg ICBlbnVtIHZmaW9fZGV2aWNlX2dmeF90eXBlOwo+ID4+ICB9Owo+ID4+IE9idmlvdXNseSwgd2Ug ZG9uJ3QgbmVlZCB0byBjb25zaWRlciB0aGlzIGFnYWluLCB1bmxlc3Mgd2UgZmluZCB0aGUgInJl Z2lvbl9pbmRleCIgbWVhbnMgc29tZXRoaW5nIGZvciBkbWEtYnVmIHVzYWdlLiAgCj4gPiAKPiA+ IFRoZSB1c2VmdWxuZXNzIG9mIHRoaXMgaW9jdGwgc2VlbXMgcmVhbGx5IGxpbWl0ZWQgYW5kIG9u Y2UgYWdhaW4gd2UgZ2V0Cj4gPiBpbnRvIGEgc2l0dWF0aW9uIHdoZXJlIGhhdmluZyB0d28gaW9j dGxzIGxlYXZlcyBkb3VidCB3aGV0aGVyIHRoaXMgaXMKPiA+IGRlc2NyaWJpbmcgdGhlIGN1cnJl bnQgcGxhbmUgc3RhdGUuICBUaGFua3MsCj4gPiAKPiA+IEFsZXgKPiA+ICAgCj4gPj4+Pj4+Pj4+ ICBpbmNsdWRlL3VhcGkvbGludXgvdmZpby5oIHwgMjggKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ID4+Pj4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKykKPiA+Pj4+ Pj4+Pj4KPiA+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmgK PiA+Pj4+Pj4+Pj4gYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oIGluZGV4IGFlNDYxMDUuLjgy N2EyMzAgMTAwNjQ0Cj4gPj4+Pj4+Pj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmgK PiA+Pj4+Pj4+Pj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaAo+ID4+Pj4+Pj4+PiBA QCAtNTAyLDYgKzUwMiwzNCBAQCBzdHJ1Y3QgdmZpb19wY2lfaG90X3Jlc2V0IHsKPiA+Pj4+Pj4+ Pj4KPiA+Pj4+Pj4+Pj4gICNkZWZpbmUgVkZJT19ERVZJQ0VfUENJX0hPVF9SRVNFVAlfSU8oVkZJ T19UWVBFLCAgICAKPiA+Pj4gVkZJT19CQVNFICsgICAgCj4gPj4+Pj4+Pj4gMTMpICAgIAo+ID4+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiArLyoqCj4gPj4+Pj4+Pj4+ICsgKiBWRklPX0RFVklDRV9RVUVS WV9HRlhfUExBTkUgLSBfSU9XKFZGSU9fVFlQRSwgICAgCj4gPj4+IFZGSU9fQkFTRSAgICAKPiA+ Pj4+ICsgICAgCj4gPj4+Pj4+IDE0LCAgICAKPiA+Pj4+Pj4+Pj4gK3N0cnVjdCB2ZmlvX2Rldmlj ZV9xdWVyeV9nZnhfcGxhbmUpCj4gPj4+Pj4+Pj4+ICsgKgo+ID4+Pj4+Pj4+PiArICogU2V0IHRo ZSBkcm1fcGxhbmVfdHlwZSBhbmQgcmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQKPiA+Pj4+Pj4+ Pj4gK3RoZSBnZnggICAgCj4gPj4+PiBwbGFuZS4gICAgCj4gPj4+Pj4+Pj4+ICsgKgo+ID4+Pj4+ Pj4+PiArICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLgo+ID4+Pj4+ Pj4+PiArICovCj4gPj4+Pj4+Pj4+ICtzdHJ1Y3QgdmZpb19kZXZpY2VfZ2Z4X3BsYW5lX2luZm8g ewo+ID4+Pj4+Pj4+PiArCV9fdTMyIGFyZ3N6Owo+ID4+Pj4+Pj4+PiArCV9fdTMyIGZsYWdzOwo+ ID4+Pj4+Pj4+PiArCS8qIGluICovCj4gPj4+Pj4+Pj4+ICsJX191MzIgZHJtX3BsYW5lX3R5cGU7 CS8qIHR5cGUgb2YgcGxhbmU6IERSTV9QTEFORV9UWVBFXyogICAgCj4gPj4+PiAqLyAgICAKPiA+ Pj4+Pj4+Pj4gKwkvKiBvdXQgKi8KPiA+Pj4+Pj4+Pj4gKwlfX3UzMiBkcm1fZm9ybWF0OwkvKiBk cm0gZm9ybWF0IG9mIHBsYW5lICovCj4gPj4+Pj4+Pj4+ICsJX191NjQgZHJtX2Zvcm1hdF9tb2Q7 ICAgLyogdGlsZWQgbW9kZSAqLwo+ID4+Pj4+Pj4+PiArCV9fdTMyIHdpZHRoOwkvKiB3aWR0aCBv ZiBwbGFuZSAqLwo+ID4+Pj4+Pj4+PiArCV9fdTMyIGhlaWdodDsJLyogaGVpZ2h0IG9mIHBsYW5l ICovCj4gPj4+Pj4+Pj4+ICsJX191MzIgc3RyaWRlOwkvKiBzdHJpZGUgb2YgcGxhbmUgKi8KPiA+ Pj4+Pj4+Pj4gKwlfX3UzMiBzaXplOwkvKiBzaXplIG9mIHBsYW5lIGluIGJ5dGVzLCBhbGlnbiBv biBwYWdlKi8KPiA+Pj4+Pj4+Pj4gKwlfX3UzMiB4X3BvczsJLyogaG9yaXpvbnRhbCBwb3NpdGlv biBvZiBjdXJzb3IgcGxhbmUsIHVwcGVyICAgIAo+ID4+Pj4gbGVmdCBjb3JuZXIgICAgCj4gPj4+ Pj4+Pj4gaW4gcGl4ZWxzICovICAgIAo+ID4+Pj4+Pj4+PiArCV9fdTMyIHlfcG9zOwkvKiB2ZXJ0 aWNhbCBwb3NpdGlvbiBvZiBjdXJzb3IgcGxhbmUsIHVwcGVyIGxlZnQgICAgCj4gPj4+PiBjb3Ju ZXIgaW4gICAgCj4gPj4+Pj4+Pj4gbGluZXMqLyAgICAKPiA+Pj4+Pj4+Pj4gKwlfX3UzMiByZWdp b25faW5kZXg7Cj4gPj4+Pj4+Pj4+ICsJX19zMzIgZmQ7CS8qIGRtYS1idWYgZmQgKi8gICAgCj4g Pj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBIb3cgZG8gSSBrbm93IHdoaWNoIG9mIHRoZXNlIGlzIHZhbGlk LCByZWdpb25faW5kZXggb3IgZmQ/Cj4gPj4+Pj4+Pj4gQ2FuIEkgYXNrIGZvciBvbmUgdnMgdGhl IG90aGVyPyAgV2hhdCBhcmUgdGhlIGVycm5vIHZhbHVlcyB0bwo+ID4+Pj4+Pj4+IGRpZmZlcmVu dGlhdGUgdW5zdXBwb3J0ZWQgdnMgbm90IGluaXRpYWxpemVkPyAgSXMgdGhlcmUgYSAicHJvYmUi Cj4gPj4+Pj4+Pj4gZmxhZyB0aGF0IEkgY2FuIHVzZSB0byBkZXRlcm1pbmUgd2hhdCB0aGUgZGV2 aWNlIHN1cHBvcnRzCj4gPj4+Pj4+Pj4gd2l0aG91dCBhbGxvY2F0aW5nICAgIAo+ID4+Pj4+PiB0 aG9zZSByZXNvdXJjZXMgeWV0PyAgICAKPiA+Pj4+Pj4+IERtYS1idWYgd29uJ3QgdXNlIHJlZ2lv bl9pbmRleCwgd2hpY2ggbWVhbnMgcmVnaW9uX2luZGV4IGlzIHplcm8KPiA+Pj4+Pj4+IGFsbCB0 aGUgICAgCj4gPj4+Pj4+IHRpbWUgZm9yIGRtYS1idWYgdXNhZ2UuICAgIAo+ID4+Pj4+Pj4gQXMg d2UgZGlzY3Vzc2VkLCB0aGVyZSB3b24ndCBiZSBlcnJubyBpZiBub3QgaW5pdGlhbGl6ZWQsIGp1 c3QKPiA+Pj4+Pj4+IGtlZXAgYWxsIGZpZWxkcyAgICAKPiA+Pj4+IHplcm8uICAgIAo+ID4+Pj4+ Pj4gSSB3aWxsIGFkZCB0aGUgY29tbWVudHMgYWJvdXQgdGhlc2UgaW4gdGhlIG5leHQgdmVyc2lv bi4gVGhhbmtzICAgIAo+ID4+Pj4+Pgo+ID4+Pj4+PiBaZXJvIGlzIGEgdmFsaWQgcmVnaW9uIGlu ZGV4LiAgICAKPiA+Pj4+PiBJZiB6ZXJvIGlzIHZhbGlkLCBjYW4gd2UgZmluZCBvdXQgb3RoZXIg aW52YWxpZCB2YWx1ZT8gSG93IGFib3V0IDB4ZmZmZmZmZmY/ICAgIAo+ID4+Pj4KPiA+Pj4+IFVu bGlrZWx5LCBidXQgYWxzbyB2YWxpZC4gIElzbid0IHRoaXMgd2h5IHdlIGhhdmUgYSBmbGFncyBm aWVsZCBpbiB0aGUKPiA+Pj4+IHN0cnVjdHVyZSwgc28gd2UgZG9uJ3QgbmVlZCB0byByZWx5IG9u IGltcGxpY2l0IHZhbHVlcyBhcyBpbnZhbGlkLgo+ID4+Pj4gQWxzbywgYWxsIG9mIHRoZSBwcmV2 aW91c2x5IGRpc2N1c3NlZCB1c2FnZSBtb2RlbHMgbmVlZHMgdG8gYmUKPiA+Pj4+IGRvY3VtZW50 ZWQsIGVpdGhlciBoZXJlIGluIHRoZSBoZWFkZXIgb3IgaW4gYSBEb2N1bWVudGF0aW9uLyBmaWxl LiAgICAKPiA+Pj4gQWNjb3JkaW5nIHRvIHRoZSBwcmV2aW91c2x5IGRpc2N1c3Npb24sIHdlIGFs c28gaGF2ZSB0aGUgZm9sbG93aW5nIHByb3Bvc2U6Cj4gPj4+IGVudW0gdmZpb19kZXZpY2VfZ2Z4 X3R5cGUgewo+ID4+PiAgICAgICAgIFZGSU9fREVWSUNFX0dGWF9OT05FLAo+ID4+PiAgICAgICAg IFZGSU9fREVWSUNFX0dGWF9ETUFCVUYsCj4gPj4+ICAgICAgICAgVkZJT19ERVZJQ0VfR0ZYX1JF R0lPTiwKPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4gc3RydWN0IHZmaW9fZGV2aWNlX2dmeF9xdWVyeV9j YXBzIHsKPiA+Pj4gICAgICAgICBfX3UzMiBhcmdzejsKPiA+Pj4gICAgICAgICBfX3UzMiBmbGFn czsKPiA+Pj4gICAgICAgICBlbnVtIHZmaW9fZGV2aWNlX2dmeF90eXBlOwo+ID4+PiB9Owo+ID4+ PiBTbywgd2UgbWF5IG5lZWQgdG8gYWRkIG9uZSBtb3JlIGlvY3RsLCBlLmcuIFZGSU9fREVWSUNF X1FVRVJZX0dGWF9DQVBTLgo+ID4+PiBVc2VyIG1vZGUgY2FuIHF1ZXJ5IHRoaXMgYmVmb3JlIHF1 ZXJ5aW5nIHRoZSBwbGFuIGluZm8sIGFuZCB0byBzZWUgd2hpY2ggdXNhZ2UKPiA+Pj4gKGRtYS1i dWYgb3IgcmVnaW9uKSBpcyBzdXBwb3J0ZWQuCj4gPj4+IERvZXMgaXQgc3RpbGwgbWFrZSBzZW5z ZT8KPiA+Pj4gVGhhbmtzLiAgICAKPiA+PiBTbywgSSB0aGluayB3ZSBjYW4gcmVseSBvbiBWRklP X0RFVklDRV9HRVRfUkVHSU9OX0lORk8gdG8gdGVsbCB1c2VyIG1vZGUgd2hldGhlciB0aGUgcmVn aW9uIGNhc2UgaXMgdXNpbmcsIGluc3RlYWQgb2YgaW50cm9kdWNpbmcgYSBuZXcgaW9jdGwuCj4g Pj4gVGhhbmtzCj4gPj4KPiA+PiBUaW5hICAKPiA+Pj4KPiA+Pj4gVGluYQo+ID4+Pgo+ID4+PiAg ICAgCj4gPj4+PiBUaGFua3MsCj4gPj4+Pgo+ID4+Pj4gQWxleAo+ID4+Pj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+Pj4+IGRyaS1kZXZlbCBtYWls aW5nIGxpc3QKPiA+Pj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pj4+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsICAg IAo+ID4gICAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=