From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: [PATCH v8 1/3] of: Decrement refcount of previous endpoint in of_graph_get_next_endpoint Date: Mon, 23 Feb 2015 11:54:04 +0100 Message-ID: <1424688846-10909-2-git-send-email-p.zabel@pengutronix.de> References: <1424688846-10909-1-git-send-email-p.zabel@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id DE8136E31B for ; Mon, 23 Feb 2015 02:54:31 -0800 (PST) In-Reply-To: <1424688846-10909-1-git-send-email-p.zabel@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Grant Likely , Benoit Parrot Cc: Mathieu Poirier , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Darren Etheridge , Andrzej Hajda , Tomi Valkeinen , Laurent Pinchart , kernel@pengutronix.de, Russell King , Mauro Carvalho Chehab , Jean-Christophe Plagniol-Villard , Guennadi Liakhovetski , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org RGVjcmVtZW50aW5nIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIHByZXZpb3VzIGVuZHBvaW50 IG5vZGUgYWxsb3dzIHRvCnVzZSB0aGUgb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQgZnVuY3Rp b24gaW4gYSBmb3JfZWFjaF8uLi4gc3R5bGUgbWFjcm8uCkFsbCBjdXJyZW50IHVzZXJzIG9mIHRo aXMgZnVuY3Rpb24gdGhhdCBwYXNzIGEgbm9uLU5VTEwgcHJldiBwYXJhbWV0ZXIKKHRoYXQgaXMs IHNvY19jYW1lcmEgYW5kIGlteC1kcm0pIGFyZSBjaGFuZ2VkIHRvIG5vdCBkZWNyZW1lbnQgdGhl IHBhc3NlZApwcmV2IGFyZ3VtZW50J3MgcmVmY291bnQgdGhlbXNlbHZlcy4KClNpZ25lZC1vZmYt Ynk6IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+CkFja2VkLWJ5OiBNYXVy byBDYXJ2YWxobyBDaGVoYWIgPG1jaGVoYWJAb3NnLnNhbXN1bmcuY29tPgpBY2tlZC1ieTogTWF0 aGlldSBQb2lyaWVyIDxtYXRoaWV1LnBvaXJpZXJAbGluYXJvLm9yZz4KQWNrZWQtYnk6IExhdXJl bnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KQWNrZWQtYnk6 IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Ci0tLQpDaGFuZ2VzIHNpbmNl IHY3OgogLSBSZWJhc2VkIG9udG8gdjQuMC1yYzEKIC0gQWRkZWQgZml4IGZvciBhbTQzN3gtdnBm ZQotLS0KIGRyaXZlcnMvY29yZXNpZ2h0L29mX2NvcmVzaWdodC5jICAgICAgICAgICAgICAgICAg fCAxMyArKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1kcm0tY29yZS5jICAg ICAgICAgICAgICAgIHwgMTEgKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfa21zLmMgICAgICAgICAgICAgfCAxNSArKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvbWVk aWEvcGxhdGZvcm0vYW00Mzd4L2FtNDM3eC12cGZlLmMgICAgICAgfCAgMSAtCiBkcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3NvY19jYW1lcmEvc29jX2NhbWVyYS5jICAgIHwgIDMgKystCiBkcml2ZXJz L29mL2Jhc2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKy0tLS0tLS0t CiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL2Rzcy9vbWFwZHNzLWJvb3QtaW5pdC5jIHwgIDcg Ky0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NvcmVzaWdodC9vZl9jb3Jlc2lnaHQuYyBiL2RyaXZl cnMvY29yZXNpZ2h0L29mX2NvcmVzaWdodC5jCmluZGV4IGMzZWZhNDEuLjZmNzVlOWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY29yZXNpZ2h0L29mX2NvcmVzaWdodC5jCisrKyBiL2RyaXZlcnMvY29y ZXNpZ2h0L29mX2NvcmVzaWdodC5jCkBAIC01MiwxNSArNTIsNiBAQCBvZl9jb3Jlc2lnaHRfZ2V0 X2VuZHBvaW50X2RldmljZShzdHJ1Y3QgZGV2aWNlX25vZGUgKmVuZHBvaW50KQogCQkJICAgICAg IGVuZHBvaW50LCBvZl9kZXZfbm9kZV9tYXRjaCk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNl X25vZGUgKm9mX2dldF9jb3Jlc2lnaHRfZW5kcG9pbnQoCi0JCWNvbnN0IHN0cnVjdCBkZXZpY2Vf bm9kZSAqcGFyZW50LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnByZXYpCi17Ci0Jc3RydWN0IGRldmlj ZV9ub2RlICpub2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQocGFyZW50LCBwcmV2KTsK LQotCW9mX25vZGVfcHV0KHByZXYpOwotCXJldHVybiBub2RlOwotfQotCiBzdGF0aWMgdm9pZCBv Zl9jb3Jlc2lnaHRfZ2V0X3BvcnRzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAkJCQkgICBp bnQgKm5yX2lucG9ydCwgaW50ICpucl9vdXRwb3J0KQogewpAQCAtNjgsNyArNTksNyBAQCBzdGF0 aWMgdm9pZCBvZl9jb3Jlc2lnaHRfZ2V0X3BvcnRzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwK IAlpbnQgaW4gPSAwLCBvdXQgPSAwOwogCiAJZG8gewotCQllcCA9IG9mX2dldF9jb3Jlc2lnaHRf ZW5kcG9pbnQobm9kZSwgZXApOworCQllcCA9IG9mX2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KG5v ZGUsIGVwKTsKIAkJaWYgKCFlcCkKIAkJCWJyZWFrOwogCkBAIC0xNDAsNyArMTMxLDcgQEAgc3Ry dWN0IGNvcmVzaWdodF9wbGF0Zm9ybV9kYXRhICpvZl9nZXRfY29yZXNpZ2h0X3BsYXRmb3JtX2Rh dGEoCiAJCS8qIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIHBvcnQgdG8gZGlzY292ZXIgdG9wb2xvZ3kg Ki8KIAkJZG8gewogCQkJLyogR2V0IGEgaGFuZGxlIG9uIGEgcG9ydCAqLwotCQkJZXAgPSBvZl9n ZXRfY29yZXNpZ2h0X2VuZHBvaW50KG5vZGUsIGVwKTsKKwkJCWVwID0gb2ZfZ3JhcGhfZ2V0X25l eHRfZW5kcG9pbnQobm9kZSwgZXApOwogCQkJaWYgKCFlcCkKIAkJCQlicmVhazsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvaW14LWRybS1jb3JlLmMKaW5kZXggYTAwMmY1My4uODRjZjk5ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aW14L2lteC1kcm0tY29yZS5jCkBAIC00MzEsMTUgKzQzMSw2IEBAIGludCBpbXhfZHJtX2VuY29k ZXJfcGFyc2Vfb2Yoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIH0KIEVYUE9SVF9TWU1CT0xfR1BM KGlteF9kcm1fZW5jb2Rlcl9wYXJzZV9vZik7CiAKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNlX25vZGUg KmlteF9kcm1fb2ZfZ2V0X25leHRfZW5kcG9pbnQoCi0JCWNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9k ZSAqcGFyZW50LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnByZXYpCi17Ci0Jc3RydWN0IGRldmljZV9u b2RlICpub2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQocGFyZW50LCBwcmV2KTsKLQot CW9mX25vZGVfcHV0KHByZXYpOwotCXJldHVybiBub2RlOwotfQotCiAvKgogICogQG5vZGU6IGRl dmljZSB0cmVlIG5vZGUgY29udGFpbmluZyBlbmNvZGVyIGlucHV0IHBvcnRzCiAgKiBAZW5jb2Rl cjogZHJtX2VuY29kZXIKQEAgLTQ1Nyw3ICs0NDgsNyBAQCBpbnQgaW14X2RybV9lbmNvZGVyX2dl dF9tdXhfaWQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCQlyZXR1cm4gLUVJTlZBTDsKIAog CWRvIHsKLQkJZXAgPSBpbXhfZHJtX29mX2dldF9uZXh0X2VuZHBvaW50KG5vZGUsIGVwKTsKKwkJ ZXAgPSBvZl9ncmFwaF9nZXRfbmV4dF9lbmRwb2ludChub2RlLCBlcCk7CiAJCWlmICghZXApCiAJ CQlicmVhazsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9r bXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmMKaW5kZXggY2M5MTM2 ZS4uNjhkYWIyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9r bXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCkBAIC0yMDYs NyArMjA2LDcgQEAgc3RhdGljIGludCByY2FyX2R1X2VuY29kZXJzX2luaXRfb25lKHN0cnVjdCBy Y2FyX2R1X2RldmljZSAqcmNkdSwKIAllbnVtIHJjYXJfZHVfZW5jb2Rlcl90eXBlIGVuY190eXBl ID0gUkNBUl9EVV9FTkNPREVSX05PTkU7CiAJc3RydWN0IGRldmljZV9ub2RlICpjb25uZWN0b3Ig PSBOVUxMOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW5jb2RlciA9IE5VTEw7Ci0Jc3RydWN0IGRl dmljZV9ub2RlICpwcmV2ID0gTlVMTDsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwX25vZGUgPSBO VUxMOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW50aXR5X2VwX25vZGU7CiAJc3RydWN0IGRldmlj ZV9ub2RlICplbnRpdHk7CiAJaW50IHJldDsKQEAgLTIyNSwxMSArMjI1LDcgQEAgc3RhdGljIGlu dCByY2FyX2R1X2VuY29kZXJzX2luaXRfb25lKHN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSwK IAllbnRpdHlfZXBfbm9kZSA9IG9mX3BhcnNlX3BoYW5kbGUoZXAtPmxvY2FsX25vZGUsICJyZW1v dGUtZW5kcG9pbnQiLCAwKTsKIAogCXdoaWxlICgxKSB7Ci0JCXN0cnVjdCBkZXZpY2Vfbm9kZSAq ZXBfbm9kZTsKLQotCQllcF9ub2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQoZW50aXR5 LCBwcmV2KTsKLQkJb2Zfbm9kZV9wdXQocHJldik7Ci0JCXByZXYgPSBlcF9ub2RlOworCQllcF9u b2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQoZW50aXR5LCBlcF9ub2RlKTsKIAogCQlp ZiAoIWVwX25vZGUpCiAJCQlicmVhazsKQEAgLTMwMCw3ICsyOTYsNyBAQCBzdGF0aWMgaW50IHJj YXJfZHVfZW5jb2RlcnNfaW5pdF9vbmUoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1LAogc3Rh dGljIGludCByY2FyX2R1X2VuY29kZXJzX2luaXQoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1 KQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSByY2R1LT5kZXYtPm9mX25vZGU7Ci0Jc3Ry dWN0IGRldmljZV9ub2RlICpwcmV2ID0gTlVMTDsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwX25v ZGUgPSBOVUxMOwogCXVuc2lnbmVkIGludCBudW1fZW5jb2RlcnMgPSAwOwogCiAJLyoKQEAgLTMw OCwxNSArMzA0LDEyIEBAIHN0YXRpYyBpbnQgcmNhcl9kdV9lbmNvZGVyc19pbml0KHN0cnVjdCBy Y2FyX2R1X2RldmljZSAqcmNkdSkKIAkgKiBwaXBlbGluZS4KIAkgKi8KIAl3aGlsZSAoMSkgewot CQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwX25vZGU7CiAJCWVudW0gcmNhcl9kdV9vdXRwdXQgb3V0 cHV0OwogCQlzdHJ1Y3Qgb2ZfZW5kcG9pbnQgZXA7CiAJCXVuc2lnbmVkIGludCBpOwogCQlpbnQg cmV0OwogCi0JCWVwX25vZGUgPSBvZl9ncmFwaF9nZXRfbmV4dF9lbmRwb2ludChucCwgcHJldik7 Ci0JCW9mX25vZGVfcHV0KHByZXYpOwotCQlwcmV2ID0gZXBfbm9kZTsKKwkJZXBfbm9kZSA9IG9m X2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KG5wLCBlcF9ub2RlKTsKIAogCQlpZiAoZXBfbm9kZSA9 PSBOVUxMKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2Ft NDM3eC9hbTQzN3gtdnBmZS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbTQzN3gvYW00Mzd4 LXZwZmUuYwppbmRleCA1NmE1Y2IwLi4wZDA3ZmNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL2FtNDM3eC9hbTQzN3gtdnBmZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vYW00Mzd4L2FtNDM3eC12cGZlLmMKQEAgLTI1MDQsNyArMjUwNCw2IEBAIHZwZmVfZ2V0X3Bk YXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQkJCSAgICAgR0ZQX0tFUk5FTCk7 CiAJCXBkYXRhLT5hc2RbaV0tPm1hdGNoX3R5cGUgPSBWNEwyX0FTWU5DX01BVENIX09GOwogCQlw ZGF0YS0+YXNkW2ldLT5tYXRjaC5vZi5ub2RlID0gcmVtOwotCQlvZl9ub2RlX3B1dChlbmRwb2lu dCk7CiAJCW9mX25vZGVfcHV0KHJlbSk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3NvY19jYW1lcmEvc29jX2NhbWVyYS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9zb2NfY2FtZXJhL3NvY19jYW1lcmEuYwppbmRleCBjZWU3YjU2Li5mMmEzZDk2IDEwMDY0NAot LS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NvY19jYW1lcmEvc29jX2NhbWVyYS5jCisrKyBi L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc29jX2NhbWVyYS9zb2NfY2FtZXJhLmMKQEAgLTE2OTQs NyArMTY5NCw2IEBAIHN0YXRpYyB2b2lkIHNjYW5fb2ZfaG9zdChzdHJ1Y3Qgc29jX2NhbWVyYV9o b3N0ICppY2kpCiAJCWlmICghaSkKIAkJCXNvY19vZl9iaW5kKGljaSwgZXBuLCByZW4tPnBhcmVu dCk7CiAKLQkJb2Zfbm9kZV9wdXQoZXBuKTsKIAkJb2Zfbm9kZV9wdXQocmVuKTsKIAogCQlpZiAo aSkgewpAQCAtMTcwMiw2ICsxNzAxLDggQEAgc3RhdGljIHZvaWQgc2Nhbl9vZl9ob3N0KHN0cnVj dCBzb2NfY2FtZXJhX2hvc3QgKmljaSkKIAkJCWJyZWFrOwogCQl9CiAJfQorCisJb2Zfbm9kZV9w dXQoZXBuKTsKIH0KIAogI2Vsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvYmFzZS5jIGIvZHJp dmVycy9vZi9iYXNlLmMKaW5kZXggMGE4YWViOC4uMDViMjBmMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9vZi9iYXNlLmMKKysrIGIvZHJpdmVycy9vZi9iYXNlLmMKQEAgLTIwODYsOCArMjA4Niw3IEBA IEVYUE9SVF9TWU1CT0wob2ZfZ3JhcGhfcGFyc2VfZW5kcG9pbnQpOwogICogQHByZXY6IHByZXZp b3VzIGVuZHBvaW50IG5vZGUsIG9yIE5VTEwgdG8gZ2V0IGZpcnN0CiAgKgogICogUmV0dXJuOiBB biAnZW5kcG9pbnQnIG5vZGUgcG9pbnRlciB3aXRoIHJlZmNvdW50IGluY3JlbWVudGVkLiBSZWZj b3VudAotICogb2YgdGhlIHBhc3NlZCBAcHJldiBub2RlIGlzIG5vdCBkZWNyZW1lbnRlZCwgdGhl IGNhbGxlciBoYXZlIHRvIHVzZQotICogb2Zfbm9kZV9wdXQoKSBvbiBpdCB3aGVuIGRvbmUuCisg KiBvZiB0aGUgcGFzc2VkIEBwcmV2IG5vZGUgaXMgZGVjcmVtZW50ZWQuCiAgKi8KIHN0cnVjdCBk ZXZpY2Vfbm9kZSAqb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQoY29uc3Qgc3RydWN0IGRldmlj ZV9ub2RlICpwYXJlbnQsCiAJCQkJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcHJldikKQEAgLTIxMjMs MTIgKzIxMjIsNiBAQCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX2dyYXBoX2dldF9uZXh0X2VuZHBv aW50KGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFyZW50LAogCQlpZiAoV0FSTl9PTkNFKCFw b3J0LCAiJXMoKTogZW5kcG9pbnQgJXMgaGFzIG5vIHBhcmVudCBub2RlXG4iLAogCQkJICAgICAg X19mdW5jX18sIHByZXYtPmZ1bGxfbmFtZSkpCiAJCQlyZXR1cm4gTlVMTDsKLQotCQkvKgotCQkg KiBBdm9pZCBkcm9wcGluZyBwcmV2IG5vZGUgcmVmY291bnQgdG8gMCB3aGVuIGdldHRpbmcgdGhl IG5leHQKLQkJICogY2hpbGQgYmVsb3cuCi0JCSAqLwotCQlvZl9ub2RlX2dldChwcmV2KTsKIAl9 CiAKIAl3aGlsZSAoMSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9k c3Mvb21hcGRzcy1ib290LWluaXQuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvZHNzL29t YXBkc3MtYm9vdC1pbml0LmMKaW5kZXggNDJiODdmOS4uOGI2ZjZkNSAxMDA2NDQKLS0tIGEvZHJp dmVycy92aWRlby9mYmRldi9vbWFwMi9kc3Mvb21hcGRzcy1ib290LWluaXQuYworKysgYi9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL2Rzcy9vbWFwZHNzLWJvb3QtaW5pdC5jCkBAIC0xNjQsMjAg KzE2NCwxNSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb21hcGRzc193YWxrX2RldmljZShzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5vZGUsIGJvb2wgcm9vdCkKIAogCQlwbiA9IG9mX2dyYXBoX2dldF9yZW1v dGVfcG9ydF9wYXJlbnQobik7CiAKLQkJaWYgKCFwbikgewotCQkJb2Zfbm9kZV9wdXQobik7CisJ CWlmICghcG4pCiAJCQljb250aW51ZTsKLQkJfQogCiAJCWlmICghb2ZfZGV2aWNlX2lzX2F2YWls YWJsZShwbikgfHwgb21hcGRzc19saXN0X2NvbnRhaW5zKHBuKSkgewogCQkJb2Zfbm9kZV9wdXQo cG4pOwotCQkJb2Zfbm9kZV9wdXQobik7CiAJCQljb250aW51ZTsKIAkJfQogCiAJCW9tYXBkc3Nf d2Fsa19kZXZpY2UocG4sIGZhbHNlKTsKLQotCQlvZl9ub2RlX3B1dChuKTsKIAl9CiB9CiAKLS0g CjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=