From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:55630) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TOmxM-0003CO-8j for qemu-devel@nongnu.org; Thu, 18 Oct 2012 06:04:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TOmxG-0004Tw-N0 for qemu-devel@nongnu.org; Thu, 18 Oct 2012 06:04:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:16831) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TOmxG-0004To-BL for qemu-devel@nongnu.org; Thu, 18 Oct 2012 06:03:54 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q9IA3rPk013648 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 18 Oct 2012 06:03:53 -0400 Message-ID: <507FD407.5020506@redhat.com> Date: Thu, 18 Oct 2012 12:03:51 +0200 From: Gerd Hoffmann MIME-Version: 1.0 References: <1350468595-5238-1-git-send-email-kraxel@redhat.com> <1350468595-5238-4-git-send-email-kraxel@redhat.com> In-Reply-To: <1350468595-5238-4-git-send-email-kraxel@redhat.com> Content-Type: multipart/mixed; boundary="------------050604080909070503040506" Subject: Re: [Qemu-devel] [PATCH 3/3] chardev: add hotplug support. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------050604080909070503040506 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 10/17/12 12:09, Gerd Hoffmann wrote: > This patch adds chardev_add and chardev_remove monitor commands. > > They work similar to the netdev_{add,del} commands. The hmp version of > chardev_add accepts like the -chardev command line option does. The qmp > version expects the arguments being passed as named parameters. Trying another approach, see attached patch. This adds backend-specific qemu commands to add chardevs, with just the parameters needed for the specific backend. Starting with file and tty, both accepting a path. 'file' is nice for testing, 'tty' very useful when hotplugging serial devices on the host. Others can be added as needed. We probably don't need all of them. For example hotplugging the 'stdio' chardev doesn't make much sense. Advantage #1: Cleaner API. Advantage #2: No legacy syntax headache when qomifying chardevs. Comments? cheers, Gerd --------------050604080909070503040506 Content-Type: text/plain; name="0001-chardev-add-hotplug-support.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-chardev-add-hotplug-support.patch" RnJvbSA3ZjgwYWY1NTUzMGM5YTQ0OGU0YWVkNWE0MWM3NmE4ZTk1MTRhMjdjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNv bT4KRGF0ZTogVGh1LCAxMSBPY3QgMjAxMiAxNDo1MzowMCArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIGNoYXJkZXY6IGFkZCBob3RwbHVnIHN1cHBvcnQuCgpUaGlzIHBhdGNoIGFkZHMgY2hh cmRldl9hZGRfZmlsZSwgY2hhcmRldl9hZGRfdHR5IGFuZCBjaGFyZGV2X3JlbW92ZQptb25p dG9yIGNvbW1hbmRzLgoKY2hhcmRldl9hZGRfZmlsZSBhbmQgY2hhcmRldl9hZGRfdHR5IGV4 cGVjdCBhbiBpZCBhbmQgYSBwYXRoLCB0aGV5CmNyZWF0ZSBhIGZpbGUvdHR5IGNoYXJkZXYu CgpjaGFyZGV2X2RlbCBqdXN0IHRha2VzIGFuIGlkIGFyZ3VtZW50IGFuZCB6YXBzIHRoZSBj aGFyZGV2IHNwZWNpZmllZC4KClNpZ25lZC1vZmYtYnk6IEdlcmQgSG9mZm1hbm4gPGtyYXhl bEByZWRoYXQuY29tPgotLS0KIGhtcC1jb21tYW5kcy5oeCAgfCAgIDQ0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGhtcC5jICAgICAgICAgICAgfCAgIDI5ICsrKysrKysr KysrKysrKysrKysrCiBobXAuaCAgICAgICAgICAgIHwgICAgMyArKwogcWFwaS1zY2hlbWEu anNvbiB8ICAgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBxZW11LWNoYXIu YyAgICAgIHwgICA0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogcWVtdS1jaGFy LmggICAgICB8ICAgIDIgKwogcW1wLWNvbW1hbmRzLmh4ICB8ICAgNzYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNo YW5nZWQsIDIzOCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2htcC1jb21tYW5kcy5oeCBiL2htcC1jb21tYW5kcy5oeAppbmRleCBlMGI1MzdkLi5lY2Zj NDk3IDEwMDY0NAotLS0gYS9obXAtY29tbWFuZHMuaHgKKysrIGIvaG1wLWNvbW1hbmRzLmh4 CkBAIC0xNDA0LDYgKzE0MDQsNTAgQEAgcGFzc2VkIHNpbmNlIDE5NzAsIGkuZS4gdW5peCBl cG9jaC4KIEVURVhJCiAKICAgICB7CisgICAgICAgIC5uYW1lICAgICAgID0gImNoYXJkZXZf YWRkX2ZpbGUiLAorICAgICAgICAuYXJnc190eXBlICA9ICJpZDpzLHBhdGg6cyIsCisgICAg ICAgIC5wYXJhbXMgICAgID0gImlkIHBhdGggIiwKKyAgICAgICAgLmhlbHAgICAgICAgPSAi YWRkIGZpbGUgY2hhcmRldiIsCisgICAgICAgIC5taGFuZGxlci5jbWQgPSBobXBfY2hhcmRl dl9hZGRfZmlsZSwKKyAgICB9LAorCitTVEVYSQorQGl0ZW0gY2hhcmRldl9hZGRfZmlsZSBp ZCBwYXRoCitAZmluZGV4IGNoYXJkZXZfYWRkX2ZpbGUKKworRVRFWEkKKworICAgIHsKKyAg ICAgICAgLm5hbWUgICAgICAgPSAiY2hhcmRldl9hZGRfdHR5IiwKKyAgICAgICAgLmFyZ3Nf dHlwZSAgPSAiaWQ6cyxwYXRoOnMiLAorICAgICAgICAucGFyYW1zICAgICA9ICJpZCBwYXRo ICIsCisgICAgICAgIC5oZWxwICAgICAgID0gImFkZCB0dHkgY2hhcmRldiIsCisgICAgICAg IC5taGFuZGxlci5jbWQgPSBobXBfY2hhcmRldl9hZGRfdHR5LAorICAgIH0sCisKK1NURVhJ CitAaXRlbSBjaGFyZGV2X2FkZF90dHkgaWQgcGF0aAorQGZpbmRleCBjaGFyZGV2X2FkZF90 dHkKKworRVRFWEkKKworICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgPSAiY2hhcmRldl9y ZW1vdmUiLAorICAgICAgICAuYXJnc190eXBlICA9ICJpZDpzIiwKKyAgICAgICAgLnBhcmFt cyAgICAgPSAiaWQiLAorICAgICAgICAuaGVscCAgICAgICA9ICJyZW1vdmUgY2hhcmRldiIs CisgICAgICAgIC5taGFuZGxlci5jbWQgPSBobXBfY2hhcmRldl9yZW1vdmUsCisgICAgfSwK KworU1RFWEkKK0BpdGVtIGNoYXJkZXZfcmVtb3ZlIGlkCitAZmluZGV4IGNoYXJkZXZfcmVt b3ZlCisKK1JlbW92ZXMgdGhlIGNoYXJkZXYgQHZhcntpZH0uCisKK0VURVhJCisKKyAgICB7 CiAgICAgICAgIC5uYW1lICAgICAgID0gImluZm8iLAogICAgICAgICAuYXJnc190eXBlICA9 ICJpdGVtOnM/IiwKICAgICAgICAgLnBhcmFtcyAgICAgPSAiW3N1YmNvbW1hbmRdIiwKZGlm ZiAtLWdpdCBhL2htcC5jIGIvaG1wLmMKaW5kZXggNzBiZGVjMi4uMzQ2ZGQyOSAxMDA2NDQK LS0tIGEvaG1wLmMKKysrIGIvaG1wLmMKQEAgLTEyMDksMyArMTIwOSwzMiBAQCB2b2lkIGht cF9zY3JlZW5fZHVtcChNb25pdG9yICptb24sIGNvbnN0IFFEaWN0ICpxZGljdCkKICAgICBx bXBfc2NyZWVuZHVtcChmaWxlbmFtZSwgJmVycik7CiAgICAgaG1wX2hhbmRsZV9lcnJvciht b24sICZlcnIpOwogfQorCitzdGF0aWMgdm9pZCBobXBfY2hhcmRldl9hZGRfcGF0aChNb25p dG9yICptb24sIGNvbnN0IFFEaWN0ICpxZGljdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKmJhY2tlbmQpCit7CisgICAgY29uc3QgY2hhciAqaWQg ICA9IHFkaWN0X2dldF9zdHIocWRpY3QsICJhcmdzIik7CisgICAgY29uc3QgY2hhciAqcGF0 aCA9IHFkaWN0X2dldF9zdHIocWRpY3QsICJwYXRoIik7CisgICAgRXJyb3IgKmxvY2FsX2Vy ciA9IE5VTEw7CisKKyAgICBxbXBfY2hhcmRldl9hZGRfcGF0aChpZCwgcGF0aCwgYmFja2Vu ZCwgJmxvY2FsX2Vycik7CisgICAgaG1wX2hhbmRsZV9lcnJvcihtb24sICZsb2NhbF9lcnIp OworfQorCit2b2lkIGhtcF9jaGFyZGV2X2FkZF9maWxlKE1vbml0b3IgKm1vbiwgY29uc3Qg UURpY3QgKnFkaWN0KQoreworICAgIGhtcF9jaGFyZGV2X2FkZF9wYXRoKG1vbiwgcWRpY3Qs ICJmaWxlIik7Cit9CisKK3ZvaWQgaG1wX2NoYXJkZXZfYWRkX3R0eShNb25pdG9yICptb24s IGNvbnN0IFFEaWN0ICpxZGljdCkKK3sKKyAgICBobXBfY2hhcmRldl9hZGRfcGF0aChtb24s IHFkaWN0LCAidHR5Iik7Cit9CisKK3ZvaWQgaG1wX2NoYXJkZXZfcmVtb3ZlKE1vbml0b3Ig Km1vbiwgY29uc3QgUURpY3QgKnFkaWN0KQoreworICAgIEVycm9yICpsb2NhbF9lcnIgPSBO VUxMOworCisgICAgcW1wX2NoYXJkZXZfcmVtb3ZlKHFkaWN0X2dldF9zdHIocWRpY3QsICJp ZCIpLCAmbG9jYWxfZXJyKTsKKyAgICBobXBfaGFuZGxlX2Vycm9yKG1vbiwgJmxvY2FsX2Vy cik7Cit9CmRpZmYgLS1naXQgYS9obXAuaCBiL2htcC5oCmluZGV4IDcxZWEzODQuLjEwNzk0 MWQgMTAwNjQ0Ci0tLSBhL2htcC5oCisrKyBiL2htcC5oCkBAIC03NSw1ICs3NSw4IEBAIHZv aWQgaG1wX2dldGZkKE1vbml0b3IgKm1vbiwgY29uc3QgUURpY3QgKnFkaWN0KTsKIHZvaWQg aG1wX2Nsb3NlZmQoTW9uaXRvciAqbW9uLCBjb25zdCBRRGljdCAqcWRpY3QpOwogdm9pZCBo bXBfc2VuZF9rZXkoTW9uaXRvciAqbW9uLCBjb25zdCBRRGljdCAqcWRpY3QpOwogdm9pZCBo bXBfc2NyZWVuX2R1bXAoTW9uaXRvciAqbW9uLCBjb25zdCBRRGljdCAqcWRpY3QpOwordm9p ZCBobXBfY2hhcmRldl9hZGRfZmlsZShNb25pdG9yICptb24sIGNvbnN0IFFEaWN0ICpxZGlj dCk7Cit2b2lkIGhtcF9jaGFyZGV2X2FkZF90dHkoTW9uaXRvciAqbW9uLCBjb25zdCBRRGlj dCAqcWRpY3QpOwordm9pZCBobXBfY2hhcmRldl9yZW1vdmUoTW9uaXRvciAqbW9uLCBjb25z dCBRRGljdCAqcWRpY3QpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3FhcGktc2NoZW1hLmpz b24gYi9xYXBpLXNjaGVtYS5qc29uCmluZGV4IGY5ZGJkYWUuLjc2ZTc2NWIgMTAwNjQ0Ci0t LSBhL3FhcGktc2NoZW1hLmpzb24KKysrIGIvcWFwaS1zY2hlbWEuanNvbgpAQCAtMjc5Niwz ICsyNzk2LDQ2IEBACiAjIFNpbmNlOiAwLjE0LjAKICMjCiB7ICdjb21tYW5kJzogJ3NjcmVl bmR1bXAnLCAnZGF0YSc6IHsnZmlsZW5hbWUnOiAnc3RyJ30gfQorCisjIworIyBAY2hhcmRl di1hZGQtZmlsZToKKyMKKyMgQWRkIGEgZmlsZSBjaGFyZGV2CisjCisjIEBpZDogdGhlIGNo YXJkZXYncyBJRCwgbXVzdCBiZSB1bmlxdWUKKyMgQHBhdGg6IGZpbGUgcGF0aAorIworIyBS ZXR1cm5zOiBOb3RoaW5nIG9uIHN1Y2Nlc3MKKyMKKyMgU2luY2U6IDEuMy4wCisjIworeyAn Y29tbWFuZCc6ICdjaGFyZGV2LWFkZC1maWxlJywgJ2RhdGEnOiB7J2lkJyAgIDogJ3N0cics CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCcgOiAn c3RyJyB9IH0KKworIyMKKyMgQGNoYXJkZXYtYWRkLXR0eToKKyMKKyMgQWRkIGEgdGVybWlu YWwgY2hhcmRldgorIworIyBAaWQ6IHRoZSBjaGFyZGV2J3MgSUQsIG11c3QgYmUgdW5pcXVl CisjIEBwYXRoOiBkZXZpY2UgcGF0aAorIworIyBSZXR1cm5zOiBOb3RoaW5nIG9uIHN1Y2Nl c3MKKyMKKyMgU2luY2U6IDEuMy4wCisjIworeyAnY29tbWFuZCc6ICdjaGFyZGV2LWFkZC10 dHknLCAnZGF0YSc6IHsnaWQnICAgOiAnc3RyJywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ3BhdGgnIDogJ3N0cicgfSB9CisKKyMjCisjIEBjaGFyZGV2 LXJlbW92ZToKKyMKKyMgUmVtb3ZlIGEgY2hhcmRldgorIworIyBAaWQ6IHRoZSBjaGFyZGV2 J3MgSUQsIG11c3QgZXhpc3QgYW5kIG5vdCBiZSBpbiB1c2UKKyMKKyMgUmV0dXJuczogTm90 aGluZyBvbiBzdWNjZXNzCisjCisjIFNpbmNlOiAxLjMuMAorIyMKK3sgJ2NvbW1hbmQnOiAn Y2hhcmRldi1yZW1vdmUnLCAnZGF0YSc6IHsnaWQnOiAnc3RyJ30gfQpkaWZmIC0tZ2l0IGEv cWVtdS1jaGFyLmMgYi9xZW11LWNoYXIuYwppbmRleCBiZTRlYzYxLi43NmMzMzk2IDEwMDY0 NAotLS0gYS9xZW11LWNoYXIuYworKysgYi9xZW11LWNoYXIuYwpAQCAtMjkxMSwzICsyOTEx LDQ0IEBAIENoYXJEcml2ZXJTdGF0ZSAqcWVtdV9jaGFyX2dldF9uZXh0X3NlcmlhbCh2b2lk KQogICAgIHJldHVybiBzZXJpYWxfaGRzW25leHRfc2VyaWFsKytdOwogfQogCit2b2lkIHFt cF9jaGFyZGV2X2FkZF9wYXRoKGNvbnN0IGNoYXIgKmlkLCBjb25zdCBjaGFyICpwYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpiYWNrZW5kLCBFcnJvciAq KmVycnApCit7CisgICAgUWVtdU9wdHMgKm9wdHM7CisKKyAgICBvcHRzID0gcWVtdV9vcHRz X2NyZWF0ZShxZW11X2ZpbmRfb3B0cygiY2hhcmRldiIpLCBpZCwgMSwgZXJycCk7CisgICAg aWYgKGVycm9yX2lzX3NldChlcnJwKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisg ICAgcWVtdV9vcHRfc2V0KG9wdHMsICJwYXRoIiwgcGF0aCk7CisgICAgcWVtdV9vcHRfc2V0 KG9wdHMsICJiYWNrZW5kIiwgYmFja2VuZCk7CisgICAgcWVtdV9jaHJfbmV3X2Zyb21fb3B0 cyhvcHRzLCBOVUxMLCBlcnJwKTsKK30KKwordm9pZCBxbXBfY2hhcmRldl9hZGRfZmlsZShj b25zdCBjaGFyICppZCwgY29uc3QgY2hhciAqcGF0aCwgRXJyb3IgKiplcnJwKQoreworICAg IHFtcF9jaGFyZGV2X2FkZF9wYXRoKGlkLCBwYXRoLCAiZmlsZSIsIGVycnApOworfQorCit2 b2lkIHFtcF9jaGFyZGV2X2FkZF90dHkoY29uc3QgY2hhciAqaWQsIGNvbnN0IGNoYXIgKnBh dGgsIEVycm9yICoqZXJycCkKK3sKKyAgICBxbXBfY2hhcmRldl9hZGRfcGF0aChpZCwgcGF0 aCwgInR0eSIsIGVycnApOworfQorCit2b2lkIHFtcF9jaGFyZGV2X3JlbW92ZShjb25zdCBj aGFyICppZCwgRXJyb3IgKiplcnJwKQoreworICAgIENoYXJEcml2ZXJTdGF0ZSAqY2hyOwor CisgICAgY2hyID0gcWVtdV9jaHJfZmluZChpZCk7CisgICAgaWYgKE5VTEwgPT0gY2hyKSB7 CisgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkNoYXJkZXYgJyVzJyBub3QgZm91bmRcbiIs IGlkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoY2hyLT5jaHJfY2FuX3Jl YWQgfHwgY2hyLT5jaHJfcmVhZCB8fAorICAgICAgICBjaHItPmNocl9ldmVudCB8fCBjaHIt PmhhbmRsZXJfb3BhcXVlKSB7CisgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkNoYXJkZXYg JyVzJyBpcyBidXN5XG4iLCBpZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcWVt dV9jaHJfZGVsZXRlKGNocik7Cit9CmRpZmYgLS1naXQgYS9xZW11LWNoYXIuaCBiL3FlbXUt Y2hhci5oCmluZGV4IDk5YmMxMzIuLmZmZTRjNzkgMTAwNjQ0Ci0tLSBhL3FlbXUtY2hhci5o CisrKyBiL3FlbXUtY2hhci5oCkBAIC0yMzgsNiArMjM4LDggQEAgdm9pZCBxZW11X2Nocl9p bmZvKE1vbml0b3IgKm1vbiwgUU9iamVjdCAqKnJldF9kYXRhKTsKIENoYXJEcml2ZXJTdGF0 ZSAqcWVtdV9jaHJfZmluZChjb25zdCBjaGFyICpuYW1lKTsKIAogUWVtdU9wdHMgKnFlbXVf Y2hyX3BhcnNlX2NvbXBhdChjb25zdCBjaGFyICpsYWJlbCwgY29uc3QgY2hhciAqZmlsZW5h bWUpOwordm9pZCBxbXBfY2hhcmRldl9hZGRfcGF0aChjb25zdCBjaGFyICppZCwgY29uc3Qg Y2hhciAqcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYmFj a2VuZCwgRXJyb3IgKiplcnJwKTsKIAogLyogYWRkIGFuIGV2ZW50ZmQgdG8gdGhlIHFlbXUg ZGV2aWNlcyB0aGF0IGFyZSBwb2xsZWQgKi8KIENoYXJEcml2ZXJTdGF0ZSAqcWVtdV9jaHJf b3Blbl9ldmVudGZkKGludCBldmVudGZkKTsKZGlmZiAtLWdpdCBhL3FtcC1jb21tYW5kcy5o eCBiL3FtcC1jb21tYW5kcy5oeAppbmRleCAyZjg0NzdlLi43M2MwMmVkIDEwMDY0NAotLS0g YS9xbXAtY29tbWFuZHMuaHgKKysrIGIvcW1wLWNvbW1hbmRzLmh4CkBAIC0yNTc2LDMgKzI1 NzYsNzkgQEAgRVFNUAogICAgICAgICAuYXJnc190eXBlICA9ICIiLAogICAgICAgICAubWhh bmRsZXIuY21kX25ldyA9IHFtcF9tYXJzaGFsX2lucHV0X3F1ZXJ5X3RhcmdldCwKICAgICB9 LAorCisgICAgeworICAgICAgICAubmFtZSAgICAgICA9ICJjaGFyZGV2LWFkZC1maWxlIiwK KyAgICAgICAgLmFyZ3NfdHlwZSAgPSAiIiwKKyAgICAgICAgLm1oYW5kbGVyLmNtZF9uZXcg PSBxbXBfbWFyc2hhbF9pbnB1dF9jaGFyZGV2X2FkZF9maWxlLAorICAgIH0sCisKK1NRTVAK K2NoYXJkZXYtYWRkLWZpbGUKKy0tLS0tLS0tLS0tLS0tLS0KKworQWRkIGEgZmlsZSBjaGFy ZGV2LgorCitBcmd1bWVudHM6CisKKy0gImlkIjogdGhlIGNoYXJkZXYncyBJRCwgbXVzdCBi ZSB1bmlxdWUgKGpzb24tc3RyaW5nKQorLSAicGF0aCI6IGZpbGUgcGF0aCAoanNvbi1zdHJp bmcpCisKK0V4YW1wbGU6CisKKy0+IHsgImV4ZWN1dGUiICAgOiAiY2hhcmRldi1hZGQtZmls ZSIsCisgICAgICJhcmd1bWVudHMiIDogeyAiaWQiICAgOiAiZm9vIiwKKyAgICAgICAgICAg ICAgICAgICAgICJwYXRoIiA6ICIvdG1wL2ZvbyIgfSB9Cis8LSB7ICJyZXR1cm4iOiB7fSB9 CisKK0VRTVAKKworICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgPSAiY2hhcmRldi1hZGQt dHR5IiwKKyAgICAgICAgLmFyZ3NfdHlwZSAgPSAiIiwKKyAgICAgICAgLm1oYW5kbGVyLmNt ZF9uZXcgPSBxbXBfbWFyc2hhbF9pbnB1dF9jaGFyZGV2X2FkZF90dHksCisgICAgfSwKKwor U1FNUAorY2hhcmRldi1hZGQtdHR5CistLS0tLS0tLS0tLS0tLS0KKworQWRkIGEgdGVybWlu YWwgY2hhcmRldi4KKworQXJndW1lbnRzOgorCistICJpZCI6IHRoZSBjaGFyZGV2J3MgSUQs IG11c3QgYmUgdW5pcXVlIChqc29uLXN0cmluZykKKy0gInBhdGgiOiBkZXZpY2UgcGF0aCAo anNvbi1zdHJpbmcpCisKK0V4YW1wbGU6CisKKy0+IHsgImV4ZWN1dGUiICAgOiAiY2hhcmRl di1hZGQtdHR5IiwKKyAgICAgImFyZ3VtZW50cyIgOiB7ICJpZCIgICA6ICJzZXJpYWwiLAor ICAgICAgICAgICAgICAgICAgICAgInBhdGgiIDogIi9kZXYvdHR5UzAiIH0gfQorPC0geyAi cmV0dXJuIjoge30gfQorCitFUU1QCisKKyAgICB7CisgICAgICAgIC5uYW1lICAgICAgID0g ImNoYXJkZXYtcmVtb3ZlIiwKKyAgICAgICAgLmFyZ3NfdHlwZSAgPSAiIiwKKyAgICAgICAg Lm1oYW5kbGVyLmNtZF9uZXcgPSBxbXBfbWFyc2hhbF9pbnB1dF9jaGFyZGV2X3JlbW92ZSwK KyAgICB9LAorCisKK1NRTVAKK2NoYXJkZXYtcmVtb3ZlCistLS0tLS0tLS0tLS0tLQorCitS ZW1vdmUgYSBjaGFyZGV2LgorCitBcmd1bWVudHM6CisKKy0gImlkIjogdGhlIGNoYXJkZXYn cyBJRCwgbXVzdCBleGlzdCBhbmQgbm90IGJlIGluIHVzZSAoanNvbi1zdHJpbmcpCisKK0V4 YW1wbGU6CisKKy0+IHsgImV4ZWN1dGUiOiAiY2hhcmRldi1yZW1vdmUiLCAiYXJndW1lbnRz IjogeyAiaWQiIDogImZvbyIgfSB9Cis8LSB7ICJyZXR1cm4iOiB7fSB9CisKK0VRTVAKLS0g CjEuNy4xCgo= --------------050604080909070503040506--