From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH v3 03/18] drm: Add helper iterator functions for plane fb_damage_clips blob Date: Wed, 10 Oct 2018 17:16:42 -0700 Message-ID: <20181011001657.1715-3-drawat@vmware.com> References: <20181011001657.1715-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-001.vmware.com (ex13-edg-ou-001.vmware.com [208.91.0.189]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4545389E0D for ; Thu, 11 Oct 2018 00:17:15 +0000 (UTC) In-Reply-To: <20181011001657.1715-1-drawat@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Daniel Vetter , Deepak Rawat List-Id: dri-devel@lists.freedesktop.org V2l0aCBmYl9kYW1hZ2VfY2xpcHMgYmxvYiBwcm9wZXJ0eSBpbiBkcm1fcGxhbmVfc3RhdGUsIHRo aXMgcGF0Y2ggYWRkcwpoZWxwZXIgaXRlcmF0b3IgdG8gdHJhdmVyc2UgdGhlIGRhbWFnZSBjbGlw cyB0aGF0IGxpZSBpbnNpZGUgcGxhbmUgc3JjLgpJdGVyYXRvciB3aWxsIHJldHVybiBmdWxsIHBs YW5lIHNyYyBhcyBkYW1hZ2UgaW4gY2FzZSBuZWVkIGZ1bGwgcGxhbmUKdXBkYXRlIG9yIGRhbWFn ZSBpcyBub3Qgc3BlY2lmaWVkLgoKdjI6Ci0gUGxhbmUgc3JjIGNsaXBwaW5nIGNvcnJlY3Rpb24K LSBIYW5kbGUgbm8gcGxhbmUgdXBkYXRlIGNhc2UgaW4gaXRlcl9uZXh0CgpDYzogdmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3 bGwuY2g+CkNjOiBQZWtrYSBQYWFsYW5lbiA8cHBhYWxhbmVuQGdtYWlsLmNvbT4KQ2M6IERhbmll bCBTdG9uZSA8ZGFuaWVsQGZvb2lzaGJhci5vcmc+ClNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdh dCA8ZHJhd2F0QHZtd2FyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVs cGVyLmMgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJt X2RhbWFnZV9oZWxwZXIuaCAgICAgfCA1NCArKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0v ZHJtX3BsYW5lLmggICAgICAgICAgICAgfCAgNCArLQogMyBmaWxlcyBjaGFuZ2VkLCAxNDggaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZGFtYWdlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMK aW5kZXggYzEzMDUxNGJiYjIxLi5lODBmYTZlMDhhOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdl X2hlbHBlci5jCkBAIC02NSw2ICs2NSw5IEBACiAgKgogICogRHJpdmVycyB0aGF0IGFyZSBpbnRl cmVzdGVkIGluIGRhbWFnZSBpbnRlcmZhY2UgZm9yIHBsYW5lIHNob3VsZCBlbmFibGUKICAqIEZC X0RBTUFHRV9DTElQUyBwcm9wZXJ0eSBieSBjYWxsaW5nIGRybV9wbGFuZV9lbmFibGVfZmJfZGFt YWdlX2NsaXBzKCkuCisgKiBEcml2ZXJzIGltcGxlbWVudGluZyBkYW1hZ2UgY2FuIHVzZSBkcm1f YXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0KCkgYW5kCisgKiBkcm1fYXRvbWljX2hlbHBl cl9kYW1hZ2VfaXRlcl9uZXh0KCkgaGVscGVyIGl0ZXJhdG9yIGZ1bmN0aW9uIHRvIGdldCBkYW1h Z2UKKyAqIHJlY3RhbmdsZXMgY2xpcHBlZCB0byAmZHJtX3BsYW5lX3N0YXRlLnNyYy4KICAqLwog CiAvKioKQEAgLTExOSwzICsxMjIsOTEgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19w bGFuZV9kYW1hZ2Uoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCX0KIH0KIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfZGFtYWdlKTsKKworLyoqCisg KiBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0IC0gSW5pdGlhbGl6ZSB0aGUgZGFt YWdlIGl0ZXJhdG9yLgorICogQGl0ZXI6IFRoZSBpdGVyYXRvciB0byBpbml0aWFsaXplLgorICog QG9sZF9zdGF0ZTogT2xkIHBsYW5lIHN0YXRlIGZvciB2YWxpZGF0aW9uLgorICogQG5ld19zdGF0 ZTogUGxhbmUgc3RhdGUgZnJvbSB3aGljaCB0byBpdGVyYXRlIHRoZSBkYW1hZ2UgY2xpcHMuCisg KgorICogSW5pdGlhbGl6ZSBhbiBpdGVyYXRvciwgd2hpY2ggY2xpcHMgcGxhbmUgZGFtYWdlCisg KiAmZHJtX3BsYW5lX3N0YXRlLmZiX2RhbWFnZV9jbGlwcyB0byBwbGFuZSAmZHJtX3BsYW5lX3N0 YXRlLnNyYy4gVGhpcyBpdGVyYXRvcgorICogcmV0dXJucyBmdWxsIHBsYW5lIHNyYyBpbiBjYXNl IGRhbWFnZSBpcyBub3QgcHJlc2VudCBiZWNhdXNlIGVpdGhlcgorICogdXNlci1zcGFjZSBkaWRu J3Qgc2VudCBvciBkcml2ZXIgZGlzY2FyZGVkIGl0IChpdCB3YW50IHRvIGRvIGZ1bGwgcGxhbmUK KyAqIHVwZGF0ZSkuIEN1cnJlbnRseSB0aGlzIGl0ZXJhdG9yIHJldHVybnMgZnVsbCBwbGFuZSBz cmMgaW4gY2FzZSBwbGFuZSBzcmMKKyAqIGNoYW5nZWQgYnV0IHRoYXQgY2FuIGJlIGNoYW5nZWQg aW4gZnV0dXJlIHRvIHJldHVybiBkYW1hZ2UuCisgKgorICogRm9yIHRoZSBjYXNlIHdoZW4gcGxh bmUgaXMgbm90IHZpc2libGUgb3IgcGxhbmUgdXBkYXRlIHNob3VsZCBub3QgaGFwcGVuIHRoZQor ICogZmlyc3QgY2FsbCB0byBpdGVyX25leHQgd2lsbCByZXR1cm4gZmFsc2UuIE5vdGUgdGhhdCB0 aGlzIGhlbHBlciB1c2UgY2xpcHBlZAorICogJmRybV9wbGFuZV9zdGF0ZS5zcmMsIHNvIGRyaXZl ciBjYWxsaW5nIHRoaXMgaGVscGVyIHNob3VsZCBoYXZlIGNhbGxlZAorICogZHJtX2F0b21pY19o ZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoKSBlYXJsaWVyLgorICovCit2b2lkCitkcm1fYXRvbWlj X2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0KHN0cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2Vf aXRlciAqaXRlciwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3Rh dGUsCisJCQkJICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCit7CisJbWVt c2V0KGl0ZXIsIDAsIHNpemVvZigqaXRlcikpOworCisJaWYgKCFzdGF0ZSB8fCAhc3RhdGUtPmNy dGMgfHwgIXN0YXRlLT5mYiB8fCAhc3RhdGUtPnZpc2libGUpIHsKKwkJcmV0dXJuOworCX0KKwor CWl0ZXItPmNsaXBzID0gZHJtX2hlbHBlcl9nZXRfcGxhbmVfZGFtYWdlX2NsaXBzKHN0YXRlKTsK KwlpdGVyLT5udW1fY2xpcHMgPSBkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwc19jb3VudChzdGF0 ZSk7CisKKwkvKiBSb3VuZCBkb3duIGZvciB4MS95MSBhbmQgcm91bmQgdXAgZm9yIHgyL3kyIHRv IGNhdGNoIGFsbCBwaXhlbHMgKi8KKwlpdGVyLT5wbGFuZV9zcmMueDEgPSBzdGF0ZS0+c3JjLngx ID4+IDE2OworCWl0ZXItPnBsYW5lX3NyYy55MSA9IHN0YXRlLT5zcmMueTEgPj4gMTY7CisJaXRl ci0+cGxhbmVfc3JjLngyID0gKHN0YXRlLT5zcmMueDIgPj4gMTYpICsgISEoc3RhdGUtPnNyYy54 MiAmIDB4RkZGRik7CisJaXRlci0+cGxhbmVfc3JjLnkyID0gKHN0YXRlLT5zcmMueTIgPj4gMTYp ICsgISEoc3RhdGUtPnNyYy55MiAmIDB4RkZGRik7CisKKwlpZiAoIWl0ZXItPmNsaXBzIHx8ICFk cm1fcmVjdF9lcXVhbHMoJnN0YXRlLT5zcmMsICZvbGRfc3RhdGUtPnNyYykpIHsKKwkJaXRlci0+ Y2xpcHMgPSAwOworCQlpdGVyLT5udW1fY2xpcHMgPSAwOworCQlpdGVyLT5mdWxsX3VwZGF0ZSA9 IHRydWU7CisJfQorfQorRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRl cl9pbml0KTsKKworLyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9uZXh0IC0g QWR2YW5jZSB0aGUgZGFtYWdlIGl0ZXJhdG9yLgorICogQGl0ZXI6IFRoZSBpdGVyYXRvciB0byBh ZHZhbmNlLgorICogQHJlY3Q6IFJldHVybiBhIHJlY3RhbmdsZSBpbiBmYiBjb29yZGluYXRlIGNs aXBwZWQgdG8gcGxhbmUgc3JjLgorICoKKyAqIFNpbmNlIHBsYW5lIHNyYyBpcyBpbiAxNi4xNiBm aXhlZCBwb2ludCBhbmQgZGFtYWdlIGNsaXBzIGFyZSB3aG9sZSBudW1iZXIsCisgKiB0aGlzIGl0 ZXJhdG9yIHJvdW5kIG9mZiBjbGlwcyB0aGF0IGludGVyc2VjdCB3aXRoIHBsYW5lIHNyYy4gUm91 bmQgZG93biBmb3IKKyAqIHgxL3kxIGFuZCByb3VuZCB1cCBmb3IgeDIveTIgZm9yIHRoZSBpbnRl cnNlY3RlZCBjb29yZGluYXRlLiBTaW1pbGFyIHJvdW5kaW5nCisgKiBvZmYgZm9yIGZ1bGwgcGxh bmUgc3JjLCBpbiBjYXNlIGl0J3MgcmV0dXJuZWQgYXMgZGFtYWdlLiBUaGlzIGl0ZXJhdG9yIHdp bGwKKyAqIHNraXAgZGFtYWdlIGNsaXBzIG91dHNpZGUgb2YgcGxhbmUgc3JjLgorICoKKyAqIFJl dHVybjogVHJ1ZSBpZiB0aGUgb3V0cHV0IGlzIHZhbGlkLCBmYWxzZSBpZiByZWFjaGVkIHRoZSBl bmQuCisgKgorICogSWYgdGhlIGZpcnN0IGNhbGwgdG8gaXRlcmF0b3IgbmV4dCByZXR1cm5zIGZh bHNlIHRoZW4gaXQgbWVhbnMgbm8gbmVlZCB0bworICogdXBkYXRlIHRoZSBwbGFuZS4KKyAqLwor Ym9vbAorZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfbmV4dChzdHJ1Y3QgZHJtX2F0b21p Y19oZWxwZXJfZGFtYWdlX2l0ZXIgKml0ZXIsCisJCQkJICAgc3RydWN0IGRybV9yZWN0ICpyZWN0 KQoreworCWJvb2wgcmV0ID0gZmFsc2U7CisKKwlpZiAoaXRlci0+ZnVsbF91cGRhdGUpIHsKKwkJ KnJlY3QgPSBpdGVyLT5wbGFuZV9zcmM7CisJCWl0ZXItPmZ1bGxfdXBkYXRlID0gZmFsc2U7CisJ CXJldHVybiB0cnVlOworCX0KKworCXdoaWxlIChpdGVyLT5jdXJyX2NsaXAgPCBpdGVyLT5udW1f Y2xpcHMpIHsKKwkJKnJlY3QgPSBpdGVyLT5jbGlwc1tpdGVyLT5jdXJyX2NsaXBdOworCQlpdGVy LT5jdXJyX2NsaXArKzsKKworCQlpZiAoZHJtX3JlY3RfaW50ZXJzZWN0KHJlY3QsICZpdGVyLT5w bGFuZV9zcmMpKSB7CisJCQlyZXQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlyZXR1 cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9u ZXh0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmggYi9pbmNs dWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCmluZGV4IDU5NTg0Y2JmM2Q0MC4uYjlhMGQwNWZi MDkzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCisrKyBiL2lu Y2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKQEAgLTM0LDggKzM0LDYyIEBACiAKICNpbmNs dWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KIAorLyoqCisgKiBkcm1fYXRvbWljX2Zvcl9l YWNoX3BsYW5lX2RhbWFnZSAtIEl0ZXJhdG9yIG1hY3JvIGZvciBwbGFuZSBkYW1hZ2UuCisgKiBA aXRlcjogVGhlIGl0ZXJhdG9yIHRvIGFkdmFuY2UuCisgKiBAcmVjdDogUmV0dXJuIGEgcmVjdGFu Z2xlIGluIGZiIGNvb3JkaW5hdGUgY2xpcHBlZCB0byBwbGFuZSBzcmMuCisgKgorICogTm90ZSB0 aGF0IGlmIHRoZSBmaXJzdCBjYWxsIHRvIGl0ZXJhdG9yIG1hY3JvIHJldHVybiBmYWxzZSB0aGVu IG5vIG5lZWQgdG8gZG8KKyAqIHBsYW5lIHVwZGF0ZS4gSXRlcmF0b3Igd2lsbCByZXR1cm4gZnVs bCBwbGFuZSBzcmMgd2hlbiBkYW1hZ2UgaXMgbm90IHBhc3NlZAorICogYnkgdXNlci1zcGFjZS4K KyAqLworI2RlZmluZSBkcm1fYXRvbWljX2Zvcl9lYWNoX3BsYW5lX2RhbWFnZShpdGVyLCByZWN0 KSBcCisJd2hpbGUgKGRybV9hdG9taWNfaGVscGVyX2RhbWFnZV9pdGVyX25leHQoaXRlciwgcmVj dCkpCisKKy8qKgorICogc3RydWN0IGRybV9hdG9taWNfaGVscGVyX2RhbWFnZV9pdGVyIC0gQ2xv c3VyZSBzdHJ1Y3R1cmUgZm9yIGRhbWFnZSBpdGVyYXRvci4KKyAqCisgKiBUaGlzIHN0cnVjdHVy ZSB0cmFja3Mgc3RhdGUgbmVlZGVkIHRvIHdhbGsgdGhlIGxpc3Qgb2YgcGxhbmUgZGFtYWdlIGNs aXBzLgorICovCitzdHJ1Y3QgZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXIgeworCS8qIHBy aXZhdGU6IFBsYW5lIHNyYyBpbiB3aG9sZSBudW1iZXIuICovCisJc3RydWN0IGRybV9yZWN0IHBs YW5lX3NyYzsKKwkvKiBwcml2YXRlOiBSZWN0YW5nbGVzIGluIHBsYW5lIGRhbWFnZSBibG9iLiAq LworCWNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqY2xpcHM7CisJLyogcHJpdmF0ZTogTnVtYmVyIG9m IHJlY3RhbmdsZXMgaW4gcGxhbmUgZGFtYWdlIGJsb2IuICovCisJdWludDMyX3QgbnVtX2NsaXBz OworCS8qIHByaXZhdGU6IEN1cnJlbnQgY2xpcCBpdGVyYXRvciBpcyBhZHZhbmNpbmcgb24uICov CisJdWludDMyX3QgY3Vycl9jbGlwOworCS8qIHByaXZhdGU6IFdoZXRoZXIgbmVlZCBmdWxsIHBs YW5lIHVwZGF0ZS4gKi8KKwlib29sIGZ1bGxfdXBkYXRlOworfTsKKwogdm9pZCBkcm1fcGxhbmVf ZW5hYmxlX2ZiX2RhbWFnZV9jbGlwcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7CiB2b2lkIGRy bV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX2RhbWFnZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUsCiAJCQkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwor dm9pZAorZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdChzdHJ1Y3QgZHJtX2F0b21p Y19oZWxwZXJfZGFtYWdlX2l0ZXIgKml0ZXIsCisJCQkJICAgY29uc3Qgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqb2xkX3N0YXRlLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg Km5ld19zdGF0ZSk7Citib29sCitkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9uZXh0KHN0 cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlciAqaXRlciwKKwkJCQkgICBzdHJ1Y3Qg ZHJtX3JlY3QgKnJlY3QpOworCisvKioKKyAqIGRybV9oZWxwZXJfZ2V0X3BsYW5lX2RhbWFnZV9j bGlwcyAtIFJldHVybnMgZGFtYWdlIGNsaXBzIGluICZkcm1fcmVjdC4KKyAqIEBzdGF0ZTogUGxh bmUgc3RhdGUuCisgKgorICogUmV0dXJucyBwbGFuZSBkYW1hZ2UgcmVjdGFuZ2xlcyBpbiBpbnRl cm5hbCAmZHJtX3JlY3QuIEN1cnJlbnRseSAmZHJtX3JlY3QKKyAqIGNhbiBiZSBvYnRhaW5lZCBi eSBzaW1wbHkgdHlwZWNhc3RpbmcgJmRybV9tb2RlX3JlY3QuIFRoaXMgaXMgYmVjYXVzZSBib3Ro CisgKiBhcmUgc2lnbmVkIDMyIGFuZCBkdXJpbmcgZHJtX2F0b21pY19jaGVja19vbmx5KCkgaXQg aXMgdmVyaWZpZWQgdGhhdCBkYW1hZ2UKKyAqIGNsaXBzIGFyZSBpbnNpZGUgZmIuCisgKgorICog UmV0dXJuOiBDbGlwcyBpbiBwbGFuZSBmYl9kYW1hZ2VfY2xpcHMgYmxvYiBwcm9wZXJ0eS4KKyAq Lworc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3JlY3QgKgorZHJtX2hlbHBlcl9nZXRfcGxhbmVf ZGFtYWdlX2NsaXBzKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXJl dHVybiAoc3RydWN0IGRybV9yZWN0ICopZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHMoc3RhdGUp OworfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oIGIvaW5j bHVkZS9kcm0vZHJtX3BsYW5lLmgKaW5kZXggNjZmMTg3ZTRlY2ZjLi42NzllNmYwNDAyODkgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9w bGFuZS5oCkBAIC04MjgsNyArODI4LDkgQEAgZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHNfY291 bnQoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAgKiBkcm1fcGxhbmVfZ2V0 X2RhbWFnZV9jbGlwcyAtIFJldHVybnMgZGFtYWdlIGNsaXBzLgogICogQHN0YXRlOiBQbGFuZSBz dGF0ZS4KICAqCi0gKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHVhcGkgdHlwZSAm ZHJtX21vZGVfcmVjdC4KKyAqIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdWFwaSB0 eXBlICZkcm1fbW9kZV9yZWN0LiBEcml2ZXJzIG1pZ2h0CisgKiBpbnN0ZWFkIGJlIGludGVyZXN0 ZWQgaW4gaW50ZXJuYWwgJmRybV9yZWN0IHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBieSBjYWxsaW5n CisgKiBkcm1faGVscGVyX2dldF9wbGFuZV9kYW1hZ2VfY2xpcHMoKS4KICAqCiAgKiBSZXR1cm46 IERhbWFnZSBjbGlwcyBpbiBwbGFuZSBmYl9kYW1hZ2VfY2xpcHMgYmxvYiBwcm9wZXJ0eS4KICAq LwotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK