From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48069) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bjJRB-000787-Am for qemu-devel@nongnu.org; Mon, 12 Sep 2016 01:05:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bjJR6-0006hN-UC for qemu-devel@nongnu.org; Mon, 12 Sep 2016 01:05:44 -0400 Resent-Message-Id: Received: from sender163-mail.zoho.com ([74.201.84.163]:24414) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bjJR6-0006gy-D0 for qemu-devel@nongnu.org; Mon, 12 Sep 2016 01:05:40 -0400 Reply-To: Message-ID: <20160912050505.19908.14417@ex-std-node742.prod.rhcloud.com> In-Reply-To: <147342618684.13303.1583142856242164602.stgit@fimbulvetr.bsc.es> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 From: no-reply@patchew.org Date: Sun, 11 Sep 2016 22:05:23 -0700 (PDT) Subject: Re: [Qemu-devel] [RFC PATCH v2 0/6] translate: [tcg] Generic translation framework List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: vilanova@ac.upc.edu Cc: famz@redhat.com, qemu-devel@nongnu.org, pbonzini@redhat.com, crosthwaite.peter@gmail.com, rth@twiddle.net SGksCgpZb3VyIHNlcmllcyBzZWVtcyB0byBoYXZlIHNvbWUgY29kaW5nIHN0eWxlIHByb2JsZW1z LiBTZWUgb3V0cHV0IGJlbG93IGZvcgptb3JlIGluZm9ybWF0aW9uOgoKVHlwZTogc2VyaWVzCk1l c3NhZ2UtaWQ6IDE0NzM0MjYxODY4NC4xMzMwMy4xNTgzMTQyODU2MjQyMTY0NjAyLnN0Z2l0QGZp bWJ1bHZldHIuYnNjLmVzClN1YmplY3Q6IFtRZW11LWRldmVsXSBbUkZDIFBBVENIIHYyIDAvNl0g dHJhbnNsYXRlOiBbdGNnXSBHZW5lcmljIHRyYW5zbGF0aW9uIGZyYW1ld29yawoKPT09IFRFU1Qg U0NSSVBUIEJFR0lOID09PQojIS9iaW4vYmFzaAoKQkFTRT1iYXNlCm49MQp0b3RhbD0kKGdpdCBs b2cgLS1vbmVsaW5lICRCQVNFLi4gfCB3YyAtbCkKZmFpbGVkPTAKCiMgVXNlZnVsIGdpdCBvcHRp b25zCmdpdCBjb25maWcgLS1sb2NhbCBkaWZmLnJlbmFtZWxpbWl0IDAKZ2l0IGNvbmZpZyAtLWxv Y2FsIGRpZmYucmVuYW1lcyBUcnVlCgpjb21taXRzPSIkKGdpdCBsb2cgLS1mb3JtYXQ9JUggLS1y ZXZlcnNlICRCQVNFLi4pIgpmb3IgYyBpbiAkY29tbWl0czsgZG8KICAgIGVjaG8gIkNoZWNraW5n IFBBVENIICRuLyR0b3RhbDogJChnaXQgc2hvdyAtLW5vLXBhdGNoIC0tZm9ybWF0PSVzICRjKS4u LiIKICAgIGlmICEgZ2l0IHNob3cgJGMgLS1mb3JtYXQ9ZW1haWwgfCAuL3NjcmlwdHMvY2hlY2tw YXRjaC5wbCAtLW1haWxiYWNrIC07IHRoZW4KICAgICAgICBmYWlsZWQ9MQogICAgICAgIGVjaG8K ICAgIGZpCiAgICBuPSQoKG4rMSkpCmRvbmUKCmV4aXQgJGZhaWxlZAo9PT0gVEVTVCBTQ1JJUFQg RU5EID09PQoKVXBkYXRpbmcgM2M4Y2Y1YTljMjFmZjg3ODIxNjRkMWRlZjdmNDRiZDg4ODcxMzM4 NApTd2l0Y2hlZCB0byBhIG5ldyBicmFuY2ggJ3Rlc3QnCmVjM2MxZGIgdGFyZ2V0OiBbdGNnLCBh cm1dIFBvcnQgdG8gZ2VuZXJpYyB0cmFuc2xhdGlvbiBmcmFtZXdvcmsKMTkwMDVmYyB0YXJnZXQ6 IFt0Y2csIGkzODZdIFBvcnQgdG8gZ2VuZXJpYyB0cmFuc2xhdGlvbiBmcmFtZXdvcmsKZTA2OGI2 NyB0YXJnZXQ6IFt0Y2ddIFJlZGVmaW5lIERJU0FTXyogb250byB0aGUgZ2VuZXJpYyB0cmFuc2xh dGlvbiBmcmFtZXdvcmsgKERKXyopCjAwM2IzYzMgdGFyZ2V0OiBbdGNnXSBBZGQgZ2VuZXJpYyB0 cmFuc2xhdGlvbiBmcmFtZXdvcmsKOGIzYjU3YSBxdWV1ZTogQWRkIG1hY3JvIGZvciBpbmNyZW1l bnRhbCB0cmF2ZXJzYWwKMjE2YzkxYyBQYXNzIGdlbmVyaWMgQ1BVU3RhdGUgdG8gZ2VuX2ludGVy bWVkaWF0ZV9jb2RlKCkKCj09PSBPVVRQVVQgQkVHSU4gPT09CkNoZWNraW5nIFBBVENIIDEvNjog UGFzcyBnZW5lcmljIENQVVN0YXRlIHRvIGdlbl9pbnRlcm1lZGlhdGVfY29kZSgpLi4uCkVSUk9S OiAiZm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojODQwOiBGSUxFOiB0YXJnZXQtc2g0 L3RyYW5zbGF0ZS5jOjE4MzI6CisgICAgQ1BVU0g0U3RhdGUgKiBlbnYgPSBjcHUtPmVudl9wdHI7 CgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzkwMjogRklMRTogdGFy Z2V0LXNwYXJjL3RyYW5zbGF0ZS5jOjU1Njk6CisgICAgQ1BVU1BBUkNTdGF0ZSAqIGVudiA9IGNw dS0+ZW52X3B0cjsKCnRvdGFsOiAyIGVycm9ycywgMCB3YXJuaW5ncywgOTM3IGxpbmVzIGNoZWNr ZWQKCllvdXIgcGF0Y2ggaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55 IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBt YWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCkNoZWNraW5nIFBBVENI IDIvNjogcXVldWU6IEFkZCBtYWNybyBmb3IgaW5jcmVtZW50YWwgdHJhdmVyc2FsLi4uCkNoZWNr aW5nIFBBVENIIDMvNjogdGFyZ2V0OiBbdGNnXSBBZGQgZ2VuZXJpYyB0cmFuc2xhdGlvbiBmcmFt ZXdvcmsuLi4KRVJST1I6IG9wZW4gYnJhY2UgJ3snIGZvbGxvd2luZyBlbnVtIGdvIG9uIHRoZSBz YW1lIGxpbmUKIzY0OiBGSUxFOiBpbmNsdWRlL2V4ZWMvdHJhbnNsYXRlLWFsbF90ZW1wbGF0ZS5o OjM0OgordHlwZWRlZiBlbnVtIEJyZWFrcG9pbnRIaXRUeXBlCit7CgpFUlJPUjogb3BlbiBicmFj ZSAneycgZm9sbG93aW5nIGVudW0gZ28gb24gdGhlIHNhbWUgbGluZQojNzk6IEZJTEU6IGluY2x1 ZGUvZXhlYy90cmFuc2xhdGUtYWxsX3RlbXBsYXRlLmg6NDk6Cit0eXBlZGVmIGVudW0gRGlzYXNK dW1wVHlwZQorewoKRVJST1I6IG9wZW4gYnJhY2UgJ3snIGZvbGxvd2luZyBzdHJ1Y3QgZ28gb24g dGhlIHNhbWUgbGluZQojOTc6IEZJTEU6IGluY2x1ZGUvZXhlYy90cmFuc2xhdGUtYWxsX3RlbXBs YXRlLmg6Njc6Cit0eXBlZGVmIHN0cnVjdCBEaXNhc0NvbnRleHRCYXNlCit7CgpFUlJPUjogbGlu ZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzExNjogRklMRTogaW5jbHVkZS9xb20vY3B1Lmg6ODUyOgor c3RhdGljIGlubGluZSBDUFVCcmVha3BvaW50ICpjcHVfYnJlYWtwb2ludF9nZXQoQ1BVU3RhdGUg KmNwdSwgdmFkZHIgcGMsIENQVUJyZWFrcG9pbnQgKmJwKQoKRVJST1I6ICJmb28gKiBiYXIiIHNo b3VsZCBiZSAiZm9vICpiYXIiCiMxNzA6IEZJTEU6IHRyYW5zbGF0ZS1hbGxfdGVtcGxhdGUuaDoy NjoKKyAgICBEaXNhc0NvbnRleHQgKiByZXN0cmljdCBkYywgQ1BVQXJjaFN0YXRlICogcmVzdHJp Y3QgZW52KTsKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojMTczOiBG SUxFOiB0cmFuc2xhdGUtYWxsX3RlbXBsYXRlLmg6Mjk6CisgICAgRGlzYXNDb250ZXh0ICogcmVz dHJpY3QgZGMsIENQVUFyY2hTdGF0ZSAqIHJlc3RyaWN0IGVudik7CgpFUlJPUjogImZvbyAqIGJh ciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzE3NjogRklMRTogdHJhbnNsYXRlLWFsbF90ZW1wbGF0 ZS5oOjMyOgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0IGRjLCBDUFVBcmNoU3RhdGUgKiBy ZXN0cmljdCBlbnYpOwoKRVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiMx Nzk6IEZJTEU6IHRyYW5zbGF0ZS1hbGxfdGVtcGxhdGUuaDozNToKKyAgICBEaXNhc0NvbnRleHQg KiByZXN0cmljdCBkYywgQ1BVQXJjaFN0YXRlICogcmVzdHJpY3QgZW52KTsKCkVSUk9SOiAiZm9v ICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojMTgyOiBGSUxFOiB0cmFuc2xhdGUtYWxsX3Rl bXBsYXRlLmg6Mzg6CisgICAgRGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVUFyY2hTdGF0 ZSAqIHJlc3RyaWN0IGVudiwKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFy IgojMTgzOiBGSUxFOiB0cmFuc2xhdGUtYWxsX3RlbXBsYXRlLmg6Mzk6CisgICAgY29uc3QgQ1BV QnJlYWtwb2ludCAqIHJlc3RyaWN0IGJwKTsKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUg ImZvbyAqYmFyIgojMTg2OiBGSUxFOiB0cmFuc2xhdGUtYWxsX3RlbXBsYXRlLmg6NDI6CisgICAg RGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVUFyY2hTdGF0ZSAqIHJlc3RyaWN0IGVudik7 CgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzE4OTogRklMRTogdHJh bnNsYXRlLWFsbF90ZW1wbGF0ZS5oOjQ1OgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0IGRj LCBDUFVBcmNoU3RhdGUgKiByZXN0cmljdCBlbnYpOwoKRVJST1I6ICJmb28gKiBiYXIiIHNob3Vs ZCBiZSAiZm9vICpiYXIiCiMxOTI6IEZJTEU6IHRyYW5zbGF0ZS1hbGxfdGVtcGxhdGUuaDo0ODoK KyAgICBEaXNhc0NvbnRleHQgKiByZXN0cmljdCBkYywgQ1BVQXJjaFN0YXRlICogcmVzdHJpY3Qg ZW52KTsKCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojMjU3OiBGSUxFOiB0cmFuc2xh dGUtYWxsX3RlbXBsYXRlLmg6MTEzOgorICAgICAgICAgICAgICAgIEJyZWFrcG9pbnRIaXRUeXBl IGJoID0gZ2VuX2ludGVybWVkaWF0ZV9jb2RlX3RhcmdldF9icmVha3BvaW50X2hpdChkYywgZW52 LCBicCk7CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzM0OiBGSUxFOiB0cmFu c2xhdGUtYWxsX3RlbXBsYXRlLmg6MTkwOgorICAgICAgICBsb2dfdGFyZ2V0X2Rpc2FzKGNwdSwg ZGMtPmJhc2UucGNfZmlyc3QsIGRjLT5iYXNlLnBjX25leHQgLSBkYy0+YmFzZS5wY19maXJzdCwK CnRvdGFsOiAxNCBlcnJvcnMsIDEgd2FybmluZ3MsIDMxMSBsaW5lcyBjaGVja2VkCgpZb3VyIHBh dGNoIGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBl cnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwg c2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgpDaGVja2luZyBQQVRDSCA0LzY6IHRhcmdl dDogW3RjZ10gUmVkZWZpbmUgRElTQVNfKiBvbnRvIHRoZSBnZW5lcmljIHRyYW5zbGF0aW9uIGZy YW1ld29yayAoREpfKikuLi4KRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnKycg KGN0eDpWeFYpCiMzMTogRklMRTogaW5jbHVkZS9leGVjL2V4ZWMtYWxsLmg6NDI6CisjZGVmaW5l IERJU0FTX0pVTVAgICAgKERKX1RBUkdFVCswKSAgICAgLyogb25seSBwYyB3YXMgbW9kaWZpZWQg ZHluYW1pY2FsbHkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6 IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnKycgKGN0eDpWeFYpCiMzMjogRklMRTogaW5j bHVkZS9leGVjL2V4ZWMtYWxsLmg6NDM6CisjZGVmaW5lIERJU0FTX1VQREFURSAgKERKX1RBUkdF VCsxKSAgICAgLyogY3B1IHN0YXRlIHdhcyBtb2RpZmllZCBkeW5hbWljYWxseSAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3Vu ZCB0aGF0ICcrJyAoY3R4OlZ4VikKIzMzOiBGSUxFOiBpbmNsdWRlL2V4ZWMvZXhlYy1hbGwuaDo0 NDoKKyNkZWZpbmUgRElTQVNfVEJfSlVNUCAoREpfVEFSR0VUKzIpICAgICAvKiBvbmx5IHBjIHdh cyBtb2RpZmllZCBzdGF0aWNhbGx5ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJysnIChjdHg6VnhWKQojMzQ6 IEZJTEU6IGluY2x1ZGUvZXhlYy9leGVjLWFsbC5oOjQ1OgorI2RlZmluZSBESVNBU19UQVJHRVQg IChESl9UQVJHRVQrMykgICAgIC8qIGJhc2UgZm9yIHRhcmdldC1zcGVjaWZpYyB2YWx1ZXMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IE1hY3JvcyB3aXRoIGNv bXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNTM6IEZJTEU6 IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTE1OgorI2RlZmluZSBESVNBU19XRkkgRElTQVNfVEFS R0VUICsgMAoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNs b3NlZCBpbiBwYXJlbnRoZXNpcwojNTQ6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTE2 OgorI2RlZmluZSBESVNBU19TV0kgRElTQVNfVEFSR0VUICsgMQoKRVJST1I6IE1hY3JvcyB3aXRo IGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNTk6IEZJ TEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTIwOgorI2RlZmluZSBESVNBU19FWEMgRElTQVNf VEFSR0VUICsgMgoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBl bmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNjU6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6 MTIyOgorI2RlZmluZSBESVNBU19XRkUgRElTQVNfVEFSR0VUICsgMwoKRVJST1I6IE1hY3JvcyB3 aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNjY6 IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTIzOgorI2RlZmluZSBESVNBU19IVkMgRElT QVNfVEFSR0VUICsgNAoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBi ZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNjc6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRl Lmg6MTI0OgorI2RlZmluZSBESVNBU19TTUMgRElTQVNfVEFSR0VUICsgNQoKRVJST1I6IE1hY3Jv cyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwoj Njg6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTI1OgorI2RlZmluZSBESVNBU19ZSUVM RCBESVNBU19UQVJHRVQgKyA2CgpFUlJPUjogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMgc2hv dWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiM4MjogRklMRTogdGFyZ2V0LWNyaXMvdHJh bnNsYXRlLmM6NTQ6CisjZGVmaW5lIERJU0FTX1NXSSBESVNBU19UQVJHRVQgKyAwCgpFUlJPUjog TWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhl c2lzCiM5NjogRklMRTogdGFyZ2V0LW02OGsvdHJhbnNsYXRlLmM6MTQ1OgorI2RlZmluZSBESVNB U19KVU1QX05FWFQgRElTQVNfVEFSR0VUICsgMAoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXgg dmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojMTEwOiBGSUxFOiB0YXJn ZXQtczM5MHgvdHJhbnNsYXRlLmM6Nzg6CisjZGVmaW5lIERJU0FTX0VYQ1AgRElTQVNfVEFSR0VU ICsgMAoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3Nl ZCBpbiBwYXJlbnRoZXNpcwojMTI2OiBGSUxFOiB0YXJnZXQtdW5pY29yZTMyL3RyYW5zbGF0ZS5j OjUxOgorI2RlZmluZSBESVNBU19TWVNDQUxMIERJU0FTX1RBUkdFVCArIDAKCnRvdGFsOiAxNSBl cnJvcnMsIDAgd2FybmluZ3MsIDg0IGxpbmVzIGNoZWNrZWQKCllvdXIgcGF0Y2ggaGFzIHN0eWxl IHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFs c2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRD SCBpbiBNQUlOVEFJTkVSUy4KCkNoZWNraW5nIFBBVENIIDUvNjogdGFyZ2V0OiBbdGNnLCBpMzg2 XSBQb3J0IHRvIGdlbmVyaWMgdHJhbnNsYXRpb24gZnJhbWV3b3JrLi4uCkVSUk9SOiBzcGFjZXMg cmVxdWlyZWQgYXJvdW5kIHRoYXQgJysnIChjdHg6VnhWKQojMjE6IEZJTEU6IHRhcmdldC1pMzg2 L3RyYW5zbGF0ZS5jOjczOgorI2RlZmluZSBESl9KVU1QIChESl9UQVJHRVQrMCkgICAgICAgICAg IC8qIGVuZCBvZiBibG9jayBkdWUgdG8gY2FsbC9qdW1wICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJysnIChjdHg6VnhW KQojMjI6IEZJTEU6IHRhcmdldC1pMzg2L3RyYW5zbGF0ZS5jOjc0OgorI2RlZmluZSBESl9NSVND IChESl9UQVJHRVQrMSkgICAgICAgICAgIC8qIHNvbWUgb3RoZXIgcmVhc29uICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBvcGVuIGJyYWNlICd7JyBmb2xsb3dpbmcgc3Ry dWN0IGdvIG9uIHRoZSBzYW1lIGxpbmUKIzM0OiBGSUxFOiB0YXJnZXQtaTM4Ni90cmFuc2xhdGUu YzoxMDM6Cit0eXBlZGVmIHN0cnVjdCBEaXNhc0NvbnRleHQKK3sKCkVSUk9SOiAiZm9vICogYmFy IiBzaG91bGQgYmUgImZvbyAqYmFyIgojMjE0OiBGSUxFOiB0YXJnZXQtaTM4Ni90cmFuc2xhdGUu Yzo0MzQ1OgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0IHMsIENQVVg4NlN0YXRlICogcmVz dHJpY3QgZW52KQoKRVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM0MzI6 IEZJTEU6IHRhcmdldC1pMzg2L3RyYW5zbGF0ZS5jOjgyMTA6CisgICAgRGlzYXNDb250ZXh0ICog cmVzdHJpY3QgZGMsIENQVVg4NlN0YXRlICogcmVzdHJpY3QgZW52KQoKRVJST1I6ICJmb28gKiBi YXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM0ODI6IEZJTEU6IHRhcmdldC1pMzg2L3RyYW5zbGF0 ZS5jOjgyNjY6CisgICAgRGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVVg4NlN0YXRlICog cmVzdHJpY3QgZW52KQoKRVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM1 MDQ6IEZJTEU6IHRhcmdldC1pMzg2L3RyYW5zbGF0ZS5jOjgyODM6CisgICAgRGlzYXNDb250ZXh0 ICogcmVzdHJpY3QgZGMsIENQVVg4NlN0YXRlICogcmVzdHJpY3QgZW52KQoKRVJST1I6ICJmb28g KiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM1Mjk6IEZJTEU6IHRhcmdldC1pMzg2L3RyYW5z bGF0ZS5jOjgyODg6CisgICAgRGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVVg4NlN0YXRl ICogcmVzdHJpY3QgZW52KQoKRVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIi CiM1Nzc6IEZJTEU6IHRhcmdldC1pMzg2L3RyYW5zbGF0ZS5jOjgyOTQ6CisgICAgRGlzYXNDb250 ZXh0ICogcmVzdHJpY3QgZGMsIENQVVg4NlN0YXRlICogcmVzdHJpY3QgZW52LAoKRVJST1I6ICJm b28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM1Nzg6IEZJTEU6IHRhcmdldC1pMzg2L3Ry YW5zbGF0ZS5jOjgyOTU6CisgICAgY29uc3QgQ1BVQnJlYWtwb2ludCAqIHJlc3RyaWN0IGJwKQoK RVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM2MTU6IEZJTEU6IHRhcmdl dC1pMzg2L3RyYW5zbGF0ZS5jOjgzMTM6CisgICAgRGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMs IENQVVg4NlN0YXRlICogcmVzdHJpY3QgZW52KQoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJh Y3RlcnMKIzYzMDogRklMRTogdGFyZ2V0LWkzODYvdHJhbnNsYXRlLmM6ODMyODoKKyAgICAgICAg ICAgICAgICE9ICgoZGMtPmJhc2UucGNfbmV4dCArIFRBUkdFVF9NQVhfSU5TTl9TSVpFIC0gMSkg JiBUQVJHRVRfUEFHRV9NQVNLKSkgewoKRVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9v ICpiYXIiCiM2NDM6IEZJTEU6IHRhcmdldC1pMzg2L3RyYW5zbGF0ZS5jOjgzMzg6CisgICAgRGlz YXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVVg4NlN0YXRlICogcmVzdHJpY3QgZW52KQoKdG90 YWw6IDEyIGVycm9ycywgMSB3YXJuaW5ncywgNjE2IGxpbmVzIGNoZWNrZWQKCllvdXIgcGF0Y2gg aGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9y cwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUK Q0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCkNoZWNraW5nIFBBVENIIDYvNjogdGFyZ2V0OiBb dGNnLCBhcm1dIFBvcnQgdG8gZ2VuZXJpYyB0cmFuc2xhdGlvbiBmcmFtZXdvcmsuLi4KV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzUyOiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0 ZS1hNjQuYzoyNzQ6CisgICAgaWYgKHMtPmJhc2Uuc2luZ2xlc3RlcF9lbmFibGVkIHx8IHMtPnNz X2FjdGl2ZSB8fCAocy0+YmFzZS50Yi0+Y2ZsYWdzICYgQ0ZfTEFTVF9JTykpIHsKCldBUk5JTkc6 IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM5NDogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUt YTY0LmM6MzM3OgorICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgaW5z biwgcy0+YmFzZS5wY19uZXh0IC0gNCk7ICAgICAgICAgICAgICBcCgpFUlJPUjogZXh0ZXJucyBz aG91bGQgYmUgYXZvaWRlZCBpbiAuYyBmaWxlcwojMzE2OiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5z bGF0ZS1hNjQuYzoxMTA3OToKK3ZvaWQgZGlzYXNfYTY0X2luc24oQ1BVQVJNU3RhdGUgKmVudiwg RGlzYXNDb250ZXh0ICpzKTsKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFy IgojMzU1OiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS1hNjQuYzoxMTEzMToKKyAgICBEaXNh c0NvbnRleHQgKiByZXN0cmljdCBkYywgQ1BVQXJjaFN0YXRlICogcmVzdHJpY3QgZW52KQoKRVJS T1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM0NDI6IEZJTEU6IHRhcmdldC1h cm0vdHJhbnNsYXRlLWE2NC5jOjExMTg0OgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0IGRj LCBDUFVBcmNoU3RhdGUgKiByZXN0cmljdCBlbnYpCgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxk IGJlICJmb28gKmJhciIKIzQ1MDogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUtYTY0LmM6MTEx ODk6CisgICAgRGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVUFyY2hTdGF0ZSAqIHJlc3Ry aWN0IGVudikKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojNDcyOiBG SUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS1hNjQuYzoxMTE5NDoKKyAgICBEaXNhc0NvbnRleHQg KiByZXN0cmljdCBkYywgQ1BVQXJjaFN0YXRlICogcmVzdHJpY3QgZW52KQoKRVJST1I6ICJmb28g KiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM0Nzk6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNs YXRlLWE2NC5jOjExMjAxOgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0IGRjLCBDUFVBcmNo U3RhdGUgKiByZXN0cmljdCBlbnYsCgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28g KmJhciIKIzQ4MDogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUtYTY0LmM6MTEyMDI6CisgICAg Y29uc3QgQ1BVQnJlYWtwb2ludCAqIHJlc3RyaWN0IGJwKQoKRVJST1I6ICJmb28gKiBiYXIiIHNo b3VsZCBiZSAiZm9vICpiYXIiCiM1MDE6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLWE2NC5j OjExMjIzOgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0IGRjLCBDUFVBcmNoU3RhdGUgKiBy ZXN0cmljdCBlbnYpCgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzU0 NDogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUtYTY0LmM6MTEyNDc6CisgICAgRGlzYXNDb250 ZXh0ICogcmVzdHJpY3QgZGMsIENQVUFyY2hTdGF0ZSAqIHJlc3RyaWN0IGVudikKCkVSUk9SOiAi Zm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojNTYxOiBGSUxFOiB0YXJnZXQtYXJtL3Ry YW5zbGF0ZS1hNjQuYzoxMTI2MjoKKyAgICBEaXNhc0NvbnRleHQgKiByZXN0cmljdCBkYywgQ1BV QXJjaFN0YXRlICogcmVzdHJpY3QgZW52KQoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3Rl cnMKIzgwNzogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUuYzo0MDU4OgorICAgICAgICAgICAo KHMtPmJhc2UucGNfbmV4dCAtIDEpICYgVEFSR0VUX1BBR0VfTUFTSykgPT0gKGRlc3QgJiBUQVJH RVRfUEFHRV9NQVNLKTsKCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJz0nIChj dHg6VnhWKQojMTI5MjogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUuYzoxMTY0NToKKyAgICBm b3IoaT0wO2k8MTY7aSsrKSB7CiAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0 ZXIgdGhhdCAnOycgKGN0eDpWeFYpCiMxMjkyOiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5j OjExNjQ1OgorICAgIGZvcihpPTA7aTwxNjtpKyspIHsKICAgICAgICAgICAgXgoKRVJST1I6IHNw YWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnPCcgKGN0eDpWeFYpCiMxMjkyOiBGSUxFOiB0YXJn ZXQtYXJtL3RyYW5zbGF0ZS5jOjExNjQ1OgorICAgIGZvcihpPTA7aTwxNjtpKyspIHsKICAgICAg ICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnOycgKGN0eDpWeFYp CiMxMjkyOiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5jOjExNjQ1OgorICAgIGZvcihpPTA7 aTwxNjtpKyspIHsKICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYmVm b3JlIHRoZSBvcGVuIHBhcmVudGhlc2lzICcoJwojMTI5MjogRklMRTogdGFyZ2V0LWFybS90cmFu c2xhdGUuYzoxMTY0NToKKyAgICBmb3IoaT0wO2k8MTY7aSsrKSB7CgpFUlJPUjogYnJhY2VzIHt9 IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjk0OiBGSUxF OiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5jOjExNjQ3OgorICAgICAgICBpZiAoKGkgJSA0KSA9PSAz KQpbLi4uXQorICAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJl ICJmb28gKmJhciIKIzEzNzY6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmM6MTE3MjU6Cisg ICAgRGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVUFSTVN0YXRlICogcmVzdHJpY3QgZW52 KQoKRVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiMxNDM2OiBGSUxFOiB0 YXJnZXQtYXJtL3RyYW5zbGF0ZS5jOjExNzc5OgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0 IGRjLCBDUFVBUk1TdGF0ZSAqIHJlc3RyaWN0IGVudikKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91 bGQgYmUgImZvbyAqYmFyIgojMTQ2MTogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUuYzoxMTc5 MjoKKyAgICBEaXNhc0NvbnRleHQgKiByZXN0cmljdCBkYywgQ1BVQVJNU3RhdGUgKiByZXN0cmlj dCBlbnYpCgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzE0OTI6IEZJ TEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmM6MTE4MzY6CisgICAgRGlzYXNDb250ZXh0ICogcmVz dHJpY3QgZGMsIENQVUFSTVN0YXRlICogcmVzdHJpY3QgZW52KQoKRVJST1I6ICJmb28gKiBiYXIi IHNob3VsZCBiZSAiZm9vICpiYXIiCiMxNTgwOiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5j OjExODYyOgorICAgIERpc2FzQ29udGV4dCAqIHJlc3RyaWN0IGRjLCBDUFVBUk1TdGF0ZSAqIHJl c3RyaWN0IGVudiwKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojMTU4 MTogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUuYzoxMTg2MzoKKyAgICBjb25zdCBDUFVCcmVh a3BvaW50ICogcmVzdHJpY3QgYnApCgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28g KmJhciIKIzE2MDU6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmM6MTE4ODc6CisgICAgRGlz YXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVUFyY2hTdGF0ZSAqIHJlc3RyaWN0IGVudikKCkVS Uk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojMTY3NTogRklMRTogdGFyZ2V0 LWFybS90cmFuc2xhdGUuYzoxMTkzMjoKKyAgICBEaXNhc0NvbnRleHQgKiByZXN0cmljdCBkYywg Q1BVQVJNU3RhdGUgKiByZXN0cmljdCBlbnYpCgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJl ICJmb28gKmJhciIKIzE3MTI6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmM6MTE5NjM6Cisg ICAgRGlzYXNDb250ZXh0ICogcmVzdHJpY3QgZGMsIENQVUFSTVN0YXRlICogcmVzdHJpY3QgZW52 KQoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcK IzE3NDQ6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmM6MTE5ODU6CisgICAgICAgIHN3aXRj aChqdCkgewoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnKycgKGN0eDpWeFYp CiMxOTg4OiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5oOjExMzoKKyNkZWZpbmUgREpfSlVN UCAgICAoREpfVEFSR0VUKzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9S OiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJysnIChjdHg6VnhWKQojMTk4OTogRklMRTog dGFyZ2V0LWFybS90cmFuc2xhdGUuaDoxMTQ6CisjZGVmaW5lIERKX1VQREFURSAgKERKX1RBUkdF VCsxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVp cmVkIGFyb3VuZCB0aGF0ICcrJyAoY3R4OlZ4VikKIzE5OTA6IEZJTEU6IHRhcmdldC1hcm0vdHJh bnNsYXRlLmg6MTE1OgorI2RlZmluZSBESl9UQl9KVU1QIChESl9UQVJHRVQrMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhh dCAnKycgKGN0eDpWeFYpCiMxOTk3OiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5oOjEyMDoK KyNkZWZpbmUgREpfV0ZJICAgICAoREpfVEFSR0VUKzMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJysnIChjdHg6VnhW KQojMTk5ODogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUuaDoxMjE6CisjZGVmaW5lIERKX1NX SSAgICAgKERKX1RBUkdFVCs0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJP Ujogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICcrJyAoY3R4OlZ4VikKIzIwMDM6IEZJTEU6 IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTI1OgorI2RlZmluZSBESl9FWEMgICAgIChESl9UQVJH RVQrNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlcyByZXF1 aXJlZCBhcm91bmQgdGhhdCAnKycgKGN0eDpWeFYpCiMyMDA5OiBGSUxFOiB0YXJnZXQtYXJtL3Ry YW5zbGF0ZS5oOjEyNzoKKyNkZWZpbmUgREpfV0ZFICAgICAoREpfVEFSR0VUKzYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRo YXQgJysnIChjdHg6VnhWKQojMjAxMDogRklMRTogdGFyZ2V0LWFybS90cmFuc2xhdGUuaDoxMjg6 CisjZGVmaW5lIERKX0hWQyAgICAgKERKX1RBUkdFVCs3KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICcrJyAoY3R4OlZ4 VikKIzIwMTE6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTI5OgorI2RlZmluZSBESl9T TUMgICAgIChESl9UQVJHRVQrOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJS T1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnKycgKGN0eDpWeFYpCiMyMDEyOiBGSUxF OiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5oOjEzMDoKKyNkZWZpbmUgREpfWUlFTEQgICAoREpfVEFS R0VUKzkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZXMgcmVx dWlyZWQgYXJvdW5kIHRoYXQgJysnIChjdHg6VnhWKQojMjAxMzogRklMRTogdGFyZ2V0LWFybS90 cmFuc2xhdGUuaDoxMzE6CisjZGVmaW5lIERKX1NTICAgICAgKERKX1RBUkdFVCsxMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQg dGhhdCAnKycgKGN0eDpWeFYpCiMyMDE0OiBGSUxFOiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5oOjEz MjoKKyNkZWZpbmUgREpfUEFHRV9DUk9TUyAoREpfVEFSR0VUKzExKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICcr JyAoY3R4OlZ4VikKIzIwMTU6IEZJTEU6IHRhcmdldC1hcm0vdHJhbnNsYXRlLmg6MTMzOgorI2Rl ZmluZSBESl9TS0lQICAgIChESl9UQVJHRVQrMTIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KCnRvdGFsOiAzOSBlcnJvcnMsIDMgd2FybmluZ3MsIDE5MjAgbGluZXMgY2hlY2tlZAoK WW91ciBwYXRjaCBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2Yg dGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50 YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoKPT09IE9VVFBVVCBFTkQgPT09 CgpUZXN0IGNvbW1hbmQgZXhpdGVkIHdpdGggY29kZTogMQoKCi0tLQpFbWFpbCBnZW5lcmF0ZWQg YXV0b21hdGljYWxseSBieSBQYXRjaGV3IFtodHRwOi8vcGF0Y2hldy5vcmcvXS4KUGxlYXNlIHNl bmQgeW91ciBmZWVkYmFjayB0byBwYXRjaGV3LWRldmVsQGZyZWVsaXN0cy5vcmc=