From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/3] igt/gem_stolen: Check for available stolen memory size Date: Fri, 3 Jun 2016 11:58:53 +0100 Message-ID: <575162ED.9080707@linux.intel.com> References: <1464943891-15470-1-git-send-email-ankitprasad.r.sharma@intel.com> <1464943891-15470-3-git-send-email-ankitprasad.r.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 522E36E3FB for ; Fri, 3 Jun 2016 10:58:55 +0000 (UTC) In-Reply-To: <1464943891-15470-3-git-send-email-ankitprasad.r.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ankitprasad.r.sharma@intel.com, intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDAzLzA2LzE2IDA5OjUxLCBhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5j b20+Cj4KPiBDaGVjayBmb3IgYXZhaWxhYmxlIHN0b2xlbiBtZW1vcnkgc2l6ZSBiZWZvcmUgYXR0 ZW1wdGluZyB0byBydW4KPiB0aGUgc3RvbGVuIG1lbW9yeSB0ZXN0cy4gVGhpcyB3YXkgd2UgbWFr ZSBzdXJlIHRoYXQgd2UgZG8gbm90Cj4gY3JlYXRlIG9iamVjdHMgZnJvbSBzdG9sZW4gbWVtb3J5 IHdpdGhvdXQga25vd2luZyB0aGUgYXZhaWxhYmxlIHNpemUuCj4KPiBUaGlzIGNoZWNrcyBpZiB0 aGUga2VybmVsIHN1cHBvcnRzIGNyZWF0aW9uIG9mIHN0b2xlbiBiYWNrZWQgb2JqZWN0cwo+IGJl Zm9yZSBkb2luZyBhbnkgb3BlcmF0aW9uIG9uIHN0b2xlbiBiYWNrZWQgb2JqZWN0cy4KPgo+IEFs c28gY29ycmVjdGluZyB0aGUgQ1JFQVRFX1ZFUlNJT04gaW9jdGwgbnVtYmVyIGluIGdldHBhcmFt IGlvY3RsLAo+IGR1ZSB0byBrZXJuZWwgY2hhbmdlcyBhZGRlZCBpbiBiZXR3ZWVuLgo+Cj4gU2ln bmVkLW9mZi1ieTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRl bC5jb20+Cj4gLS0tCj4gICBsaWIvaW9jdGxfd3JhcHBlcnMuYyB8IDQ4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICAgbGliL2lvY3RsX3dyYXBwZXJz LmggfCAgNyArKysrKy0tCj4gICB0ZXN0cy9nZW1fY3JlYXRlLmMgICB8ICAyICstCj4gICB0ZXN0 cy9nZW1fcHJlYWQuYyAgICB8ICAzICsrKwo+ICAgdGVzdHMvZ2VtX3B3cml0ZS5jICAgfCAgMiAr Kwo+ICAgdGVzdHMvZ2VtX3N0b2xlbi5jICAgfCAxNiArKysrKysrKy0tLS0tLS0tCj4gICA2IGZp bGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2xpYi9pb2N0bF93cmFwcGVycy5jIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPiBpbmRl eCBmMjI0MDkxLi5lNjEyMGJiIDEwMDY0NAo+IC0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5jCj4g KysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPiBAQCAtNDU1LDcgKzQ1NSw3IEBAIGJvb2wgZ2Vt X2NyZWF0ZV9faGFzX3N0b2xlbl9zdXBwb3J0KGludCBmZCkKPgo+ICAgCWlmIChoYXNfc3RvbGVu X3N1cHBvcnQgPCAwKSB7Cj4gICAJCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOwo+IC0JCWdw LnBhcmFtID0gMzY7IC8qIENSRUFURV9WRVJTSU9OICovCj4gKwkJZ3AucGFyYW0gPSAzODsgLyog Q1JFQVRFX1ZFUlNJT04gKi8KPiAgIAkJZ3AudmFsdWUgPSAmdmFsOwo+Cj4gICAJCS8qIERvIHdl IGhhdmUgdGhlIGV4dGVuZGVkIGdlbV9jcmVhdGVfaW9jdGw/ICovCj4gQEAgLTEyMzAsNiArMTIz MCw1MiBAQCBib29sIGdlbV9oYXNfYnNkMihpbnQgZmQpCj4gICAJCWhhc19ic2QyID0gaGFzX3Bh cmFtKGZkLCBMT0NBTF9JOTE1X1BBUkFNX0hBU19CU0QyKTsKPiAgIAlyZXR1cm4gaGFzX2JzZDI7 Cj4gICB9Cj4gKwo+ICtzdHJ1Y3QgbG9jYWxfaTkxNV9nZW1fZ2V0X2FwZXJ0dXJlIHsKPiArCV9f dTY0IGFwZXJfc2l6ZTsKPiArCV9fdTY0IGFwZXJfYXZhaWxhYmxlX3NpemU7Cj4gKwlfX3U2NCB2 ZXJzaW9uOwo+ICsJX191NjQgbWFwX3RvdGFsX3NpemU7Cj4gKwlfX3U2NCBzdG9sZW5fdG90YWxf c2l6ZTsKPiArfTsKPiArI2RlZmluZSBEUk1fSTkxNV9HRU1fR0VUX0FQRVJUVVJFCTB4MjMKPiAr I2RlZmluZSBMT0NBTF9JT0NUTF9JOTE1X0dFTV9HRVRfQVBFUlRVUkUgRFJNX0lPUiAgKERSTV9D T01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fR0VUX0FQRVJUVVJFLCBzdHJ1Y3QgbG9jYWxfaTkx NV9nZW1fZ2V0X2FwZXJ0dXJlKQo+ICsvKioKPiArICogZ2VtX3RvdGFsX21hcHBhYmxlX3NpemU6 Cj4gKyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IKPiArICoKPiArICogRmVh dHVyZSB0ZXN0IG1hY3JvIHRvIHF1ZXJ5IHRoZSBrZXJuZWwgZm9yIHRoZSB0b3RhbCBtYXBwYWJs ZSBzaXplLgoKTWlub3I6IGl0IGlzIG5vdCBhIGZlYXR1cmUgdGVzdCBub3IgYSBtYWNyby4KCj4g KyAqCj4gKyAqIFJldHVybnM6IFRvdGFsIG1hcHBhYmxlIGFkZHJlc3Mgc3BhY2Ugc2l6ZS4KPiAr ICovCj4gK3VpbnQ2NF90IGdlbV90b3RhbF9tYXBwYWJsZV9zaXplKGludCBmZCkKPiArewo+ICsJ c3RydWN0IGxvY2FsX2k5MTVfZ2VtX2dldF9hcGVydHVyZSBhcGVydHVyZTsKPiArCj4gKwltZW1z ZXQoJmFwZXJ0dXJlLCAwLCBzaXplb2YoYXBlcnR1cmUpKTsKPiArCWRvX2lvY3RsKGZkLCBMT0NB TF9JT0NUTF9JOTE1X0dFTV9HRVRfQVBFUlRVUkUsICZhcGVydHVyZSk7Cj4gKwo+ICsJcmV0dXJu IGFwZXJ0dXJlLm1hcF90b3RhbF9zaXplOwo+ICt9Cj4gKwo+ICsvKioKPiArICogZ2VtX3RvdGFs X3N0b2xlbl9zaXplOgo+ICsgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCj4g KyAqCj4gKyAqIEZlYXR1cmUgdGVzdCBtYWNybyB0byBxdWVyeSB0aGUga2VybmVsIGZvciB0aGUg dG90YWwgc3RvbGVuIHNpemUuCgpTYW1lIGhlcmUuCgo+ICsgKgo+ICsgKiBSZXR1cm5zOiBUb3Rh bCBzdG9sZW4gbWVtb3J5Lgo+ICsgKi8KPiArdWludDY0X3QgZ2VtX3RvdGFsX3N0b2xlbl9zaXpl KGludCBmZCkKPiArewo+ICsJc3RydWN0IGxvY2FsX2k5MTVfZ2VtX2dldF9hcGVydHVyZSBhcGVy dHVyZTsKPiArCj4gKwltZW1zZXQoJmFwZXJ0dXJlLCAwLCBzaXplb2YoYXBlcnR1cmUpKTsKPiAr CWRvX2lvY3RsKGZkLCBMT0NBTF9JT0NUTF9JOTE1X0dFTV9HRVRfQVBFUlRVUkUsICZhcGVydHVy ZSk7Cj4gKwo+ICsJcmV0dXJuIGFwZXJ0dXJlLnN0b2xlbl90b3RhbF9zaXplOwo+ICt9Cj4gKwo+ ICAgLyoqCj4gICAgKiBnZW1fYXZhaWxhYmxlX2FwZXJ0dXJlX3NpemU6Cj4gICAgKiBAZmQ6IG9w ZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCj4gZGlmZiAtLWdpdCBhL2xpYi9pb2N0bF93cmFw cGVycy5oIGIvbGliL2lvY3RsX3dyYXBwZXJzLmgKPiBpbmRleCBmM2JkMjNmLi5hZTA0YjM1IDEw MDY0NAo+IC0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5oCj4gKysrIGIvbGliL2lvY3RsX3dyYXBw ZXJzLmgKPiBAQCAtOTMsOCArOTMsOSBAQCB2b2lkICpfX2dlbV9tbWFwX193YyhpbnQgZmQsIHVp bnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdCBzaXplLCB1bgo+ICAgICog VGVzdCBtYWNybyB0byBxdWVyeSB3aGV0aGVyIHN1cHBvcnQgZm9yIGFsbG9jYXRpbmcgb2JqZWN0 cyBmcm9tIHN0b2xlbgo+ICAgICogbWVtb3J5IGlzIGF2YWlsYWJsZS4gQXV0b21hdGljYWxseSBz a2lwcyB0aHJvdWdoIGlndF9yZXF1aXJlKCkgaWYgbm90Lgo+ICAgICovCj4gLSNkZWZpbmUgZ2Vt X3JlcXVpcmVfc3RvbGVuX3N1cHBvcnQoZmQpIFwKPiAtCQkJaWd0X3JlcXVpcmUoZ2VtX2NyZWF0 ZV9faGFzX3N0b2xlbl9zdXBwb3J0KGZkKSkKPiArI2RlZmluZSBnZW1fcmVxdWlyZV9zdG9sZW5f c3VwcG9ydChmZCwgc2l6ZSkgXAo+ICsJCQlpZ3RfcmVxdWlyZShnZW1fY3JlYXRlX19oYXNfc3Rv bGVuX3N1cHBvcnQoZmQpICYmIFwKPiArCQkJCSAgICAoZ2VtX3RvdGFsX3N0b2xlbl9zaXplKGZk KSA+IHNpemUpKQoKTG9va3MgbGlrZSBhIG5lZWRsZXNzIGNvbXBsaWNhdGlvbiB0byBwYXNzIGlu IGEgc2l6ZSwgdGhpcyBzaG91bGQgb25seSAKYmUgYWJvdXQgaXMgaXQgc3VwcG9ydGVkIG9yIG5v dC4gSG93IHRoZSB0ZXN0IHVzZXMgaXQgaXMgZXZlbiBzdHJhbmdlciwgCml0IGlzIG5vdCBsaWtl bHkgKG9yIGV2ZW4gcG9zc2libGUpIHNvbWUgcGxhdGZvcm0gd2lsbCBoYXZlIGEgUEFHRV9TSVpF IApvZiBzdG9sZW4gYnV0IG5vdCBPQkpFQ1RfU0laRSBvciBzb21ldGhpbmcuIEkgc3VnZ2VzdCB5 b3UganVzdCBkcm9wIHRoZSAKc2l6ZSBwYXJhbS4KCj4KPiAgIC8qKgo+ICAgICogZ2VtX3JlcXVp cmVfbW1hcF93YzoKPiBAQCAtMTUzLDYgKzE1NCw4IEBAIGludCBnZW1fZ3R0X3R5cGUoaW50IGZk KTsKPiAgIGJvb2wgZ2VtX3VzZXNfcHBndHQoaW50IGZkKTsKPiAgIGJvb2wgZ2VtX3VzZXNfZnVs bF9wcGd0dChpbnQgZmQpOwo+ICAgaW50IGdlbV9hdmFpbGFibGVfZmVuY2VzKGludCBmZCk7Cj4g K3VpbnQ2NF90IGdlbV90b3RhbF9tYXBwYWJsZV9zaXplKGludCBmZCk7Cj4gK3VpbnQ2NF90IGdl bV90b3RhbF9zdG9sZW5fc2l6ZShpbnQgZmQpOwo+ICAgdWludDY0X3QgZ2VtX2F2YWlsYWJsZV9h cGVydHVyZV9zaXplKGludCBmZCk7Cj4gICB1aW50NjRfdCBnZW1fYXBlcnR1cmVfc2l6ZShpbnQg ZmQpOwo+ICAgdWludDY0X3QgZ2VtX2dsb2JhbF9hcGVydHVyZV9zaXplKGludCBmZCk7Cj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2dlbV9jcmVhdGUuYyBiL3Rlc3RzL2dlbV9jcmVhdGUuYwo+IGluZGV4 IDI1Zjc1ZDQuLmIyNTEyMTYgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2NyZWF0ZS5jCj4gKysr IGIvdGVzdHMvZ2VtX2NyZWF0ZS5jCj4gQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgaW52 YWxpZF9mbGFnX3Rlc3QoaW50IGZkKQo+ICAgewo+ICAgCWludCByZXQ7Cj4KPiAtCWdlbV9yZXF1 aXJlX3N0b2xlbl9zdXBwb3J0KGZkKTsKPiArCWdlbV9yZXF1aXJlX3N0b2xlbl9zdXBwb3J0KGZk LCBQQUdFX1NJWkUpOwo+Cj4gICAJY3JlYXRlLmhhbmRsZSA9IDA7Cj4gICAJY3JlYXRlLnNpemUg PSBQQUdFX1NJWkU7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9wcmVhZC5jIGIvdGVzdHMvZ2Vt X3ByZWFkLmMKPiBpbmRleCBhZmEwNzJkLi4zZGE4YmVkIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dl bV9wcmVhZC5jCj4gKysrIGIvdGVzdHMvZ2VtX3ByZWFkLmMKPiBAQCAtMTUyLDYgKzE1Miw3IEBA IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgIAl9Cj4KPiAgIAlpZ3Rfc3VidGVz dCgic3RvbGVuLW5vcm1hbCIpIHsKPiArCQlnZW1fcmVxdWlyZV9zdG9sZW5fc3VwcG9ydChmZCwg T0JKRUNUX1NJWkUpOwo+ICAgCQlmb3IgKGNvdW50ID0gMTsgY291bnQgPD0gMTw8MTc7IGNvdW50 IDw8PSAxKSB7Cj4gICAJCQlzdHJ1Y3QgdGltZXZhbCBzdGFydCwgZW5kOwo+Cj4gQEAgLTE2Nyw2 ICsxNjgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gICAJfQo+ICAgCWZv ciAoYyA9IGNhY2hlOyBjLT5sZXZlbCAhPSAtMTsgYysrKSB7Cj4gICAJCWlndF9zdWJ0ZXN0X2Yo InN0b2xlbi0lcyIsIGMtPm5hbWUpIHsKPiArCQkJZ2VtX3JlcXVpcmVfc3RvbGVuX3N1cHBvcnQo ZmQsIE9CSkVDVF9TSVpFKTsKPiAgIAkJCWdlbV9zZXRfY2FjaGluZyhmZCwgc3JjX3N0b2xlbiwg Yy0+bGV2ZWwpOwo+Cj4gICAJCQlmb3IgKGNvdW50ID0gMTsgY291bnQgPD0gMTw8MTc7IGNvdW50 IDw8PSAxKSB7Cj4gQEAgLTE5MCw2ICsxOTIsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCj4gICAJICogdXNlciBzcGFjZSBidWZmZXIKPiAgIAkgKi8KPiAgIAlpZ3Rfc3VidGVz dCgicGFnZWZhdWx0LXByZWFkIikgewo+ICsJCWdlbV9yZXF1aXJlX3N0b2xlbl9zdXBwb3J0KGZk LCBMQVJHRV9PQkpFQ1RfU0laRSk7Cj4gICAJCWxhcmdlX3N0b2xlbiA9IGdlbV9jcmVhdGVfc3Rv bGVuKGZkLCBMQVJHRV9PQkpFQ1RfU0laRSk7Cj4gICAJCXN0b2xlbl9ub3BmX3VzZXIgPSAodWlu dDMyX3QgKikgbW1hcChOVUxMLCBMQVJHRV9PQkpFQ1RfU0laRSwKPiAgIAkJCQkJCVBST1RfV1JJ VEUsCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9wd3JpdGUuYyBiL3Rlc3RzL2dlbV9wd3JpdGUu Ywo+IGluZGV4IGEzMjJmOTEuLmRlNzIwYzUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX3B3cml0 ZS5jCj4gKysrIGIvdGVzdHMvZ2VtX3B3cml0ZS5jCj4gQEAgLTI4MCw2ICsyODAsNyBAQCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gICAJfQo+Cj4gICAJaWd0X3N1YnRlc3QoInN0 b2xlbi1ub3JtYWwiKSB7Cj4gKwkJZ2VtX3JlcXVpcmVfc3RvbGVuX3N1cHBvcnQoZmQsIE9CSkVD VF9TSVpFKTsKPiAgIAkJZm9yIChjb3VudCA9IDE7IGNvdW50IDw9IDE8PDE3OyBjb3VudCA8PD0g MSkgewo+ICAgCQkJc3RydWN0IHRpbWV2YWwgc3RhcnQsIGVuZDsKPgo+IEBAIC0yOTcsNiArMjk4 LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+Cj4gICAJZm9yIChjID0gY2Fj aGU7IGMtPmxldmVsICE9IC0xOyBjKyspIHsKPiAgIAkJaWd0X3N1YnRlc3RfZigic3RvbGVuLSVz IiwgYy0+bmFtZSkgewo+ICsJCQlnZW1fcmVxdWlyZV9zdG9sZW5fc3VwcG9ydChmZCwgT0JKRUNU X1NJWkUpOwo+ICAgCQkJZ2VtX3NldF9jYWNoaW5nKGZkLCBkc3QsIGMtPmxldmVsKTsKPiAgIAkJ CWZvciAoY291bnQgPSAxOyBjb3VudCA8PSAxPDwxNzsgY291bnQgPDw9IDEpIHsKPiAgIAkJCQlz dHJ1Y3QgdGltZXZhbCBzdGFydCwgZW5kOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fc3RvbGVu LmMgYi90ZXN0cy9nZW1fc3RvbGVuLmMKPiBpbmRleCA3ZDMyOWRkLi41NDE1ODViIDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL2dlbV9zdG9sZW4uYwo+ICsrKyBiL3Rlc3RzL2dlbV9zdG9sZW4uYwo+IEBA IC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIHZvaWQgc3RvbGVuX3B3cml0ZShpbnQgZmQpCj4gICAJ Zm9yIChpID0gMDsgaSA8IFNJWkUvRFdPUkRfU0laRTsgaSsrKQo+ICAgCQlidWZbaV0gPSBEQVRB Owo+Cj4gLQlnZW1fcmVxdWlyZV9zdG9sZW5fc3VwcG9ydChmZCk7Cj4gKwlnZW1fcmVxdWlyZV9z dG9sZW5fc3VwcG9ydChmZCwgU0laRSk7Cj4KPiAgIAloYW5kbGUgPSBnZW1fY3JlYXRlX3N0b2xl bihmZCwgU0laRSk7Cj4KPiBAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyB2b2lkIHN0b2xlbl9w cmVhZChpbnQgZmQpCj4KPiAgIAlDTEVBUihidWYpOwo+Cj4gLQlnZW1fcmVxdWlyZV9zdG9sZW5f c3VwcG9ydChmZCk7Cj4gKwlnZW1fcmVxdWlyZV9zdG9sZW5fc3VwcG9ydChmZCwgU0laRSk7Cj4K PiAgIAloYW5kbGUgPSBnZW1fY3JlYXRlX3N0b2xlbihmZCwgU0laRSk7Cj4KPiBAQCAtMTY1LDcg KzE2NSw3IEBAIHN0YXRpYyB2b2lkIGNvcHlfdGVzdChpbnQgZmQpCj4gICAJZHJtX2ludGVsX2Jv ICpzcmMsICpkZXN0Owo+ICAgCXVpbnQzMl90IHNyY19oYW5kbGUgPSAwLCBkZXN0X2hhbmRsZSA9 IDA7Cj4KPiAtCWdlbV9yZXF1aXJlX3N0b2xlbl9zdXBwb3J0KGZkKTsKPiArCWdlbV9yZXF1aXJl X3N0b2xlbl9zdXBwb3J0KGZkLCBTSVpFKTsKPgo+ICAgCXNyY19oYW5kbGUgPSBnZW1fY3JlYXRl X3N0b2xlbihmZCwgU0laRSk7Cj4gICAJZGVzdF9oYW5kbGUgPSBnZW1fY3JlYXRlX3N0b2xlbihm ZCwgU0laRSk7Cj4gQEAgLTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlfb2JqZWN0 X2NsZWFyKGludCBmZCkKPiAgIAl1aW50MzJfdCAqdmlydDsKPiAgIAlpbnQgaSwgcmV0Owo+Cj4g LQlnZW1fcmVxdWlyZV9zdG9sZW5fc3VwcG9ydChmZCk7Cj4gKwlnZW1fcmVxdWlyZV9zdG9sZW5f c3VwcG9ydChmZCwgU0laRSk7Cj4KPiAgIAloYW5kbGUgPSBnZW1fY3JlYXRlX3N0b2xlbihmZCwg U0laRSk7Cj4KPiBAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyB2b2lkIHN0b2xlbl9sYXJnZV9v YmpfYWxsb2MoaW50IGZkKQo+ICAgewo+ICAgCXVpbnQzMl90IGhhbmRsZSA9IDA7Cj4KPiAtCWdl bV9yZXF1aXJlX3N0b2xlbl9zdXBwb3J0KGZkKTsKPiArCWdlbV9yZXF1aXJlX3N0b2xlbl9zdXBw b3J0KGZkLCBTSVpFKTsKPiAgIAloYW5kbGUgPSBfX2dlbV9jcmVhdGVfc3RvbGVuKGZkLCAodW5z aWduZWQgbG9uZyBsb25nKSBMQVJHRV9TSVpFICsgNDA5Nik7Cj4gICAJaWd0X2Fzc2VydCghaGFu ZGxlKTsKPiAgIH0KPiBAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyB2b2lkIHN0b2xlbl9maWxs X3B1cmdlX3Rlc3QoaW50IGZkKQo+ICAgCXVpbnQzMl90ICp2aXJ0Owo+ICAgCWludCByZXRhaW5l ZDsKPgo+IC0JZ2VtX3JlcXVpcmVfc3RvbGVuX3N1cHBvcnQoZmQpOwo+ICsJZ2VtX3JlcXVpcmVf c3RvbGVuX3N1cHBvcnQoZmQsIFNJWkUpOwo+Cj4gICAJLyogRXhoYXVzdCBTdG9sZW4gc3BhY2Ug Ki8KPiAgIAlkbyB7Cj4gQEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgdm9pZCBzdG9sZW5faGli ZXJuYXRlKGludCBmZCkKPiAgIAl1aW50MzJfdCBoYW5kbGVbTUFYX09CSkVDVFNdLCBzcmNfaGFu ZGxlOwo+ICAgCXVpbnQzMl90ICp2aXJ0Owo+Cj4gLQlnZW1fcmVxdWlyZV9zdG9sZW5fc3VwcG9y dChmZCk7Cj4gKwlnZW1fcmVxdWlyZV9zdG9sZW5fc3VwcG9ydChmZCwgU0laRSk7Cj4KPiAgIAlz cmNfaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgU0laRSk7Cj4gICAJc3JjID0gZ2VtX2hhbmRsZV90 b19saWJkcm1fYm8oYnVmbWdyLCBmZCwKPiBAQCAtMzg4LDcgKzM4OCw3IEBAIHN0b2xlbl9ub19t bWFwKGludCBmZCkKPiAgIAl2b2lkICphZGRyOwo+ICAgCXVpbnQzMl90IGhhbmRsZSA9IDA7Cj4K PiAtCWdlbV9yZXF1aXJlX3N0b2xlbl9zdXBwb3J0KGZkKTsKPiArCWdlbV9yZXF1aXJlX3N0b2xl bl9zdXBwb3J0KGZkLCBTSVpFKTsKPgo+ICAgCWhhbmRsZSA9IGdlbV9jcmVhdGVfc3RvbGVuKGZk LCBTSVpFKTsKPgo+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=