From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 09/15] tools: implement the new libxc get hw info interface Date: Tue, 5 Sep 2017 17:32:31 +0800 Message-ID: <1504603957-5389-10-git-send-email-yi.y.sun@linux.intel.com> References: <1504603957-5389-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dpAWA-0007H1-FJ for xen-devel@lists.xenproject.org; Tue, 05 Sep 2017 09:51:38 +0000 In-Reply-To: <1504603957-5389-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , julien.grall@arm.com, mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, dgdegra@tycho.nsa.gov, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGEgbmV3IGxpYnhjIGdldCBodyBpbmZvIGludGVyZmFjZSBh bmQgY29ycmVzcG9uZGluZwpkYXRhIHN0cnVjdHVyZXMuIEl0IGFsc28gY2hhbmdlcyBsaWJ4bF9w c3IuYyB0byBjYWxsIHRoaXMgbmV3IGludGVyZmFjZS4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8 eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KdjM6CiAgICAtIHJlbmFtZSAncHNyX2NhdC9Q U1JfQ0FUJyB0byAncHNyX2FsbG9jL1BTUl9BTExPQycgYW5kIHJlbW92ZSAnb3AvT1AnCiAgICAg IGZyb20gbmFtZS4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBy ZW1vdmUgJ2luZm8nIGZyb20gJ3hjX2NhdF9pbmZvJyBhbmQgJ3hjX21iYV9pbmZvJy4KICAgICAg KHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBzZXQgZXJybm8gaW4gJ3hjX3Bz cl9nZXRfaHdfaW5mbycuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAg IC0gcmVtb3ZlICdpbmxpbmUnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kp CiAgICAtIHJlbW92ZSAncHNyJyBmcm9tICdsaWJ4bF9fcHNyX2ZlYXRfdHlwZV90b19saWJ4Y19w c3JfZmVhdF90eXBlJyB0byBtYWtlCiAgICAgIGZ1bmN0aW9uIG5hbWUgc2hvcnRlci4KICAgICAg KHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjaGVjayAneGNfdHlwZScgaW4g J2xpYnhsX3Bzcl9jYXRfZ2V0X2luZm8nLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBN b25uw6kpCnYyOgogICAgLSBzcGxpdCB0aGlzIHBhdGNoIG91dCBmcm9tIGEgYmlnIHBhdGNoIGlu IHYxLgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAgICAtIGNoYW5nZSAnQ0FUX0lORk8n IGFuZCAnTUJBX0lORk8nIHRvICdDQVQnIGFuZCAnTUJBJy4KICAgICAgKHN1Z2dlc3RlZCBieSBD aGFvIFBlbmcpCi0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggfCAzMCArKysrKysr KysrKysrKysrKysrKysrKy0tLQogdG9vbHMvbGlieGMveGNfcHNyLmMgICAgICAgICAgfCA0OSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB0b29scy9saWJ4bC9s aWJ4bF9wc3IuYyAgICAgICB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQog MyBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaAppbmRleCBjNzcxMGI4Li5iYmRmOGUyIDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aApAQCAtMjQ1OCw2ICsyNDU4LDMxIEBAIGVudW0geGNfcHNyX2NhdF90eXBlIHsKIH07CiB0eXBl ZGVmIGVudW0geGNfcHNyX2NhdF90eXBlIHhjX3Bzcl9jYXRfdHlwZTsKIAorZW51bSB4Y19wc3Jf ZmVhdF90eXBlIHsKKyAgICBYQ19QU1JfRkVBVF9VTktOT1dOLAorICAgIFhDX1BTUl9GRUFUX0NB VF9MMywKKyAgICBYQ19QU1JfRkVBVF9DQVRfTDIsCisgICAgWENfUFNSX0ZFQVRfTUJBLAorfTsK K3R5cGVkZWYgZW51bSB4Y19wc3JfZmVhdF90eXBlIHhjX3Bzcl9mZWF0X3R5cGU7CisKK3N0cnVj dCB4Y19wc3JfaHdfaW5mbyB7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAgICAg ICAgICAgdWludDMyX3QgY29zX21heDsKKyAgICAgICAgICAgIHVpbnQzMl90IGNibV9sZW47Cisg ICAgICAgICAgICBib29sICAgICBjZHBfZW5hYmxlZDsKKyAgICAgICAgfSB4Y19jYXQ7CisKKyAg ICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGNvc19tYXg7CisgICAgICAgICAg ICB1aW50MzJfdCB0aHJ0bF9tYXg7CisgICAgICAgICAgICBib29sICAgICBsaW5lYXI7CisgICAg ICAgIH0geGNfbWJhOworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0cnVjdCB4Y19wc3JfaHdfaW5m byB4Y19wc3JfaHdfaW5mbzsKKwogaW50IHhjX3Bzcl9jbXRfYXR0YWNoKHhjX2ludGVyZmFjZSAq eGNoLCB1aW50MzJfdCBkb21pZCk7CiBpbnQgeGNfcHNyX2NtdF9kZXRhY2goeGNfaW50ZXJmYWNl ICp4Y2gsIHVpbnQzMl90IGRvbWlkKTsKIGludCB4Y19wc3JfY210X2dldF9kb21haW5fcm1pZCh4 Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCkBAIC0yNDc5LDkgKzI1MDQsOCBAQCBp bnQgeGNfcHNyX2NhdF9zZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90 IGRvbWlkLAogaW50IHhjX3Bzcl9jYXRfZ2V0X2RvbWFpbl9kYXRhKHhjX2ludGVyZmFjZSAqeGNo LCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y19wc3Jf Y2F0X3R5cGUgdHlwZSwgdWludDMyX3QgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQ2NF90ICpkYXRhKTsKLWludCB4Y19wc3JfY2F0X2dldF9pbmZvKHhjX2ludGVy ZmFjZSAqeGNoLCB1aW50MzJfdCBzb2NrZXQsIHVuc2lnbmVkIGludCBsdmwsCi0gICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCAqY29zX21heCwgdWludDMyX3QgKmNibV9sZW4sCi0gICAg ICAgICAgICAgICAgICAgICAgICBib29sICpjZHBfZW5hYmxlZCk7CitpbnQgeGNfcHNyX2dldF9o d19pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzb2NrZXQsCisgICAgICAgICAgICAg ICAgICAgICAgIHhjX3Bzcl9mZWF0X3R5cGUgdHlwZSwgeGNfcHNyX2h3X2luZm8gKmh3X2luZm8p OwogCiBpbnQgeGNfZ2V0X2NwdV9sZXZlbGxpbmdfY2Fwcyh4Y19pbnRlcmZhY2UgKnhjaCwgdWlu dDMyX3QgKmNhcHMpOwogaW50IHhjX2dldF9jcHVfZmVhdHVyZXNldCh4Y19pbnRlcmZhY2UgKnhj aCwgdWludDMyX3QgaW5kZXgsCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19wc3IuYyBiL3Rv b2xzL2xpYnhjL3hjX3Bzci5jCmluZGV4IDdlMWMwZDYuLmE4YTc1MGEgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhjL3hjX3Bzci5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3Bzci5jCkBAIC0zMjMsMzYg KzMyMyw2MSBAQCBpbnQgeGNfcHNyX2NhdF9nZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4 Y2gsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiByYzsKIH0KIAotaW50IHhjX3Bzcl9jYXRf Z2V0X2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwgdW5zaWduZWQgaW50 IGx2bCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJf dCAqY2JtX2xlbiwgYm9vbCAqY2RwX2VuYWJsZWQpCitpbnQgeGNfcHNyX2dldF9od19pbmZvKHhj X2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzb2NrZXQsCisgICAgICAgICAgICAgICAgICAgICAg IHhjX3Bzcl9mZWF0X3R5cGUgdHlwZSwgeGNfcHNyX2h3X2luZm8gKmh3X2luZm8pCiB7CiAgICAg aW50IHJjID0gLTE7CiAgICAgREVDTEFSRV9TWVNDVEw7CiAKKyAgICBpZiAoICFod19pbmZvICkK KyAgICB7CisgICAgICAgIGVycm5vID0gRUlOVkFMOworICAgICAgICByZXR1cm4gcmM7CisgICAg fQorCiAgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfcHNyX2FsbG9jOwogICAgIHN5c2N0bC51 LnBzcl9hbGxvYy50YXJnZXQgPSBzb2NrZXQ7CiAKLSAgICBzd2l0Y2ggKCBsdmwgKQorICAgIHN3 aXRjaCAoIHR5cGUgKQogICAgIHsKLSAgICBjYXNlIDI6CisgICAgY2FzZSBYQ19QU1JfRkVBVF9D QVRfTDI6CiAgICAgICAgIHN5c2N0bC51LnBzcl9hbGxvYy5jbWQgPSBYRU5fU1lTQ1RMX1BTUl9B TExPQ19nZXRfbDJfaW5mbzsKICAgICAgICAgcmMgPSB4Y19zeXNjdGwoeGNoLCAmc3lzY3RsKTsK ICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICB7Ci0gICAgICAgICAgICAqY29zX21heCA9IHN5 c2N0bC51LnBzcl9hbGxvYy51LmNhdF9pbmZvLmNvc19tYXg7Ci0gICAgICAgICAgICAqY2JtX2xl biA9IHN5c2N0bC51LnBzcl9hbGxvYy51LmNhdF9pbmZvLmNibV9sZW47Ci0gICAgICAgICAgICAq Y2RwX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGh3X2luZm8tPnUueGNfY2F0LmNvc19t YXggPQorICAgICAgICAgICAgICAgICAgICAgICAgc3lzY3RsLnUucHNyX2FsbG9jLnUuY2F0X2lu Zm8uY29zX21heDsKKyAgICAgICAgICAgIGh3X2luZm8tPnUueGNfY2F0LmNibV9sZW4gPQorICAg ICAgICAgICAgICAgICAgICAgICAgc3lzY3RsLnUucHNyX2FsbG9jLnUuY2F0X2luZm8uY2JtX2xl bjsKKyAgICAgICAgICAgIGh3X2luZm8tPnUueGNfY2F0LmNkcF9lbmFibGVkID0gZmFsc2U7CiAg ICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAzOgorICAgIGNhc2UgWENfUFNSX0ZF QVRfQ0FUX0wzOgogICAgICAgICBzeXNjdGwudS5wc3JfYWxsb2MuY21kID0gWEVOX1NZU0NUTF9Q U1JfQUxMT0NfZ2V0X2wzX2luZm87CiAgICAgICAgIHJjID0geGNfc3lzY3RsKHhjaCwgJnN5c2N0 bCk7CiAgICAgICAgIGlmICggIXJjICkKICAgICAgICAgewotICAgICAgICAgICAgKmNvc19tYXgg PSBzeXNjdGwudS5wc3JfYWxsb2MudS5jYXRfaW5mby5jb3NfbWF4OwotICAgICAgICAgICAgKmNi bV9sZW4gPSBzeXNjdGwudS5wc3JfYWxsb2MudS5jYXRfaW5mby5jYm1fbGVuOwotICAgICAgICAg ICAgKmNkcF9lbmFibGVkID0gc3lzY3RsLnUucHNyX2FsbG9jLnUuY2F0X2luZm8uZmxhZ3MgJgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1NZU0NUTF9QU1JfQUxMT0NfTDNfQ0RQOwor ICAgICAgICAgICAgaHdfaW5mby0+dS54Y19jYXQuY29zX21heCA9CisgICAgICAgICAgICAgICAg ICAgICAgICBzeXNjdGwudS5wc3JfYWxsb2MudS5jYXRfaW5mby5jb3NfbWF4OworICAgICAgICAg ICAgaHdfaW5mby0+dS54Y19jYXQuY2JtX2xlbiA9CisgICAgICAgICAgICAgICAgICAgICAgICBz eXNjdGwudS5wc3JfYWxsb2MudS5jYXRfaW5mby5jYm1fbGVuOworICAgICAgICAgICAgaHdfaW5m by0+dS54Y19jYXQuY2RwX2VuYWJsZWQgPQorICAgICAgICAgICAgICAgICAgICAgICAgc3lzY3Rs LnUucHNyX2FsbG9jLnUuY2F0X2luZm8uZmxhZ3MgJgorICAgICAgICAgICAgICAgICAgICAgICAg WEVOX1NZU0NUTF9QU1JfQUxMT0NfTDNfQ0RQOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor ICAgIGNhc2UgWENfUFNSX0ZFQVRfTUJBOgorICAgICAgICBzeXNjdGwudS5wc3JfYWxsb2MuY21k ID0gWEVOX1NZU0NUTF9QU1JfQUxMT0NfZ2V0X21iYV9pbmZvOworICAgICAgICByYyA9IHhjX3N5 c2N0bCh4Y2gsICZzeXNjdGwpOworICAgICAgICBpZiAoICFyYyApCisgICAgICAgIHsKKyAgICAg ICAgICAgIGh3X2luZm8tPnUueGNfbWJhLmNvc19tYXggPQorICAgICAgICAgICAgICAgICAgICAg ICAgc3lzY3RsLnUucHNyX2FsbG9jLnUubWJhX2luZm8uY29zX21heDsKKyAgICAgICAgICAgIGh3 X2luZm8tPnUueGNfbWJhLnRocnRsX21heCA9CisgICAgICAgICAgICAgICAgICAgICAgICBzeXNj dGwudS5wc3JfYWxsb2MudS5tYmFfaW5mby50aHJ0bF9tYXg7CisgICAgICAgICAgICBod19pbmZv LT51LnhjX21iYS5saW5lYXIgPQorICAgICAgICAgICAgICAgICAgICAgICAgc3lzY3RsLnUucHNy X2FsbG9jLnUubWJhX2luZm8uZmxhZ3MgJgorICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1NZ U0NUTF9QU1JfQUxMT0NfTUJBX0xJTkVBUjsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAg ICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcHNyLmMgYi90b29scy9s aWJ4bC9saWJ4bF9wc3IuYwppbmRleCA0YTY5NzhlLi5kZDQxMmNjIDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bF9wc3IuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9wc3IuYwpAQCAtMzYx LDYgKzM2MSwyNyBAQCBpbnQgbGlieGxfcHNyX2NhdF9nZXRfY2JtKGxpYnhsX2N0eCAqY3R4LCB1 aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyB4Y19wc3JfZmVhdF90 eXBlIGxpYnhsX19mZWF0X3R5cGVfdG9fbGlieGNfZmVhdF90eXBlKAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX3Bzcl9mZWF0X3R5cGUgdHlwZSwgdW5zaWduZWQgaW50IGx2bCkK K3sKKyAgICB4Y19wc3JfZmVhdF90eXBlIHhjX3R5cGUgPSBYQ19QU1JfRkVBVF9VTktOT1dOOwor CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBMSUJYTF9QU1JfRkVBVF9UWVBFX0NBVDoK KyAgICAgICAgaWYgKGx2bCA9PSAzKQorICAgICAgICAgICAgeGNfdHlwZSA9IFhDX1BTUl9GRUFU X0NBVF9MMzsKKyAgICAgICAgaWYgKGx2bCA9PSAyKQorICAgICAgICAgICAgeGNfdHlwZSA9IFhD X1BTUl9GRUFUX0NBVF9MMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMSUJYTF9QU1JfRkVB VF9UWVBFX01CQToKKyAgICAgICAgeGNfdHlwZSA9IFhDX1BTUl9GRUFUX01CQTsKKyAgICBkZWZh dWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4geGNfdHlwZTsKK30KKwog aW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRf aW5mbyAqKmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm5y LCB1bnNpZ25lZCBpbnQgbHZsKQogewpAQCAtMzY5LDYgKzM5MCw4IEBAIGludCBsaWJ4bF9wc3Jf Y2F0X2dldF9pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAog ICAgIGludCBpID0gMCwgc29ja2V0aWQsIG5yX3NvY2tldHM7CiAgICAgbGlieGxfYml0bWFwIHNv Y2tldG1hcDsKICAgICBsaWJ4bF9wc3JfY2F0X2luZm8gKnB0cjsKKyAgICB4Y19wc3JfaHdfaW5m byBod19pbmZvOworICAgIHhjX3Bzcl9mZWF0X3R5cGUgeGNfdHlwZTsKIAogICAgIGxpYnhsX2Jp dG1hcF9pbml0KCZzb2NrZXRtYXApOwogCkBAIC0zODUsMTYgKzQwOCwyNyBAQCBpbnQgbGlieGxf cHNyX2NhdF9nZXRfaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZvICoqaW5m bywKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCisgICAgeGNfdHlwZSA9IGxpYnhsX19mZWF0 X3R5cGVfdG9fbGlieGNfZmVhdF90eXBlKExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FULCBsdmwpOwor ICAgIGlmICh4Y190eXBlID09IFhDX1BTUl9GRUFUX1VOS05PV04pIHsKKyAgICAgICAgTE9HKEVS Uk9SLCAiZmVhdHVyZSB0eXBlIG9yIGx2bCBpcyB3cm9uZyIpOworICAgICAgICByYyA9IEVSUk9S X0ZBSUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKwogICAgIHB0ciA9IGxpYnhsX19tYWxs b2MoTk9HQywgbnJfc29ja2V0cyAqIHNpemVvZihsaWJ4bF9wc3JfY2F0X2luZm8pKTsKIAogICAg IGxpYnhsX2Zvcl9lYWNoX3NldF9iaXQoc29ja2V0aWQsIHNvY2tldG1hcCkgewogICAgICAgICBw dHJbaV0uaWQgPSBzb2NrZXRpZDsKLSAgICAgICAgaWYgKHhjX3Bzcl9jYXRfZ2V0X2luZm8oY3R4 LT54Y2gsIHNvY2tldGlkLCBsdmwsICZwdHJbaV0uY29zX21heCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnB0cltpXS5jYm1fbGVuLCAmcHRyW2ldLmNkcF9lbmFibGVkKSkgewor ICAgICAgICBpZiAoeGNfcHNyX2dldF9od19pbmZvKGN0eC0+eGNoLCBzb2NrZXRpZCwgeGNfdHlw ZSwgJmh3X2luZm8pKSB7CiAgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CiAgICAgICAgICAg ICBmcmVlKHB0cik7CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQorCisgICAgICAg IHB0cltpXS5jb3NfbWF4ID0gaHdfaW5mby51LnhjX2NhdC5jb3NfbWF4OworICAgICAgICBwdHJb aV0uY2JtX2xlbiA9IGh3X2luZm8udS54Y19jYXQuY2JtX2xlbjsKKyAgICAgICAgcHRyW2ldLmNk cF9lbmFibGVkID0gaHdfaW5mby51LnhjX2NhdC5jZHBfZW5hYmxlZDsKKwogICAgICAgICBpKys7 CiAgICAgfQogCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=