Return-Path: MIME-Version: 1.0 Date: Wed, 10 Feb 2010 12:41:45 -0700 Message-ID: Subject: contribution: bthid command-line HID utility From: Shawn Rutledge To: linux-bluetooth@vger.kernel.org Content-Type: multipart/mixed; boundary=00c09f899a417ec3ef047f443957 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --00c09f899a417ec3ef047f443957 Content-Type: text/plain; charset=ISO-8859-1 It's always been a bit cumbersome IMO to discover, pair and connect to a bluetooth HID device, and more so now that one needs to use dbus to do it. So I wrote the attached python script to make it easier. I would like to see it distributed as part of bluez. Please let me know if there is some other process for such contributions. It does discovery and then uses urwid to present a curses menu in the console with the discovered devices. You can simply select one and it will try to pair if necessary (prompting for the pin if necessary) and then connect. So anytime your HID device is no longer connected or you wish to switch the computer to which it's connected (which I do frequently), you can just put it in discoverable mode and run bthid and not worry about whether it was already paired or not. At least that's the idea, although plenty of things can still go wrong (permission trouble, .service files not installed, HCI device not working, cryptic error messages etc.) Maybe some of those can be improved over time. Of course I didn't have to invent any new techniques here, it's just a mashup of an existing script with a curses UI, but still... IMO the regular user needs something like this at least as a fallback to make HID useful, in the absence of a better GUI utility like the KDE one or some such. Since it works over ssh, it's better than a GUI for fixing machines that don't have wired HID devices (e.g. I use a wireless keyboard for my MythTV box, and every time I change the batteries I have to re-connect it). I'm using it with bluez 4.39 at the moment, but have tested some other versions on other machines (e.g. with arch), and I imagine it will work the same as long as the relevant dbus interfaces are the same. --00c09f899a417ec3ef047f443957 Content-Type: application/octet-stream; name=bthid Content-Disposition: attachment; filename=bthid Content-Transfer-Encoding: base64 X-Attachment-Id: f_g5iiydgp1 IyEvdXNyL2Jpbi9weXRob24KCmltcG9ydCBzeXMKCmltcG9ydCB1cndpZAppbXBvcnQgdXJ3aWQu cmF3X2Rpc3BsYXkKCmltcG9ydCBnb2JqZWN0CgppbXBvcnQgZGJ1cwppbXBvcnQgZGJ1cy5zZXJ2 aWNlCmltcG9ydCBkYnVzLm1haW5sb29wLmdsaWIKCiMgZ2xvYmFscwptYWlubG9vcCA9IGdvYmpl Y3QuTWFpbkxvb3AoKQpkZXZpY2VNYXAgPSB7fQkjIG5hbWUtdG8tcHJvcGVydGllcwpidXMgPSAn JwptYW5hZ2VyID0gJycKYWRhcHRlciA9ICcnCnNlbGVjdGVkRGV2aWNlQWRkciA9ICcnCnNlbGVj dGVkRGV2aWNlUGF0aCA9ICcnCgpjbGFzcyBEaWFsb2dFeGl0KEV4Y2VwdGlvbik6CglwYXNzCgoK Y2xhc3MgRGlhbG9nRGlzcGxheToKCXBhbGV0dGUgPSBbCgkJKCdib2R5JywnYmxhY2snLCdsaWdo dCBncmF5JywgJ3N0YW5kb3V0JyksCgkJKCdib3JkZXInLCdibGFjaycsJ2RhcmsgYmx1ZScpLAoJ CSgnc2hhZG93Jywnd2hpdGUnLCdibGFjaycpLAoJCSgnc2VsZWN0YWJsZScsJ2JsYWNrJywgJ2Rh cmsgY3lhbicpLAoJCSgnZm9jdXMnLCd3aGl0ZScsJ2RhcmsgYmx1ZScsJ2JvbGQnKSwKCQkoJ2Zv Y3VzdGV4dCcsJ2xpZ2h0IGdyYXknLCdkYXJrIGJsdWUnKSwKCQldCgoJZGVmIF9faW5pdF9fKHNl bGYsIHRleHQsIGhlaWdodCwgd2lkdGgsIGJvZHk9Tm9uZSk6CgkJd2lkdGggPSBpbnQod2lkdGgp CgkJaWYgd2lkdGggPD0gMDoKCQkJd2lkdGggPSAoJ3JlbGF0aXZlJywgODApCgkJaGVpZ2h0ID0g aW50KGhlaWdodCkKCQlpZiBoZWlnaHQgPD0gMDoKCQkJaGVpZ2h0ID0gKCdyZWxhdGl2ZScsIDgw KQoKCQlzZWxmLmJvZHkgPSBib2R5CgkJaWYgYm9keSBpcyBOb25lOgoJCQkjIGZpbGwgc3BhY2Ug d2l0aCBub3RoaW5nCgkJCWJvZHkgPSB1cndpZC5GaWxsZXIodXJ3aWQuRGl2aWRlcigpLCd0b3An KQoKCQlzZWxmLmZyYW1lID0gdXJ3aWQuRnJhbWUoIGJvZHksIGZvY3VzX3BhcnQ9J2Zvb3Rlcicp CgkJaWYgdGV4dCBpcyBub3QgTm9uZToKCQkJc2VsZi5mcmFtZS5oZWFkZXIgPSB1cndpZC5QaWxl KCBbdXJ3aWQuVGV4dCh0ZXh0KSwKCQkJCXVyd2lkLkRpdmlkZXIoKV0gKQoJCXcgPSBzZWxmLmZy YW1lCgoJCSMgcGFkIGFyZWEgYXJvdW5kIGxpc3Rib3gKCQl3ID0gdXJ3aWQuUGFkZGluZyh3LCAo J2ZpeGVkIGxlZnQnLDIpLCAoJ2ZpeGVkIHJpZ2h0JywyKSkKCQl3ID0gdXJ3aWQuRmlsbGVyKHcs ICgnZml4ZWQgdG9wJywxKSwgKCdmaXhlZCBib3R0b20nLDEpKQoJCXcgPSB1cndpZC5BdHRyV3Jh cCh3LCAnYm9keScpCgoJCSMgInNoYWRvdyIgZWZmZWN0CgkJdyA9IHVyd2lkLkNvbHVtbnMoIFt3 LCgnZml4ZWQnLCAyLCB1cndpZC5BdHRyV3JhcCgKCQkJdXJ3aWQuRmlsbGVyKHVyd2lkLlRleHQo KCdib3JkZXInLCcgICcpKSwgInRvcCIpCgkJCSwnc2hhZG93JykpXSkKCQl3ID0gdXJ3aWQuRnJh bWUoIHcsIGZvb3RlciA9CgkJCXVyd2lkLkF0dHJXcmFwKHVyd2lkLlRleHQoKCdib3JkZXInLCcg ICcpKSwnc2hhZG93JykpCgoJCSMgb3V0ZXJtb3N0IGJvcmRlciBhcmVhCgkJdyA9IHVyd2lkLlBh ZGRpbmcodywgJ2NlbnRlcicsIHdpZHRoICkKCQl3ID0gdXJ3aWQuRmlsbGVyKHcsICdtaWRkbGUn LCBoZWlnaHQgKQoJCXcgPSB1cndpZC5BdHRyV3JhcCggdywgJ2JvcmRlcicgKQoKCQlzZWxmLnZp ZXcgPSB3CgoJZGVmIHNldF9ib2R5KHNlbGYsIGJvZHkpOgoJCXNlbGYuZnJhbWUuc2V0X2JvZHko Ym9keSkKCglkZWYgYWRkX2J1dHRvbnMoc2VsZiwgYnV0dG9ucyk6CgkJbCA9IFtdCgkJZm9yIG5h bWUsIGV4aXRjb2RlIGluIGJ1dHRvbnM6CgkJCWIgPSB1cndpZC5CdXR0b24oIG5hbWUsIHNlbGYu YnV0dG9uX3ByZXNzICkKCQkJYi5leGl0Y29kZSA9IGV4aXRjb2RlCgkJCWIgPSB1cndpZC5BdHRy V3JhcCggYiwgJ3NlbGVjdGFibGUnLCdmb2N1cycgKQoJCQlsLmFwcGVuZCggYiApCgkJc2VsZi5i dXR0b25zID0gdXJ3aWQuR3JpZEZsb3cobCwgMTAsIDMsIDEsICdjZW50ZXInKQoJCXNlbGYuZnJh bWUuZm9vdGVyID0gdXJ3aWQuUGlsZSggWyB1cndpZC5EaXZpZGVyKCksCgkJCXNlbGYuYnV0dG9u cyBdLCBmb2N1c19pdGVtID0gMSkKCglkZWYgYnV0dG9uX3ByZXNzKHNlbGYsIGJ1dHRvbik6CgkJ cmFpc2UgRGlhbG9nRXhpdChidXR0b24uZXhpdGNvZGUpCgoJZGVmIG1haW4oc2VsZik6CgkJc2Vs Zi51aSA9IHVyd2lkLnJhd19kaXNwbGF5LlNjcmVlbigpCgkJc2VsZi51aS5yZWdpc3Rlcl9wYWxl dHRlKCBzZWxmLnBhbGV0dGUgKQoJCXJldHVybiBzZWxmLnVpLnJ1bl93cmFwcGVyKCBzZWxmLnJ1 biApCgoJZGVmIHJ1bihzZWxmKToKCQlzZWxmLnVpLnNldF9tb3VzZV90cmFja2luZygpCgkJc2l6 ZSA9IHNlbGYudWkuZ2V0X2NvbHNfcm93cygpCgkJdHJ5OgoJCQl3aGlsZSBUcnVlOgoJCQkJY2Fu dmFzID0gc2VsZi52aWV3LnJlbmRlciggc2l6ZSwgZm9jdXM9VHJ1ZSApCgkJCQlzZWxmLnVpLmRy YXdfc2NyZWVuKCBzaXplLCBjYW52YXMgKQoJCQkJa2V5cyA9IE5vbmUKCQkJCXdoaWxlIG5vdCBr ZXlzOgoJCQkJCWtleXMgPSBzZWxmLnVpLmdldF9pbnB1dCgpCgkJCQlmb3IgayBpbiBrZXlzOgoJ CQkJCWlmIHVyd2lkLmlzX21vdXNlX2V2ZW50KGspOgoJCQkJCQlldmVudCwgYnV0dG9uLCBjb2ws IHJvdyA9IGsKCQkJCQkJc2VsZi52aWV3Lm1vdXNlX2V2ZW50KCBzaXplLAoJCQkJCQkJZXZlbnQs IGJ1dHRvbiwgY29sLCByb3csCgkJCQkJCQlmb2N1cz1UcnVlKQoJCQkJCWlmIGsgPT0gJ3dpbmRv dyByZXNpemUnOgoJCQkJCQlzaXplID0gc2VsZi51aS5nZXRfY29sc19yb3dzKCkKCQkJCQlrID0g c2VsZi52aWV3LmtleXByZXNzKCBzaXplLCBrICkKCgkJCQkJaWYgazoKCQkJCQkJc2VsZi51bmhh bmRsZWRfa2V5KCBzaXplLCBrKQoJCWV4Y2VwdCBEaWFsb2dFeGl0LCBlOgoJCQlyZXR1cm4gc2Vs Zi5vbl9leGl0KCBlLmFyZ3NbMF0gKQoKCWRlZiBvbl9leGl0KHNlbGYsIGV4aXRjb2RlKToKCQly ZXR1cm4gZXhpdGNvZGUsICIiCgoJZGVmIHVuaGFuZGxlZF9rZXkoc2VsZiwgc2l6ZSwga2V5KToK CQlwYXNzCgpjbGFzcyBMaXN0RGlhbG9nRGlzcGxheShEaWFsb2dEaXNwbGF5KToKCWRlZiBfX2lu aXRfXyhzZWxmLCB0ZXh0LCBoZWlnaHQsIHdpZHRoLCBpdGVtcywgaGFzX2RlZmF1bHQpOgoJCWwg PSBbXQoJCXNlbGYuaXRlbXMgPSBbXQoJCWZvciB0YWcgaW4gaXRlbXM6CgkJCXcgPSBNZW51SXRl bSh0YWcpCgkJCXNlbGYuaXRlbXMuYXBwZW5kKHcpCgoJCQl3ID0gdXJ3aWQuQXR0cldyYXAodywg J3NlbGVjdGFibGUnLCdmb2N1cycpCgkJCWwuYXBwZW5kKHcpCgoJCWxiID0gdXJ3aWQuTGlzdEJv eChsKQoJCWxiID0gdXJ3aWQuQXR0cldyYXAoIGxiLCAic2VsZWN0YWJsZSIgKQoJCURpYWxvZ0Rp c3BsYXkuX19pbml0X18oc2VsZiwgdGV4dCwgaGVpZ2h0LCB3aWR0aCwgbGIgKQoKCQlzZWxmLmZy YW1lLnNldF9mb2N1cygnYm9keScpCgoJZGVmIHVuaGFuZGxlZF9rZXkoc2VsZiwgc2l6ZSwgayk6 CgkJaWYgayBpbiAoJ3VwJywncGFnZSB1cCcpOgoJCQlzZWxmLmZyYW1lLnNldF9mb2N1cygnYm9k eScpCgkJaWYgayBpbiAoJ2Rvd24nLCdwYWdlIGRvd24nKToKCQkJc2VsZi5mcmFtZS5zZXRfZm9j dXMoJ2Zvb3RlcicpCgkJaWYgayA9PSAnZW50ZXInOgoJCQkjIHBhc3MgZW50ZXIgdG8gdGhlICJv ayIgYnV0dG9uCgkJCXNlbGYuZnJhbWUuc2V0X2ZvY3VzKCdmb290ZXInKQoJCQlzZWxmLmJ1dHRv bnMuc2V0X2ZvY3VzKDApCgkJCXNlbGYudmlldy5rZXlwcmVzcyggc2l6ZSwgayApCgoJZGVmIG9u X2V4aXQoc2VsZiwgZXhpdGNvZGUpOgoJCSIiIlByaW50IHRoZSB0YWcgb2YgdGhlIGl0ZW0gc2Vs ZWN0ZWQuIiIiCgkJaWYgZXhpdGNvZGUgIT0gMDoKCQkJcmV0dXJuIGV4aXRjb2RlLCAiIgoJCXMg PSAiIgoJCWZvciBpIGluIHNlbGYuaXRlbXM6CgkJCWlmIGkuZ2V0X3N0YXRlKCk6CgkJCQlzID0g aS5nZXRfbGFiZWwoKQoJCQkJYnJlYWsKCQlyZXR1cm4gZXhpdGNvZGUsIHMKCglkZWYgYXBwZW5k KHNlbGYsIHRhZywgdmFsKToKCQlsID0gW10KCQlzZWxmLml0ZW1zLmFwcGVuZCh0YWcpCgkJZm9y IGl0ZW0gaW4gc2VsZi5pdGVtczoKCQkJdyA9IE1lbnVJdGVtKHRhZykKCQkJc2VsZi5pdGVtcy5h cHBlbmQodykKCQkJdyA9IHVyd2lkLkNvbHVtbnMoIFsoJ2ZpeGVkJywgMTIsIHcpLAoJCQkJdXJ3 aWQuVGV4dChpdGVtKV0sIDIgKQoJCQl3ID0gdXJ3aWQuQXR0cldyYXAodywgJ3NlbGVjdGFibGUn LCdmb2N1cycpCgkJCWwuYXBwZW5kKHcpCgoJCWxiID0gdXJ3aWQuTGlzdEJveChsKQoJCWxiID0g dXJ3aWQuQXR0cldyYXAoIGxiLCAic2VsZWN0YWJsZSIgKQoJCXNldF9ib2R5KGxiKQoKY2xhc3Mg TWVudUl0ZW0odXJ3aWQuVGV4dCk6CgkiIiJBIGN1c3RvbSB3aWRnZXQgZm9yIHRoZSAtLW1lbnUg b3B0aW9uIiIiCglkZWYgX19pbml0X18oc2VsZiwgbGFiZWwpOgoJCXVyd2lkLlRleHQuX19pbml0 X18oc2VsZiwgbGFiZWwpCgkJc2VsZi5zdGF0ZSA9IEZhbHNlCglkZWYgc2VsZWN0YWJsZShzZWxm KToKCQlyZXR1cm4gVHJ1ZQoJZGVmIGtleXByZXNzKHNlbGYsc2l6ZSxrZXkpOgoJCWlmIGtleSA9 PSAiZW50ZXIiOgoJCQlzZWxmLnN0YXRlID0gVHJ1ZQoJCQlyYWlzZSBEaWFsb2dFeGl0LCAwCgkJ cmV0dXJuIGtleQoJZGVmIG1vdXNlX2V2ZW50KHNlbGYsc2l6ZSxldmVudCxidXR0b24sY29sLHJv dyxmb2N1cyk6CgkJaWYgZXZlbnQ9PSdtb3VzZSByZWxlYXNlJzoKCQkJc2VsZi5zdGF0ZSA9IFRy dWUKCQkJcmFpc2UgRGlhbG9nRXhpdCwgMAoJCXJldHVybiBGYWxzZQoJZGVmIGdldF9zdGF0ZShz ZWxmKToKCQlyZXR1cm4gc2VsZi5zdGF0ZQoJZGVmIGdldF9sYWJlbChzZWxmKToKCQl0ZXh0LCBh dHRyID0gc2VsZi5nZXRfdGV4dCgpCgkJcmV0dXJuIHRleHQKCmNsYXNzIFJlamVjdGVkKGRidXMu REJ1c0V4Y2VwdGlvbik6CiAgICAgICAgX2RidXNfZXJyb3JfbmFtZSA9ICJvcmcuYmx1ZXouRXJy b3IuUmVqZWN0ZWQiCgpjbGFzcyBBZ2VudChkYnVzLnNlcnZpY2UuT2JqZWN0KToKCWV4aXRfb25f cmVsZWFzZSA9IFRydWUKCglkZWYgc2V0X2V4aXRfb25fcmVsZWFzZShzZWxmLCBleGl0X29uX3Jl bGVhc2UpOgoJCQlzZWxmLmV4aXRfb25fcmVsZWFzZSA9IGV4aXRfb25fcmVsZWFzZQoKCUBkYnVz LnNlcnZpY2UubWV0aG9kKCJvcmcuYmx1ZXouQWdlbnQiLAoJCQkJCQkJCQlpbl9zaWduYXR1cmU9 IiIsIG91dF9zaWduYXR1cmU9IiIpCglkZWYgUmVsZWFzZShzZWxmKToKCQkJcHJpbnQgIlJlbGVh c2UiCgkJCWlmIHNlbGYuZXhpdF9vbl9yZWxlYXNlOgoJCQkJCW1haW5sb29wLnF1aXQoKQoKCUBk YnVzLnNlcnZpY2UubWV0aG9kKCJvcmcuYmx1ZXouQWdlbnQiLAoJCQkJCQkJCQlpbl9zaWduYXR1 cmU9Im9zIiwgb3V0X3NpZ25hdHVyZT0iIikKCWRlZiBBdXRob3JpemUoc2VsZiwgZGV2aWNlLCB1 dWlkKToKCQkJcHJpbnQgIkF1dGhvcml6ZSAoJXMsICVzKSIgJSAoZGV2aWNlLCB1dWlkKQoKCUBk YnVzLnNlcnZpY2UubWV0aG9kKCJvcmcuYmx1ZXouQWdlbnQiLAoJCQkJCQkJCQlpbl9zaWduYXR1 cmU9Im8iLCBvdXRfc2lnbmF0dXJlPSJzIikKCWRlZiBSZXF1ZXN0UGluQ29kZShzZWxmLCBkZXZp Y2UpOgoJCQlwcmludCAiUmVxdWVzdFBpbkNvZGUgKCVzKSIgJSAoZGV2aWNlKQoJCQlyZXR1cm4g cmF3X2lucHV0KCJFbnRlciBQSU4gQ29kZTogIikKCglAZGJ1cy5zZXJ2aWNlLm1ldGhvZCgib3Jn LmJsdWV6LkFnZW50IiwKCQkJCQkJCQkJaW5fc2lnbmF0dXJlPSJvIiwgb3V0X3NpZ25hdHVyZT0i dSIpCglkZWYgUmVxdWVzdFBhc3NrZXkoc2VsZiwgZGV2aWNlKToKCQkJcHJpbnQgIlJlcXVlc3RQ YXNza2V5ICglcykiICUgKGRldmljZSkKCQkJcGFzc2tleSA9IHJhd19pbnB1dCgiRW50ZXIgcGFz c2tleTogIikKCQkJcmV0dXJuIGRidXMuVUludDMyKHBhc3NrZXkpCgoJQGRidXMuc2VydmljZS5t ZXRob2QoIm9yZy5ibHVlei5BZ2VudCIsCgkJCQkJCQkJCWluX3NpZ25hdHVyZT0ib3UiLCBvdXRf c2lnbmF0dXJlPSIiKQoJZGVmIERpc3BsYXlQYXNza2V5KHNlbGYsIGRldmljZSwgcGFzc2tleSk6 CgkJCXByaW50ICJEaXNwbGF5UGFzc2tleSAoJXMsICVkKSIgJSAoZGV2aWNlLCBwYXNza2V5KQoK CUBkYnVzLnNlcnZpY2UubWV0aG9kKCJvcmcuYmx1ZXouQWdlbnQiLAoJCQkJCQkJCQlpbl9zaWdu YXR1cmU9Im91Iiwgb3V0X3NpZ25hdHVyZT0iIikKCWRlZiBSZXF1ZXN0Q29uZmlybWF0aW9uKHNl bGYsIGRldmljZSwgcGFzc2tleSk6CgkJCXByaW50ICJSZXF1ZXN0Q29uZmlybWF0aW9uICglcywg JWQpIiAlIChkZXZpY2UsIHBhc3NrZXkpCgkJCWNvbmZpcm0gPSByYXdfaW5wdXQoIkNvbmZpcm0g cGFzc2tleSAoeWVzL25vKTogIikKCQkJaWYgKGNvbmZpcm0gPT0gInllcyIpOgoJCQkJCXJldHVy bgoJCQlyYWlzZSBSZWplY3RlZCgiUGFzc2tleSBkb2Vzbid0IG1hdGNoIikKCglAZGJ1cy5zZXJ2 aWNlLm1ldGhvZCgib3JnLmJsdWV6LkFnZW50IiwKCQkJCQkJCQkJaW5fc2lnbmF0dXJlPSJzIiwg b3V0X3NpZ25hdHVyZT0iIikKCWRlZiBDb25maXJtTW9kZUNoYW5nZShzZWxmLCBtb2RlKToKCQkJ cHJpbnQgIkNvbmZpcm1Nb2RlQ2hhbmdlICglcykiICUgKG1vZGUpCgoJQGRidXMuc2VydmljZS5t ZXRob2QoIm9yZy5ibHVlei5BZ2VudCIsCgkJCQkJCQkJCWluX3NpZ25hdHVyZT0iIiwgb3V0X3Np Z25hdHVyZT0iIikKCWRlZiBDYW5jZWwoc2VsZik6CgkJCXByaW50ICJDYW5jZWwiCgpkZWYgY3Jl YXRlX2RldmljZV9yZXBseShkZXZpY2UpOgoJZ2xvYmFsIHNlbGVjdGVkRGV2aWNlUGF0aAoJc2Vs ZWN0ZWREZXZpY2VQYXRoID0gZGV2aWNlCgkjfiBwcmludCAiTmV3IGRldmljZSAoJXMpIiAlIChk ZXZpY2UpCgltYWlubG9vcC5xdWl0KCkKCmRlZiBjcmVhdGVfZGV2aWNlX2Vycm9yKGVycm9yKToK CWdsb2JhbCBzZWxlY3RlZERldmljZUFkZHIsIHNlbGVjdGVkRGV2aWNlUGF0aCwgYWRhcHRlcgoJ cHJpbnQgZXJyb3IKCW1haW5sb29wLnF1aXQoKQoJc2VsZWN0ZWREZXZpY2VQYXRoID0gYWRhcHRl ci5GaW5kRGV2aWNlKHNlbGVjdGVkRGV2aWNlQWRkcikKCmRlZiBwYWlyX2lmX25lY2Vzc2FyeShi dGFkZHIpOgoJZ2xvYmFsIGJ1cwoJYWdlbnRwYXRoID0gIi90ZXN0L2FnZW50IgoJI34gcHJpbnQg ImNvbnN0cnVjdGluZyBhZ2VudCB3aXRoIGNvbm4iLCBidXMKCWFnZW50ID0gQWdlbnQoYnVzLCBh Z2VudHBhdGgpCglhZ2VudC5zZXRfZXhpdF9vbl9yZWxlYXNlKEZhbHNlKQoJYWRhcHRlci5DcmVh dGVQYWlyZWREZXZpY2UoYnRhZGRyLCBhZ2VudHBhdGgsICJEaXNwbGF5WWVzTm8iLAoJCQkJCQkJ cmVwbHlfaGFuZGxlcj1jcmVhdGVfZGV2aWNlX3JlcGx5LAoJCQkJCQkJZXJyb3JfaGFuZGxlcj1j cmVhdGVfZGV2aWNlX2Vycm9yKQoJbWFpbmxvb3AucnVuKCkKCmRlZiBzaG93X3VzYWdlKCk6Cgki IiIKCURpc3BsYXkgYSBoZWxwZnVsIHVzYWdlIG1lc3NhZ2UuCgkiIiIKCXN5cy5zdGRvdXQud3Jp dGUoCgkJX19kb2NfXykKCmRlZiBkZXZpY2VfZm91bmQoYWRkcmVzcywgcHJvcGVydGllcyk6CgkJ aWNvbiA9IHN0cihwcm9wZXJ0aWVzWydJY29uJ10pCgkJaWYgKGljb24uc3RhcnRzd2l0aCgnaW5w dXQnKSk6CgkJCW5hbWUgPSBzdHIocHJvcGVydGllc1snTmFtZSddKQoJCQkjfiBwcmludCBhZGRy ZXNzLCAnOicsIG5hbWUKCQkJcHJvcGVydGllc1snQWRkcmVzcyddID0gYWRkcmVzcwoJCQlkZXZp Y2VNYXBbbmFtZV0gPSBwcm9wZXJ0aWVzCgkJCSN+IGRldmljZUxpc3REaWFsb2cuYXBwZW5kKCwg c3RyKHByb3BlcnRpZXNbIk5hbWUiXSkpCgkJCSN+IHByaW50ICJbICIgKyBhZGRyZXNzICsgIiBd IgoKCQkJI34gZm9yIGtleSBpbiBwcm9wZXJ0aWVzLmtleXMoKToKCQkJCSN+IHZhbHVlID0gcHJv cGVydGllc1trZXldCgkJCQkjfiBpZiAoa2V5ID09ICJDbGFzcyIpOgoJCQkJCSN+IHByaW50ICIg ICAgJXMgPSAweCUwNngiICUgKGtleSwgdmFsdWUpCgkJCQkjfiBlbHNlOgoJCQkJCSN+IHByaW50 ICIgICAgJXMgPSAlcyIgJSAoa2V5LCB2YWx1ZSkKCmRlZiBwcm9wZXJ0eV9jaGFuZ2VkKG5hbWUs IHZhbHVlKToKICAgICAgICBpZiAobmFtZSA9PSAiRGlzY292ZXJpbmciIGFuZCBub3QgdmFsdWUp OgogICAgICAgICAgICAgICAgbWFpbmxvb3AucXVpdCgpCgpkZWYgbWFpbigpOgoJZ2xvYmFsIGJ1 cywgbWFuYWdlciwgYWRhcHRlciwgZGV2aWNlTWFwLCBzZWxlY3RlZERldmljZUFkZHIsIHNlbGVj dGVkRGV2aWNlUGF0aAoJZGJ1cy5tYWlubG9vcC5nbGliLkRCdXNHTWFpbkxvb3Aoc2V0X2FzX2Rl ZmF1bHQ9VHJ1ZSkKCWJ1cyA9IGRidXMuU3lzdGVtQnVzKCkKCW1hbmFnZXIgPSBkYnVzLkludGVy ZmFjZShidXMuZ2V0X29iamVjdCgib3JnLmJsdWV6IiwgIi8iKSwKCQkJCQkJCQkJCQkJCSJvcmcu Ymx1ZXouTWFuYWdlciIpCglwYXRoID0gbWFuYWdlci5EZWZhdWx0QWRhcHRlcigpCgkjfiBwcmlu dCBwYXRoCglhZGFwdGVyID0gZGJ1cy5JbnRlcmZhY2UoYnVzLmdldF9vYmplY3QoIm9yZy5ibHVl eiIsIHBhdGgpLAoJCQkJCQkJCQkJCQkJIm9yZy5ibHVlei5BZGFwdGVyIikKCglidXMuYWRkX3Np Z25hbF9yZWNlaXZlcihkZXZpY2VfZm91bmQsCgkJCQkJZGJ1c19pbnRlcmZhY2UgPSAib3JnLmJs dWV6LkFkYXB0ZXIiLAoJCQkJCQkJCQlzaWduYWxfbmFtZSA9ICJEZXZpY2VGb3VuZCIpCgoJYnVz LmFkZF9zaWduYWxfcmVjZWl2ZXIocHJvcGVydHlfY2hhbmdlZCwKCQkJCQlkYnVzX2ludGVyZmFj ZSA9ICJvcmcuYmx1ZXouQWRhcHRlciIsCgkJCQkJCQkJCXNpZ25hbF9uYW1lID0gIlByb3BlcnR5 Q2hhbmdlZCIpCgoJcHJpbnQgImRpc2NvdmVyaW5nIGlucHV0IGRldmljZXMgKH4gMTAgc2VjKS4u LiIKCWFkYXB0ZXIuU3RhcnREaXNjb3ZlcnkoKQoJbWFpbmxvb3AucnVuKCkKCglkZXZpY2VMaXN0 RGlhbG9nID0gTGlzdERpYWxvZ0Rpc3BsYXkoIlNlbGVjdCBpbnB1dCBkZXZpY2UgdG8gY29ubmVj dCAob3IgY29udHJvbC1DKToiLAoJCTE1LCA1NCwgZGV2aWNlTWFwLmtleXMoKSwgRmFsc2UpCgll eGl0Y29kZSwgc2VsZWN0aW9uID0gZGV2aWNlTGlzdERpYWxvZy5tYWluKCkKCXNlbGVjdGVkRGV2 aWNlQWRkciA9IGRldmljZU1hcFtzZWxlY3Rpb25dWydBZGRyZXNzJ10KCSN+IHByaW50IHNlbGVj dGlvbiwgc2VsZWN0ZWREZXZpY2VBZGRyCglwYWlyX2lmX25lY2Vzc2FyeShzZWxlY3RlZERldmlj ZUFkZHIpCgoJaWYgc2VsZWN0ZWREZXZpY2VQYXRoOgoJCSN+IHByaW50ICJuZXcgZGV2aWNlIiwg c2VsZWN0ZWREZXZpY2VQYXRoCgkJIyBTZXQgaXQgdG8gdHJ1c3RlZAoJCWRldmljZSA9IGRidXMu SW50ZXJmYWNlKGJ1cy5nZXRfb2JqZWN0KCJvcmcuYmx1ZXoiLCBzZWxlY3RlZERldmljZVBhdGgp LCAib3JnLmJsdWV6LkRldmljZSIpCgkJZGV2aWNlLlNldFByb3BlcnR5KCJUcnVzdGVkIiwgZGJ1 cy5Cb29sZWFuKDEpKQoJCSMgQ29ubmVjdCB0byBpdAoJCWJ1cy5jYWxsX2Jsb2NraW5nKCJvcmcu Ymx1ZXoiLCBzZWxlY3RlZERldmljZVBhdGgsICJvcmcuYmx1ZXouSW5wdXQiLCAiQ29ubmVjdCIs ICIiLCAoKSkKCmlmIF9fbmFtZV9fPT0iX19tYWluX18iOgoJbWFpbigpCg== --00c09f899a417ec3ef047f443957 Content-Type: image/png; name="screenshot1.png" Content-Disposition: attachment; filename="screenshot1.png" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g5iiyig92 iVBORw0KGgoAAAANSUhEUgAAAk0AAAG0CAMAAAAYUeMmAAAAAXNSR0IArs4c6QAAAwBQTFRFAAEA AAYJAwYCBwkFBAoNDggGDAgOAA4PCgwIEg0LDA8LChASAhMTDxEOARUhExEUEhMRFhIRDxQWAhkm EhYYFBYTBxkiBRsaGBcaFRgaFxgWGhkSDBwhFhocGRoYFxsdHBodGBweGhwZGRweGR0fDSApHhwf HB0bAiM1Gh4gCiMhGx8hCCcKHx4hHCAiHyAeBicoDhi1DykNICQmIiQiEyczFSsKBC4wKSUkGjAQ LiopGjIXKy0qAjg5JSK3ITM8ITgdMTMwC0BAODQzKy27Nzg2Kj8jBkhHOj9CM0UqP0A+Ek9PSkM9 BlVTOTu/RUdFO00xSUlBSkxKE11bQVQ3UFBISlNESVU8UVJQAGpsVVZUWVZPTVtEUFHHVF5OBnR1 XF5bVGJLYF9XZV5YWmhRZ2ZfbWVfD35+ZGtWYW9YY2PMcmpkbm1maXFbBoqJeXJrdnVtcHhidHZz fXVvb3ppgHlzfX10HpaVeIBqhHx2fH57eHnUh395GaCdf4dxhoV9jIR+hodyhIh5EKaphYeEAKyu ALK0i42KiIfWjY96lIyGj46GjZCBlZaBlJaTl5aNlJiInpaQlJXco5uUnp2VnKCQp52Rn6CLnqCd pKCSqKCZo6eXraWeqKefq6eZsKaZpqilpaXitqeirayjq62qtqufsK2ftKyluqumvK2otbGjuLCp trCvu7Cjvq+qsbOvrK/mvbCxvbOmu7OsuLWmwbKsurW0v7Wow7SvwbapwrW1vLiqv7ewvbi2xrax w7irv7q5xLqtyLm0xrm6wLyuw7u0xruux7ywwr28urvpyL2xwr+wyb6yxMCyyr+zxcGzyMC5xsC/ y8C0xsK0x8O1zMK1zsHCzsO2yMW2z8S3wsPszcW+0MW4yse40ca5zMi5zMfF0cnC1Mm8zsu81cq9 18y/0s/A087N1s7H2s/C29DD1tLD2NLR29LL1dTL3tPG0dPx29fI3tbP3NfV2dnP3NvS49rT597X 5N/d4uHY6ePi4+P27efm8PD7+vj8/v/8HzaEzQAAAAlwSFlzAAAPiAAAD4gBFsilhgAAAAd0SU1F B9oCChMBJ8h9v+4AAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAgAElEQVR4 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 bbzkHgAAAABJRU5ErkJggg== --00c09f899a417ec3ef047f443957--