From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v10 01/11] x86: implement get hw info flow for MBA Date: Tue, 19 Dec 2017 08:42:12 +0800 Message-ID: <1513644142-50972-2-git-send-email-yi.y.sun@linux.intel.com> References: <1513644142-50972-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 us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eR72B-0007MS-74 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2017 01:49:31 +0000 In-Reply-To: <1513644142-50972-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Yi Sun , Andrew Cooper , Jan Beulich , Chao Peng , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGdldCBIVyBpbmZvIGZsb3cgZm9yIE1CQSBpbmNsdWRpbmcg aXRzIGNhbGxiYWNrCmZ1bmN0aW9uIGFuZCBzeXNjdGwgaW50ZXJmYWNlLgoKU2lnbmVkLW9mZi1i eTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0 cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUg TW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IENoYW8gUGVuZyA8Y2hhby5wLnBlbmdA bGludXguaW50ZWwuY29tPgoKdjEwOgogICAgLSBkZWNsYXJlIGRhdGEgYXJyYXkgaW4gdG9wIGNh c2UgdG8gYXZvaWQgZ2NjIDcuMiB3YXJuaW5nLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQp2NzoKICAgIC0gY2hhbmdlICdQU1JfSU5GT19JRFhfTUJBX0ZMQUcnIHRvICdQU1JfSU5G T19JRFhfTUJBX0ZMQUdTJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjU6CiAg ICAtIHVzZSBBU1NFUlQgaW4gJ21iYV9nZXRfZmVhdF9pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBi eSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjb3JyZWN0IGluaXRpYWxpemF0aW9uIGZvcm1hdCBv ZiAnZGF0YVtQU1JfSU5GT19BUlJBWV9TSVpFXScuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIg UGF1IE1vbm7DqSBhbmQgSmFuIEJldWxpY2gpCnY0OgogICAgLSByZW1vdmUgJ0FMTE9DXycgZnJv bSBtYWNybyBuYW1lcy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAg LSBpbml0aWFsaXplICdkYXRhW1BTUl9JTkZPX0FSUkFZX1NJWkVdJyB0byAwIHRvIHByZXZlbnQg dG8gbGVhayBzdGFjayBkYXRhLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kp CnYzOgogICAgLSByZXBsYWNlICdQU1JfVkFMX1RZUEVfTUJBJyB0byAnUFNSX1RZUEVfTUJBX1RI UlRMJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQp2MjoKICAgIC0gdXNl ICdYRU5fU1lTQ1RMX1BTUl9NQkFfTElORUFSJyB0byBzZXQgTUJBIGZlYXR1cmUgSFcgaW5mby4K ICAgICAgKHN1Z2dlc3RlZCBieSBDaGFvIFBlbmcpCnYxOgogICAgLSBzb3J0ICdQU1JfSU5GT19J RFhfJyBtYWNyb3MgYXMgZmVhdHVyZS4KICAgICAgKHN1Z2dlc3RlZCBieSBDaGFvIFBlbmcpCiAg ICAtIHJlbmFtZSAnUFNSX0lORk9fSURYX01CQV9MSU5FQVInIHRvICdQU1JfSU5GT19JRFhfTUJB X0ZMQUcnLgogICAgLSByZW5hbWUgJ2xpbmVhcicgaW4gJ3N0cnVjdCBtYmFfaW5mbycgdG8gJ2Zs YWdzJyBmb3IgZnV0dXJlIGV4dGVuc2lvbi4KLS0tCiBDb25maWcubWsgICAgICAgICAgICAgICAg ICAgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3Bzci5jICAgICAgICAg IHwgMTQgKysrKysrKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9zeXNjdGwuYyAgICAgICB8IDI3ICsr KysrKysrKysrKysrKysrKysrKy0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaCAgIHwg IDIgKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCB8ICA4ICsrKysrKysrCiA1IGZpbGVz IGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L0NvbmZpZy5tayBiL0NvbmZpZy5tawppbmRleCA1MWFkYzI3Li4xOGY1YzM0IDEwMDY0NAotLS0g YS9Db25maWcubWsKKysrIGIvQ29uZmlnLm1rCkBAIC0yNjAsMTcgKzI2MCwxNyBAQCBRRU1VX1RS QURJVElPTkFMX1JFVklTSU9OID89ICQoUUVNVV9UQUcpCiBlbmRpZgogCiBpZmVxICgkKEdJVF9I VFRQKSx5KQotT1ZNRl9VUFNUUkVBTV9VUkwgPz0gaHR0cDovL3hlbmJpdHMueGVuLm9yZy9naXQt aHR0cC9vdm1mLmdpdAotUUVNVV9VUFNUUkVBTV9VUkwgPz0gaHR0cDovL3hlbmJpdHMueGVuLm9y Zy9naXQtaHR0cC9xZW11LXhlbi5naXQKLVFFTVVfVFJBRElUSU9OQUxfVVJMID89IGh0dHA6Ly94 ZW5iaXRzLnhlbi5vcmcvZ2l0LWh0dHAvcWVtdS14ZW4tdHJhZGl0aW9uYWwuZ2l0Ci1TRUFCSU9T X1VQU1RSRUFNX1VSTCA/PSBodHRwOi8veGVuYml0cy54ZW4ub3JnL2dpdC1odHRwL3NlYWJpb3Mu Z2l0Ci1NSU5JT1NfVVBTVFJFQU1fVVJMID89IGh0dHA6Ly94ZW5iaXRzLnhlbi5vcmcvZ2l0LWh0 dHAvbWluaS1vcy5naXQKK09WTUZfVVBTVFJFQU1fVVJMID89IGh0dHA6Ly92dC1zeW5jLnNoLmlu dGVsLmNvbS9naXQtaHR0cC9vdm1mLmdpdAorUUVNVV9VUFNUUkVBTV9VUkwgPz0gaHR0cDovL3Z0 LXN5bmMuc2guaW50ZWwuY29tL2dpdC1odHRwL3FlbXUteGVuLmdpdAorUUVNVV9UUkFESVRJT05B TF9VUkwgPz0gaHR0cDovL3Z0LXN5bmMuc2guaW50ZWwuY29tL2dpdC1odHRwL3FlbXUteGVuLXRy YWRpdGlvbmFsLmdpdAorU0VBQklPU19VUFNUUkVBTV9VUkwgPz0gaHR0cDovL3Z0LXN5bmMuc2gu aW50ZWwuY29tL2dpdC1odHRwL3NlYWJpb3MuZ2l0CitNSU5JT1NfVVBTVFJFQU1fVVJMID89IGh0 dHA6Ly92dC1zeW5jLnNoLmludGVsLmNvbS9naXQtaHR0cC9taW5pLW9zLmdpdAogZWxzZQotT1ZN Rl9VUFNUUkVBTV9VUkwgPz0gZ2l0Oi8veGVuYml0cy54ZW4ub3JnL292bWYuZ2l0Ci1RRU1VX1VQ U1RSRUFNX1VSTCA/PSBnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcvcWVtdS14ZW4uZ2l0Ci1RRU1VX1RS QURJVElPTkFMX1VSTCA/PSBnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcvcWVtdS14ZW4tdHJhZGl0aW9u YWwuZ2l0Ci1TRUFCSU9TX1VQU1RSRUFNX1VSTCA/PSBnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcvc2Vh Ymlvcy5naXQKLU1JTklPU19VUFNUUkVBTV9VUkwgPz0gZ2l0Oi8veGVuYml0cy54ZW4ub3JnL21p bmktb3MuZ2l0CitPVk1GX1VQU1RSRUFNX1VSTCA/PSBnaXQ6Ly92dC1zeW5jLnNoLmludGVsLmNv bS9vdm1mLmdpdAorUUVNVV9VUFNUUkVBTV9VUkwgPz0gZ2l0Oi8vdnQtc3luYy5zaC5pbnRlbC5j b20vcWVtdS14ZW4uZ2l0CitRRU1VX1RSQURJVElPTkFMX1VSTCA/PSBnaXQ6Ly92dC1zeW5jLnNo LmludGVsLmNvbS9xZW11LXhlbi10cmFkaXRpb25hbC5naXQKK1NFQUJJT1NfVVBTVFJFQU1fVVJM ID89IGdpdDovL3Z0LXN5bmMuc2guaW50ZWwuY29tL3NlYWJpb3MuZ2l0CitNSU5JT1NfVVBTVFJF QU1fVVJMID89IGdpdDovL3Z0LXN5bmMuc2guaW50ZWwuY29tL21pbmktb3MuZ2l0CiBlbmRpZgog T1ZNRl9VUFNUUkVBTV9SRVZJU0lPTiA/PSA5NDdmMzczN2FiZjY1ZmRhNjNmM2ZmZDk3ZmRkZmE2 OTg2OTg2ODY4CiBRRU1VX1VQU1RSRUFNX1JFVklTSU9OID89IG1hc3RlcgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDg3MmJhZGUuLmE0 OTAxZDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYv cHNyLmMKQEAgLTI2Myw2ICsyNjMsMTAgQEAgc3RhdGljIGVudW0gcHNyX2ZlYXRfdHlwZSBwc3Jf dHlwZV90b19mZWF0X3R5cGUoZW51bSBwc3JfdHlwZSB0eXBlKQogICAgICAgICBmZWF0X3R5cGUg PSBGRUFUX1RZUEVfTDJfQ0FUOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgUFNSX1RZUEVf TUJBX1RIUlRMOgorICAgICAgICBmZWF0X3R5cGUgPSBGRUFUX1RZUEVfTUJBOworICAgICAgICBi cmVhazsKKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwogICAg IH0KQEAgLTQ4MSw3ICs0ODUsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIGwy X2NhdF9wcm9wcyA9IHsKIHN0YXRpYyBib29sIG1iYV9nZXRfZmVhdF9pbmZvKGNvbnN0IHN0cnVj dCBmZWF0X25vZGUgKmZlYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBkYXRhW10sIHVuc2lnbmVkIGludCBhcnJheV9sZW4pCiB7Ci0gICAgcmV0dXJuIGZhbHNlOwor ICAgIEFTU0VSVChhcnJheV9sZW4gPT0gUFNSX0lORk9fQVJSQVlfU0laRSk7CisKKyAgICBkYXRh W1BTUl9JTkZPX0lEWF9DT1NfTUFYXSA9IGZlYXQtPmNvc19tYXg7CisgICAgZGF0YVtQU1JfSU5G T19JRFhfTUJBX1RIUlRMX01BWF0gPSBmZWF0LT5tYmEudGhydGxfbWF4OworCisgICAgaWYgKCBm ZWF0LT5tYmEubGluZWFyICkKKyAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfTUJBX0ZMQUdTXSB8 PSBYRU5fU1lTQ1RMX1BTUl9NQkFfTElORUFSOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0 YXRpYyB2b2lkIG1iYV93cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgdWludDMyX3QgdmFsLApk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3N5c2N0bC5jIGIveGVuL2FyY2gveDg2L3N5c2N0bC5j CmluZGV4IDZkNDhjYWMuLjRkMzcyZGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zeXNjdGwu YworKysgYi94ZW4vYXJjaC94ODYvc3lzY3RsLmMKQEAgLTE3MiwxMiArMTcyLDEyIEBAIGxvbmcg YXJjaF9kb19zeXNjdGwoCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBYRU5fU1lTQ1RMX3Bz cl9hbGxvYzoKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGRhdGFbUFNSX0lORk9fQVJSQVlfU0la RV0gPSB7IH07CisKICAgICAgICAgc3dpdGNoICggc3lzY3RsLT51LnBzcl9hbGxvYy5jbWQgKQog ICAgICAgICB7Ci0gICAgICAgICAgICB1aW50MzJfdCBkYXRhW1BTUl9JTkZPX0FSUkFZX1NJWkVd OwotCiAgICAgICAgIGNhc2UgWEVOX1NZU0NUTF9QU1JfZ2V0X2wzX2luZm86Ci0gICAgICAgIHsK ICAgICAgICAgICAgIHJldCA9IHBzcl9nZXRfaW5mbyhzeXNjdGwtPnUucHNyX2FsbG9jLnRhcmdl dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU1JfVFlQRV9MM19DQk0sIGRhdGEs IEFSUkFZX1NJWkUoZGF0YSkpOwogICAgICAgICAgICAgaWYgKCByZXQgKQpAQCAtMTkzLDEwICsx OTMsOCBAQCBsb25nIGFyY2hfZG9fc3lzY3RsKAogICAgICAgICAgICAgaWYgKCBfX2NvcHlfZmll bGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwgdS5wc3JfYWxsb2MpICkKICAgICAgICAgICAg ICAgICByZXQgPSAtRUZBVUxUOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KIAogICAg ICAgICBjYXNlIFhFTl9TWVNDVExfUFNSX2dldF9sMl9pbmZvOgotICAgICAgICB7CiAgICAgICAg ICAgICByZXQgPSBwc3JfZ2V0X2luZm8oc3lzY3RsLT51LnBzcl9hbGxvYy50YXJnZXQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX1RZUEVfTDJfQ0JNLCBkYXRhLCBBUlJBWV9T SVpFKGRhdGEpKTsKICAgICAgICAgICAgIGlmICggcmV0ICkKQEAgLTIxMiwxMyArMjEwLDMwIEBA IGxvbmcgYXJjaF9kb19zeXNjdGwoCiAgICAgICAgICAgICBpZiAoIF9fY29weV9maWVsZF90b19n dWVzdCh1X3N5c2N0bCwgc3lzY3RsLCB1LnBzcl9hbGxvYykgKQogICAgICAgICAgICAgICAgIHJl dCA9IC1FRkFVTFQ7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQorCisgICAgICAgIGNh c2UgWEVOX1NZU0NUTF9QU1JfZ2V0X21iYV9pbmZvOgorICAgICAgICAgICAgcmV0ID0gcHNyX2dl dF9pbmZvKHN5c2N0bC0+dS5wc3JfYWxsb2MudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBTUl9UWVBFX01CQV9USFJUTCwgZGF0YSwgQVJSQVlfU0laRShkYXRhKSk7Cisg ICAgICAgICAgICBpZiAoIHJldCApCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg ICAgIHN5c2N0bC0+dS5wc3JfYWxsb2MudS5tYmFfaW5mby5jb3NfbWF4ID0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfQ09TX01BWF07Cisg ICAgICAgICAgICBzeXNjdGwtPnUucHNyX2FsbG9jLnUubWJhX2luZm8udGhydGxfbWF4ID0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfTUJB X1RIUlRMX01BWF07CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2FsbG9jLnUubWJhX2luZm8u ZmxhZ3MgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9J TkZPX0lEWF9NQkFfRkxBR1NdOworCisgICAgICAgICAgICBpZiAoIF9fY29weV9maWVsZF90b19n dWVzdCh1X3N5c2N0bCwgc3lzY3RsLCB1LnBzcl9hbGxvYykgKQorICAgICAgICAgICAgICAgIHJl dCA9IC1FRkFVTFQ7CisgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBkZWZhdWx0OgogICAg ICAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg fQogICAgICAgICBicmVhazsKKyAgICB9CiAKICAgICBjYXNlIFhFTl9TWVNDVExfZ2V0X2NwdV9s ZXZlbGxpbmdfY2FwczoKICAgICAgICAgc3lzY3RsLT51LmNwdV9sZXZlbGxpbmdfY2Fwcy5jYXBz ID0gbGV2ZWxsaW5nX2NhcHM7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaAppbmRleCAzY2Y1NDRhLi5jMjI1N2RhIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvcHNyLmgKQEAgLTM5LDYgKzM5LDggQEAKICNkZWZpbmUgUFNSX0lORk9fSURYX0NPU19NQVgg ICAgICAgICAgICAwCiAjZGVmaW5lIFBTUl9JTkZPX0lEWF9DQVRfQ0JNX0xFTiAgICAgICAgMQog I2RlZmluZSBQU1JfSU5GT19JRFhfQ0FUX0ZMQUdTICAgICAgICAgIDIKKyNkZWZpbmUgUFNSX0lO Rk9fSURYX01CQV9USFJUTF9NQVggICAgICAxCisjZGVmaW5lIFBTUl9JTkZPX0lEWF9NQkFfRkxB R1MgICAgICAgICAgMgogI2RlZmluZSBQU1JfSU5GT19BUlJBWV9TSVpFICAgICAgICAgICAgIDMK IAogc3RydWN0IHBzcl9jbXRfbDMgewpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3N5 c2N0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCmluZGV4IGE1MGUzNDUuLmY3ZjI2 YzMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaAorKysgYi94ZW4vaW5j bHVkZS9wdWJsaWMvc3lzY3RsLmgKQEAgLTY5OCw2ICs2OTgsNyBAQCBzdHJ1Y3QgeGVuX3N5c2N0 bF9wY2l0b3BvaW5mbyB7CiAKICNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfZ2V0X2wzX2luZm8gICAg ICAgICAgICAgICAwCiAjZGVmaW5lIFhFTl9TWVNDVExfUFNSX2dldF9sMl9pbmZvICAgICAgICAg ICAgICAgMQorI2RlZmluZSBYRU5fU1lTQ1RMX1BTUl9nZXRfbWJhX2luZm8gICAgICAgICAgICAg IDIKIHN0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9hbGxvYyB7CiAgICAgdWludDMyX3QgY21kOyAgICAg ICAvKiBJTjogWEVOX1NZU0NUTF9QU1JfKiAqLwogICAgIHVpbnQzMl90IHRhcmdldDsgICAgLyog SU4gKi8KQEAgLTcwOCw2ICs3MDksMTMgQEAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2FsbG9jIHsK ICNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfQ0FUX0wzX0NEUCAgICAgICAoMXUgPDwgMCkKICAgICAg ICAgICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyogT1VUOiBDQVQgZmxhZ3MgKi8KICAgICAgICAg fSBjYXRfaW5mbzsKKworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgdGhy dGxfbWF4OyAvKiBPVVQ6IE1heGltdW0gdGhyb3R0bGUgKi8KKyAgICAgICAgICAgIHVpbnQzMl90 IGNvc19tYXg7ICAgLyogT1VUOiBNYXhpbXVtIENPUyAqLworI2RlZmluZSBYRU5fU1lTQ1RMX1BT Ul9NQkFfTElORUFSICAgICAgKDF1IDw8IDApCisgICAgICAgICAgICB1aW50MzJfdCBmbGFnczsg ICAgIC8qIE9VVDogTUJBIGZsYWdzICovCisgICAgICAgIH0gbWJhX2luZm87CiAgICAgfSB1Owog fTsKIAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs