From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhiyuan Lv Subject: Re: [RFC 02/29] drm/i915: Introduce host graphics memory balloon for gvt Date: Fri, 5 Feb 2016 18:03:07 +0800 Message-ID: <20160205100307.GA25298@zlv-hp-dev> References: <1453976511-27322-1-git-send-email-zhi.a.wang@intel.com> <1453976511-27322-3-git-send-email-zhi.a.wang@intel.com> <1454585228.9041.24.camel@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 6F79E6E99A for ; Fri, 5 Feb 2016 02:14:14 -0800 (PST) Content-Disposition: inline In-Reply-To: <1454585228.9041.24.camel@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joonas Lahtinen Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, david.j.cowperthwaite@intel.com, igvt-g@lists.01.org List-Id: intel-gfx@lists.freedesktop.org SGkgSm9vbmFzLAoKVGhhbmtzIG11Y2ggZm9yIHRoZSByZXZpZXchIFdlIHdpbGwgaW5jb3Jwb3Jh dGUgdGhvc2UgcmV2aWV3IGNvbW1lbnRzIQoKTWVhbndoaWxlLCBpcyBpdCBnb29kIGVub3VnaCB0 byBkbyB0aGUgaG9zdCBiYWxsb29uaW5nIGxpa2UgYmVsb3c/IFRoZQpwcm9zIGlzIHRoYXQgaXQg aXMgdmVyeSBzaW1wbGUsIGVzcGVjaWFsbHkgY29uc2lkZXIgdGhhdCBndWVzdApiYWxsb29uaW5n IGxvZ2ljIGhhcyBiZWVuIHRoZXJlLiBUaGFua3MhCgpSZWdhcmRzLAotWmhpeXVhbgoKT24gVGh1 LCBGZWIgMDQsIDIwMTYgYXQgMDE6Mjc6MDhQTSArMDIwMCwgSm9vbmFzIExhaHRpbmVuIHdyb3Rl Ogo+IEhpLAo+IAo+IE9uIHRvLCAyMDE2LTAxLTI4IGF0IDE4OjIxICswODAwLCBaaGkgV2FuZyB3 cm90ZToKPiA+IEZyb206IEJpbmcgTml1IDxiaW5nLm5pdUBpbnRlbC5jb20+Cj4gPiAKPiA+IFRo aXMgcGF0Y2ggaW50cm9kdWNlcyBob3N0IGdyYXBoaWNzIG1lbW9yeSBiYWxsb24gd2hlbiBHVlQt ZyBpcyBlbmFibGVkLgo+ID4gCj4gPiBBcyB1bmRlciBHVlQtZywgaTkxNSBvbmx5IG93bmVkIGxp bWl0ZWQgZ3JhcGhpY3MgcmVzb3VyY2VzLCBvdGhlcnMgYXJlCj4gPiBtYW5hZ2VkIGJ5IEdWVC1n IHJlc291cmNlIGFsbG9jYXRvciBhbmQga2VwdCBmb3Igb3RoZXIgdkdQVXMuCj4gPiAKPiA+IEZv ciBncmFwaGljcyBtZW1vcnkgc3BhY2UgcGFydGl0aW9uLCBhIHR5cGljYWwgbGF5b3V0IGxvb2tz IGxpa2U6Cj4gPiAKPiA+ICstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gKiBIb3N0IHzCoMKgwqAqR1ZULWcgUmVzb3Vy Y2XCoMKgwqDCoMKgfCogSG9zdHzCoMKgwqAqR1ZULWcgUmVzb3VyY2XCoMKgwqDCoMKgfAo+ID4g PiBPd25lZCB8wqDCoMKgQWxsb2NhdG9yIE1hbmFnZWTCoMKgwqB8IE93bmVkfMKgwqDCoEFsbG9j YXRvciBNYW5hZ2VkwqDCoMKgfAo+ID4gPiDCoMKgwqDCoMKgwqB8wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgwqDCoMKgwqB8wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwKPiA+ICstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsKPiA+ID4gwqDCoMKg wqDCoMKgfMKgwqDCoMKgwqDCoMKgfMKgwqDCoMKgwqDCoMKgfMKgwqDCoMKgwqDCoMKgfMKgwqDC oMKgwqDCoHzCoMKgwqDCoMKgwqDCoHzCoMKgwqDCoMKgwqDCoHzCoMKgwqDCoMKgwqDCoHwKPiA+ ID4gaTkxNcKgwqB8IHZtIDHCoMKgfCB2bSAywqDCoHwgdm0gM8KgwqB8IGk5MTUgfCB2bSAxwqDC oHwgdm0gMsKgwqB8IHZtIDPCoMKgfAo+ID4gPiDCoMKgwqDCoMKgwqB8wqDCoMKgwqDCoMKgwqB8 wqDCoMKgwqDCoMKgwqB8wqDCoMKgwqDCoMKgwqB8wqDCoMKgwqDCoMKgfMKgwqDCoMKgwqDCoMKg fMKgwqDCoMKgwqDCoMKgfMKgwqDCoMKgwqDCoMKgfAo+ID4gKy0tLS0tLS0rLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKwo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoEFwZXJ0dXJlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoEhpZGRlbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwKPiA+ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBHR1RUIG1l bW9yeSBzcGFjZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfAo+ ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwo+ID4gCj4gPiBTaW1pbGFyIHdpdGggZmVuY2UgcmVnaXN0ZXJzIHBhcnRpdGlv bjoKPiA+IAo+ID4gwqArLS0tLS0tICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+IMKgfCAq IEhvc3R8wqDCoMKgwqBHVlQtZyBSZXNvdXJjZcKgwqDCoMKgwqB8Cj4gPiDCoHwgT3duZWQgfMKg wqDCoEFsbG9jYXRvciBNYW5hZ2VkwqDCoMKgKwo+ID4gwqAwwqDCoMKgwqDCoMKgwqB8wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDMxCj4gPiDCoCstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKwo+ID4gwqB8wqDCoMKgwqDCoMKgwqB8wqDCoMKgwqDC oMKgwqB8wqDCoMKgwqDCoMKgwqB8wqDCoMKgwqDCoMKgwqB8Cj4gPiDCoHwgaTkxNcKgwqB8IHZt IDHCoMKgfCB2bSAywqDCoHwgdm0gM8KgwqB8Cj4gPiDCoHzCoMKgwqDCoMKgwqDCoHzCoMKgwqDC oMKgwqDCoHzCoMKgwqDCoMKgwqDCoHzCoMKgwqDCoMKgwqDCoHwKPiA+IMKgKy0tLS0tLS0rLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0rCj4gPiAKPiA+IGk5MTUgaG9zdCB3aWxsIHJlYWQgdGhlIGFt b3VudCBvZiBhbGxvY2F0ZWQgcmVzb3VyY2VzIHZpYSBHVlQtZyBrZXJuZWwgcGFyYW1ldGVycy4K PiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogQmluZyBOaXUgPGJpbmcubml1QGludGVsLmNvbT4KPiA+ IFNpZ25lZC1vZmYtYnk6IFpoaSBXYW5nIDx6aGkuYS53YW5nQGludGVsLmNvbT4KPiA+IC0tLQo+ ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvcGFyYW1zLmjCoMKgwqB8wqDCoDMgKysrCj4g PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmPCoMKgwqDCoMKgfMKgwqAzICsrKwo+ ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8wqDCoDQgKystLQo+ID4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuY8KgwqDCoMKgfCAxNiArKysrKysrKysr KystLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5owqDCoMKgwqB8wqDC oDEgKwo+ID4gwqA1IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvcGFyYW1z LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvcGFyYW1zLmgKPiA+IGluZGV4IGQyOTU1Yjku LjA2NTZhOTggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvcGFyYW1z LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9wYXJhbXMuaAo+ID4gQEAgLTI3 LDYgKzI3LDkgQEAKPiA+IMKgc3RydWN0IGd2dF9rZXJuZWxfcGFyYW1zIHsKPiA+IMKgCWJvb2wg ZW5hYmxlOwo+ID4gwqAJaW50IGRlYnVnOwo+ID4gKwlpbnQgZG9tMF9sb3dfZ21fc3o7Cj4gPiAr CWludCBkb20wX2hpZ2hfZ21fc3o7Cj4gPiArCWludCBkb20wX2ZlbmNlX3N6Owo+ID4gwqB9Owo+ ID4gwqAKPiA+IMKgZXh0ZXJuIHN0cnVjdCBndnRfa2VybmVsX3BhcmFtcyBndnQ7Cj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKPiA+IGluZGV4IDc5OWE1M2EuLmU5MTZlNDMgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPiBAQCAtNTA4MCw2ICs1MDgwLDkgQEAgaTkxNV9nZW1f bG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gwqAJZWxzZQo+ID4gwqAJCWRldl9wcml2 LT5udW1fZmVuY2VfcmVncyA9IDg7Cj4gPiDCoAo+ID4gKwlpZihpbnRlbF9ndnRfaG9zdF9hY3Rp dmUoZGV2KSkKPiAKPiBTcGFjZSBiZXR3ZWVuICJpZiIgYW5kICIoIgoKVGhhbmtzISBXaWxsIGNv cnJlY3QgaXQuCgo+IAo+ID4gKwkJZGV2X3ByaXYtPm51bV9mZW5jZV9yZWdzID0gZ3Z0LmRvbTBf ZmVuY2Vfc3o7Cj4gPiArCj4gPiDCoAlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2KSkKPiA+IMKg CQlkZXZfcHJpdi0+bnVtX2ZlbmNlX3JlZ3MgPQo+ID4gwqAJCQkJSTkxNV9SRUFEKHZndGlmX3Jl ZyhhdmFpbF9ycy5mZW5jZV9udW0pKTsKPiAKPiBJJ2QgbGlrZSB0byBzZWUgdGhlIGFib3ZlIGFz ICJlbHNlIGlmIiBjb25zdHJ1Y3QganVzdCBsaWtlIHlvdSBoYXZlCj4gYmVsb3cgd2l0aCB0aGUg aW50ZWxfdmd0X2JhbGxvb24oKS4gQ291bGQgZXZlbiBkbwo+IAo+IAlpZiAoZ3Z0X2hvc3QpICB7 Cj4gCQkuLi4KPiAJfSBlbHNlIGlmICh2Z3B1X2FjdGl2ZSkgewo+IAkJLi4uCj4gCX0gZWxzZSB7 Cj4gCQlwZXIgbWFjaGluZSBkZXRlY3Rpb24KPiAJfQo+IAo+IFJpZ2h0PwoKVGhhdCBsb29rcyBi ZXR0ZXIhCgo+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiA+IGluZGV4IDcz NzdiNjcuLjA1NDBkZTIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK PiA+IEBAIC0yNzEzLDcgKzI3MTMsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3NldHVwX2dsb2Jh bF9ndHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+IMKgCWk5MTVfYWRkcmVzc19zcGFjZV9p bml0KGdndHRfdm0sIGRldl9wcml2KTsKPiA+IMKgCWdndHRfdm0tPnRvdGFsICs9IFBBR0VfU0la RTsKPiA+IMKgCj4gPiAtCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXYpKSB7Cj4gPiArCWlmIChp bnRlbF92Z3B1X2FjdGl2ZShkZXYpIHx8IGludGVsX2d2dF9ob3N0X2FjdGl2ZShkZXYpKSB7Cj4g PiDCoAkJcmV0ID0gaW50ZWxfdmd0X2JhbGxvb24oZGV2KTsKPiA+IMKgCQlpZiAocmV0KQo+ID4g wqAJCQlyZXR1cm4gcmV0Owo+ID4gQEAgLTI4MTAsNyArMjgxMCw3IEBAIHZvaWQgaTkxNV9nbG9i YWxfZ3R0X2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+IMKgCX0KPiA+IMKgCj4g PiDCoAlpZiAoZHJtX21tX2luaXRpYWxpemVkKCZ2bS0+bW0pKSB7Cj4gPiAtCQlpZiAoaW50ZWxf dmdwdV9hY3RpdmUoZGV2KSkKPiA+ICsJCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXYpIHx8IGlu dGVsX2d2dF9ob3N0X2FjdGl2ZShkZXYpKQo+ID4gwqAJCQlpbnRlbF92Z3RfZGViYWxsb29uKCk7 Cj4gPiDCoAo+ID4gwqAJCWRybV9tbV90YWtlZG93bigmdm0tPm1tKTsKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdmdwdS5jCj4gPiBpbmRleCBkZWE3NDI5Li5mYmU2MTE0IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdmdwdS5jCj4gPiBAQCAtMTg4LDEwICsxODgsMTggQEAgaW50IGludGVsX3Zn dF9iYWxsb29uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiDCoAl1bnNpZ25lZCBsb25nIHVu bWFwcGFibGVfYmFzZSwgdW5tYXBwYWJsZV9zaXplLCB1bm1hcHBhYmxlX2VuZDsKPiA+IMKgCWlu dCByZXQ7Cj4gPiDCoAo+ID4gLQltYXBwYWJsZV9iYXNlID0gSTkxNV9SRUFEKHZndGlmX3JlZyhh dmFpbF9ycy5tYXBwYWJsZV9nbWFkci5iYXNlKSk7Cj4gPiAtCW1hcHBhYmxlX3NpemUgPSBJOTE1 X1JFQUQodmd0aWZfcmVnKGF2YWlsX3JzLm1hcHBhYmxlX2dtYWRyLnNpemUpKTsKPiA+IC0JdW5t YXBwYWJsZV9iYXNlID0gSTkxNV9SRUFEKHZndGlmX3JlZyhhdmFpbF9ycy5ub25tYXBwYWJsZV9n bWFkci5iYXNlKSk7Cj4gPiAtCXVubWFwcGFibGVfc2l6ZSA9IEk5MTVfUkVBRCh2Z3RpZl9yZWco YXZhaWxfcnMubm9ubWFwcGFibGVfZ21hZHIuc2l6ZSkpOwo+ID4gKwlpZihpbnRlbF9ndnRfaG9z dF9hY3RpdmUoZGV2KSkgewo+ID4gKwkJbWFwcGFibGVfYmFzZSA9IDA7Cj4gPiArCQltYXBwYWJs ZV9zaXplID0gZ3Z0LmRvbTBfbG93X2dtX3N6IDw8IDIwOwo+ID4gKwkJdW5tYXBwYWJsZV9iYXNl ID0gZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9lbmQ7Cj4gPiArCQl1bm1hcHBhYmxlX3NpemUgPSBn dnQuZG9tMF9oaWdoX2dtX3N6IDw8IDIwOwo+ID4gKwl9IGVsc2UgaWYgKGludGVsX3ZncHVfYWN0 aXZlKGRldikpIHsKPiA+ICsJCW1hcHBhYmxlX2Jhc2UgPSBJOTE1X1JFQUQodmd0aWZfcmVnKGF2 YWlsX3JzLm1hcHBhYmxlX2dtYWRyLmJhc2UpKTsKPiA+ICsJCW1hcHBhYmxlX3NpemUgPSBJOTE1 X1JFQUQodmd0aWZfcmVnKGF2YWlsX3JzLm1hcHBhYmxlX2dtYWRyLnNpemUpKTsKPiA+ICsJCXVu bWFwcGFibGVfYmFzZSA9IEk5MTVfUkVBRCh2Z3RpZl9yZWcoYXZhaWxfcnMubm9ubWFwcGFibGVf Z21hZHIuYmFzZSkpOwo+ID4gKwkJdW5tYXBwYWJsZV9zaXplID0gSTkxNV9SRUFEKHZndGlmX3Jl ZyhhdmFpbF9ycy5ub25tYXBwYWJsZV9nbWFkci5zaXplKSk7Cj4gPiArCX0gZWxzZQo+ID4gKwkJ cmV0dXJuIC1FTk9ERVY7Cj4gPiDCoAo+IAl9IGVsc2Ugewo+IAkJcmV0dXJuIC1FTk9ERVY7Cj4g CX0KPiAKPiBUaGlzIG11c3QgdXNlIGJyYWNlcyB0b28sIGFjY29yZGluZyB0byB0aGUgS2VybmVs IENvZGluZyBTdHlsZS4KClRoYXQncyByaWdodC4gVGhhbmtzIGZvciBwb2ludGluZyBpdCBvdXQh Cgo+IAo+ID4gwqAJbWFwcGFibGVfZW5kID0gbWFwcGFibGVfYmFzZSArIG1hcHBhYmxlX3NpemU7 Cj4gPiDCoAl1bm1hcHBhYmxlX2VuZCA9IHVubWFwcGFibGVfYmFzZSArIHVubWFwcGFibGVfc2l6 ZTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oCj4gPiBpbmRleCA5NDI0OTBhLi5iOGE0OWU2 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oCj4gPiBAQCAtMjQsNiArMjQsNyBA QAo+ID4gwqAjaWZuZGVmIF9JOTE1X1ZHUFVfSF8KPiA+IMKgI2RlZmluZSBfSTkxNV9WR1BVX0hf Cj4gPiDCoAo+ID4gKyNpbmNsdWRlICJndnQvcGFyYW1zLmgiCj4gCj4gVGhpcyBpcyBub3QgYSBn b29kIHdheSBvZiBpbmNsdWRpbmcgaGVhZGVycywgYXMgdGhpcyBoZWFkZXIgaXRzZWxmCj4gZG9l c24ndCBuZWVkIGl0LiBJbmNsdWRpbmcgdW5uZWNlc3Nhcnkgc3R1ZmYgaW4gb2Z0ZW4gaW5jbHVk ZWQgaGVhZGVycwo+IGNvbnRyaWJ1dGVzIHRvIGluY3JlYXNpbmcgcHJvamVjdCBjb21waWxlIHRp bWVzIGFuZCBtYWtlcyBpdCBoYXJkZXIgdG8KPiBzb2x2ZSBjcm9zcyBkZXBlbmRlbmNpZXMgbGF0 ZXIuIFNvIHB1dCBpdCBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBmaWxlCj4gdGhhdCBuZWVkcyBp dC4KPiAKCldpbGwgZGVsZXRlLiBUaGFua3MhCgo+IFJlZ2FyZHMsIEpvb25hcwo+IAo+ID4gwqAv KiBUaGUgTU1JTyBvZmZzZXQgb2YgdGhlIHNoYXJlZCBpbmZvIGJldHdlZW4gZ3Vlc3QgYW5kIGhv c3QgZW11bGF0b3IgKi8KPiA+IMKgI2RlZmluZSBWR1RfUFZJTkZPX1BBR0UJMHg3ODAwMAo+ID4g wqAjZGVmaW5lIFZHVF9QVklORk9fU0laRQkweDEwMDAKPiAtLSAKPiBKb29uYXMgTGFodGluZW4K PiBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgo+IEludGVsIENvcnBvcmF0aW9uCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==