From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v2 07/25] x86: NUMA: Rename some generic functions Date: Tue, 28 Mar 2017 21:23:15 +0530 Message-ID: <1490716413-19796-8-git-send-email-vijay.kilari@gmail.com> References: <1490716413-19796-1-git-send-email-vijay.kilari@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490716413-19796-1-git-send-email-vijay.kilari@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, Vijaya Kumar K List-Id: xen-devel@lists.xenproject.org RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKUmVuYW1lIHNv bWUgZnVuY3Rpb24gaW4gQUNQSSBjb2RlIGFzIGZvbGxvdwogLSBSZW5hbWUgc2V0dXBfbm9kZSB0 byBhY3BpX3NldHVwX25vZGUKIC0gUmVuYW1lIGJhZF9zcmF0IHRvIG51bWFfZmFpbGVkCiAtIFJl bmFtZSBub2Rlc19jb3Zlcl9tZW1vcnkgdG8gYXJjaF9zYW5pdGl6ZV9ub2Rlc19tZW1vcnkKIC0g UmVuYW1lIGFjcGlfc2Nhbl9ub2RlcyB0byBudW1hX3NjYW5fbm9kZXMKCkFsc28gaW50cm9kdWNl IHJlc2V0X3B4bTJub2RlKCkgdG8gcmVzZXQgcHhtMm5vZGUgdmFyaWFibGUuClRoaXMgYXZvaWRz IGV4cG9ydGluZyBweG0ybm9kZS4KClNpZ25lZC1vZmYtYnk6IFZpamF5YSBLdW1hciBLIDxWaWph eWEuS3VtYXJAY2F2aXVtLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvbnVtYS5jICAgICAgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvc21wYm9vdC5jICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvc3Jh dC5jICAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2Fz bS14ODYvYWNwaS5oIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbnVtYS5oIHwgIDIgKy0K IDYgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L251bWEuYyBiL3hlbi9hcmNoL3g4Ni9udW1hLmMKaW5kZXgg MDg4OGQ1My4uM2JkYWI5YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L251bWEuYworKysgYi94 ZW4vYXJjaC94ODYvbnVtYS5jCkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBfX2luaXQgbnVtYV9p bml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3Bm bikKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQotICAgIGlmICggIWlzX251bWFf b2ZmKCkgJiYgIWFjcGlfc2Nhbl9ub2RlcygodWludDY0X3Qpc3RhcnRfcGZuIDw8IFBBR0VfU0hJ RlQsCisgICAgaWYgKCAhaXNfbnVtYV9vZmYoKSAmJiAhbnVtYV9zY2FuX25vZGVzKCh1aW50NjRf dClzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwKICAgICAgICAgICh1aW50NjRfdCllbmRfcGZuIDw8 IFBBR0VfU0hJRlQpICkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwppbmRleCA4MjU1OWVk Li4yMDM3MzNlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jCisrKyBiL3hlbi9h cmNoL3g4Ni9zbXBib290LmMKQEAgLTk1OSw3ICs5NTksNyBAQCBpbnQgY3B1X2FkZCh1aW50MzJf dCBhcGljX2lkLCB1aW50MzJfdCBhY3BpX2lkLCB1aW50MzJfdCBweG0pCiAKICAgICBpZiAoICFz cmF0X2Rpc2FibGVkKCkgKQogICAgIHsKLSAgICAgICAgbm9kZWlkX3Qgbm9kZSA9IHNldHVwX25v ZGUocHhtKTsKKyAgICAgICAgbm9kZWlkX3Qgbm9kZSA9IGFjcGlfc2V0dXBfbm9kZShweG0pOwog CiAgICAgICAgIGlmICggbm9kZSA9PSBOVU1BX05PX05PREUgKQogICAgICAgICB7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvc3JhdC5jIGIveGVuL2FyY2gveDg2L3NyYXQuYwppbmRleCA5ODNl MWQ4Li4zYWRlMzZkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3JhdC5jCisrKyBiL3hlbi9h cmNoL3g4Ni9zcmF0LmMKQEAgLTg1LDYgKzg1LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBub2Rl X2ZvdW5kKHVuc2lnbmVkIGludCBpZHgsIHVuc2lnbmVkIGludCBweG0pCiAJCShweG0ybm9kZVtp ZHhdLm5vZGUgIT0gTlVNQV9OT19OT0RFKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHJlc2V0X3B4bTJu b2RlKHZvaWQpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlf U0laRShweG0ybm9kZSk7IGkrKykKKwkJcHhtMm5vZGVbaV0ubm9kZSA9IE5VTUFfTk9fTk9ERTsK K30KKwogbm9kZWlkX3QgcHhtX3RvX25vZGUodW5zaWduZWQgaW50IHB4bSkKIHsKIAl1bnNpZ25l ZCBpbnQgaTsKQEAgLTk5LDcgKzEwNyw3IEBAIG5vZGVpZF90IHB4bV90b19ub2RlKHVuc2lnbmVk IGludCBweG0pCiAJcmV0dXJuIE5VTUFfTk9fTk9ERTsKIH0KIAotbm9kZWlkX3Qgc2V0dXBfbm9k ZSh1bnNpZ25lZCBweG0pCitub2RlaWRfdCBhY3BpX3NldHVwX25vZGUodW5zaWduZWQgaW50IHB4 bSkKIHsKIAlub2RlaWRfdCBub2RlOwogCXVuc2lnbmVkIGludCBpZHg7CkBAIC0xODgsMTUgKzE5 NiwxNCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgY3V0b2ZmX25vZGUoaW50IGksIHBhZGRyX3Qgc3Rh cnQsIHBhZGRyX3QgZW5kKQogCX0KIH0KIAotc3RhdGljIHZvaWQgX19pbml0IGJhZF9zcmF0KHZv aWQpCitzdGF0aWMgdm9pZCBfX2luaXQgbnVtYV9mYWlsZWQodm9pZCkKIHsKIAlpbnQgaTsKIAlw cmludGsoS0VSTl9FUlIgIlNSQVQ6IFNSQVQgbm90IHVzZWQuXG4iKTsKIAlzZXRfYWNwaV9udW1h KDApOwogCWZvciAoaSA9IDA7IGkgPCBNQVhfTE9DQUxfQVBJQzsgaSsrKQogCQlhcGljaWRfdG9f bm9kZVtpXSA9IE5VTUFfTk9fTk9ERTsKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShweG0y bm9kZSk7IGkrKykKLQkJcHhtMm5vZGVbaV0ubm9kZSA9IE5VTUFfTk9fTk9ERTsKKwlyZXNldF9w eG0ybm9kZSgpOwogCW1lbV9ob3RwbHVnID0gMDsKIH0KIApAQCAtMjUyLDcgKzI1OSw3IEBAIGFj cGlfbnVtYV94MmFwaWNfYWZmaW5pdHlfaW5pdChjb25zdCBzdHJ1Y3QgYWNwaV9zcmF0X3gyYXBp Y19jcHVfYWZmaW5pdHkgKnBhKQogCWlmIChzcmF0X2Rpc2FibGVkKCkpCiAJCXJldHVybjsKIAlp ZiAocGEtPmhlYWRlci5sZW5ndGggPCBzaXplb2Yoc3RydWN0IGFjcGlfc3JhdF94MmFwaWNfY3B1 X2FmZmluaXR5KSkgewotCQliYWRfc3JhdCgpOworCQludW1hX2ZhaWxlZCgpOwogCQlyZXR1cm47 CiAJfQogCWlmICghKHBhLT5mbGFncyAmIEFDUElfU1JBVF9DUFVfRU5BQkxFRCkpCkBAIC0yNjMs OSArMjcwLDkgQEAgYWNwaV9udW1hX3gyYXBpY19hZmZpbml0eV9pbml0KGNvbnN0IHN0cnVjdCBh Y3BpX3NyYXRfeDJhcGljX2NwdV9hZmZpbml0eSAqcGEpCiAJfQogCiAJcHhtID0gcGEtPnByb3hp bWl0eV9kb21haW47Ci0Jbm9kZSA9IHNldHVwX25vZGUocHhtKTsKKwlub2RlID0gYWNwaV9zZXR1 cF9ub2RlKHB4bSk7CiAJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFKSB7Ci0JCWJhZF9zcmF0KCk7 CisJCW51bWFfZmFpbGVkKCk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTI4Niw3ICsyOTMsNyBAQCBh Y3BpX251bWFfcHJvY2Vzc29yX2FmZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFjcGlfc3JhdF9j cHVfYWZmaW5pdHkgKnBhKQogCWlmIChzcmF0X2Rpc2FibGVkKCkpCiAJCXJldHVybjsKIAlpZiAo cGEtPmhlYWRlci5sZW5ndGggIT0gc2l6ZW9mKHN0cnVjdCBhY3BpX3NyYXRfY3B1X2FmZmluaXR5 KSkgewotCQliYWRfc3JhdCgpOworCQludW1hX2ZhaWxlZCgpOwogCQlyZXR1cm47CiAJfQogCWlm ICghKHBhLT5mbGFncyAmIEFDUElfU1JBVF9DUFVfRU5BQkxFRCkpCkBAIC0yOTcsOSArMzA0LDkg QEAgYWNwaV9udW1hX3Byb2Nlc3Nvcl9hZmZpbml0eV9pbml0KGNvbnN0IHN0cnVjdCBhY3BpX3Ny YXRfY3B1X2FmZmluaXR5ICpwYSkKIAkJcHhtIHw9IHBhLT5wcm94aW1pdHlfZG9tYWluX2hpWzFd IDw8IDE2OwogCQlweG0gfD0gcGEtPnByb3hpbWl0eV9kb21haW5faGlbMl0gPDwgMjQ7CiAJfQot CW5vZGUgPSBzZXR1cF9ub2RlKHB4bSk7CisJbm9kZSA9IGFjcGlfc2V0dXBfbm9kZShweG0pOwog CWlmIChub2RlID09IE5VTUFfTk9fTk9ERSkgewotCQliYWRfc3JhdCgpOworCQludW1hX2ZhaWxl ZCgpOwogCQlyZXR1cm47CiAJfQogCWFwaWNpZF90b19ub2RlW3BhLT5hcGljX2lkXSA9IG5vZGU7 CkBAIC0zMjIsNyArMzI5LDcgQEAgYWNwaV9udW1hX21lbW9yeV9hZmZpbml0eV9pbml0KGNvbnN0 IHN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5ICptYSkKIAlpZiAoc3JhdF9kaXNhYmxlZCgp KQogCQlyZXR1cm47CiAJaWYgKG1hLT5oZWFkZXIubGVuZ3RoICE9IHNpemVvZihzdHJ1Y3QgYWNw aV9zcmF0X21lbV9hZmZpbml0eSkpIHsKLQkJYmFkX3NyYXQoKTsKKwkJbnVtYV9mYWlsZWQoKTsK IAkJcmV0dXJuOwogCX0KIAlpZiAoIShtYS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0VOQUJMRUQp KQpAQCAtMzMyLDcgKzMzOSw3IEBAIGFjcGlfbnVtYV9tZW1vcnlfYWZmaW5pdHlfaW5pdChjb25z dCBzdHJ1Y3QgYWNwaV9zcmF0X21lbV9hZmZpbml0eSAqbWEpCiAJewogCQlkcHJpbnRrKFhFTkxP R19XQVJOSU5HLAogICAgICAgICAgICAgICAgICJUb28gbWFueSBudW1hIGVudHJ5LCB0cnkgYmln Z2VyIE5SX05PREVfTUVNQkxLUyBcbiIpOwotCQliYWRfc3JhdCgpOworCQludW1hX2ZhaWxlZCgp OwogCQlyZXR1cm47CiAJfQogCkBAIC0zNDEsOSArMzQ4LDkgQEAgYWNwaV9udW1hX21lbW9yeV9h ZmZpbml0eV9pbml0KGNvbnN0IHN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5ICptYSkKIAlw eG0gPSBtYS0+cHJveGltaXR5X2RvbWFpbjsKIAlpZiAoc3JhdF9yZXYgPCAyKQogCQlweG0gJj0g MHhmZjsKLQlub2RlID0gc2V0dXBfbm9kZShweG0pOworCW5vZGUgPSBhY3BpX3NldHVwX25vZGUo cHhtKTsKIAlpZiAobm9kZSA9PSBOVU1BX05PX05PREUpIHsKLQkJYmFkX3NyYXQoKTsKKwkJbnVt YV9mYWlsZWQoKTsKIAkJcmV0dXJuOwogCX0KIAkvKiBJdCBpcyBmaW5lIHRvIGFkZCB0aGlzIGFy ZWEgdG8gdGhlIG5vZGVzIGRhdGEgaXQgd2lsbCBiZSB1c2VkIGxhdGVyKi8KQEAgLTM2MCw3ICsz NjcsNyBAQCBhY3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFjcGlf c3JhdF9tZW1fYWZmaW5pdHkgKm1hKQogCQkgICAgICAgbWlzbWF0Y2ggPyBLRVJOX0VSUiA6IEtF Uk5fV0FSTklORywgcHhtLCBzdGFydCwgZW5kLAogCQkgICAgICAgbWVtYmxrLT5zdGFydCwgbWVt YmxrLT5lbmQpOwogCQlpZiAobWlzbWF0Y2gpIHsKLQkJCWJhZF9zcmF0KCk7CisJCQludW1hX2Zh aWxlZCgpOwogCQkJcmV0dXJuOwogCQl9CiAJfSBlbHNlIHsKQEAgLTM3MCw3ICszNzcsNyBAQCBh Y3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFjcGlfc3JhdF9tZW1f YWZmaW5pdHkgKm1hKQogCQkgICAgICAgIlNSQVQ6IFBYTSAldSAoJSJQUkl4NjQiLSUiUFJJeDY0 Iikgb3ZlcmxhcHMgd2l0aCBQWE0gJXUgKCUiUFJJeDY0Ii0lIlBSSXg2NCIpXG4iLAogCQkgICAg ICAgcHhtLCBzdGFydCwgZW5kLCBub2RlX3RvX3B4bShnZXRfbWVtYmxrX25vZGVpZChpKSksCiAJ CSAgICAgICBtZW1ibGstPnN0YXJ0LCBtZW1ibGstPmVuZCk7Ci0JCWJhZF9zcmF0KCk7CisJCW51 bWFfZmFpbGVkKCk7CiAJCXJldHVybjsKIAl9CiAJaWYgKCEobWEtPmZsYWdzICYgQUNQSV9TUkFU X01FTV9IT1RfUExVR0dBQkxFKSkgewpAQCAtMzkyLDcgKzM5OSw3IEBAIGFjcGlfbnVtYV9tZW1v cnlfYWZmaW5pdHlfaW5pdChjb25zdCBzdHJ1Y3QgYWNwaV9zcmF0X21lbV9hZmZpbml0eSAqbWEp CiAKIAlpZiAobnVtYV9hZGRfbWVtYmxrKG5vZGUsIHN0YXJ0LCBtYS0+bGVuZ3RoKSkgewogCQlw cmludGsoS0VSTl9FUlIgIlNSQVQ6IG5vZGUtaWQgJXUgb3V0IG9mIHJhbmdlXG4iLCBub2RlKTsK LQkJYmFkX3NyYXQoKTsKKwkJbnVtYV9mYWlsZWQoKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtNDA1 LDcgKzQxMiw3IEBAIGFjcGlfbnVtYV9tZW1vcnlfYWZmaW5pdHlfaW5pdChjb25zdCBzdHJ1Y3Qg YWNwaV9zcmF0X21lbV9hZmZpbml0eSAqbWEpCiAKIC8qIFNhbml0eSBjaGVjayB0byBjYXRjaCBt b3JlIGJhZCBTUkFUcyAodGhleSBhcmUgYW1hemluZ2x5IGNvbW1vbikuCiAgICBNYWtlIHN1cmUg dGhlIFBYTXMgY292ZXIgYWxsIG1lbW9yeS4gKi8KLXN0YXRpYyBpbnQgX19pbml0IG5vZGVzX2Nv dmVyX21lbW9yeSh2b2lkKQorc3RhdGljIGludCBfX2luaXQgYXJjaF9zYW5pdGl6ZV9ub2Rlc19t ZW1vcnkodm9pZCkKIHsKIAlpbnQgaTsKIApAQCAtNTAzLDcgKzUxMCw3IEBAIHZvaWQgX19pbml0 IHNyYXRfcGFyc2VfcmVnaW9ucyh1aW50NjRfdCBhZGRyKQogfQogCiAvKiBVc2UgdGhlIGluZm9y bWF0aW9uIGRpc2NvdmVyZWQgYWJvdmUgdG8gYWN0dWFsbHkgc2V0IHVwIHRoZSBub2Rlcy4gKi8K LWludCBfX2luaXQgYWNwaV9zY2FuX25vZGVzKHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQp CitpbnQgX19pbml0IG51bWFfc2Nhbl9ub2Rlcyh1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5k KQogewogCWludCBpOwogCW5vZGVtYXNrX3QgYWxsX25vZGVzX3BhcnNlZDsKQEAgLTUxNyw4ICs1 MjQsOCBAQCBpbnQgX19pbml0IGFjcGlfc2Nhbl9ub2Rlcyh1aW50NjRfdCBzdGFydCwgdWludDY0 X3QgZW5kKQogCWlmIChnZXRfYWNwaV9udW1hKCkgPT0gMCkKIAkJcmV0dXJuIC0xOwogCi0JaWYg KCFub2Rlc19jb3Zlcl9tZW1vcnkoKSkgewotCQliYWRfc3JhdCgpOworCWlmICghYXJjaF9zYW5p dGl6ZV9ub2Rlc19tZW1vcnkoKSkgeworCQludW1hX2ZhaWxlZCgpOwogCQlyZXR1cm4gLTE7CiAJ fQogCkBAIC01MjksNyArNTM2LDcgQEAgaW50IF9faW5pdCBhY3BpX3NjYW5fbm9kZXModWludDY0 X3Qgc3RhcnQsIHVpbnQ2NF90IGVuZCkKIAkJbWVtbm9kZV9zaGlmdCA9IDA7CiAJCXByaW50ayhL RVJOX0VSUgogCQkgICAgICJTUkFUOiBObyBOVU1BIG5vZGUgaGFzaCBmdW5jdGlvbiBmb3VuZC4g Q29udGFjdCBtYWludGFpbmVyXG4iKTsKLQkJYmFkX3NyYXQoKTsKKwkJbnVtYV9mYWlsZWQoKTsK IAkJcmV0dXJuIC0xOwogCX0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5j IGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCmluZGV4IDM0ZjMyNTAuLmYwMDgyZTEgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0 L21tLmMKQEAgLTEzNjksNyArMTM2OSw3IEBAIGludCBtZW1vcnlfYWRkKHVuc2lnbmVkIGxvbmcg c3BmbiwgdW5zaWduZWQgbG9uZyBlcGZuLCB1bnNpZ25lZCBpbnQgcHhtKQogICAgIGlmICggIW1l bV9ob3RhZGRfY2hlY2soc3BmbiwgZXBmbikgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAot ICAgIGlmICggKG5vZGUgPSBzZXR1cF9ub2RlKHB4bSkpID09IE5VTUFfTk9fTk9ERSApCisgICAg aWYgKCAobm9kZSA9IGFjcGlfc2V0dXBfbm9kZShweG0pKSA9PSBOVU1BX05PX05PREUgKQogICAg ICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIGlmICggIXZhbGlkX251bWFfcmFuZ2Uoc3BmbiA8 PCBQQUdFX1NISUZULCBlcGZuIDw8IFBBR0VfU0hJRlQsIG5vZGUpICkKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS14ODYvYWNwaS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmgKaW5k ZXggOTI5OGQ0Mi4uNDQ1YjhlNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hY3Bp LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBl eHRlcm4gdm9pZCBhY3BpX3Jlc2VydmVfYm9vdG1lbSh2b2lkKTsKIAogI2RlZmluZSBBUkNIX0hB U19QT1dFUl9JTklUCTEKIAotZXh0ZXJuIGludCBhY3BpX3NjYW5fbm9kZXModTY0IHN0YXJ0LCB1 NjQgZW5kKTsKK2V4dGVybiBpbnQgbnVtYV9zY2FuX25vZGVzKHU2NCBzdGFydCwgdTY0IGVuZCk7 CiAjZGVmaW5lIE5SX05PREVfTUVNQkxLUyAoTUFYX05VTU5PREVTKjIpCiAKICNpZmRlZiBDT05G SUdfQUNQSV9TTEVFUApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9udW1hLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L251bWEuaAppbmRleCBhZTU3NjhiLi43MjM3YWQxIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L251bWEuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2 L251bWEuaApAQCAtMzIsNyArMzIsNyBAQCBleHRlcm4gdm9pZCBudW1hX2FkZF9jcHUoaW50IGNw dSk7CiBleHRlcm4gdm9pZCBudW1hX2luaXRfYXJyYXkodm9pZCk7CiBleHRlcm4gYm9vbCBzcmF0 X2Rpc2FibGVkKHZvaWQpOwogZXh0ZXJuIHZvaWQgbnVtYV9zZXRfbm9kZShpbnQgY3B1LCBub2Rl aWRfdCBub2RlKTsKLWV4dGVybiBub2RlaWRfdCBzZXR1cF9ub2RlKHVuc2lnbmVkIGludCBweG0p OworZXh0ZXJuIG5vZGVpZF90IGFjcGlfc2V0dXBfbm9kZSh1bnNpZ25lZCBpbnQgcHhtKTsKIGV4 dGVybiB2b2lkIHNyYXRfZGV0ZWN0X25vZGUoaW50IGNwdSk7CiAKIGV4dGVybiB2b2lkIHNldHVw X25vZGVfYm9vdG1lbShub2RlaWRfdCBub2RlaWQsIHBhZGRyX3Qgc3RhcnQsIHBhZGRyX3QgZW5k KTsKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==