From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 2/6] drm/i915: Align GGTT sizes to a fence tile row Date: Mon, 9 Jan 2017 16:16:09 +0000 Message-ID: <20170109161613.11881-2-chris@chris-wilson.co.uk> References: <20170109161613.11881-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wj0-x241.google.com (mail-wj0-x241.google.com [IPv6:2a00:1450:400c:c01::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 622146E4C0 for ; Mon, 9 Jan 2017 16:16:25 +0000 (UTC) Received: by mail-wj0-x241.google.com with SMTP id ey1so5975127wjd.2 for ; Mon, 09 Jan 2017 08:16:25 -0800 (PST) In-Reply-To: <20170109161613.11881-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW5zdXJlIHRoZSB2aWV3IG9jY3VwaWVzIHRoZSBmdWxsIHRpbGUgcm93IHNvIHRoYXQgcmVhZHMv d3JpdGVzIGludG8gdGhlClZNQSBkbyBub3QgZXNjYXBlICh2aWEgZmVuY2VkIGRldGlsaW5nKSBp bnRvIG5laWdoYm91cmluZyBvYmplY3RzIC0gd2UKd2lsbCBwYWQgdGhlIG9iamVjdCB3aXRoIHNj cmF0Y2ggcGFnZXMgdG8gc2F0aXNmeSB0aGUgZmVuY2UuIFRoaXMKYXBwbGllcyB0aGUgbGF6eS10 aWxpbmcgd2UgZW1wbG95ZWQgb24gZ2VuMi8zIHRvIGdlbjQrLgoKU2lnbmVkLW9mZi1ieTogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBKb29uYXMg TGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgfCAgNSArKystLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5jIHwgMTggKysrKysrKysrLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICB8IDEwICsrKysr KysrLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNTJkMDFiZTk1NmNjLi44MTg1MjI5ZjM3MGYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzM2MSw5ICszMzYxLDEwIEBAIGludCBpOTE1 X2dlbV9vcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7 CiB2b2lkIGk5MTVfZ2VtX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9maWxlICpmaWxlKTsKIAogdTY0IGk5MTVfZ2VtX2dldF9nZ3R0X3NpemUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgc2l6ZSwKLQkJCSAgIGludCB0aWxpbmdfbW9kZSk7 CisJCQkgICBpbnQgdGlsaW5nX21vZGUsIHVuc2lnbmVkIGludCBzdHJpZGUpOwogdTY0IGk5MTVf Z2VtX2dldF9nZ3R0X2FsaWdubWVudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IHU2NCBzaXplLAotCQkJCWludCB0aWxpbmdfbW9kZSwgYm9vbCBmZW5jZWQpOworCQkJCWludCB0 aWxpbmdfbW9kZSwgdW5zaWduZWQgaW50IHN0cmlkZSwKKwkJCQlib29sIGZlbmNlZCk7CiAKIGlu dCBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCiAJCQkJICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBkZjRhY2JlZmM0YTEuLmQ2ZmVlOTFhNWZhOSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yMDIxLDIxICsyMDIxLDI5IEBAIHZvaWQgaTkxNV9n ZW1fcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAq IEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKICAqIEBzaXplOiBvYmplY3Qgc2l6ZQogICogQHRpbGlu Z19tb2RlOiB0aWxpbmcgbW9kZQorICogQHN0cmlkZTogdGlsaW5nIHN0cmlkZQogICoKICAqIFJl dHVybiB0aGUgcmVxdWlyZWQgZ2xvYmFsIEdUVCBzaXplIGZvciBhbiBvYmplY3QsIHRha2luZyBp bnRvIGFjY291bnQKICAqIHBvdGVudGlhbCBmZW5jZSByZWdpc3RlciBtYXBwaW5nLgogICovCiB1 NjQgaTkxNV9nZW1fZ2V0X2dndHRfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCi0JCQkgICB1NjQgc2l6ZSwgaW50IHRpbGluZ19tb2RlKQorCQkJICAgdTY0IHNpemUsIGlu dCB0aWxpbmdfbW9kZSwgdW5zaWduZWQgaW50IHN0cmlkZSkKIHsKIAl1NjQgZ2d0dF9zaXplOwog Ci0JR0VNX0JVR19PTihzaXplID09IDApOworCUdFTV9CVUdfT04oIXNpemUpOwogCi0JaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gNCB8fAotCSAgICB0aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElO R19OT05FKQorCWlmICh0aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19OT05FKQogCQlyZXR1cm4g c2l6ZTsKIAorCUdFTV9CVUdfT04oIXN0cmlkZSk7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA0KSB7CisJCXN0cmlkZSAqPSBpOTE1X2dlbV90aWxlX2hlaWdodCh0aWxpbmdfbW9kZSk7 CisJCUdFTV9CVUdfT04oc3RyaWRlICYgNDA5NSk7CisJCXJldHVybiByb3VuZHVwKHNpemUsIHN0 cmlkZSk7CisJfQorCiAJLyogUHJldmlvdXMgY2hpcHMgbmVlZCBhIHBvd2VyLW9mLXR3byBmZW5j ZSByZWdpb24gd2hlbiB0aWxpbmcgKi8KIAlpZiAoSVNfR0VOMyhkZXZfcHJpdikpCiAJCWdndHRf c2l6ZSA9IDEwMjQqMTAyNDsKQEAgLTIwNTMsMTUgKzIwNjEsMTcgQEAgdTY0IGk5MTVfZ2VtX2dl dF9nZ3R0X3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogICogQGRldl9w cml2OiBpOTE1IGRldmljZQogICogQHNpemU6IG9iamVjdCBzaXplCiAgKiBAdGlsaW5nX21vZGU6 IHRpbGluZyBtb2RlCisgKiBAc3RyaWRlOiB0aWxpbmcgc3RyaWRlCiAgKiBAZmVuY2VkOiBpcyBm ZW5jZWQgYWxpZ25tZW50IHJlcXVpcmVkIG9yIG5vdAogICoKICAqIFJldHVybiB0aGUgcmVxdWly ZWQgZ2xvYmFsIEdUVCBhbGlnbm1lbnQgZm9yIGFuIG9iamVjdCwgdGFraW5nIGludG8gYWNjb3Vu dAogICogcG90ZW50aWFsIGZlbmNlIHJlZ2lzdGVyIG1hcHBpbmcuCiAgKi8KIHU2NCBpOTE1X2dl bV9nZXRfZ2d0dF9hbGlnbm1lbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 NjQgc2l6ZSwKLQkJCQlpbnQgdGlsaW5nX21vZGUsIGJvb2wgZmVuY2VkKQorCQkJCWludCB0aWxp bmdfbW9kZSwgdW5zaWduZWQgaW50IHN0cmlkZSwKKwkJCQlib29sIGZlbmNlZCkKIHsKLQlHRU1f QlVHX09OKHNpemUgPT0gMCk7CisJR0VNX0JVR19PTighc2l6ZSk7CiAKIAkvKgogCSAqIE1pbmlt dW0gYWxpZ25tZW50IGlzIDRrIChHVFQgcGFnZSBzaXplKSwgYnV0IG1pZ2h0IGJlIGdyZWF0ZXIK QEAgLTIwNzYsNyArMjA4Niw3IEBAIHU2NCBpOTE1X2dlbV9nZXRfZ2d0dF9hbGlnbm1lbnQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgc2l6ZSwKIAkgKiBQcmV2aW91cyBj aGlwcyBuZWVkIHRvIGJlIGFsaWduZWQgdG8gdGhlIHNpemUgb2YgdGhlIHNtYWxsZXN0CiAJICog ZmVuY2UgcmVnaXN0ZXIgdGhhdCBjYW4gY29udGFpbiB0aGUgb2JqZWN0LgogCSAqLwotCXJldHVy biBpOTE1X2dlbV9nZXRfZ2d0dF9zaXplKGRldl9wcml2LCBzaXplLCB0aWxpbmdfbW9kZSk7CisJ cmV0dXJuIGk5MTVfZ2VtX2dldF9nZ3R0X3NpemUoZGV2X3ByaXYsIHNpemUsIHRpbGluZ19tb2Rl LCBzdHJpZGUpOwogfQogCiBzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfbW1hcF9v ZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKQEAgLTM2ODcsNyArMzY5Nyw4 IEBAIGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCQkJdTMyIGZlbmNlX3NpemU7CiAKIAkJCWZlbmNlX3NpemUgPSBpOTE1X2dlbV9nZXRf Z2d0dF9zaXplKGRldl9wcml2LCB2bWEtPnNpemUsCi0JCQkJCQkJICAgIGk5MTVfZ2VtX29iamVj dF9nZXRfdGlsaW5nKG9iaikpOworCQkJCQkJCSAgICBpOTE1X2dlbV9vYmplY3RfZ2V0X3RpbGlu ZyhvYmopLAorCQkJCQkJCSAgICBpOTE1X2dlbV9vYmplY3RfZ2V0X3N0cmlkZShvYmopKTsKIAkJ CS8qIElmIHRoZSByZXF1aXJlZCBzcGFjZSBpcyBsYXJnZXIgdGhhbiB0aGUgYXZhaWxhYmxlCiAJ CQkgKiBhcGVydHVyZSwgd2Ugd2lsbCBub3QgYWJsZSB0byBmaW5kIGEgc2xvdCBmb3IgdGhlCiAJ CQkgKiBvYmplY3QgYW5kIHVuYmluZGluZyB0aGUgb2JqZWN0IG5vdyB3aWxsIGJlIGluCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aWxpbmcuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5jCmluZGV4IDYyYWQzNzVkZTZjYS4uNTFiOGQ3 MTg3NmI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aWxpbmcu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aWxpbmcuYwpAQCAtMTE3LDcg KzExNyw4IEBAIGk5MTVfdGlsaW5nX29rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgaTkxNV92bWFfZmVuY2VfcHJlcGFy ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgaW50IHRpbGluZ19tb2RlKQorc3RhdGljIGJvb2wgaTkx NV92bWFfZmVuY2VfcHJlcGFyZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCQkgICBpbnQgdGls aW5nX21vZGUsIHVuc2lnbmVkIGludCBzdHJpZGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdm1hLT52bS0+aTkxNTsKIAl1MzIgc2l6ZTsKQEAgLTEzMyw3ICsxMzQs NyBAQCBzdGF0aWMgYm9vbCBpOTE1X3ZtYV9mZW5jZV9wcmVwYXJlKHN0cnVjdCBpOTE1X3ZtYSAq dm1hLCBpbnQgdGlsaW5nX21vZGUpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0Jc2l6ZSA9IGk5 MTVfZ2VtX2dldF9nZ3R0X3NpemUoZGV2X3ByaXYsIHZtYS0+c2l6ZSwgdGlsaW5nX21vZGUpOwor CXNpemUgPSBpOTE1X2dlbV9nZXRfZ2d0dF9zaXplKGRldl9wcml2LCB2bWEtPnNpemUsIHRpbGlu Z19tb2RlLCBzdHJpZGUpOwogCWlmICh2bWEtPm5vZGUuc2l6ZSA8IHNpemUpCiAJCXJldHVybiBm YWxzZTsKIApAQCAtMTQ1LDIwICsxNDYsMTcgQEAgc3RhdGljIGJvb2wgaTkxNV92bWFfZmVuY2Vf cHJlcGFyZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgaW50IHRpbGluZ19tb2RlKQogCiAvKiBNYWtl IHRoZSBjdXJyZW50IEdUVCBhbGxvY2F0aW9uIHZhbGlkIGZvciB0aGUgY2hhbmdlIGluIHRpbGlu Zy4gKi8KIHN0YXRpYyBpbnQKLWk5MTVfZ2VtX29iamVjdF9mZW5jZV9wcmVwYXJlKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGludCB0aWxpbmdfbW9kZSkKK2k5MTVfZ2VtX29iamVj dF9mZW5jZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAg ICBpbnQgdGlsaW5nX21vZGUsIHVuc2lnbmVkIGludCBzdHJpZGUpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlzdHJ1Y3Qg aTkxNV92bWEgKnZtYTsKIAlpbnQgcmV0OwogCiAJaWYgKHRpbGluZ19tb2RlID09IEk5MTVfVElM SU5HX05PTkUpCiAJCXJldHVybiAwOwogCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkK LQkJcmV0dXJuIDA7Ci0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3Qs IG9ial9saW5rKSB7Ci0JCWlmIChpOTE1X3ZtYV9mZW5jZV9wcmVwYXJlKHZtYSwgdGlsaW5nX21v ZGUpKQorCQlpZiAoaTkxNV92bWFfZmVuY2VfcHJlcGFyZSh2bWEsIHRpbGluZ19tb2RlLCBzdHJp ZGUpKQogCQkJY29udGludWU7CiAKIAkJcmV0ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7CkBAIC0y NTUsNyArMjUzLDkgQEAgaTkxNV9nZW1fc2V0X3RpbGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCQkgKiB3aGlsc3QgZXhlY3V0aW5nIGEgZmVuY2VkIGNvbW1hbmQgZm9y IGFuIHVudGlsZWQgb2JqZWN0LgogCQkgKi8KIAotCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfZmVu Y2VfcHJlcGFyZShvYmosIGFyZ3MtPnRpbGluZ19tb2RlKTsKKwkJZXJyID0gaTkxNV9nZW1fb2Jq ZWN0X2ZlbmNlX3ByZXBhcmUob2JqLAorCQkJCQkJICAgIGFyZ3MtPnRpbGluZ19tb2RlLAorCQkJ CQkJICAgIGFyZ3MtPnN0cmlkZSk7CiAJCWlmICghZXJyKSB7CiAJCQlzdHJ1Y3QgaTkxNV92bWEg KnZtYTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKaW5kZXggNThmMjQ4MzM2MmFkLi43MzRmNzdi NzY5N2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwpAQCAtMjg0LDExICsyODQsMTQgQEAgdm9p ZCBfX2k5MTVfdm1hX3NldF9tYXBfYW5kX2ZlbmNlYWJsZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK IAogCWZlbmNlX3NpemUgPSBpOTE1X2dlbV9nZXRfZ2d0dF9zaXplKGRldl9wcml2LAogCQkJCQkg ICAgdm1hLT5zaXplLAotCQkJCQkgICAgaTkxNV9nZW1fb2JqZWN0X2dldF90aWxpbmcob2JqKSk7 CisJCQkJCSAgICBpOTE1X2dlbV9vYmplY3RfZ2V0X3RpbGluZyhvYmopLAorCQkJCQkgICAgaTkx NV9nZW1fb2JqZWN0X2dldF9zdHJpZGUob2JqKSk7CiAJZmVuY2VfYWxpZ25tZW50ID0gaTkxNV9n ZW1fZ2V0X2dndHRfYWxpZ25tZW50KGRldl9wcml2LAogCQkJCQkJICAgICAgdm1hLT5zaXplLAog CQkJCQkJICAgICAgaTkxNV9nZW1fb2JqZWN0X2dldF90aWxpbmcob2JqKSwKKwkJCQkJCSAgICAg IGk5MTVfZ2VtX29iamVjdF9nZXRfc3RyaWRlKG9iaiksCiAJCQkJCQkgICAgICB0cnVlKTsKKwlH RU1fQlVHX09OKCFpc19wb3dlcl9vZl8yKGZlbmNlX2FsaWdubWVudCkpOwogCiAJZmVuY2VhYmxl ID0gKHZtYS0+bm9kZS5zaXplID09IGZlbmNlX3NpemUgJiYKIAkJICAgICAodm1hLT5ub2RlLnN0 YXJ0ICYgKGZlbmNlX2FsaWdubWVudCAtIDEpKSA9PSAwKTsKQEAgLTM3MCwxMiArMzczLDE1IEBA IGk5MTVfdm1hX2luc2VydChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IHNpemUsIHU2NCBhbGln bm1lbnQsIHU2NCBmbGFncykKIAlzaXplID0gbWF4KHNpemUsIHZtYS0+c2l6ZSk7CiAJaWYgKGZs YWdzICYgUElOX01BUFBBQkxFKQogCQlzaXplID0gaTkxNV9nZW1fZ2V0X2dndHRfc2l6ZShkZXZf cHJpdiwgc2l6ZSwKLQkJCQkJICAgICAgaTkxNV9nZW1fb2JqZWN0X2dldF90aWxpbmcob2JqKSk7 CisJCQkJCSAgICAgIGk5MTVfZ2VtX29iamVjdF9nZXRfdGlsaW5nKG9iaiksCisJCQkJCSAgICAg IGk5MTVfZ2VtX29iamVjdF9nZXRfc3RyaWRlKG9iaikpOwogCiAJYWxpZ25tZW50ID0gbWF4KG1h eChhbGlnbm1lbnQsIHZtYS0+ZGlzcGxheV9hbGlnbm1lbnQpLAogCQkJaTkxNV9nZW1fZ2V0X2dn dHRfYWxpZ25tZW50KGRldl9wcml2LCBzaXplLAogCQkJCQkJICAgIGk5MTVfZ2VtX29iamVjdF9n ZXRfdGlsaW5nKG9iaiksCisJCQkJCQkgICAgaTkxNV9nZW1fb2JqZWN0X2dldF9zdHJpZGUob2Jq KSwKIAkJCQkJCSAgICBmbGFncyAmIFBJTl9NQVBQQUJMRSkpOworCUdFTV9CVUdfT04oIWlzX3Bv d2VyX29mXzIoYWxpZ25tZW50KSk7CiAKIAlzdGFydCA9IGZsYWdzICYgUElOX09GRlNFVF9CSUFT ID8gZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0sgOiAwOwogCi0tIAoyLjExLjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=