From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3 09/32] libxl: switch HVM domain building to use xc_dom_* helpers Date: Fri, 3 Jul 2015 13:34:47 +0200 Message-ID: <1435923310-9019-10-git-send-email-roger.pau@citrix.com> References: <1435923310-9019-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZAzFc-0002vz-1e for xen-devel@lists.xenproject.org; Fri, 03 Jul 2015 11:35:24 +0000 In-Reply-To: <1435923310-9019-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Wei Liu , Stefano Stabellini , Ian Jackson , Ian Campbell , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org Tm93IHRoYXQgd2UgaGF2ZSBhbGwgdGhlIGNvZGUgaW4gcGxhY2UgSFZNIGRvbWFpbiBidWlsZGlu ZyBpbiBsaWJ4bCBjYW4gYmUKc3dpdGNoZWQgdG8gdXNlIHRoZSB4Y19kb21fKiBmYW1pbHkgb2Yg ZnVuY3Rpb25zLCBqdXN0IGxpa2UgdGhleSBhcmUgdXNlZCBpbgpvcmRlciB0byBidWlsZCBQViBn dWVzdHMuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogU3Rl ZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4LmNvbT4KQ2M6IElh biBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1 MkBjaXRyaXguY29tPgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICAgfCAyMjQgKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogdG9vbHMvbGlieGwvbGli eGxfaW50ZXJuYWwuaCB8ICAgMiArLQogdG9vbHMvbGlieGwvbGlieGxfdm51bWEuYyAgICB8ICAx MiArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDk5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGli eGxfZG9tLmMKaW5kZXggMmJhZTI3Ny4uNDgwYjdlNyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfZG9tLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKQEAgLTYwOSw2ICs2MDks NjQgQEAgc3RhdGljIGludCBzZXRfdm51bWFfaW5mbyhsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBk b21pZCwKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RvbShs aWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICBsaWJ4bF9kb21haW5f YnVpbGRfaW5mbyAqaW5mbywgbGlieGxfX2RvbWFpbl9idWlsZF9zdGF0ZSAqc3RhdGUsCisgICAg ICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQoreworICAgIGxpYnhsX2N0eCAqY3R4 ID0gbGlieGxfX2djX293bmVyKGdjKTsKKyAgICB1aW50NjRfdCBtZW1fa2I7CisgICAgaW50IHJl dDsKKworICAgIGlmICggKHJldCA9IHhjX2RvbV9ib290X3hlbl9pbml0KGRvbSwgY3R4LT54Y2gs IGRvbWlkKSkgIT0gMCApIHsKKyAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9ib290X3hlbl9p bml0IGZhaWxlZCIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisjaWZkZWYgR1VFU1RfUkFN X0JBU0UKKyAgICBpZiAoIChyZXQgPSB4Y19kb21fcmFtYmFzZV9pbml0KGRvbSwgR1VFU1RfUkFN X0JBU0UpKSAhPSAwICkgeworICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX3JhbWJhc2UgZmFp bGVkIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyNlbmRpZgorICAgIGlmICggKHJldCA9 IHhjX2RvbV9wYXJzZV9pbWFnZShkb20pKSAhPSAwICkgeworICAgICAgICBMT0dFKEVSUk9SLCAi eGNfZG9tX3BhcnNlX2ltYWdlIGZhaWxlZCIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9Cisg ICAgaWYgKCAocmV0ID0gbGlieGxfX2FyY2hfZG9tYWluX2luaXRfaHdfZGVzY3JpcHRpb24oZ2Ms IGluZm8sIHN0YXRlLCBkb20pKSAhPSAwICkgeworICAgICAgICBMT0dFKEVSUk9SLCAibGlieGxf X2FyY2hfZG9tYWluX2luaXRfaHdfZGVzY3JpcHRpb24gZmFpbGVkIik7CisgICAgICAgIGdvdG8g b3V0OworICAgIH0KKworICAgIG1lbV9rYiA9IGRvbS0+Y29udGFpbmVyX3R5cGUgPT0gWENfRE9N X0hWTV9DT05UQUlORVIgPworICAgICAgICAgICAgIChpbmZvLT5tYXhfbWVta2IgLSBpbmZvLT52 aWRlb19tZW1rYikgOiBpbmZvLT50YXJnZXRfbWVta2I7CisgICAgaWYgKCAocmV0ID0geGNfZG9t X21lbV9pbml0KGRvbSwgbWVtX2tiIC8gMTAyNCkpICE9IDAgKSB7CisgICAgICAgIExPR0UoRVJS T1IsICJ4Y19kb21fbWVtX2luaXQgZmFpbGVkIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0K KyAgICBpZiAoIChyZXQgPSB4Y19kb21fYm9vdF9tZW1faW5pdChkb20pKSAhPSAwICkgeworICAg ICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX2Jvb3RfbWVtX2luaXQgZmFpbGVkIik7CisgICAgICAg IGdvdG8gb3V0OworICAgIH0KKyAgICBpZiAoIChyZXQgPSBsaWJ4bF9fYXJjaF9kb21haW5fZmlu YWxpc2VfaHdfZGVzY3JpcHRpb24oZ2MsIGluZm8sIGRvbSkpICE9IDAgKSB7CisgICAgICAgIExP R0UoRVJST1IsICJsaWJ4bF9fYXJjaF9kb21haW5fZmluYWxpc2VfaHdfZGVzY3JpcHRpb24gZmFp bGVkIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBpZiAoIChyZXQgPSB4Y19kb21f YnVpbGRfaW1hZ2UoZG9tKSkgIT0gMCApIHsKKyAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9i dWlsZF9pbWFnZSBmYWlsZWQiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIGlmICgg KHJldCA9IHhjX2RvbV9ib290X2ltYWdlKGRvbSkpICE9IDAgKSB7CisgICAgICAgIExPR0UoRVJS T1IsICJ4Y19kb21fYm9vdF9pbWFnZSBmYWlsZWQiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAg fQorICAgIGlmICggKHJldCA9IHhjX2RvbV9nbnR0YWJfaW5pdChkb20pKSAhPSAwICkgeworICAg ICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX2dudHRhYl9pbml0IGZhaWxlZCIpOworICAgICAgICBn b3RvIG91dDsKKyAgICB9CisKK291dDoKKyAgICByZXR1cm4gcmV0OworfQorCiBpbnQgbGlieGxf X2J1aWxkX3B2KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgIGxp YnhsX2RvbWFpbl9idWlsZF9pbmZvICppbmZvLCBsaWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlICpz dGF0ZSkKIHsKQEAgLTY5OSw0OCArNzU3LDkgQEAgaW50IGxpYnhsX19idWlsZF9wdihsaWJ4bF9f Z2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgIGRvbS0+dm5vZGVfdG9fcG5vZGVb aV0gPSBpbmZvLT52bnVtYV9ub2Rlc1tpXS5wbm9kZTsKICAgICB9CiAKLSAgICBpZiAoIChyZXQg PSB4Y19kb21fYm9vdF94ZW5faW5pdChkb20sIGN0eC0+eGNoLCBkb21pZCkpICE9IDAgKSB7Ci0g ICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21fYm9vdF94ZW5faW5pdCBmYWlsZWQiKTsKLSAgICAg ICAgZ290byBvdXQ7Ci0gICAgfQotI2lmZGVmIEdVRVNUX1JBTV9CQVNFCi0gICAgaWYgKCAocmV0 ID0geGNfZG9tX3JhbWJhc2VfaW5pdChkb20sIEdVRVNUX1JBTV9CQVNFKSkgIT0gMCApIHsKLSAg ICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9yYW1iYXNlIGZhaWxlZCIpOwotICAgICAgICBnb3Rv IG91dDsKLSAgICB9Ci0jZW5kaWYKLSAgICBpZiAoIChyZXQgPSB4Y19kb21fcGFyc2VfaW1hZ2Uo ZG9tKSkgIT0gMCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9wYXJzZV9pbWFnZSBm YWlsZWQiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotICAgIGlmICggKHJldCA9IGxpYnhs X19hcmNoX2RvbWFpbl9pbml0X2h3X2Rlc2NyaXB0aW9uKGdjLCBpbmZvLCBzdGF0ZSwgZG9tKSkg IT0gMCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwgImxpYnhsX19hcmNoX2RvbWFpbl9pbml0X2h3 X2Rlc2NyaXB0aW9uIGZhaWxlZCIpOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0gICAgaWYg KCAocmV0ID0geGNfZG9tX21lbV9pbml0KGRvbSwgaW5mby0+dGFyZ2V0X21lbWtiIC8gMTAyNCkp ICE9IDAgKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21fbWVtX2luaXQgZmFpbGVkIik7 Ci0gICAgICAgIGdvdG8gb3V0OwotICAgIH0KLSAgICBpZiAoIChyZXQgPSB4Y19kb21fYm9vdF9t ZW1faW5pdChkb20pKSAhPSAwICkgewotICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX2Jvb3Rf bWVtX2luaXQgZmFpbGVkIik7CisgICAgcmV0ID0gbGlieGxfX2J1aWxkX2RvbShnYywgZG9taWQs IGluZm8sIHN0YXRlLCBkb20pOworICAgIGlmIChyZXQgIT0gMCkKICAgICAgICAgZ290byBvdXQ7 Ci0gICAgfQotICAgIGlmICggKHJldCA9IGxpYnhsX19hcmNoX2RvbWFpbl9maW5hbGlzZV9od19k ZXNjcmlwdGlvbihnYywgaW5mbywgZG9tKSkgIT0gMCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwg ImxpYnhsX19hcmNoX2RvbWFpbl9maW5hbGlzZV9od19kZXNjcmlwdGlvbiBmYWlsZWQiKTsKLSAg ICAgICAgZ290byBvdXQ7Ci0gICAgfQotICAgIGlmICggKHJldCA9IHhjX2RvbV9idWlsZF9pbWFn ZShkb20pKSAhPSAwICkgewotICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX2J1aWxkX2ltYWdl IGZhaWxlZCIpOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0gICAgaWYgKCAocmV0ID0geGNf ZG9tX2Jvb3RfaW1hZ2UoZG9tKSkgIT0gMCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwgInhjX2Rv bV9ib290X2ltYWdlIGZhaWxlZCIpOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0gICAgaWYg KCAocmV0ID0geGNfZG9tX2dudHRhYl9pbml0KGRvbSkpICE9IDAgKSB7Ci0gICAgICAgIExPR0Uo RVJST1IsICJ4Y19kb21fZ250dGFiX2luaXQgZmFpbGVkIik7Ci0gICAgICAgIGdvdG8gb3V0Owot ICAgIH0KIAogICAgIGlmICh4Y19kb21fZmVhdHVyZV90cmFuc2xhdGVkKGRvbSkpIHsKICAgICAg ICAgc3RhdGUtPmNvbnNvbGVfbWZuID0gZG9tLT5jb25zb2xlX3BmbjsKQEAgLTgwMCwzOSArODE5 LDM5IEBAIHN0YXRpYyBpbnQgaHZtX2J1aWxkX3NldF9wYXJhbXMoeGNfaW50ZXJmYWNlICpoYW5k bGUsIHVpbnQzMl90IGRvbWlkLAogCiBzdGF0aWMgaW50IGh2bV9idWlsZF9zZXRfeHNfdmFsdWVz KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNf aHZtX2J1aWxkX2FyZ3MgKmFyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIHsKICAgICBjaGFyICpwYXRoID0gTlVMTDsKICAg ICBpbnQgcmV0ID0gMDsKIAotICAgIGlmIChhcmdzLT5zbWJpb3NfbW9kdWxlLmd1ZXN0X2FkZHJf b3V0KSB7CisgICAgaWYgKGRvbS0+c21iaW9zX21vZHVsZS5ndWVzdF9hZGRyX291dCkgewogICAg ICAgICBwYXRoID0gR0NTUFJJTlRGKCIvbG9jYWwvZG9tYWluLyVkLyJIVk1fWFNfU01CSU9TX1BU X0FERFJFU1MsIGRvbWlkKTsKIAogICAgICAgICByZXQgPSBsaWJ4bF9feHNfd3JpdGUoZ2MsIFhC VF9OVUxMLCBwYXRoLCAiMHglIlBSSXg2NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyZ3MtPnNtYmlvc19tb2R1bGUuZ3Vlc3RfYWRkcl9vdXQpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9tLT5zbWJpb3NfbW9kdWxlLmd1ZXN0X2FkZHJfb3V0KTsKICAgICAgICAg aWYgKHJldCkKICAgICAgICAgICAgIGdvdG8gZXJyOwogCiAgICAgICAgIHBhdGggPSBHQ1NQUklO VEYoIi9sb2NhbC9kb21haW4vJWQvIkhWTV9YU19TTUJJT1NfUFRfTEVOR1RILCBkb21pZCk7CiAK ICAgICAgICAgcmV0ID0gbGlieGxfX3hzX3dyaXRlKGdjLCBYQlRfTlVMTCwgcGF0aCwgIjB4JXgi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+c21iaW9zX21vZHVsZS5sZW5n dGgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5zbWJpb3NfbW9kdWxlLmxl bmd0aCk7CiAgICAgICAgIGlmIChyZXQpCiAgICAgICAgICAgICBnb3RvIGVycjsKICAgICB9CiAK LSAgICBpZiAoYXJncy0+YWNwaV9tb2R1bGUuZ3Vlc3RfYWRkcl9vdXQpIHsKKyAgICBpZiAoZG9t LT5hY3BpX21vZHVsZS5ndWVzdF9hZGRyX291dCkgewogICAgICAgICBwYXRoID0gR0NTUFJJTlRG KCIvbG9jYWwvZG9tYWluLyVkLyJIVk1fWFNfQUNQSV9QVF9BRERSRVNTLCBkb21pZCk7CiAKICAg ICAgICAgcmV0ID0gbGlieGxfX3hzX3dyaXRlKGdjLCBYQlRfTlVMTCwgcGF0aCwgIjB4JSJQUkl4 NjQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT5hY3BpX21vZHVsZS5ndWVz dF9hZGRyX291dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb20tPmFjcGlfbW9k dWxlLmd1ZXN0X2FkZHJfb3V0KTsKICAgICAgICAgaWYgKHJldCkKICAgICAgICAgICAgIGdvdG8g ZXJyOwogCiAgICAgICAgIHBhdGggPSBHQ1NQUklOVEYoIi9sb2NhbC9kb21haW4vJWQvIkhWTV9Y U19BQ1BJX1BUX0xFTkdUSCwgZG9taWQpOwogCiAgICAgICAgIHJldCA9IGxpYnhsX194c193cml0 ZShnYywgWEJUX05VTEwsIHBhdGgsICIweCV4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFyZ3MtPmFjcGlfbW9kdWxlLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb20tPmFjcGlfbW9kdWxlLmxlbmd0aCk7CiAgICAgICAgIGlmIChyZXQpCiAgICAgICAg ICAgICBnb3RvIGVycjsKICAgICB9CkBAIC04NDYsNyArODY1LDcgQEAgZXJyOgogCiBzdGF0aWMg aW50IGxpYnhsX19kb21haW5fZmlybXdhcmUobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqaW5mbywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgKmFy Z3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFn ZSAqZG9tKQogewogICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsKICAg ICBjb25zdCBjaGFyICpmaXJtd2FyZTsKQEAgLTg3Miw4ICs4OTEsMTMgQEAgc3RhdGljIGludCBs aWJ4bF9fZG9tYWluX2Zpcm13YXJlKGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgfQogICAgIH0KLSAgICBhcmdzLT5pbWFnZV9maWxlX25hbWUgPSBsaWJ4bF9fYWJz X3BhdGgoZ2MsIGZpcm13YXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9feGVuZmlybXdhcmVkaXJfcGF0aCgpKTsKKworICAgIHJjID0geGNfZG9t X2tlcm5lbF9maWxlKGRvbSwgbGlieGxfX2Fic19wYXRoKGdjLCBmaXJtd2FyZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feGVuZmlybXdh cmVkaXJfcGF0aCgpKSk7CisgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgTE9HRShFUlJPUiwg InhjX2RvbV9rZXJuZWxfZmlsZSBmYWlsZWQiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQog CiAgICAgaWYgKGluZm8tPnUuaHZtLnNtYmlvc19maXJtd2FyZSkgewogICAgICAgICBkYXRhID0g TlVMTDsKQEAgLTg4Nyw4ICs5MTEsOCBAQCBzdGF0aWMgaW50IGxpYnhsX19kb21haW5fZmlybXdh cmUobGlieGxfX2djICpnYywKICAgICAgICAgbGlieGxfX3B0cl9hZGQoZ2MsIGRhdGEpOwogICAg ICAgICBpZiAoZGF0YWxlbikgewogICAgICAgICAgICAgLyogT25seSBhY2NlcHQgbm9uLWVtcHR5 IGZpbGVzICovCi0gICAgICAgICAgICBhcmdzLT5zbWJpb3NfbW9kdWxlLmRhdGEgPSBkYXRhOwot ICAgICAgICAgICAgYXJncy0+c21iaW9zX21vZHVsZS5sZW5ndGggPSAodWludDMyX3QpZGF0YWxl bjsKKyAgICAgICAgICAgIGRvbS0+c21iaW9zX21vZHVsZS5kYXRhID0gZGF0YTsKKyAgICAgICAg ICAgIGRvbS0+c21iaW9zX21vZHVsZS5sZW5ndGggPSAodWludDMyX3QpZGF0YWxlbjsKICAgICAg ICAgfQogICAgIH0KIApAQCAtOTA0LDggKzkyOCw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RvbWFp bl9maXJtd2FyZShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBsaWJ4bF9fcHRyX2FkZChnYywgZGF0 YSk7CiAgICAgICAgIGlmIChkYXRhbGVuKSB7CiAgICAgICAgICAgICAvKiBPbmx5IGFjY2VwdCBu b24tZW1wdHkgZmlsZXMgKi8KLSAgICAgICAgICAgIGFyZ3MtPmFjcGlfbW9kdWxlLmRhdGEgPSBk YXRhOwotICAgICAgICAgICAgYXJncy0+YWNwaV9tb2R1bGUubGVuZ3RoID0gKHVpbnQzMl90KWRh dGFsZW47CisgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxlLmRhdGEgPSBkYXRhOworICAgICAg ICAgICAgZG9tLT5hY3BpX21vZHVsZS5sZW5ndGggPSAodWludDMyX3QpZGF0YWxlbjsKICAgICAg ICAgfQogICAgIH0KIApAQCAtOTE5LDUwICs5NDMsNjAgQEAgaW50IGxpYnhsX19idWlsZF9odm0o bGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgIGxpYnhsX19kb21h aW5fYnVpbGRfc3RhdGUgKnN0YXRlKQogewogICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2dj X293bmVyKGdjKTsKLSAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgYXJncyA9IHt9OwotICAg IGludCByZXQsIHJjID0gRVJST1JfRkFJTDsKLSAgICB1aW50NjRfdCBtbWlvX3N0YXJ0LCBsb3dt ZW1fZW5kLCBoaWdobWVtX2VuZDsKKyAgICBpbnQgcmV0OworICAgIHVpbnQ2NF90IG1taW9fc3Rh cnQsIGxvd21lbV9lbmQsIGhpZ2htZW1fZW5kLCBtZW1fc2l6ZTsKKyAgICBzdHJ1Y3QgeGNfZG9t X2ltYWdlICpkb20gPSBOVUxMOworCisgICAgeGNfZG9tX2xvZ2luaXQoY3R4LT54Y2gpOworCisg ICAgZG9tID0geGNfZG9tX2FsbG9jYXRlKGN0eC0+eGNoLCBOVUxMLCBOVUxMKTsKKyAgICBpZiAo IWRvbSkgeworICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX2FsbG9jYXRlIGZhaWxlZCIpOwor ICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBkb20tPmNvbnRhaW5lcl90eXBlID0gWENf RE9NX0hWTV9DT05UQUlORVI7CiAKLSAgICBtZW1zZXQoJmFyZ3MsIDAsIHNpemVvZihzdHJ1Y3Qg eGNfaHZtX2J1aWxkX2FyZ3MpKTsKICAgICAvKiBUaGUgcGFyYW1zIGZyb20gdGhlIGNvbmZpZ3Vy YXRpb24gZmlsZSBhcmUgaW4gTWIsIHdoaWNoIGFyZSB0aGVuCiAgICAgICogbXVsdGlwbGllZCBi eSAxIEtiLiBUaGlzIHdhcyB0aGVuIGRpdmlkZWQgb2ZmIHdoZW4gY2FsbGluZwogICAgICAqIHRo ZSBvbGQgeGNfaHZtX2J1aWxkX3RhcmdldF9tZW0oKSB3aGljaCB0aGVuIHR1cm5lZCB0aGVtIHRv IGJ5dGVzLgogICAgICAqIERvIGFsbCB0aGlzIGluIG9uZSBzdGVwIGhlcmUuLi4KICAgICAgKi8K LSAgICBhcmdzLm1lbV9zaXplID0gKHVpbnQ2NF90KShpbmZvLT5tYXhfbWVta2IgLSBpbmZvLT52 aWRlb19tZW1rYikgPDwgMTA7Ci0gICAgYXJncy5tZW1fdGFyZ2V0ID0gKHVpbnQ2NF90KShpbmZv LT50YXJnZXRfbWVta2IgLSBpbmZvLT52aWRlb19tZW1rYikgPDwgMTA7Ci0gICAgYXJncy5jbGFp bV9lbmFibGVkID0gbGlieGxfZGVmYm9vbF92YWwoaW5mby0+Y2xhaW1fbW9kZSk7CisgICAgbWVt X3NpemUgPSAodWludDY0X3QpKGluZm8tPm1heF9tZW1rYiAtIGluZm8tPnZpZGVvX21lbWtiKSA8 PCAxMDsKKyAgICBkb20tPnRhcmdldF9wYWdlcyA9ICh1aW50NjRfdCkoaW5mby0+dGFyZ2V0X21l bWtiIC0gaW5mby0+dmlkZW9fbWVta2IpID4+IDI7CisgICAgZG9tLT5jbGFpbV9lbmFibGVkID0g bGlieGxfZGVmYm9vbF92YWwoaW5mby0+Y2xhaW1fbW9kZSk7CiAgICAgaWYgKGluZm8tPnUuaHZt Lm1taW9faG9sZV9tZW1rYikgewogICAgICAgICB1aW50NjRfdCBtYXhfcmFtX2JlbG93XzRnID0g KDFVTEwgPDwgMzIpIC0KICAgICAgICAgICAgIChpbmZvLT51Lmh2bS5tbWlvX2hvbGVfbWVta2Ig PDwgMTApOwogCiAgICAgICAgIGlmIChtYXhfcmFtX2JlbG93XzRnIDwgSFZNX0JFTE9XXzRHX01N SU9fU1RBUlQpCi0gICAgICAgICAgICBhcmdzLm1taW9fc2l6ZSA9IGluZm8tPnUuaHZtLm1taW9f aG9sZV9tZW1rYiA8PCAxMDsKKyAgICAgICAgICAgIGRvbS0+bW1pb19zaXplID0gaW5mby0+dS5o dm0ubW1pb19ob2xlX21lbWtiIDw8IDEwOwogICAgIH0KLSAgICBpZiAobGlieGxfX2RvbWFpbl9m aXJtd2FyZShnYywgaW5mbywgJmFyZ3MpKSB7CisgICAgaWYgKGxpYnhsX19kb21haW5fZmlybXdh cmUoZ2MsIGluZm8sIGRvbSkpIHsKICAgICAgICAgTE9HKEVSUk9SLCAiaW5pdGlhbGl6aW5nIGRv bWFpbiBmaXJtd2FyZSBmYWlsZWQiKTsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQotICAgIGlm IChhcmdzLm1lbV90YXJnZXQgPT0gMCkKLSAgICAgICAgYXJncy5tZW1fdGFyZ2V0ID0gYXJncy5t ZW1fc2l6ZTsKLSAgICBpZiAoYXJncy5tbWlvX3NpemUgPT0gMCkKLSAgICAgICAgYXJncy5tbWlv X3NpemUgPSBIVk1fQkVMT1dfNEdfTU1JT19MRU5HVEg7Ci0gICAgbG93bWVtX2VuZCA9IGFyZ3Mu bWVtX3NpemU7CisKKyAgICBpZiAoZG9tLT50YXJnZXRfcGFnZXMgPT0gMCkKKyAgICAgICAgZG9t LT50YXJnZXRfcGFnZXMgPSBtZW1fc2l6ZSA+PiBYQ19QQUdFX1NISUZUOworICAgIGlmIChkb20t Pm1taW9fc2l6ZSA9PSAwKQorICAgICAgICBkb20tPm1taW9fc2l6ZSA9IEhWTV9CRUxPV180R19N TUlPX0xFTkdUSDsKKyAgICBsb3dtZW1fZW5kID0gbWVtX3NpemU7CiAgICAgaGlnaG1lbV9lbmQg PSAwOwotICAgIG1taW9fc3RhcnQgPSAoMXVsbCA8PCAzMikgLSBhcmdzLm1taW9fc2l6ZTsKKyAg ICBtbWlvX3N0YXJ0ID0gKDF1bGwgPDwgMzIpIC0gZG9tLT5tbWlvX3NpemU7CiAgICAgaWYgKGxv d21lbV9lbmQgPiBtbWlvX3N0YXJ0KQogICAgIHsKICAgICAgICAgaGlnaG1lbV9lbmQgPSAoMXVs bCA8PCAzMikgKyAobG93bWVtX2VuZCAtIG1taW9fc3RhcnQpOwogICAgICAgICBsb3dtZW1fZW5k ID0gbW1pb19zdGFydDsKICAgICB9Ci0gICAgYXJncy5sb3dtZW1fZW5kID0gbG93bWVtX2VuZDsK LSAgICBhcmdzLmhpZ2htZW1fZW5kID0gaGlnaG1lbV9lbmQ7Ci0gICAgYXJncy5tbWlvX3N0YXJ0 ID0gbW1pb19zdGFydDsKKyAgICBkb20tPmxvd21lbV9lbmQgPSBsb3dtZW1fZW5kOworICAgIGRv bS0+aGlnaG1lbV9lbmQgPSBoaWdobWVtX2VuZDsKKyAgICBkb20tPm1taW9fc3RhcnQgPSBtbWlv X3N0YXJ0OwogCiAgICAgaWYgKGluZm8tPm51bV92bnVtYV9ub2RlcyAhPSAwKSB7CiAgICAgICAg IGludCBpOwogCi0gICAgICAgIHJldCA9IGxpYnhsX192bnVtYV9idWlsZF92bWVtcmFuZ2VfaHZt KGdjLCBkb21pZCwgaW5mbywgc3RhdGUsICZhcmdzKTsKKyAgICAgICAgcmV0ID0gbGlieGxfX3Zu dW1hX2J1aWxkX3ZtZW1yYW5nZV9odm0oZ2MsIGRvbWlkLCBpbmZvLCBzdGF0ZSwgZG9tKTsKICAg ICAgICAgaWYgKHJldCkgewogICAgICAgICAgICAgTE9HRVYoRVJST1IsIHJldCwgImh2bSBidWls ZCB2bWVtcmFuZ2VzIGZhaWxlZCIpOwogICAgICAgICAgICAgZ290byBvdXQ7CkBAIC05NzIsMzAg KzEwMDYsMzQgQEAgaW50IGxpYnhsX19idWlsZF9odm0obGlieGxfX2djICpnYywgdWludDMyX3Qg ZG9taWQsCiAgICAgICAgIHJldCA9IHNldF92bnVtYV9pbmZvKGdjLCBkb21pZCwgaW5mbywgc3Rh dGUpOwogICAgICAgICBpZiAocmV0KSBnb3RvIG91dDsKIAotICAgICAgICBhcmdzLm5yX3ZtZW1y YW5nZXMgPSBzdGF0ZS0+bnVtX3ZtZW1yYW5nZXM7Ci0gICAgICAgIGFyZ3Mudm1lbXJhbmdlcyA9 IGxpYnhsX19tYWxsb2MoZ2MsIHNpemVvZigqYXJncy52bWVtcmFuZ2VzKSAqCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5ucl92bWVtcmFuZ2VzKTsKKyAgICAg ICAgZG9tLT5ucl92bWVtcmFuZ2VzID0gc3RhdGUtPm51bV92bWVtcmFuZ2VzOworICAgICAgICBk b20tPnZtZW1yYW5nZXMgPSBsaWJ4bF9fbWFsbG9jKGdjLCBzaXplb2YoKmRvbS0+dm1lbXJhbmdl cykgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+bnJfdm1l bXJhbmdlcyk7CiAKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyZ3MubnJfdm1lbXJhbmdlczsg aSsrKSB7Ci0gICAgICAgICAgICBhcmdzLnZtZW1yYW5nZXNbaV0uc3RhcnQgPSBzdGF0ZS0+dm1l bXJhbmdlc1tpXS5zdGFydDsKLSAgICAgICAgICAgIGFyZ3Mudm1lbXJhbmdlc1tpXS5lbmQgICA9 IHN0YXRlLT52bWVtcmFuZ2VzW2ldLmVuZDsKLSAgICAgICAgICAgIGFyZ3Mudm1lbXJhbmdlc1tp XS5mbGFncyA9IHN0YXRlLT52bWVtcmFuZ2VzW2ldLmZsYWdzOwotICAgICAgICAgICAgYXJncy52 bWVtcmFuZ2VzW2ldLm5pZCAgID0gc3RhdGUtPnZtZW1yYW5nZXNbaV0ubmlkOworICAgICAgICBm b3IgKGkgPSAwOyBpIDwgZG9tLT5ucl92bWVtcmFuZ2VzOyBpKyspIHsKKyAgICAgICAgICAgIGRv bS0+dm1lbXJhbmdlc1tpXS5zdGFydCA9IHN0YXRlLT52bWVtcmFuZ2VzW2ldLnN0YXJ0OworICAg ICAgICAgICAgZG9tLT52bWVtcmFuZ2VzW2ldLmVuZCAgID0gc3RhdGUtPnZtZW1yYW5nZXNbaV0u ZW5kOworICAgICAgICAgICAgZG9tLT52bWVtcmFuZ2VzW2ldLmZsYWdzID0gc3RhdGUtPnZtZW1y YW5nZXNbaV0uZmxhZ3M7CisgICAgICAgICAgICBkb20tPnZtZW1yYW5nZXNbaV0ubmlkICAgPSBz dGF0ZS0+dm1lbXJhbmdlc1tpXS5uaWQ7CiAgICAgICAgIH0KIAotICAgICAgICBhcmdzLm5yX3Zu b2RlcyA9IGluZm8tPm51bV92bnVtYV9ub2RlczsKLSAgICAgICAgYXJncy52bm9kZV90b19wbm9k ZSA9IGxpYnhsX19tYWxsb2MoZ2MsIHNpemVvZigqYXJncy52bm9kZV90b19wbm9kZSkgKgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLm5yX3Zub2Rlcyk7 Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmdzLm5yX3Zub2RlczsgaSsrKQotICAgICAgICAg ICAgYXJncy52bm9kZV90b19wbm9kZVtpXSA9IGluZm8tPnZudW1hX25vZGVzW2ldLnBub2RlOwor ICAgICAgICBkb20tPm5yX3Zub2RlcyA9IGluZm8tPm51bV92bnVtYV9ub2RlczsKKyAgICAgICAg ZG9tLT52bm9kZV90b19wbm9kZSA9IGxpYnhsX19tYWxsb2MoZ2MsIHNpemVvZigqZG9tLT52bm9k ZV90b19wbm9kZSkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb20tPm5yX3Zub2Rlcyk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBkb20tPm5yX3Zub2Rl czsgaSsrKQorICAgICAgICAgICAgZG9tLT52bm9kZV90b19wbm9kZVtpXSA9IGluZm8tPnZudW1h X25vZGVzW2ldLnBub2RlOwogICAgIH0KIAotICAgIHJldCA9IHhjX2h2bV9idWlsZChjdHgtPnhj aCwgZG9taWQsICZhcmdzKTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIExPR0VWKEVSUk9SLCBy ZXQsICJodm0gYnVpbGRpbmcgZmFpbGVkIik7CisgICAgcmV0ID0geGNfZG9tX2Jvb3RfeGVuX2lu aXQoZG9tLCBjdHgtPnhjaCwgZG9taWQpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBM T0dFKEVSUk9SLCAieGNfZG9tX2Jvb3RfeGVuX2luaXQgZmFpbGVkIik7CiAgICAgICAgIGdvdG8g b3V0OwogICAgIH0KIAorICAgIHJldCA9IGxpYnhsX19idWlsZF9kb20oZ2MsIGRvbWlkLCBpbmZv LCBzdGF0ZSwgZG9tKTsKKyAgICBpZiAocmV0ICE9IDApCisgICAgICAgIGdvdG8gb3V0OworCiAg ICAgcmV0ID0gaHZtX2J1aWxkX3NldF9wYXJhbXMoY3R4LT54Y2gsIGRvbWlkLCBpbmZvLCBzdGF0 ZS0+c3RvcmVfcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhdGUtPnN0 b3JlX21mbiwgc3RhdGUtPmNvbnNvbGVfcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmc3RhdGUtPmNvbnNvbGVfbWZuLCBzdGF0ZS0+c3RvcmVfZG9taWQsCkBAIC0xMDA1LDE1 ICsxMDQzLDE1IEBAIGludCBsaWJ4bF9fYnVpbGRfaHZtKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90 IGRvbWlkLAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICByZXQgPSBodm1fYnVpbGRf c2V0X3hzX3ZhbHVlcyhnYywgZG9taWQsICZhcmdzKTsKKyAgICByZXQgPSBodm1fYnVpbGRfc2V0 X3hzX3ZhbHVlcyhnYywgZG9taWQsIGRvbSk7CiAgICAgaWYgKHJldCkgewogICAgICAgICBMT0co RVJST1IsICJodm0gYnVpbGQgc2V0IHhlbnN0b3JlIHZhbHVlcyBmYWlsZWQgKHJldD0lZCkiLCBy ZXQpOwogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICByZXR1cm4gMDsKIG91dDoKLSAg ICByZXR1cm4gcmM7CisgICAgaWYgKGRvbSAhPSBOVUxMKSB4Y19kb21fcmVsZWFzZShkb20pOwor ICAgIHJldHVybiByZXQgPT0gMCA/IDAgOiBFUlJPUl9GQUlMOwogfQogCiBpbnQgbGlieGxfX3Fl bXVfdHJhZGl0aW9uYWxfY21kKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLApkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmgKaW5kZXggZDUyNTg5ZS4uZjQzMTRlNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0z NTQwLDcgKzM1NDAsNyBAQCBpbnQgbGlieGxfX3ZudW1hX2J1aWxkX3ZtZW1yYW5nZV9odm0obGli eGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21h aW5fYnVpbGRfaW5mbyAqYl9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX19kb21haW5fYnVpbGRfc3RhdGUgKnN0YXRlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19odm1fYnVpbGRfYXJncyAqYXJncyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9t KTsKIGJvb2wgbGlieGxfX3ZudW1hX2NvbmZpZ3VyZWQoY29uc3QgbGlieGxfZG9tYWluX2J1aWxk X2luZm8gKmJfaW5mbyk7CiAKIF9oaWRkZW4gaW50IGxpYnhsX19tc192bV9nZW5pZF9zZXQobGli eGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bF92bnVtYS5jIGIvdG9vbHMvbGlieGwvbGlieGxfdm51bWEuYwppbmRleCA1Njg1NmQyLi5kYjIy Nzk5IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF92bnVtYS5jCisrKyBiL3Rvb2xzL2xp YnhsL2xpYnhsX3ZudW1hLmMKQEAgLTE3LDYgKzE3LDggQEAKICNpbmNsdWRlICJsaWJ4bF9hcmNo LmgiCiAjaW5jbHVkZSA8c3RkbGliLmg+CiAKKyNpbmNsdWRlIDx4Y19kb20uaD4KKwogYm9vbCBs aWJ4bF9fdm51bWFfY29uZmlndXJlZChjb25zdCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9p bmZvKQogewogICAgIHJldHVybiBiX2luZm8tPm51bV92bnVtYV9ub2RlcyAhPSAwOwpAQCAtMjUy LDcgKzI1NCw3IEBAIGludCBsaWJ4bF9fdm51bWFfYnVpbGRfdm1lbXJhbmdlX2h2bShsaWJ4bF9f Z2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9i dWlsZF9pbmZvICpiX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX2RvbWFpbl9idWlsZF9zdGF0ZSAqc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHhjX2h2bV9idWlsZF9hcmdzICphcmdzKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIHsK ICAgICB1aW50NjRfdCBob2xlX3N0YXJ0LCBob2xlX2VuZCwgbmV4dDsKICAgICBpbnQgbmlkLCBu cl92bWVtcmFuZ2U7CkBAIC0yNjQsMTAgKzI2NiwxMCBAQCBpbnQgbGlieGxfX3ZudW1hX2J1aWxk X3ZtZW1yYW5nZV9odm0obGlieGxfX2djICpnYywKICAgICAgKiBHdWVzdCBwaHlzaWNhbCBhZGRy ZXNzIHNwYWNlIGxheW91dDoKICAgICAgKiBbMCwgaG9sZV9zdGFydCkgW2hvbGVfc3RhcnQsIGhv bGVfZW5kKSBbaG9sZV9lbmQsIGhpZ2htZW1fZW5kKQogICAgICAqLwotICAgIGhvbGVfc3RhcnQg PSBhcmdzLT5sb3dtZW1fZW5kIDwgYXJncy0+bW1pb19zdGFydCA/Ci0gICAgICAgIGFyZ3MtPmxv d21lbV9lbmQgOiBhcmdzLT5tbWlvX3N0YXJ0OwotICAgIGhvbGVfZW5kID0gKGFyZ3MtPm1taW9f c3RhcnQgKyBhcmdzLT5tbWlvX3NpemUpID4gKDFVTEwgPDwgMzIpID8KLSAgICAgICAgKGFyZ3Mt Pm1taW9fc3RhcnQgKyBhcmdzLT5tbWlvX3NpemUpIDogKDFVTEwgPDwgMzIpOworICAgIGhvbGVf c3RhcnQgPSBkb20tPmxvd21lbV9lbmQgPCBkb20tPm1taW9fc3RhcnQgPworICAgICAgICBkb20t Pmxvd21lbV9lbmQgOiBkb20tPm1taW9fc3RhcnQ7CisgICAgaG9sZV9lbmQgPSAoZG9tLT5tbWlv X3N0YXJ0ICsgZG9tLT5tbWlvX3NpemUpID4gKDFVTEwgPDwgMzIpID8KKyAgICAgICAgKGRvbS0+ bW1pb19zdGFydCArIGRvbS0+bW1pb19zaXplKSA6ICgxVUxMIDw8IDMyKTsKIAogICAgIGFzc2Vy dChzdGF0ZS0+dm1lbXJhbmdlcyA9PSBOVUxMKTsKIAotLSAKMS45LjUgKEFwcGxlIEdpdC01MC4z KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==