From owner-freebsd-enlightenment@freebsd.org Fri Jun 26 19:12:03 2015 Return-Path: Delivered-To: freebsd-enlightenment@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EAD6798D59E for ; Fri, 26 Jun 2015 19:12:03 +0000 (UTC) (envelope-from 6yearold@gmail.com) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id CC0B91A85 for ; Fri, 26 Jun 2015 19:12:03 +0000 (UTC) (envelope-from 6yearold@gmail.com) Received: by mailman.ysv.freebsd.org (Postfix) id C88F898D59B; Fri, 26 Jun 2015 19:12:03 +0000 (UTC) Delivered-To: enlightenment@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE18A98D599 for ; Fri, 26 Jun 2015 19:12:03 +0000 (UTC) (envelope-from 6yearold@gmail.com) Received: from mail-wi0-x234.google.com (mail-wi0-x234.google.com [IPv6:2a00:1450:400c:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3AD931A84 for ; Fri, 26 Jun 2015 19:12:03 +0000 (UTC) (envelope-from 6yearold@gmail.com) Received: by wibdq8 with SMTP id dq8so25750994wib.1 for ; Fri, 26 Jun 2015 12:12:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=vH1w99BQpiescrTUTxL7ALr+OfxB+QVxshTPuJC15uk=; b=TiUO9DOgGjwHJwyOYYtSD7fg7lt9qADhRI90bLdD13YFJVQMUzXC572PfLxYZOls7r 7BoZWJmENIW957eVSUV8vOSSOrHfFtLsqneprA3LyfhUNP5Xdo4wpS70U88GILNc41C7 Q2QkpMyw0Bfar+kowAcwza5GOdrQJQ8GtlCemL50eb5xG/LEABmZGbaGs8ZWAJIGrUUA iZ9tYEVt9EeOSR6WCF0DbA5rEsZseUnJvtDQgVFLL5F8BC9D1bxiyeTuZXRPdi5P59ns T8Eh75hPfbgsfyFyrEER0k23ICwVPBTGM33NasYphcUC2oV4cLON4jw6uUPTAS5NXFpS qjFQ== X-Received: by 10.194.6.229 with SMTP id e5mr5625752wja.158.1435345921523; Fri, 26 Jun 2015 12:12:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.183.137 with HTTP; Fri, 26 Jun 2015 12:11:31 -0700 (PDT) From: Gleb Popov <6yearold@gmail.com> Date: Fri, 26 Jun 2015 22:11:31 +0300 Message-ID: To: enlightenment@freebsd.org Content-Type: multipart/mixed; boundary=047d7b5d43f8c8b94b05197083ff X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: E on FreeBSD: FreeBSD Port: devel/efl X-BeenThere: freebsd-enlightenment@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Enlightenment for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jun 2015 19:12:04 -0000 --047d7b5d43f8c8b94b05197083ff Content-Type: text/plain; charset=UTF-8 Hi, i wrote a patch for eio that adds kqeue/kevent backend. It works for me, but before submitting it upstream i wanted someone to test it more extensively, especially with Enlightenment DE, because i don't use it for myself. Patch should be applied to the current devel/efl port. Any input would be welcome. --047d7b5d43f8c8b94b05197083ff Content-Type: text/x-patch; charset=US-ASCII; name="eio.kevent.patch" Content-Disposition: attachment; filename="eio.kevent.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ibdzxcar0 LS0tIC91c3IvcG9ydHMvZGV2ZWwvZWZsL2ZpbGVzL3BhdGNoLWNvbmZpZ3VyZS5hYwkyMDE0LTEx LTI1IDA2OjA3OjIyLjAwMDAwMDAwMCArMDMwMAorKysgZmlsZXMvcGF0Y2gtY29uZmlndXJlLmFj CTIwMTUtMDMtMjkgMTg6Mjg6NDYuNjE0MjcxMzg2ICswMzAwCkBAIC0xLDYgKzEsNiBAQAotLS0t IGNvbmZpZ3VyZS5hYy5vcmlnCTIwMTQtMTEtMTAgMTI6MDI6NDMuMDAwMDAwMDAwICswMTAwCi0r KysgY29uZmlndXJlLmFjCTIwMTQtMTEtMjAgMjM6MzU6MjYuMDAwMDAwMDAwICswMTAwCi1AQCAt NDA3LDE0ICs0MDcsMTUgQEAKKy0tLSBjb25maWd1cmUuYWMub3JpZwkyMDE1LTAzLTI3IDIzOjQ3 OjE4LjczMzg5NTMwMiArMDMwMAorKysrIGNvbmZpZ3VyZS5hYwkyMDE1LTAzLTI3IDIzOjU4OjIx LjQ4Mjg1MTkwMiArMDMwMAorQEAgLTQwOCwxNCArNDA4LDE1IEBACiAgZXhlY2luZm8uaCBcCiAg bWNoZWNrLmggXAogIHN5cy9lcG9sbC5oIFwKQEAgLTE3LDMgKzE3LDE4IEBACiAgaGF2ZV9pbm90 aWZ5PSIke2FjX2N2X2hlYWRlcl9zeXNfaW5vdGlmeV9ofSIKICBBTV9DT05ESVRJT05BTChbSEFW RV9JTk9USUZZXSwgW3Rlc3QgIngke2hhdmVfaW5vdGlmeX0iID0gInh5ZXMiXSkKICAKK0BAIC00 MjUsNiArNDI2LDE0IEBACisgICAgW0ZpbGUgbW9uaXRvcmluZyB3aXRoIFdpbmRvd3Mgbm90aWZp Y2F0aW9uXSkKKyBBTV9DT05ESVRJT05BTChbSEFWRV9OT1RJRllfV0lOMzJdLCBbdGVzdCAieCR7 aGF2ZV9ub3RpZnlfd2luMzJ9IiA9ICJ4eWVzIl0pCisgCisrQUNfQ0hFQ0tfRlVOQyhba2V2ZW50 XSkKKysKKytoYXZlX25vdGlmeV9rZXZlbnQ9IiR7YWNfY3ZfZnVuY19rZXZlbnR9IgorK0FDX0RF RklORV9JRihbSEFWRV9OT1RJRllfS0VWRU5UXSwKKysgICBbdGVzdCAieCR7aGF2ZV9ub3RpZnlf a2V2ZW50fSIgPSAieHllcyJdLCBbMV0sCisrICAgW0ZpbGUgbW9uaXRvcmluZyB3aXRoIGtxdWV1 ZS9rZXZlbnQgbWVjaGFuaXNtXSkKKytBTV9DT05ESVRJT05BTChbSEFWRV9OT1RJRllfS0VWRU5U XSwgW3Rlc3QgIngke2hhdmVfbm90aWZ5X2tldmVudH0iID0gInh5ZXMiXSkKKysKKyAKKyBFRkxf Q0hFQ0tfUEFUSF9NQVgKKyAKLS0tIC9kZXYvbnVsbAkyMDE1LTA2LTI2IDIxOjU1OjAwLjAwMDAw MDAwMCArMDMwMAorKysgZmlsZXMvcGF0Y2gtc3JjLU1ha2VmaWxlX0Vpby5hbQkyMDE1LTAzLTI4 IDAwOjA1OjA3LjY4NTgyMjM4MSArMDMwMApAQCAtMCwwICsxLDEyIEBACistLS0gc3JjL01ha2Vm aWxlX0Vpby5hbS5vcmlnCTIwMTUtMDMtMjggMDA6MDQ6MjUuMDAwMDAwMDAwICswMzAwCisrKysg c3JjL01ha2VmaWxlX0Vpby5hbQkyMDE1LTAzLTI4IDAwOjA0OjQxLjc2NDgyMTkwMSArMDMwMAor QEAgLTI0LDYgKzI0LDkgQEAKKyBpZiBIQVZFX05PVElGWV9XSU4zMgorIGxpYl9laW9fbGliZWlv X2xhX1NPVVJDRVMgKz0gbGliL2Vpby9laW9fbW9uaXRvcl93aW4zMi5jCisgZW5kaWYKKytpZiBI QVZFX05PVElGWV9LRVZFTlQKKytsaWJfZWlvX2xpYmVpb19sYV9TT1VSQ0VTICs9IGxpYi9laW8v ZWlvX21vbml0b3Jfa2V2ZW50LmMKKytlbmRpZgorIGVuZGlmCisgCisgbGliX2Vpb19saWJlaW9f bGFfQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKS9zcmMvbGliL2VmbCBARUlPX0NGTEFHU0AK LS0tIC9kZXYvbnVsbAkyMDE1LTA2LTI2IDIxOjU1OjAwLjAwMDAwMDAwMCArMDMwMAorKysgZmls ZXMvcGF0Y2gtc3JjLWxpYi1laW8tZWlvX21vbml0b3Jfa2V2ZW50LmMJMjAxNS0wNi0yNiAyMTo0 NToyOC42NjYxMzUyMjAgKzAzMDAKQEAgLTAsMCArMSwyMTEgQEAKKy0tLSAvZGV2L251bGwJMjAx NS0wNi0yNiAyMTo0NDowMC4wMDAwMDAwMDAgKzAzMDAKKysrKyBzcmMvbGliL2Vpby9laW9fbW9u aXRvcl9rZXZlbnQuYwkyMDE1LTA2LTI2IDIxOjIwOjM3LjAzMjIzMjM4MCArMDMwMAorQEAgLTAs MCArMSwyMDggQEAKKysvKiBFSU8gLSBFRkwgZGF0YSB0eXBlIGxpYnJhcnkKKysgKiBDb3B5cmln aHQgKEMpIDIwMTEgRW5saWdodGVubWVudCBEZXZlbG9wZXJzOgorKyAqICAgICAgICAgICBDZWRy aWMgQmFpbCA8Y2VkcmljLmJhaWxAZnJlZS5mcj4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICog TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyCisrICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisrICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKysgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5Owor KyAqIGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysgKi8KKysK KysjaW5jbHVkZSAiZWlvX3ByaXZhdGUuaCIKKysjaW5jbHVkZSAiRWlvLmgiCisrCisrI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgorKyNpbmNsdWRlIDxzeXMvZXZlbnQuaD4KKysjaW5jbHVkZSA8c3lz L3N0YXQuaD4KKysKKysvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qCisrICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKgorKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisrCisrLyoqCisrICogQGNvbmQgTE9DQUwK KysgKi8KKysKKysjZGVmaW5lIEtFVkVOVF9VU0VSX1RSSUdHRVJfSUQgMQorKyNkZWZpbmUgS0VW RU5UX05VTV9FVkVOVFMgNQorKworK3N0cnVjdCBfRWlvX01vbml0b3JfQmFja2VuZAorK3sKKysg ICBFaW9fTW9uaXRvciAqcGFyZW50OworKworKyAgIGludCBmZDsKKyt9OworKworK3N0YXRpYyBp bnQgX2txdWV1ZV9mZCA9IC0xOworK3N0YXRpYyBFaW5hX0hhc2ggKl9rZXZlbnRfbW9uaXRvcnMg PSBOVUxMOworKworK3N0YXRpYyB2b2lkCisrX2Vpb19rZXZlbnRfZGVsKHZvaWQgKmRhdGEpCisr eworKyAgIEVpb19Nb25pdG9yX0JhY2tlbmQgKmVtYiA9IGRhdGE7CisrCisrICAgaWYgKGVtYi0+ ZmQpCisrICAgeworKyAgICAgICAgY2xvc2UoZW1iLT5mZCk7CisrICAgICAgICBlbWItPmZkID0g MDsKKysgICB9CisrCisrICAgZnJlZShlbWIpOworK30KKysKKytzdGF0aWMgdm9pZAorK19laW9f a2V2ZW50X2hhbmRsZXIodm9pZCAqZGF0YSBFSU5BX1VOVVNFRCwgRWNvcmVfVGhyZWFkICp0aHIg RUlOQV9VTlVTRUQpCisreworKyAgIEVpb19Nb25pdG9yX0JhY2tlbmQgKmJhY2tlbmQ7CisrICAg c3RydWN0IGtldmVudCBldnNbS0VWRU5UX05VTV9FVkVOVFNdOworKyAgIGludCBldmVudF9jb2Rl ID0gMDsKKysKKysgICAgd2hpbGUoMSkKKysgICAgeworKyAgICAgICAgaW50IHJlcyA9IGtldmVu dChfa3F1ZXVlX2ZkLCAwLCAwLCBldnMsIEtFVkVOVF9OVU1fRVZFTlRTLCAwKTsKKysKKysgICAg ICAgIGZvcihpbnQgaT0wOyBpPHJlczsgKytpKQorKyAgICAgICAgeworKyAgICAgICAgICAgIGlm KGV2c1tpXS5maWx0ZXIgPT0gRVZGSUxUX1VTRVIpCisrICAgICAgICAgICAgICAgIHJldHVybjsK KysgICAgICAgICAgICBiYWNrZW5kID0gZWluYV9oYXNoX2ZpbmQoX2tldmVudF9tb25pdG9ycywg JmV2c1tpXS5pZGVudCk7CisrICAgICAgICAgICAgaWYoZXZzW2ldLmZmbGFncyAmIE5PVEVfREVM RVRFKQorKyAgICAgICAgICAgICAgICBldmVudF9jb2RlID0gRUlPX01PTklUT1JfRklMRV9ERUxF VEVEOworKyAgICAgICAgICAgIGlmKGV2c1tpXS5mZmxhZ3MgJiBOT1RFX1dSSVRFKQorKyAgICAg ICAgICAgICAgICBldmVudF9jb2RlID0gRUlPX01PTklUT1JfRklMRV9NT0RJRklFRDsKKysgICAg ICAgICAgICBlY29yZV90aHJlYWRfbWFpbl9sb29wX2JlZ2luKCk7CisrICAgICAgICAgICAgX2Vp b19tb25pdG9yX3NlbmQoYmFja2VuZC0+cGFyZW50LCBiYWNrZW5kLT5wYXJlbnQtPnBhdGgsIGV2 ZW50X2NvZGUpOworKyAgICAgICAgICAgIGVjb3JlX3RocmVhZF9tYWluX2xvb3BfZW5kKCk7Cisr ICAgICAgICB9CisrICAgIH0KKyt9CisrCisrLyoqCisrICogQGVuZGNvbmQKKysgKi8KKysKKysK KysvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0qCisrICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHbG9iYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKyAqPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSovCisrCisrLyoqCisrICogQGNvbmQgTE9DQUwKKysgKi8KKysKKysv KioKKysgKiBAZW5kY29uZAorKyAqLworKworK3ZvaWQgZWlvX21vbml0b3JfYmFja2VuZF9pbml0 KHZvaWQpCisreworKyAgICBzdHJ1Y3Qga2V2ZW50IGU7CisrCisrICAgIGlmKF9rcXVldWVfZmQg PiAwKQorKyAgICAgICAgcmV0dXJuOyAvLyBhbHJlYWR5IGluaXRpYWxpemVkCisrCisrICAgIF9r cXVldWVfZmQgPSBrcXVldWUoKTsKKysgICAgaWYoX2txdWV1ZV9mZCA8IDApIHJldHVybjsKKysK KysgICAgX2tldmVudF9tb25pdG9ycyA9IGVpbmFfaGFzaF9pbnQzMl9uZXcoX2Vpb19rZXZlbnRf ZGVsKTsKKysKKysgICAgRVZfU0VUKCZlLCBLRVZFTlRfVVNFUl9UUklHR0VSX0lELCBFVkZJTFRf VVNFUiwgRVZfQURELCAwLCAwLCBOVUxMKTsKKysgICAga2V2ZW50KF9rcXVldWVfZmQsICZlLCAx LCAwLCAwLCAwKTsKKysKKysgICAgRWNvcmVfVGhyZWFkKiB0aHIgPSBlY29yZV90aHJlYWRfZmVl ZGJhY2tfcnVuKAorKyAgICAgICAgX2Vpb19rZXZlbnRfaGFuZGxlcixOVUxMLAorKyAgICAgICAg TlVMTCxOVUxMLAorKyAgICAgICAgTlVMTCxFSU5BX1RSVUUpOworKworKyAgICBpZighdGhyKQor KyAgICB7CisrICAgICAgICBlaW9fbW9uaXRvcl9iYWNrZW5kX3NodXRkb3duKCk7CisrICAgICAg ICByZXR1cm47CisrICAgIH0KKyt9CisrCisrdm9pZCBlaW9fbW9uaXRvcl9iYWNrZW5kX3NodXRk b3duKHZvaWQpCisreworKyAgICBzdHJ1Y3Qga2V2ZW50IGU7CisrCisrICAgIGlmIChfa3F1ZXVl X2ZkIDwgMCkgcmV0dXJuOworKworKyAgICBFVl9TRVQoJmUsIEtFVkVOVF9VU0VSX1RSSUdHRVJf SUQsIEVWRklMVF9VU0VSLCBFVl9BREQsIE5PVEVfVFJJR0dFUiwgMCwgTlVMTCk7CisrICAgIGtl dmVudChfa3F1ZXVlX2ZkLCAmZSwgMSwgMCwgMCwgMCk7CisrCisrICAgIGVpbmFfaGFzaF9mcmVl KF9rZXZlbnRfbW9uaXRvcnMpOworKyAgICBjbG9zZShfa3F1ZXVlX2ZkKTsKKysgICAgX2txdWV1 ZV9mZCA9IC0xOworK30KKysKKyt2b2lkIGVpb19tb25pdG9yX2JhY2tlbmRfYWRkKEVpb19Nb25p dG9yICptb25pdG9yKQorK3sKKysgICBzdHJ1Y3Qga2V2ZW50IGU7CisrICAgc3RydWN0IHN0YXQg c3Q7CisrICAgRWlvX01vbml0b3JfQmFja2VuZCogYmFja2VuZDsKKysgICBpbnQgZmQsIHJlcyA9 IDA7CisrCisrICAgIGlmIChfa3F1ZXVlX2ZkIDwgMCkKKysgICAgeworKyAgICAgICAgZWlvX21v bml0b3JfZmFsbGJhY2tfYWRkKG1vbml0b3IpOworKyAgICAgICAgcmV0dXJuOworKyAgICB9Cisr CisrICAgIHJlcyA9IHN0YXQobW9uaXRvci0+cGF0aCwgJnN0KTsKKysgICAgaWYgKHJlcykgcmV0 dXJuOworKworKyAgICBpZiAoU19JU0RJUihzdC5zdF9tb2RlKSkgLy8gbGV0IHBvbGxlciBoYW5k bGUgZGlyZWN0b3JpZXMKKysgICAgeworKyAgICAgICAgZWlvX21vbml0b3JfZmFsbGJhY2tfYWRk KG1vbml0b3IpOworKyAgICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICAgIGZkID0gb3Blbiht b25pdG9yLT5wYXRoLCBPX1JET05MWSk7CisrICAgIGlmKGZkIDwgMCkgcmV0dXJuOworKworKyAg ICBiYWNrZW5kID0gY2FsbG9jKDEsIHNpemVvZiAoRWlvX01vbml0b3JfQmFja2VuZCkpOworKyAg ICBpZiAoIWJhY2tlbmQpIHJldHVybjsKKysKKysgICAgYmFja2VuZC0+ZmQgPSBmZDsKKysgICAg YmFja2VuZC0+cGFyZW50ID0gbW9uaXRvcjsKKysgICAgbW9uaXRvci0+YmFja2VuZCA9IGJhY2tl bmQ7CisrCisrICAgIGVpbmFfaGFzaF9kaXJlY3RfYWRkKF9rZXZlbnRfbW9uaXRvcnMsICZiYWNr ZW5kLT5mZCwgYmFja2VuZCk7CisrCisrICAgIEVWX1NFVCgmZSwgZmQsIEVWRklMVF9WTk9ERSwg RVZfQUREIHwgRVZfQ0xFQVIsCisrICAgICAgICAgICBOT1RFX1dSSVRFIHwgTk9URV9SRU5BTUUg fCBOT1RFX0RFTEVURSwgMCwgTlVMTCk7CisrICAgIHJlcyA9IGtldmVudChfa3F1ZXVlX2ZkLCAm ZSwgMSwgMCwgMCwgMCk7CisrICAgIGlmKHJlcykKKysgICAgeworKyAgICAgICAgZWluYV9oYXNo X2RlbChfa2V2ZW50X21vbml0b3JzLCAmYmFja2VuZC0+ZmQsIGJhY2tlbmQpOworKyAgICAgICAg ZWlvX21vbml0b3JfZmFsbGJhY2tfYWRkKG1vbml0b3IpOworKyAgICAgICAgcmV0dXJuOworKyAg ICB9CisrfQorKworK3ZvaWQgZWlvX21vbml0b3JfYmFja2VuZF9kZWwoRWlvX01vbml0b3IgKm1v bml0b3IpCisreworKyAgIEVpb19Nb25pdG9yX0JhY2tlbmQgKmJhY2tlbmQ7CisrCisrICAgaWYg KF9rcXVldWVfZmQgPCAwKQorKyAgICAgZWlvX21vbml0b3JfZmFsbGJhY2tfZGVsKG1vbml0b3Ip OworKworKyAgIGJhY2tlbmQgPSBtb25pdG9yLT5iYWNrZW5kOworKyAgIG1vbml0b3ItPmJhY2tl bmQgPSBOVUxMOworKworKyAgIGVpbmFfaGFzaF9kZWwoX2tldmVudF9tb25pdG9ycywgJmJhY2tl bmQtPmZkLCBiYWNrZW5kKTsKKyt9CisrCisrCisrLyo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KgorKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICoKKysgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLS0gL2Rldi9u dWxsCTIwMTUtMDYtMjYgMjE6NTU6MDAuMDAwMDAwMDAwICswMzAwCisrKyBmaWxlcy9wYXRjaC1z cmMtbGliLWVpby1laW9fbW9uaXRvcl9wb2xsLmMJMjAxNS0wMy0yOSAxODowODoxMy4zMzEzNjAy NjYgKzAzMDAKQEAgLTAsMCArMSwxMSBAQAorLS0tIHNyYy9saWIvZWlvL2Vpb19tb25pdG9yX3Bv bGwuYy5vcmlnCTIwMTMtMTItMTEgMTg6MzQ6MzIuMDAwMDAwMDAwICswNDAwCisrKysgc3JjL2xp Yi9laW8vZWlvX21vbml0b3JfcG9sbC5jCTIwMTUtMDMtMjkgMTg6MDc6MTkuOTY4MzYwMTg2ICsw MzAwCitAQCAtMjcwLDcgKzI3MCw3IEBACisgICogQGNvbmQgTE9DQUwKKyAgKi8KKyAKKy0jaWYg IWRlZmluZWQgSEFWRV9TWVNfSU5PVElGWV9IICYmICFkZWZpbmVkIEhBVkVfTk9USUZZX1dJTjMy CisrI2lmICFkZWZpbmVkIEhBVkVfU1lTX0lOT1RJRllfSCAmJiAhZGVmaW5lZCBIQVZFX05PVElG WV9XSU4zMiAmJiAhZGVmaW5lZCBIQVZFX05PVElGWV9LRVZFTlQKKyB2b2lkIGVpb19tb25pdG9y X2JhY2tlbmRfaW5pdCh2b2lkKQorIHsKKyB9Cg== --047d7b5d43f8c8b94b05197083ff--