From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Jc3sx-0007fa-D6 for qemu-devel@nongnu.org; Wed, 19 Mar 2008 15:23:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Jc3sw-0007ez-1Z for qemu-devel@nongnu.org; Wed, 19 Mar 2008 15:23:39 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jc3sv-0007ew-Od for qemu-devel@nongnu.org; Wed, 19 Mar 2008 15:23:37 -0400 Received: from nf-out-0910.google.com ([64.233.182.184]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Jc3sr-0003Rl-MD for qemu-devel@nongnu.org; Wed, 19 Mar 2008 15:23:37 -0400 Received: by nf-out-0910.google.com with SMTP id 30so349962nfu.12 for ; Wed, 19 Mar 2008 12:23:30 -0700 (PDT) Message-ID: Date: Wed, 19 Mar 2008 21:23:27 +0200 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_22599_1568038.1205954608049" Subject: [Qemu-devel] PATCH, RFC: Convert x86 SSE ops to TCG Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: dbarrett@quinthar.com, pva@gentoo.org, qemu-devel ------=_Part_22599_1568038.1205954608049 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline These patches converts x86 SSE ops to TCG, which could possibly help compiling Qemu using some GCC versions on i386 host. The resulting version does not crash immediately. Please test. ------=_Part_22599_1568038.1205954608049 Content-Type: plain/text; name=tcg_helper_0_3.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fe0a7n8z Content-Disposition: attachment; filename=tcg_helper_0_3.diff SW5kZXg6IHFlbXUvdGNnL3RjZy1vcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90Y2cvdGNn LW9wLmgJMjAwOC0wMy0xOSAxODoyNzowMS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGNnL3Rj Zy1vcC5oCTIwMDgtMDMtMTkgMTg6Mjg6MDYuMDAwMDAwMDAwICswMDAwCkBAIC0xOTIsNiArMTky LDE4IEBACiAgICAgICAgICAgICAgICAgIDAsIE5VTEwsIDIsIGFyZ3MpOwogfQogCitzdGF0aWMg aW5saW5lIHZvaWQgdGNnX2dlbl9oZWxwZXJfMF8zKHZvaWQgKmZ1bmMsIFRDR3YgYXJnMSwgVENH diBhcmcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2IGFyZzMp Cit7CisgICAgVENHdiBhcmdzWzNdOworICAgIGFyZ3NbMF0gPSBhcmcxOworICAgIGFyZ3NbMV0g PSBhcmcyOworICAgIGFyZ3NbMl0gPSBhcmczOworICAgIHRjZ19nZW5fY2FsbCgmdGNnX2N0eCwK KyAgICAgICAgICAgICAgICAgdGNnX2NvbnN0X3B0cigodGNnX3RhcmdldF9sb25nKWZ1bmMpLCBU Q0dfSEVMUEVSX0NBTExfRkxBR1MsCisgICAgICAgICAgICAgICAgIDAsIE5VTEwsIDMsIGFyZ3Mp OworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgdGNnX2dlbl9oZWxwZXJfMF80KHZvaWQgKmZ1bmMs IFRDR3YgYXJnMSwgVENHdiBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUQ0d2IGFyZzMsIFRDR3YgYXJnNCkKIHsK ------=_Part_22599_1568038.1205954608049 Content-Type: plain/text; name=tcg_sse.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fe0a7zm3 Content-Disposition: attachment; filename=tcg_sse.diff SW5kZXg6IHFlbXUvdGFyZ2V0LWkzODYvb3AuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFy Z2V0LWkzODYvb3AuYwkyMDA4LTAzLTE5IDE4OjI2OjI5LjAwMDAwMDAwMCArMDAwMAorKysgcWVt dS90YXJnZXQtaTM4Ni9vcC5jCTIwMDgtMDMtMTkgMTg6Mjg6MTMuMDAwMDAwMDAwICswMDAwCkBA IC0yMjIyLDEyICsyMjIyLDYgQEAKICAgICAqKHVpbnQzMl90ICopKGVudi0+ZnB0YWdzICsgNCkg PSAweDAxMDEwMTAxOwogfQogCi0jZGVmaW5lIFNISUZUIDAKLSNpbmNsdWRlICJvcHNfc3NlLmgi Ci0KLSNkZWZpbmUgU0hJRlQgMQotI2luY2x1ZGUgIm9wc19zc2UuaCIKLQogLyogU2VjdXJlIFZp cnR1YWwgTWFjaGluZSBvcHMgKi8KIAogdm9pZCBPUFBST1RPIG9wX3ZtcnVuKHZvaWQpCkluZGV4 OiBxZW11L3RhcmdldC1pMzg2L3RyYW5zbGF0ZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90 YXJnZXQtaTM4Ni90cmFuc2xhdGUuYwkyMDA4LTAzLTE5IDE4OjI2OjI5LjAwMDAwMDAwMCArMDAw MAorKysgcWVtdS90YXJnZXQtaTM4Ni90cmFuc2xhdGUuYwkyMDA4LTAzLTE5IDE5OjA0OjMxLjAw MDAwMDAwMCArMDAwMApAQCAtMjQwOSwxOCArMjQwOSwxOCBAQAogCiAjZGVmaW5lIFNTRV9TUEVD SUFMICgoR2VuT3BGdW5jMiAqKTEpCiAKLSNkZWZpbmUgTU1YX09QMih4KSB7IGdlbl9vcF8gIyMg eCAjIyBfbW14LCBnZW5fb3BfICMjIHggIyMgX3htbSB9Ci0jZGVmaW5lIFNTRV9GT1AoeCkgeyBn ZW5fb3BfICMjIHggIyMgcHMsIGdlbl9vcF8gIyMgeCAjIyBwZCwgXAotICAgICAgICAgICAgICAg ICAgICAgZ2VuX29wXyAjIyB4ICMjIHNzLCBnZW5fb3BfICMjIHggIyMgc2QsIH0KKyNkZWZpbmUg TU1YX09QMih4KSB7IGhlbHBlcl8gIyMgeCAjIyBfbW14LCBoZWxwZXJfICMjIHggIyMgX3htbSB9 CisjZGVmaW5lIFNTRV9GT1AoeCkgeyBoZWxwZXJfICMjIHggIyMgcHMsIGhlbHBlcl8gIyMgeCAj IyBwZCwgXAorICAgICAgICAgICAgICAgICAgICAgaGVscGVyXyAjIyB4ICMjIHNzLCBoZWxwZXJf ICMjIHggIyMgc2QsIH0KIAotc3RhdGljIEdlbk9wRnVuYzIgKnNzZV9vcF90YWJsZTFbMjU2XVs0 XSA9IHsKK3N0YXRpYyB2b2lkICpzc2Vfb3BfdGFibGUxWzI1Nl1bNF0gPSB7CiAgICAgLyogcHVy ZSBTU0Ugb3BlcmF0aW9ucyAqLwogICAgIFsweDEwXSA9IHsgU1NFX1NQRUNJQUwsIFNTRV9TUEVD SUFMLCBTU0VfU1BFQ0lBTCwgU1NFX1NQRUNJQUwgfSwgLyogbW92dXBzLCBtb3Z1cGQsIG1vdnNz LCBtb3ZzZCAqLwogICAgIFsweDExXSA9IHsgU1NFX1NQRUNJQUwsIFNTRV9TUEVDSUFMLCBTU0Vf U1BFQ0lBTCwgU1NFX1NQRUNJQUwgfSwgLyogbW92dXBzLCBtb3Z1cGQsIG1vdnNzLCBtb3ZzZCAq LwogICAgIFsweDEyXSA9IHsgU1NFX1NQRUNJQUwsIFNTRV9TUEVDSUFMLCBTU0VfU1BFQ0lBTCwg U1NFX1NQRUNJQUwgfSwgLyogbW92bHBzLCBtb3ZscGQsIG1vdnNsZHVwLCBtb3ZkZHVwICovCiAg ICAgWzB4MTNdID0geyBTU0VfU1BFQ0lBTCwgU1NFX1NQRUNJQUwgfSwgIC8qIG1vdmxwcywgbW92 bHBkICovCi0gICAgWzB4MTRdID0geyBnZW5fb3BfcHVucGNrbGRxX3htbSwgZ2VuX29wX3B1bnBj a2xxZHFfeG1tIH0sCi0gICAgWzB4MTVdID0geyBnZW5fb3BfcHVucGNraGRxX3htbSwgZ2VuX29w X3B1bnBja2hxZHFfeG1tIH0sCisgICAgWzB4MTRdID0geyBoZWxwZXJfcHVucGNrbGRxX3htbSwg aGVscGVyX3B1bnBja2xxZHFfeG1tIH0sCisgICAgWzB4MTVdID0geyBoZWxwZXJfcHVucGNraGRx X3htbSwgaGVscGVyX3B1bnBja2hxZHFfeG1tIH0sCiAgICAgWzB4MTZdID0geyBTU0VfU1BFQ0lB TCwgU1NFX1NQRUNJQUwsIFNTRV9TUEVDSUFMIH0sICAvKiBtb3ZocHMsIG1vdmhwZCwgbW92c2hk dXAgKi8KICAgICBbMHgxN10gPSB7IFNTRV9TUEVDSUFMLCBTU0VfU1BFQ0lBTCB9LCAgLyogbW92 aHBzLCBtb3ZocGQgKi8KIApAQCAtMjQzMCwyOCArMjQzMCwyOCBAQAogICAgIFsweDJiXSA9IHsg U1NFX1NQRUNJQUwsIFNTRV9TUEVDSUFMIH0sICAvKiBtb3ZudHBzLCBtb3ZudHBkICovCiAgICAg WzB4MmNdID0geyBTU0VfU1BFQ0lBTCwgU1NFX1NQRUNJQUwsIFNTRV9TUEVDSUFMLCBTU0VfU1BF Q0lBTCB9LCAvKiBjdnR0cHMycGksIGN2dHRwZDJwaSwgY3Z0dHNkMnNpLCBjdnR0c3Myc2kgKi8K ICAgICBbMHgyZF0gPSB7IFNTRV9TUEVDSUFMLCBTU0VfU1BFQ0lBTCwgU1NFX1NQRUNJQUwsIFNT RV9TUEVDSUFMIH0sIC8qIGN2dHBzMnBpLCBjdnRwZDJwaSwgY3Z0c2Qyc2ksIGN2dHNzMnNpICov Ci0gICAgWzB4MmVdID0geyBnZW5fb3BfdWNvbWlzcywgZ2VuX29wX3Vjb21pc2QgfSwKLSAgICBb MHgyZl0gPSB7IGdlbl9vcF9jb21pc3MsIGdlbl9vcF9jb21pc2QgfSwKKyAgICBbMHgyZV0gPSB7 IGhlbHBlcl91Y29taXNzLCBoZWxwZXJfdWNvbWlzZCB9LAorICAgIFsweDJmXSA9IHsgaGVscGVy X2NvbWlzcywgaGVscGVyX2NvbWlzZCB9LAogICAgIFsweDUwXSA9IHsgU1NFX1NQRUNJQUwsIFNT RV9TUEVDSUFMIH0sIC8qIG1vdm1za3BzLCBtb3Ztc2twZCAqLwogICAgIFsweDUxXSA9IFNTRV9G T1Aoc3FydCksCi0gICAgWzB4NTJdID0geyBnZW5fb3BfcnNxcnRwcywgTlVMTCwgZ2VuX29wX3Jz cXJ0c3MsIE5VTEwgfSwKLSAgICBbMHg1M10gPSB7IGdlbl9vcF9yY3BwcywgTlVMTCwgZ2VuX29w X3JjcHNzLCBOVUxMIH0sCi0gICAgWzB4NTRdID0geyBnZW5fb3BfcGFuZF94bW0sIGdlbl9vcF9w YW5kX3htbSB9LCAvKiBhbmRwcywgYW5kcGQgKi8KLSAgICBbMHg1NV0gPSB7IGdlbl9vcF9wYW5k bl94bW0sIGdlbl9vcF9wYW5kbl94bW0gfSwgLyogYW5kbnBzLCBhbmRucGQgKi8KLSAgICBbMHg1 Nl0gPSB7IGdlbl9vcF9wb3JfeG1tLCBnZW5fb3BfcG9yX3htbSB9LCAvKiBvcnBzLCBvcnBkICov Ci0gICAgWzB4NTddID0geyBnZW5fb3BfcHhvcl94bW0sIGdlbl9vcF9weG9yX3htbSB9LCAvKiB4 b3JwcywgeG9ycGQgKi8KKyAgICBbMHg1Ml0gPSB7IGhlbHBlcl9yc3FydHBzLCBOVUxMLCBoZWxw ZXJfcnNxcnRzcywgTlVMTCB9LAorICAgIFsweDUzXSA9IHsgaGVscGVyX3JjcHBzLCBOVUxMLCBo ZWxwZXJfcmNwc3MsIE5VTEwgfSwKKyAgICBbMHg1NF0gPSB7IGhlbHBlcl9wYW5kX3htbSwgaGVs cGVyX3BhbmRfeG1tIH0sIC8qIGFuZHBzLCBhbmRwZCAqLworICAgIFsweDU1XSA9IHsgaGVscGVy X3BhbmRuX3htbSwgaGVscGVyX3BhbmRuX3htbSB9LCAvKiBhbmRucHMsIGFuZG5wZCAqLworICAg IFsweDU2XSA9IHsgaGVscGVyX3Bvcl94bW0sIGhlbHBlcl9wb3JfeG1tIH0sIC8qIG9ycHMsIG9y cGQgKi8KKyAgICBbMHg1N10gPSB7IGhlbHBlcl9weG9yX3htbSwgaGVscGVyX3B4b3JfeG1tIH0s IC8qIHhvcnBzLCB4b3JwZCAqLwogICAgIFsweDU4XSA9IFNTRV9GT1AoYWRkKSwKICAgICBbMHg1 OV0gPSBTU0VfRk9QKG11bCksCi0gICAgWzB4NWFdID0geyBnZW5fb3BfY3Z0cHMycGQsIGdlbl9v cF9jdnRwZDJwcywKLSAgICAgICAgICAgICAgIGdlbl9vcF9jdnRzczJzZCwgZ2VuX29wX2N2dHNk MnNzIH0sCi0gICAgWzB4NWJdID0geyBnZW5fb3BfY3Z0ZHEycHMsIGdlbl9vcF9jdnRwczJkcSwg Z2VuX29wX2N2dHRwczJkcSB9LAorICAgIFsweDVhXSA9IHsgaGVscGVyX2N2dHBzMnBkLCBoZWxw ZXJfY3Z0cGQycHMsCisgICAgICAgICAgICAgICBoZWxwZXJfY3Z0c3Myc2QsIGhlbHBlcl9jdnRz ZDJzcyB9LAorICAgIFsweDViXSA9IHsgaGVscGVyX2N2dGRxMnBzLCBoZWxwZXJfY3Z0cHMyZHEs IGhlbHBlcl9jdnR0cHMyZHEgfSwKICAgICBbMHg1Y10gPSBTU0VfRk9QKHN1YiksCiAgICAgWzB4 NWRdID0gU1NFX0ZPUChtaW4pLAogICAgIFsweDVlXSA9IFNTRV9GT1AoZGl2KSwKICAgICBbMHg1 Zl0gPSBTU0VfRk9QKG1heCksCiAKICAgICBbMHhjMl0gPSBTU0VfRk9QKGNtcGVxKSwKLSAgICBb MHhjNl0gPSB7IChHZW5PcEZ1bmMyICopZ2VuX29wX3NodWZwcywgKEdlbk9wRnVuYzIgKilnZW5f b3Bfc2h1ZnBkIH0sCisgICAgWzB4YzZdID0geyBoZWxwZXJfc2h1ZnBzLCBoZWxwZXJfc2h1ZnBk IH0sCiAKICAgICAvKiBNTVggb3BzIGFuZCB0aGVpciBTU0UgZXh0ZW5zaW9ucyAqLwogICAgIFsw eDYwXSA9IE1NWF9PUDIocHVucGNrbGJ3KSwKQEAgLTI0NjYsMTQgKzI0NjYsMTQgQEAKICAgICBb MHg2OV0gPSBNTVhfT1AyKHB1bnBja2h3ZCksCiAgICAgWzB4NmFdID0gTU1YX09QMihwdW5wY2to ZHEpLAogICAgIFsweDZiXSA9IE1NWF9PUDIocGFja3NzZHcpLAotICAgIFsweDZjXSA9IHsgTlVM TCwgZ2VuX29wX3B1bnBja2xxZHFfeG1tIH0sCi0gICAgWzB4NmRdID0geyBOVUxMLCBnZW5fb3Bf cHVucGNraHFkcV94bW0gfSwKKyAgICBbMHg2Y10gPSB7IE5VTEwsIGhlbHBlcl9wdW5wY2tscWRx X3htbSB9LAorICAgIFsweDZkXSA9IHsgTlVMTCwgaGVscGVyX3B1bnBja2hxZHFfeG1tIH0sCiAg ICAgWzB4NmVdID0geyBTU0VfU1BFQ0lBTCwgU1NFX1NQRUNJQUwgfSwgLyogbW92ZCBtbSwgZWEg Ki8KICAgICBbMHg2Zl0gPSB7IFNTRV9TUEVDSUFMLCBTU0VfU1BFQ0lBTCwgU1NFX1NQRUNJQUwg fSwgLyogbW92cSwgbW92ZHFhLCAsIG1vdnFkdSAqLwotICAgIFsweDcwXSA9IHsgKEdlbk9wRnVu YzIgKilnZW5fb3BfcHNodWZ3X21teCwKLSAgICAgICAgICAgICAgIChHZW5PcEZ1bmMyICopZ2Vu X29wX3BzaHVmZF94bW0sCi0gICAgICAgICAgICAgICAoR2VuT3BGdW5jMiAqKWdlbl9vcF9wc2h1 Zmh3X3htbSwKLSAgICAgICAgICAgICAgIChHZW5PcEZ1bmMyICopZ2VuX29wX3BzaHVmbHdfeG1t IH0sCisgICAgWzB4NzBdID0geyBoZWxwZXJfcHNodWZ3X21teCwKKyAgICAgICAgICAgICAgIGhl bHBlcl9wc2h1ZmRfeG1tLAorICAgICAgICAgICAgICAgaGVscGVyX3BzaHVmaHdfeG1tLAorICAg ICAgICAgICAgICAgaGVscGVyX3BzaHVmbHdfeG1tIH0sCiAgICAgWzB4NzFdID0geyBTU0VfU1BF Q0lBTCwgU1NFX1NQRUNJQUwgfSwgLyogc2hpZnR3ICovCiAgICAgWzB4NzJdID0geyBTU0VfU1BF Q0lBTCwgU1NFX1NQRUNJQUwgfSwgLyogc2hpZnRkICovCiAgICAgWzB4NzNdID0geyBTU0VfU1BF Q0lBTCwgU1NFX1NQRUNJQUwgfSwgLyogc2hpZnRxICovCkBAIC0yNDgxLDEzICsyNDgxLDEzIEBA CiAgICAgWzB4NzVdID0gTU1YX09QMihwY21wZXF3KSwKICAgICBbMHg3Nl0gPSBNTVhfT1AyKHBj bXBlcWwpLAogICAgIFsweDc3XSA9IHsgU1NFX1NQRUNJQUwgfSwgLyogZW1tcyAqLwotICAgIFsw eDdjXSA9IHsgTlVMTCwgZ2VuX29wX2hhZGRwZCwgTlVMTCwgZ2VuX29wX2hhZGRwcyB9LAotICAg IFsweDdkXSA9IHsgTlVMTCwgZ2VuX29wX2hzdWJwZCwgTlVMTCwgZ2VuX29wX2hzdWJwcyB9LAor ICAgIFsweDdjXSA9IHsgTlVMTCwgaGVscGVyX2hhZGRwZCwgTlVMTCwgaGVscGVyX2hhZGRwcyB9 LAorICAgIFsweDdkXSA9IHsgTlVMTCwgaGVscGVyX2hzdWJwZCwgTlVMTCwgaGVscGVyX2hzdWJw cyB9LAogICAgIFsweDdlXSA9IHsgU1NFX1NQRUNJQUwsIFNTRV9TUEVDSUFMLCBTU0VfU1BFQ0lB TCB9LCAvKiBtb3ZkLCBtb3ZkLCAsIG1vdnEgKi8KICAgICBbMHg3Zl0gPSB7IFNTRV9TUEVDSUFM LCBTU0VfU1BFQ0lBTCwgU1NFX1NQRUNJQUwgfSwgLyogbW92cSwgbW92ZHFhLCBtb3ZkcXUgKi8K ICAgICBbMHhjNF0gPSB7IFNTRV9TUEVDSUFMLCBTU0VfU1BFQ0lBTCB9LCAvKiBwaW5zcncgKi8K ICAgICBbMHhjNV0gPSB7IFNTRV9TUEVDSUFMLCBTU0VfU1BFQ0lBTCB9LCAvKiBwZXh0cncgKi8K LSAgICBbMHhkMF0gPSB7IE5VTEwsIGdlbl9vcF9hZGRzdWJwZCwgTlVMTCwgZ2VuX29wX2FkZHN1 YnBzIH0sCisgICAgWzB4ZDBdID0geyBOVUxMLCBoZWxwZXJfYWRkc3VicGQsIE5VTEwsIGhlbHBl cl9hZGRzdWJwcyB9LAogICAgIFsweGQxXSA9IE1NWF9PUDIocHNybHcpLAogICAgIFsweGQyXSA9 IE1NWF9PUDIocHNybGQpLAogICAgIFsweGQzXSA9IE1NWF9PUDIocHNybHEpLApAQCAtMjUwOSw3 ICsyNTA5LDcgQEAKICAgICBbMHhlM10gPSBNTVhfT1AyKHBhdmd3KSwKICAgICBbMHhlNF0gPSBN TVhfT1AyKHBtdWxodXcpLAogICAgIFsweGU1XSA9IE1NWF9PUDIocG11bGh3KSwKLSAgICBbMHhl Nl0gPSB7IE5VTEwsIGdlbl9vcF9jdnR0cGQyZHEsIGdlbl9vcF9jdnRkcTJwZCwgZ2VuX29wX2N2 dHBkMmRxIH0sCisgICAgWzB4ZTZdID0geyBOVUxMLCBoZWxwZXJfY3Z0dHBkMmRxLCBoZWxwZXJf Y3Z0ZHEycGQsIGhlbHBlcl9jdnRwZDJkcSB9LAogICAgIFsweGU3XSA9IHsgU1NFX1NQRUNJQUwg LCBTU0VfU1BFQ0lBTCB9LCAgLyogbW92bnRxLCBtb3ZudHEgKi8KICAgICBbMHhlOF0gPSBNTVhf T1AyKHBzdWJzYiksCiAgICAgWzB4ZTldID0gTU1YX09QMihwc3Vic3cpLApAQCAtMjUzNiw3ICsy NTM2LDcgQEAKICAgICBbMHhmZV0gPSBNTVhfT1AyKHBhZGRsKSwKIH07CiAKLXN0YXRpYyBHZW5P cEZ1bmMyICpzc2Vfb3BfdGFibGUyWzMgKiA4XVsyXSA9IHsKK3N0YXRpYyB2b2lkICpzc2Vfb3Bf dGFibGUyWzMgKiA4XVsyXSA9IHsKICAgICBbMCArIDJdID0gTU1YX09QMihwc3JsdyksCiAgICAg WzAgKyA0XSA9IE1NWF9PUDIocHNyYXcpLAogICAgIFswICsgNl0gPSBNTVhfT1AyKHBzbGx3KSwK QEAgLTI1NDQsMjkgKzI1NDQsMjkgQEAKICAgICBbOCArIDRdID0gTU1YX09QMihwc3JhZCksCiAg ICAgWzggKyA2XSA9IE1NWF9PUDIocHNsbGQpLAogICAgIFsxNiArIDJdID0gTU1YX09QMihwc3Js cSksCi0gICAgWzE2ICsgM10gPSB7IE5VTEwsIGdlbl9vcF9wc3JsZHFfeG1tIH0sCisgICAgWzE2 ICsgM10gPSB7IE5VTEwsIGhlbHBlcl9wc3JsZHFfeG1tIH0sCiAgICAgWzE2ICsgNl0gPSBNTVhf T1AyKHBzbGxxKSwKLSAgICBbMTYgKyA3XSA9IHsgTlVMTCwgZ2VuX29wX3BzbGxkcV94bW0gfSwK KyAgICBbMTYgKyA3XSA9IHsgTlVMTCwgaGVscGVyX3BzbGxkcV94bW0gfSwKIH07CiAKLXN0YXRp YyBHZW5PcEZ1bmMxICpzc2Vfb3BfdGFibGUzWzQgKiAzXSA9IHsKLSAgICBnZW5fb3BfY3Z0c2ky c3MsCi0gICAgZ2VuX29wX2N2dHNpMnNkLAotICAgIFg4Nl82NF9PTkxZKGdlbl9vcF9jdnRzcTJz cyksCi0gICAgWDg2XzY0X09OTFkoZ2VuX29wX2N2dHNxMnNkKSwKLQotICAgIGdlbl9vcF9jdnR0 c3Myc2ksCi0gICAgZ2VuX29wX2N2dHRzZDJzaSwKLSAgICBYODZfNjRfT05MWShnZW5fb3BfY3Z0 dHNzMnNxKSwKLSAgICBYODZfNjRfT05MWShnZW5fb3BfY3Z0dHNkMnNxKSwKLQotICAgIGdlbl9v cF9jdnRzczJzaSwKLSAgICBnZW5fb3BfY3Z0c2Qyc2ksCi0gICAgWDg2XzY0X09OTFkoZ2VuX29w X2N2dHNzMnNxKSwKLSAgICBYODZfNjRfT05MWShnZW5fb3BfY3Z0c2Qyc3EpLAorc3RhdGljIHZv aWQgKnNzZV9vcF90YWJsZTNbNCAqIDNdID0geworICAgIGhlbHBlcl9jdnRzaTJzcywKKyAgICBo ZWxwZXJfY3Z0c2kyc2QsCisgICAgWDg2XzY0X09OTFkoaGVscGVyX2N2dHNxMnNzKSwKKyAgICBY ODZfNjRfT05MWShoZWxwZXJfY3Z0c3Eyc2QpLAorCisgICAgaGVscGVyX2N2dHRzczJzaSwKKyAg ICBoZWxwZXJfY3Z0dHNkMnNpLAorICAgIFg4Nl82NF9PTkxZKGhlbHBlcl9jdnR0c3Myc3EpLAor ICAgIFg4Nl82NF9PTkxZKGhlbHBlcl9jdnR0c2Qyc3EpLAorCisgICAgaGVscGVyX2N2dHNzMnNp LAorICAgIGhlbHBlcl9jdnRzZDJzaSwKKyAgICBYODZfNjRfT05MWShoZWxwZXJfY3Z0c3Myc3Ep LAorICAgIFg4Nl82NF9PTkxZKGhlbHBlcl9jdnRzZDJzcSksCiB9OwogCi1zdGF0aWMgR2VuT3BG dW5jMiAqc3NlX29wX3RhYmxlNFs4XVs0XSA9IHsKK3N0YXRpYyB2b2lkICpzc2Vfb3BfdGFibGU0 WzhdWzRdID0gewogICAgIFNTRV9GT1AoY21wZXEpLAogICAgIFNTRV9GT1AoY21wbHQpLAogICAg IFNTRV9GT1AoY21wbGUpLApAQCAtMjY2MSwxOSArMjY2MSwyNSBAQAogI2VuZGlmCiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgZ2VuX2xkc3RfbW9kcm0ocywgbW9kcm0sIE9UX0xPTkcs IE9SX1RNUDAsIDApOwotICAgICAgICAgICAgICAgIGdlbl9vcF9tb3ZsX21tX1QwX21teChvZmZz ZXRvZihDUFVYODZTdGF0ZSxmcHJlZ3NbcmVnXS5tbXgpKTsKKyAgICAgICAgICAgICAgICB0Y2df Z2VuX2hlbHBlcl8wXzIoaGVscGVyX21vdmxfbW1fVDBfbW14LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZTdGF0ZSxmcHJlZ3NbcmVnXS5tbXgpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVfVFswXSk7CiAgICAgICAgICAg ICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAweDE2ZTogLyogbW92ZCB4bW0s IGVhICovCiAjaWZkZWYgVEFSR0VUX1g4Nl82NAogICAgICAgICAgICAgaWYgKHMtPmRmbGFnID09 IDIpIHsKICAgICAgICAgICAgICAgICBnZW5fbGRzdF9tb2RybShzLCBtb2RybSwgT1RfUVVBRCwg T1JfVE1QMCwgMCk7Ci0gICAgICAgICAgICAgICAgZ2VuX29wX21vdnFfbW1fVDBfeG1tKG9mZnNl dG9mKENQVVg4NlN0YXRlLHhtbV9yZWdzW3JlZ10pKTsKKyAgICAgICAgICAgICAgICB0Y2dfZ2Vu X2hlbHBlcl8wXzIoaGVscGVyX21vdnFfbW1fVDBfeG1tLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZTdGF0ZSx4bW1fcmVnc1tyZWddKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1X1RbMF0pOwogICAgICAgICAgICAgfSBl bHNlCiAjZW5kaWYKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBnZW5fbGRzdF9tb2Ry bShzLCBtb2RybSwgT1RfTE9ORywgT1JfVE1QMCwgMCk7Ci0gICAgICAgICAgICAgICAgZ2VuX29w X21vdmxfbW1fVDBfeG1tKG9mZnNldG9mKENQVVg4NlN0YXRlLHhtbV9yZWdzW3JlZ10pKTsKKyAg ICAgICAgICAgICAgICB0Y2dfZ2VuX2hlbHBlcl8wXzIoaGVscGVyX21vdmxfbW1fVDBfeG1tLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZTdGF0ZSx4 bW1fcmVnc1tyZWddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1X1Rb MF0pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHg2 ZjogLyogbW92cSBtbSwgZWEgKi8KQEAgLTI4MDUsMTkgKzI4MTEsMjIgQEAKICAgICAgICAgICAg IH0gZWxzZQogI2VuZGlmCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZ2VuX29wX21v dmxfVDBfbW1fbW14KG9mZnNldG9mKENQVVg4NlN0YXRlLGZwcmVnc1tyZWddLm1teCkpOworICAg ICAgICAgICAgICAgIHRjZ19nZW5faGVscGVyXzFfMShoZWxwZXJfbW92bF9UMF9tbV9tbXgsIGNw dV9UWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVY ODZTdGF0ZSxmcHJlZ3NbcmVnXS5tbXgpKTsKICAgICAgICAgICAgICAgICBnZW5fbGRzdF9tb2Ry bShzLCBtb2RybSwgT1RfTE9ORywgT1JfVE1QMCwgMSk7CiAgICAgICAgICAgICB9CiAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgY2FzZSAweDE3ZTogLyogbW92ZCBlYSwgeG1tICovCiAjaWZk ZWYgVEFSR0VUX1g4Nl82NAogICAgICAgICAgICAgaWYgKHMtPmRmbGFnID09IDIpIHsKLSAgICAg ICAgICAgICAgICBnZW5fb3BfbW92cV9UMF9tbV94bW0ob2Zmc2V0b2YoQ1BVWDg2U3RhdGUseG1t X3JlZ3NbcmVnXSkpOworICAgICAgICAgICAgICAgIHRjZ19nZW5faGVscGVyXzFfMShoZWxwZXJf bW92cV9UMF9tbV94bW0sIGNwdV9UWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZmZzZXRvZihDUFVYODZTdGF0ZSx4bW1fcmVnc1tyZWddKSk7CiAgICAgICAgICAgICAg ICAgZ2VuX2xkc3RfbW9kcm0ocywgbW9kcm0sIE9UX1FVQUQsIE9SX1RNUDAsIDEpOwogICAgICAg ICAgICAgfSBlbHNlCiAjZW5kaWYKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBnZW5f b3BfbW92bF9UMF9tbV94bW0ob2Zmc2V0b2YoQ1BVWDg2U3RhdGUseG1tX3JlZ3NbcmVnXSkpOwor ICAgICAgICAgICAgICAgIHRjZ19nZW5faGVscGVyXzFfMShoZWxwZXJfbW92bF9UMF9tbV94bW0s IGNwdV9UWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihD UFVYODZTdGF0ZSx4bW1fcmVnc1tyZWddKSk7CiAgICAgICAgICAgICAgICAgZ2VuX2xkc3RfbW9k cm0ocywgbW9kcm0sIE9UX0xPTkcsIE9SX1RNUDAsIDEpOwogICAgICAgICAgICAgfQogICAgICAg ICAgICAgYnJlYWs7CkBAIC0yOTI2LDE2ICsyOTM1LDE5IEBACiAgICAgICAgICAgICAgICAgcm0g PSAobW9kcm0gJiA3KTsKICAgICAgICAgICAgICAgICBvcDJfb2Zmc2V0ID0gb2Zmc2V0b2YoQ1BV WDg2U3RhdGUsZnByZWdzW3JtXS5tbXgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgc3Nl X29wMihvcDJfb2Zmc2V0LCBvcDFfb2Zmc2V0KTsKKyAgICAgICAgICAgIHRjZ19nZW5faGVscGVy XzBfMihzc2Vfb3AyLCB0Y2dfY29uc3RfaTMyKG9wMl9vZmZzZXQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRjZ19jb25zdF9pMzIob3AxX29mZnNldCkpOwogICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgIGNhc2UgMHgwNTA6IC8qIG1vdm1za3BzICovCiAgICAgICAgICAgICBy bSA9IChtb2RybSAmIDcpIHwgUkVYX0Iocyk7Ci0gICAgICAgICAgICBnZW5fb3BfbW92bXNrcHMo b2Zmc2V0b2YoQ1BVWDg2U3RhdGUseG1tX3JlZ3Nbcm1dKSk7CisgICAgICAgICAgICB0Y2dfZ2Vu X2hlbHBlcl8xXzEoaGVscGVyX21vdm1za3BzLCBjcHVfVFswXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZTdGF0ZSx4bW1fcmVnc1tybV0pKTsKICAgICAg ICAgICAgIGdlbl9vcF9tb3ZfcmVnX1QwKE9UX0xPTkcsIHJlZyk7CiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgY2FzZSAweDE1MDogLyogbW92bXNrcGQgKi8KICAgICAgICAgICAgIHJtID0g KG1vZHJtICYgNykgfCBSRVhfQihzKTsKLSAgICAgICAgICAgIGdlbl9vcF9tb3Ztc2twZChvZmZz ZXRvZihDUFVYODZTdGF0ZSx4bW1fcmVnc1tybV0pKTsKKyAgICAgICAgICAgIHRjZ19nZW5faGVs cGVyXzFfMShoZWxwZXJfbW92bXNrcGQsIGNwdV9UWzBdLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldG9mKENQVVg4NlN0YXRlLHhtbV9yZWdzW3JtXSkpOwogICAgICAgICAg ICAgZ2VuX29wX21vdl9yZWdfVDAoT1RfTE9ORywgcmVnKTsKICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICBjYXNlIDB4MDJhOiAvKiBjdnRwaTJwcyAqLwpAQCAtMjk1MiwxMSArMjk2NCwxMSBA QAogICAgICAgICAgICAgb3AxX29mZnNldCA9IG9mZnNldG9mKENQVVg4NlN0YXRlLHhtbV9yZWdz W3JlZ10pOwogICAgICAgICAgICAgc3dpdGNoKGIgPj4gOCkgewogICAgICAgICAgICAgY2FzZSAw eDA6Ci0gICAgICAgICAgICAgICAgZ2VuX29wX2N2dHBpMnBzKG9wMV9vZmZzZXQsIG9wMl9vZmZz ZXQpOworICAgICAgICAgICAgICAgIHRjZ19nZW5faGVscGVyXzBfMihoZWxwZXJfY3Z0cGkycHMs IG9wMV9vZmZzZXQsIG9wMl9vZmZzZXQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGNhc2UgMHgxOgotICAgICAgICAgICAgICAgIGdl bl9vcF9jdnRwaTJwZChvcDFfb2Zmc2V0LCBvcDJfb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICB0 Y2dfZ2VuX2hlbHBlcl8wXzIoaGVscGVyX2N2dHBpMnBkLCBvcDFfb2Zmc2V0LCBvcDJfb2Zmc2V0 KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy ZWFrOwpAQCAtMjk2NSw3ICsyOTc3LDkgQEAKICAgICAgICAgICAgIG90ID0gKHMtPmRmbGFnID09 IDIpID8gT1RfUVVBRCA6IE9UX0xPTkc7CiAgICAgICAgICAgICBnZW5fbGRzdF9tb2RybShzLCBt b2RybSwgb3QsIE9SX1RNUDAsIDApOwogICAgICAgICAgICAgb3AxX29mZnNldCA9IG9mZnNldG9m KENQVVg4NlN0YXRlLHhtbV9yZWdzW3JlZ10pOwotICAgICAgICAgICAgc3NlX29wX3RhYmxlM1so cy0+ZGZsYWcgPT0gMikgKiAyICsgKChiID4+IDgpIC0gMildKG9wMV9vZmZzZXQpOworICAgICAg ICAgICAgdGNnX2dlbl9oZWxwZXJfMF8yKHNzZV9vcF90YWJsZTNbKHMtPmRmbGFnID09IDIpICog MiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGIgPj4g OCkgLSAyKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AxX29mZnNldCwgY3B1 X1RbMF0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHgwMmM6IC8qIGN2dHRw czJwaSAqLwogICAgICAgICBjYXNlIDB4MTJjOiAvKiBjdnR0cGQycGkgKi8KQEAgLTI5ODMsMTYg KzI5OTcsMTYgQEAKICAgICAgICAgICAgIG9wMV9vZmZzZXQgPSBvZmZzZXRvZihDUFVYODZTdGF0 ZSxmcHJlZ3NbcmVnICYgN10ubW14KTsKICAgICAgICAgICAgIHN3aXRjaChiKSB7CiAgICAgICAg ICAgICBjYXNlIDB4MDJjOgotICAgICAgICAgICAgICAgIGdlbl9vcF9jdnR0cHMycGkob3AxX29m ZnNldCwgb3AyX29mZnNldCk7CisgICAgICAgICAgICAgICAgdGNnX2dlbl9oZWxwZXJfMF8yKGhl bHBlcl9jdnR0cHMycGksIG9wMV9vZmZzZXQsIG9wMl9vZmZzZXQpOwogICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgY2FzZSAweDEyYzoKLSAgICAgICAgICAgICAgICBnZW5fb3Bf Y3Z0dHBkMnBpKG9wMV9vZmZzZXQsIG9wMl9vZmZzZXQpOworICAgICAgICAgICAgICAgIHRjZ19n ZW5faGVscGVyXzBfMihoZWxwZXJfY3Z0dHBkMnBpLCBvcDFfb2Zmc2V0LCBvcDJfb2Zmc2V0KTsK ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgMHgwMmQ6Ci0gICAgICAg ICAgICAgICAgZ2VuX29wX2N2dHBzMnBpKG9wMV9vZmZzZXQsIG9wMl9vZmZzZXQpOworICAgICAg ICAgICAgICAgIHRjZ19nZW5faGVscGVyXzBfMihoZWxwZXJfY3Z0cHMycGksIG9wMV9vZmZzZXQs IG9wMl9vZmZzZXQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAw eDEyZDoKLSAgICAgICAgICAgICAgICBnZW5fb3BfY3Z0cGQycGkob3AxX29mZnNldCwgb3AyX29m ZnNldCk7CisgICAgICAgICAgICAgICAgdGNnX2dlbl9oZWxwZXJfMF8yKGhlbHBlcl9jdnRwZDJw aSwgb3AxX29mZnNldCwgb3AyX29mZnNldCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTMwMTQsOCArMzAyOCw4IEBACiAgICAg ICAgICAgICAgICAgcm0gPSAobW9kcm0gJiA3KSB8IFJFWF9CKHMpOwogICAgICAgICAgICAgICAg IG9wMl9vZmZzZXQgPSBvZmZzZXRvZihDUFVYODZTdGF0ZSx4bW1fcmVnc1tybV0pOwogICAgICAg ICAgICAgfQotICAgICAgICAgICAgc3NlX29wX3RhYmxlM1socy0+ZGZsYWcgPT0gMikgKiAyICsg KChiID4+IDgpIC0gMikgKyA0ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgJiAxKSAq IDRdKG9wMl9vZmZzZXQpOworICAgICAgICAgICAgdGNnX2dlbl9oZWxwZXJfMF8yKHNzZV9vcF90 YWJsZTNbKHMtPmRmbGFnID09IDIpICogMiArICgoYiA+PiA4KSAtIDIpICsgNCArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiAmIDEpICogNF0sIG9wMl9v ZmZzZXQsIGNwdV9UWzBdKTsKICAgICAgICAgICAgIGdlbl9vcF9tb3ZfcmVnX1QwKG90LCByZWcp OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHhjNDogLyogcGluc3J3ICovCkBA IC0zMDI1LDEwICszMDM5LDE0IEBACiAgICAgICAgICAgICB2YWwgPSBsZHViX2NvZGUocy0+cGMr Kyk7CiAgICAgICAgICAgICBpZiAoYjEpIHsKICAgICAgICAgICAgICAgICB2YWwgJj0gNzsKLSAg ICAgICAgICAgICAgICBnZW5fb3BfcGluc3J3X3htbShvZmZzZXRvZihDUFVYODZTdGF0ZSx4bW1f cmVnc1tyZWddKSwgdmFsKTsKKyAgICAgICAgICAgICAgICB0Y2dfZ2VuX2hlbHBlcl8wXzMoaGVs cGVyX3BpbnNyd194bW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKENQVVg4NlN0YXRlLHhtbV9yZWdzW3JlZ10pLCB2YWwsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNwdV9UWzBdKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg ICAgICAgICAgdmFsICY9IDM7Ci0gICAgICAgICAgICAgICAgZ2VuX29wX3BpbnNyd19tbXgob2Zm c2V0b2YoQ1BVWDg2U3RhdGUsZnByZWdzW3JlZ10ubW14KSwgdmFsKTsKKyAgICAgICAgICAgICAg ICB0Y2dfZ2VuX2hlbHBlcl8wXzMoaGVscGVyX3BpbnNyd19tbXgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKENQVVg4NlN0YXRlLGZwcmVnc1tyZWddLm1teCks IHZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1X1RbMF0pOwogICAg ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHhjNTogLyogcGV4 dHJ3ICovCkBAIC0zMDM5LDExICszMDU3LDEzIEBACiAgICAgICAgICAgICBpZiAoYjEpIHsKICAg ICAgICAgICAgICAgICB2YWwgJj0gNzsKICAgICAgICAgICAgICAgICBybSA9IChtb2RybSAmIDcp IHwgUkVYX0Iocyk7Ci0gICAgICAgICAgICAgICAgZ2VuX29wX3BleHRyd194bW0ob2Zmc2V0b2Yo Q1BVWDg2U3RhdGUseG1tX3JlZ3Nbcm1dKSwgdmFsKTsKKyAgICAgICAgICAgICAgICB0Y2dfZ2Vu X2hlbHBlcl8xXzIoaGVscGVyX3BleHRyd194bW0sIGNwdV9UWzBdLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZTdGF0ZSx4bW1fcmVnc1tybV0pLCB2 YWwpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICB2YWwgJj0gMzsKICAg ICAgICAgICAgICAgICBybSA9IChtb2RybSAmIDcpOwotICAgICAgICAgICAgICAgIGdlbl9vcF9w ZXh0cndfbW14KG9mZnNldG9mKENQVVg4NlN0YXRlLGZwcmVnc1tybV0ubW14KSwgdmFsKTsKKyAg ICAgICAgICAgICAgICB0Y2dfZ2VuX2hlbHBlcl8xXzIoaGVscGVyX3BleHRyd19tbXgsIGNwdV9U WzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZT dGF0ZSxmcHJlZ3Nbcm1dLm1teCksIHZhbCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBy ZWcgPSAoKG1vZHJtID4+IDMpICYgNykgfCByZXhfcjsKICAgICAgICAgICAgIGdlbl9vcF9tb3Zf cmVnX1QwKE9UX0xPTkcsIHJlZyk7CkBAIC0zMDc4LDEwICszMDk4LDEyIEBACiAgICAgICAgICAg ICAgICAgZ290byBpbGxlZ2FsX29wOwogICAgICAgICAgICAgaWYgKGIxKSB7CiAgICAgICAgICAg ICAgICAgcm0gPSAobW9kcm0gJiA3KSB8IFJFWF9CKHMpOwotICAgICAgICAgICAgICAgIGdlbl9v cF9wbW92bXNrYl94bW0ob2Zmc2V0b2YoQ1BVWDg2U3RhdGUseG1tX3JlZ3Nbcm1dKSk7CisgICAg ICAgICAgICAgICAgdGNnX2dlbl9oZWxwZXJfMV8xKGhlbHBlcl9wbW92bXNrYl94bW0sIGNwdV9U WzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZT dGF0ZSx4bW1fcmVnc1tybV0pKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg ICAgcm0gPSAobW9kcm0gJiA3KTsKLSAgICAgICAgICAgICAgICBnZW5fb3BfcG1vdm1za2JfbW14 KG9mZnNldG9mKENQVVg4NlN0YXRlLGZwcmVnc1tybV0ubW14KSk7CisgICAgICAgICAgICAgICAg dGNnX2dlbl9oZWxwZXJfMV8xKGhlbHBlcl9wbW92bXNrYl9tbXgsIGNwdV9UWzBdLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVYODZTdGF0ZSxmcHJlZ3Nb cm1dLm1teCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmVnID0gKChtb2RybSA+PiAz KSAmIDcpIHwgcmV4X3I7CiAgICAgICAgICAgICBnZW5fb3BfbW92X3JlZ19UMChPVF9MT05HLCBy ZWcpOwpAQCAtMzE1NSw3ICszMTc3LDggQEAKICAgICAgICAgY2FzZSAweGM2OiAvKiBwc2h1Zngg aW5zbiAqLwogICAgICAgICAgICAgdmFsID0gbGR1Yl9jb2RlKHMtPnBjKyspOwogICAgICAgICAg ICAgc3NlX29wMyA9IChHZW5PcEZ1bmMzICopc3NlX29wMjsKLSAgICAgICAgICAgIHNzZV9vcDMo b3AxX29mZnNldCwgb3AyX29mZnNldCwgdmFsKTsKKyAgICAgICAgICAgIHRjZ19nZW5faGVscGVy XzBfMyhzc2Vfb3AzLCB0Y2dfY29uc3RfaTMyKG9wMV9vZmZzZXQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRjZ19jb25zdF9pMzIob3AyX29mZnNldCksIHRjZ19jb25zdF90bCh2 YWwpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDB4YzI6CiAgICAgICAgICAg ICAvKiBjb21wYXJlIGluc25zICovCkBAIC0zMTYzLDEwICszMTg2LDEyIEBACiAgICAgICAgICAg ICBpZiAodmFsID49IDgpCiAgICAgICAgICAgICAgICAgZ290byBpbGxlZ2FsX29wOwogICAgICAg ICAgICAgc3NlX29wMiA9IHNzZV9vcF90YWJsZTRbdmFsXVtiMV07Ci0gICAgICAgICAgICBzc2Vf b3AyKG9wMV9vZmZzZXQsIG9wMl9vZmZzZXQpOworICAgICAgICAgICAgdGNnX2dlbl9oZWxwZXJf MF8yKHNzZV9vcDIsIHRjZ19jb25zdF9pMzIob3AxX29mZnNldCksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGNnX2NvbnN0X2kzMihvcDJfb2Zmc2V0KSk7CiAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHNzZV9vcDIob3AxX29mZnNldCwg b3AyX29mZnNldCk7CisgICAgICAgICAgICB0Y2dfZ2VuX2hlbHBlcl8wXzIoc3NlX29wMiwgdGNn X2NvbnN0X2kzMihvcDFfb2Zmc2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 Y2dfY29uc3RfaTMyKG9wMl9vZmZzZXQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9 CiAgICAgICAgIGlmIChiID09IDB4MmUgfHwgYiA9PSAweDJmKSB7CkBAIC0zMTc1LDcgKzMyMDAs NiBAQAogICAgIH0KIH0KIAotCiAvKiBjb252ZXJ0IG9uZSBpbnN0cnVjdGlvbi4gcy0+aXNfam1w IGlzIHNldCBpZiB0aGUgdHJhbnNsYXRpb24gbXVzdAogICAgYmUgc3RvcHBlZC4gUmV0dXJuIHRo ZSBuZXh0IHBjIHZhbHVlICovCiBzdGF0aWMgdGFyZ2V0X3Vsb25nIGRpc2FzX2luc24oRGlzYXND b250ZXh0ICpzLCB0YXJnZXRfdWxvbmcgcGNfc3RhcnQpCkBAIC02NDI3LDExICs2NDUxLDEzIEBA CiAgICAgW0lOREVYX29wX2ltdWxsX1QwX1QxXSA9IENDX09TWkFQQywKICAgICBYODZfNjRfREVG KFtJTkRFWF9vcF9pbXVscV9UMF9UMV0gPSBDQ19PU1pBUEMsKQogCisjaWYgMAogICAgIC8qIHNz ZSAqLwogICAgIFtJTkRFWF9vcF91Y29taXNzXSA9IENDX09TWkFQQywKICAgICBbSU5ERVhfb3Bf dWNvbWlzZF0gPSBDQ19PU1pBUEMsCiAgICAgW0lOREVYX29wX2NvbWlzc10gPSBDQ19PU1pBUEMs CiAgICAgW0lOREVYX29wX2NvbWlzZF0gPSBDQ19PU1pBUEMsCisjZW5kaWYKIAogICAgIC8qIGJj ZCAqLwogICAgIFtJTkRFWF9vcF9hYW1dID0gQ0NfT1NaQVBDLApJbmRleDogcWVtdS90YXJnZXQt aTM4Ni9oZWxwZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LWkzODYvaGVscGVy LmMJMjAwOC0wMy0xOSAxODoyNjoyOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0LWkz ODYvaGVscGVyLmMJMjAwOC0wMy0xOSAxODoyODoxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTQ0NDYs MyArNDQ0Niw5IEBACiB9CiAKICNlbmRpZgorCisjZGVmaW5lIFNISUZUIDAKKyNpbmNsdWRlICJv cHNfc3NlLmgiCisKKyNkZWZpbmUgU0hJRlQgMQorI2luY2x1ZGUgIm9wc19zc2UuaCIKSW5kZXg6 IHFlbXUvdGFyZ2V0LWkzODYvb3BzX3NzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90YXJn ZXQtaTM4Ni9vcHNfc3NlLmgJMjAwOC0wMy0xOSAxODoyNjoyOS4wMDAwMDAwMDAgKzAwMDAKKysr IHFlbXUvdGFyZ2V0LWkzODYvb3BzX3NzZS5oCTIwMDgtMDMtMTkgMTg6Mjg6MTMuMDAwMDAwMDAw ICswMDAwCkBAIC0zNSwxMyArMzUsMTMgQEAKICNkZWZpbmUgU1VGRklYIF94bW0KICNlbmRpZgog Ci12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wc3JsdywgU1VGRklYKSh2b2lkKQordm9pZCBnbHVlKGhl bHBlcl9wc3JsdywgU1VGRklYKSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KQogewogICAgIFJlZyAqZCwgKnM7CiAgICAgaW50IHNoaWZ0OwogCi0gICAgZCA9IChSZWcg KikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsg UEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAg IHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAKICAgICBpZiAocy0+USgw KSA+IDE1KSB7CiAgICAgICAgIGQtPlEoMCkgPSAwOwpAQCAtNjEsMTYgKzYxLDE1IEBACiAgICAg ICAgIGQtPlcoNykgPj49IHNoaWZ0OwogI2VuZGlmCiAgICAgfQotICAgIEZPUkNFX1JFVCgpOwog fQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wc3JhdywgU1VGRklYKSh2b2lkKQordm9pZCBnbHVl KGhlbHBlcl9wc3JhdywgU1VGRklYKSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNf b2Zmc2V0KQogewogICAgIFJlZyAqZCwgKnM7CiAgICAgaW50IHNoaWZ0OwogCi0gICAgZCA9IChS ZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52 ICsgUEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOwor ICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAKICAgICBpZiAocy0+ USgwKSA+IDE1KSB7CiAgICAgICAgIHNoaWZ0ID0gMTU7CkBAIC04OSwxMyArODgsMTMgQEAKICNl bmRpZgogfQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wc2xsdywgU1VGRklYKSh2b2lkKQordm9p ZCBnbHVlKGhlbHBlcl9wc2xsdywgU1VGRklYKSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyAqZCwgKnM7CiAgICAgaW50IHNoaWZ0OwogCi0gICAg ZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFy ICopZW52ICsgUEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZz ZXQpOworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAKICAgICBp ZiAocy0+USgwKSA+IDE1KSB7CiAgICAgICAgIGQtPlEoMCkgPSAwOwpAQCAtMTE1LDE2ICsxMTQs MTUgQEAKICAgICAgICAgZC0+Vyg3KSA8PD0gc2hpZnQ7CiAjZW5kaWYKICAgICB9Ci0gICAgRk9S Q0VfUkVUKCk7CiB9CiAKLXZvaWQgT1BQUk9UTyBnbHVlKG9wX3BzcmxkLCBTVUZGSVgpKHZvaWQp Cit2b2lkIGdsdWUoaGVscGVyX3BzcmxkLCBTVUZGSVgpKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVp bnQzMl90IHNyY19vZmZzZXQpCiB7CiAgICAgUmVnICpkLCAqczsKICAgICBpbnQgc2hpZnQ7CiAK LSAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgcyA9IChSZWcgKiko KGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0 X29mZnNldCk7CisgICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsKIAog ICAgIGlmIChzLT5RKDApID4gMzEpIHsKICAgICAgICAgZC0+USgwKSA9IDA7CkBAIC0xNDAsMTYg KzEzOCwxNSBAQAogICAgICAgICBkLT5MKDMpID4+PSBzaGlmdDsKICNlbmRpZgogICAgIH0KLSAg ICBGT1JDRV9SRVQoKTsKIH0KIAotdm9pZCBPUFBST1RPIGdsdWUob3BfcHNyYWQsIFNVRkZJWCko dm9pZCkKK3ZvaWQgZ2x1ZShoZWxwZXJfcHNyYWQsIFNVRkZJWCkodWludDMyX3QgZHN0X29mZnNl dCwgdWludDMyX3Qgc3JjX29mZnNldCkKIHsKICAgICBSZWcgKmQsICpzOwogICAgIGludCBzaGlm dDsKIAotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBzID0gKFJl ZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYg KyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQp OwogCiAgICAgaWYgKHMtPlEoMCkgPiAzMSkgewogICAgICAgICBzaGlmdCA9IDMxOwpAQCAtMTY0 LDEzICsxNjEsMTMgQEAKICNlbmRpZgogfQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wc2xsZCwg U1VGRklYKSh2b2lkKQordm9pZCBnbHVlKGhlbHBlcl9wc2xsZCwgU1VGRklYKSh1aW50MzJfdCBk c3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyAqZCwgKnM7CiAgICAg aW50IHNoaWZ0OwogCi0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAg IHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hh ciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3Jj X29mZnNldCk7CiAKICAgICBpZiAocy0+USgwKSA+IDMxKSB7CiAgICAgICAgIGQtPlEoMCkgPSAw OwpAQCAtMTg2LDE2ICsxODMsMTUgQEAKICAgICAgICAgZC0+TCgzKSA8PD0gc2hpZnQ7CiAjZW5k aWYKICAgICB9Ci0gICAgRk9SQ0VfUkVUKCk7CiB9CiAKLXZvaWQgT1BQUk9UTyBnbHVlKG9wX3Bz cmxxLCBTVUZGSVgpKHZvaWQpCit2b2lkIGdsdWUoaGVscGVyX3BzcmxxLCBTVUZGSVgpKHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7CiAgICAgUmVnICpkLCAqczsK ICAgICBpbnQgc2hpZnQ7CiAKLSAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7 Ci0gICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIGQgPSAoUmVnICop KChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYg KyBzcmNfb2Zmc2V0KTsKIAogICAgIGlmIChzLT5RKDApID4gNjMpIHsKICAgICAgICAgZC0+USgw KSA9IDA7CkBAIC0yMDksMTYgKzIwNSwxNSBAQAogICAgICAgICBkLT5RKDEpID4+PSBzaGlmdDsK ICNlbmRpZgogICAgIH0KLSAgICBGT1JDRV9SRVQoKTsKIH0KIAotdm9pZCBPUFBST1RPIGdsdWUo b3BfcHNsbHEsIFNVRkZJWCkodm9pZCkKK3ZvaWQgZ2x1ZShoZWxwZXJfcHNsbHEsIFNVRkZJWCko dWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkKIHsKICAgICBSZWcgKmQs ICpzOwogICAgIGludCBzaGlmdDsKIAotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFS QU0xKTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgZCA9IChS ZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAq KWVudiArIHNyY19vZmZzZXQpOwogCiAgICAgaWYgKHMtPlEoMCkgPiA2MykgewogICAgICAgICBk LT5RKDApID0gMDsKQEAgLTIzMiwxNyArMjI3LDE2IEBACiAgICAgICAgIGQtPlEoMSkgPDw9IHNo aWZ0OwogI2VuZGlmCiAgICAgfQotICAgIEZPUkNFX1JFVCgpOwogfQogCiAjaWYgU0hJRlQgPT0g MQotdm9pZCBPUFBST1RPIGdsdWUob3BfcHNybGRxLCBTVUZGSVgpKHZvaWQpCit2b2lkIGdsdWUo aGVscGVyX3BzcmxkcSwgU1VGRklYKSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNf b2Zmc2V0KQogewogICAgIFJlZyAqZCwgKnM7CiAgICAgaW50IHNoaWZ0LCBpOwogCi0gICAgZCA9 IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICop ZW52ICsgUEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQp OworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgc2hpZnQg PSBzLT5MKDApOwogICAgIGlmIChzaGlmdCA+IDE2KQogICAgICAgICBzaGlmdCA9IDE2OwpAQCAt MjUwLDE2ICsyNDQsMTUgQEAKICAgICAgICAgZC0+QihpKSA9IGQtPkIoaSArIHNoaWZ0KTsKICAg ICBmb3IoaSA9IDE2IC0gc2hpZnQ7IGkgPCAxNjsgaSsrKQogICAgICAgICBkLT5CKGkpID0gMDsK LSAgICBGT1JDRV9SRVQoKTsKIH0KIAotdm9pZCBPUFBST1RPIGdsdWUob3BfcHNsbGRxLCBTVUZG SVgpKHZvaWQpCit2b2lkIGdsdWUoaGVscGVyX3BzbGxkcSwgU1VGRklYKSh1aW50MzJfdCBkc3Rf b2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyAqZCwgKnM7CiAgICAgaW50 IHNoaWZ0LCBpOwogCi0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAg IHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hh ciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3Jj X29mZnNldCk7CiAgICAgc2hpZnQgPSBzLT5MKDApOwogICAgIGlmIChzaGlmdCA+IDE2KQogICAg ICAgICBzaGlmdCA9IDE2OwpAQCAtMjY3LDE2ICsyNjAsMTUgQEAKICAgICAgICAgZC0+QihpKSA9 IGQtPkIoaSAtIHNoaWZ0KTsKICAgICBmb3IoaSA9IDA7IGkgPCBzaGlmdDsgaSsrKQogICAgICAg ICBkLT5CKGkpID0gMDsKLSAgICBGT1JDRV9SRVQoKTsKIH0KICNlbmRpZgogCi0jZGVmaW5lIFNT RV9PUF9CKG5hbWUsIEYpXAotdm9pZCBPUFBST1RPIGdsdWUobmFtZSwgU1VGRklYKSAodm9pZClc CisjZGVmaW5lIFNTRV9IRUxQRVJfQihuYW1lLCBGKVwKK3ZvaWQgZ2x1ZShuYW1lLCBTVUZGSVgp ICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KVwKIHtcCiAgICAgUmVn ICpkLCAqcztcCi0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpO1wKLSAgICBz ID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7XAorICAgIGQgPSAoUmVnICopKChjaGFy ICopZW52ICsgZHN0X29mZnNldCk7XAorICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3Jj X29mZnNldCk7XAogICAgIGQtPkIoMCkgPSBGKGQtPkIoMCksIHMtPkIoMCkpO1wKICAgICBkLT5C KDEpID0gRihkLT5CKDEpLCBzLT5CKDEpKTtcCiAgICAgZC0+QigyKSA9IEYoZC0+QigyKSwgcy0+ QigyKSk7XApAQCAtMjk3LDEyICsyODksMTIgQEAKICAgICApXAogfQogCi0jZGVmaW5lIFNTRV9P UF9XKG5hbWUsIEYpXAotdm9pZCBPUFBST1RPIGdsdWUobmFtZSwgU1VGRklYKSAodm9pZClcCisj ZGVmaW5lIFNTRV9IRUxQRVJfVyhuYW1lLCBGKVwKK3ZvaWQgZ2x1ZShuYW1lLCBTVUZGSVgpICh1 aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KVwKIHtcCiAgICAgUmVnICpk LCAqcztcCi0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpO1wKLSAgICBzID0g KFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7XAorICAgIGQgPSAoUmVnICopKChjaGFyICop ZW52ICsgZHN0X29mZnNldCk7XAorICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29m ZnNldCk7XAogICAgIGQtPlcoMCkgPSBGKGQtPlcoMCksIHMtPlcoMCkpO1wKICAgICBkLT5XKDEp ID0gRihkLT5XKDEpLCBzLT5XKDEpKTtcCiAgICAgZC0+VygyKSA9IEYoZC0+VygyKSwgcy0+Vygy KSk7XApAQCAtMzE1LDEyICszMDcsMTIgQEAKICAgICApXAogfQogCi0jZGVmaW5lIFNTRV9PUF9M KG5hbWUsIEYpXAotdm9pZCBPUFBST1RPIGdsdWUobmFtZSwgU1VGRklYKSAodm9pZClcCisjZGVm aW5lIFNTRV9IRUxQRVJfTChuYW1lLCBGKVwKK3ZvaWQgZ2x1ZShuYW1lLCBTVUZGSVgpICh1aW50 MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KVwKIHtcCiAgICAgUmVnICpkLCAq cztcCi0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpO1wKLSAgICBzID0gKFJl ZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7XAorICAgIGQgPSAoUmVnICopKChjaGFyICopZW52 ICsgZHN0X29mZnNldCk7XAorICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNl dCk7XAogICAgIGQtPkwoMCkgPSBGKGQtPkwoMCksIHMtPkwoMCkpO1wKICAgICBkLT5MKDEpID0g RihkLT5MKDEpLCBzLT5MKDEpKTtcCiAgICAgWE1NX09OTFkoXApAQCAtMzI5LDEyICszMjEsMTIg QEAKICAgICApXAogfQogCi0jZGVmaW5lIFNTRV9PUF9RKG5hbWUsIEYpXAotdm9pZCBPUFBST1RP IGdsdWUobmFtZSwgU1VGRklYKSAodm9pZClcCisjZGVmaW5lIFNTRV9IRUxQRVJfUShuYW1lLCBG KVwKK3ZvaWQgZ2x1ZShuYW1lLCBTVUZGSVgpICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KVwKIHtcCiAgICAgUmVnICpkLCAqcztcCi0gICAgZCA9IChSZWcgKikoKGNo YXIgKillbnYgKyBQQVJBTTEpO1wKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFN Mik7XAorICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7XAorICAgIHMg PSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7XAogICAgIGQtPlEoMCkgPSBGKGQt PlEoMCksIHMtPlEoMCkpO1wKICAgICBYTU1fT05MWShcCiAgICAgZC0+USgxKSA9IEYoZC0+USgx KSwgcy0+USgxKSk7XApAQCAtNDE1LDU3ICs0MDcsNTcgQEAKICNkZWZpbmUgRkFWRyhhLCBiKSAo KGEpICsgKGIpICsgMSkgPj4gMQogI2VuZGlmCiAKLVNTRV9PUF9CKG9wX3BhZGRiLCBGQUREKQot U1NFX09QX1cob3BfcGFkZHcsIEZBREQpCi1TU0VfT1BfTChvcF9wYWRkbCwgRkFERCkKLVNTRV9P UF9RKG9wX3BhZGRxLCBGQUREKQorU1NFX0hFTFBFUl9CKGhlbHBlcl9wYWRkYiwgRkFERCkKK1NT RV9IRUxQRVJfVyhoZWxwZXJfcGFkZHcsIEZBREQpCitTU0VfSEVMUEVSX0woaGVscGVyX3BhZGRs LCBGQUREKQorU1NFX0hFTFBFUl9RKGhlbHBlcl9wYWRkcSwgRkFERCkKIAotU1NFX09QX0Iob3Bf cHN1YmIsIEZTVUIpCi1TU0VfT1BfVyhvcF9wc3VidywgRlNVQikKLVNTRV9PUF9MKG9wX3BzdWJs LCBGU1VCKQotU1NFX09QX1Eob3BfcHN1YnEsIEZTVUIpCitTU0VfSEVMUEVSX0IoaGVscGVyX3Bz dWJiLCBGU1VCKQorU1NFX0hFTFBFUl9XKGhlbHBlcl9wc3VidywgRlNVQikKK1NTRV9IRUxQRVJf TChoZWxwZXJfcHN1YmwsIEZTVUIpCitTU0VfSEVMUEVSX1EoaGVscGVyX3BzdWJxLCBGU1VCKQog Ci1TU0VfT1BfQihvcF9wYWRkdXNiLCBGQUREVUIpCi1TU0VfT1BfQihvcF9wYWRkc2IsIEZBRERT QikKLVNTRV9PUF9CKG9wX3BzdWJ1c2IsIEZTVUJVQikKLVNTRV9PUF9CKG9wX3BzdWJzYiwgRlNV QlNCKQorU1NFX0hFTFBFUl9CKGhlbHBlcl9wYWRkdXNiLCBGQUREVUIpCitTU0VfSEVMUEVSX0Io aGVscGVyX3BhZGRzYiwgRkFERFNCKQorU1NFX0hFTFBFUl9CKGhlbHBlcl9wc3VidXNiLCBGU1VC VUIpCitTU0VfSEVMUEVSX0IoaGVscGVyX3BzdWJzYiwgRlNVQlNCKQogCi1TU0VfT1BfVyhvcF9w YWRkdXN3LCBGQUREVVcpCi1TU0VfT1BfVyhvcF9wYWRkc3csIEZBRERTVykKLVNTRV9PUF9XKG9w X3BzdWJ1c3csIEZTVUJVVykKLVNTRV9PUF9XKG9wX3BzdWJzdywgRlNVQlNXKQorU1NFX0hFTFBF Ul9XKGhlbHBlcl9wYWRkdXN3LCBGQUREVVcpCitTU0VfSEVMUEVSX1coaGVscGVyX3BhZGRzdywg RkFERFNXKQorU1NFX0hFTFBFUl9XKGhlbHBlcl9wc3VidXN3LCBGU1VCVVcpCitTU0VfSEVMUEVS X1coaGVscGVyX3BzdWJzdywgRlNVQlNXKQogCi1TU0VfT1BfQihvcF9wbWludWIsIEZNSU5VQikK LVNTRV9PUF9CKG9wX3BtYXh1YiwgRk1BWFVCKQorU1NFX0hFTFBFUl9CKGhlbHBlcl9wbWludWIs IEZNSU5VQikKK1NTRV9IRUxQRVJfQihoZWxwZXJfcG1heHViLCBGTUFYVUIpCiAKLVNTRV9PUF9X KG9wX3BtaW5zdywgRk1JTlNXKQotU1NFX09QX1cob3BfcG1heHN3LCBGTUFYU1cpCitTU0VfSEVM UEVSX1coaGVscGVyX3BtaW5zdywgRk1JTlNXKQorU1NFX0hFTFBFUl9XKGhlbHBlcl9wbWF4c3cs IEZNQVhTVykKIAotU1NFX09QX1Eob3BfcGFuZCwgRkFORCkKLVNTRV9PUF9RKG9wX3BhbmRuLCBG QU5ETikKLVNTRV9PUF9RKG9wX3BvciwgRk9SKQotU1NFX09QX1Eob3BfcHhvciwgRlhPUikKK1NT RV9IRUxQRVJfUShoZWxwZXJfcGFuZCwgRkFORCkKK1NTRV9IRUxQRVJfUShoZWxwZXJfcGFuZG4s IEZBTkROKQorU1NFX0hFTFBFUl9RKGhlbHBlcl9wb3IsIEZPUikKK1NTRV9IRUxQRVJfUShoZWxw ZXJfcHhvciwgRlhPUikKIAotU1NFX09QX0Iob3BfcGNtcGd0YiwgRkNNUEdUQikKLVNTRV9PUF9X KG9wX3BjbXBndHcsIEZDTVBHVFcpCi1TU0VfT1BfTChvcF9wY21wZ3RsLCBGQ01QR1RMKQorU1NF X0hFTFBFUl9CKGhlbHBlcl9wY21wZ3RiLCBGQ01QR1RCKQorU1NFX0hFTFBFUl9XKGhlbHBlcl9w Y21wZ3R3LCBGQ01QR1RXKQorU1NFX0hFTFBFUl9MKGhlbHBlcl9wY21wZ3RsLCBGQ01QR1RMKQog Ci1TU0VfT1BfQihvcF9wY21wZXFiLCBGQ01QRVEpCi1TU0VfT1BfVyhvcF9wY21wZXF3LCBGQ01Q RVEpCi1TU0VfT1BfTChvcF9wY21wZXFsLCBGQ01QRVEpCitTU0VfSEVMUEVSX0IoaGVscGVyX3Bj bXBlcWIsIEZDTVBFUSkKK1NTRV9IRUxQRVJfVyhoZWxwZXJfcGNtcGVxdywgRkNNUEVRKQorU1NF X0hFTFBFUl9MKGhlbHBlcl9wY21wZXFsLCBGQ01QRVEpCiAKLVNTRV9PUF9XKG9wX3BtdWxsdywg Rk1VTExXKQotU1NFX09QX1cob3BfcG11bGh1dywgRk1VTEhVVykKLVNTRV9PUF9XKG9wX3BtdWxo dywgRk1VTEhXKQorU1NFX0hFTFBFUl9XKGhlbHBlcl9wbXVsbHcsIEZNVUxMVykKK1NTRV9IRUxQ RVJfVyhoZWxwZXJfcG11bGh1dywgRk1VTEhVVykKK1NTRV9IRUxQRVJfVyhoZWxwZXJfcG11bGh3 LCBGTVVMSFcpCiAKLVNTRV9PUF9CKG9wX3BhdmdiLCBGQVZHKQotU1NFX09QX1cob3BfcGF2Z3cs IEZBVkcpCitTU0VfSEVMUEVSX0IoaGVscGVyX3BhdmdiLCBGQVZHKQorU1NFX0hFTFBFUl9XKGhl bHBlcl9wYXZndywgRkFWRykKIAotdm9pZCBPUFBST1RPIGdsdWUob3BfcG11bHVkcSwgU1VGRklY KSAodm9pZCkKK3ZvaWQgZ2x1ZShoZWxwZXJfcG11bHVkcSwgU1VGRklYKSAodWludDMyX3QgZHN0 X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkKIHsKICAgICBSZWcgKmQsICpzOwotICAgIGQg PSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAq KWVudiArIFBBUkFNMik7CisgICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0 KTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogCiAgICAgZC0+ USgwKSA9ICh1aW50NjRfdClzLT5MKDApICogKHVpbnQ2NF90KWQtPkwoMCk7CiAjaWYgU0hJRlQg PT0gMQpAQCAtNDczLDE4ICs0NjUsMTcgQEAKICNlbmRpZgogfQogCi12b2lkIE9QUFJPVE8gZ2x1 ZShvcF9wbWFkZHdkLCBTVUZGSVgpICh2b2lkKQordm9pZCBnbHVlKGhlbHBlcl9wbWFkZHdkLCBT VUZGSVgpICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAg IGludCBpOwogICAgIFJlZyAqZCwgKnM7Ci0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQ QVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBkID0g KFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMgPSAoUmVnICopKChjaGFy ICopZW52ICsgc3JjX29mZnNldCk7CiAKICAgICBmb3IoaSA9IDA7IGkgPCAoMiA8PCBTSElGVCk7 IGkrKykgewogICAgICAgICBkLT5MKGkpID0gKGludDE2X3Qpcy0+VygyKmkpICogKGludDE2X3Qp ZC0+VygyKmkpICsKICAgICAgICAgICAgIChpbnQxNl90KXMtPlcoMippKzEpICogKGludDE2X3Qp ZC0+VygyKmkrMSk7CiAgICAgfQotICAgIEZPUkNFX1JFVCgpOwogfQogCiAjaWYgU0hJRlQgPT0g MApAQCAtNDk2LDEyICs0ODcsMTIgQEAKICAgICAgICAgcmV0dXJuIGE7CiB9CiAjZW5kaWYKLXZv aWQgT1BQUk9UTyBnbHVlKG9wX3BzYWRidywgU1VGRklYKSAodm9pZCkKK3ZvaWQgZ2x1ZShoZWxw ZXJfcHNhZGJ3LCBTVUZGSVgpICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KQogewogICAgIHVuc2lnbmVkIGludCB2YWw7CiAgICAgUmVnICpkLCAqczsKLSAgICBkID0g KFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgcyA9IChSZWcgKikoKGNoYXIgKill bnYgKyBQQVJBTTIpOworICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7 CisgICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsKIAogICAgIHZhbCA9 IDA7CiAgICAgdmFsICs9IGFiczEoZC0+QigwKSAtIHMtPkIoMCkpOwpAQCAtNTI3LDYzICs1MTgs NjIgQEAKICNlbmRpZgogfQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9tYXNrbW92LCBTVUZGSVgp ICh2b2lkKQordm9pZCBnbHVlKGhlbHBlcl9tYXNrbW92LCBTVUZGSVgpICh1aW50MzJfdCBkc3Rf b2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIGludCBpOwogICAgIFJlZyAqZCwg KnM7Ci0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVn ICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiAr IGRzdF9vZmZzZXQpOworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7 CiAgICAgZm9yKGkgPSAwOyBpIDwgKDggPDwgU0hJRlQpOyBpKyspIHsKICAgICAgICAgaWYgKHMt PkIoaSkgJiAweDgwKQogICAgICAgICAgICAgc3RiKEEwICsgaSwgZC0+QihpKSk7CiAgICAgfQot ICAgIEZPUkNFX1JFVCgpOwogfQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9tb3ZsX21tX1QwLCBT VUZGSVgpICh2b2lkKQordm9pZCBnbHVlKGhlbHBlcl9tb3ZsX21tX1QwLCBTVUZGSVgpICh1aW50 MzJfdCBkc3Rfb2Zmc2V0LCB0YXJnZXRfdWxvbmcgdmFsKQogewogICAgIFJlZyAqZDsKLSAgICBk ID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgZC0+TCgwKSA9IFQwOworICAg IGQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgZC0+TCgwKSA9IHZh bDsKICAgICBkLT5MKDEpID0gMDsKICNpZiBTSElGVCA9PSAxCiAgICAgZC0+USgxKSA9IDA7CiAj ZW5kaWYKIH0KIAotdm9pZCBPUFBST1RPIGdsdWUob3BfbW92bF9UMF9tbSwgU1VGRklYKSAodm9p ZCkKK3RhcmdldF91bG9uZyBnbHVlKGhlbHBlcl9tb3ZsX1QwX21tLCBTVUZGSVgpICh1aW50MzJf dCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyAqczsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVu diArIFBBUkFNMSk7Ci0gICAgVDAgPSBzLT5MKDApOworICAgIHMgPSAoUmVnICopKChjaGFyICop ZW52ICsgc3JjX29mZnNldCk7CisgICAgcmV0dXJuIHMtPkwoMCk7CiB9CiAKICNpZmRlZiBUQVJH RVRfWDg2XzY0Ci12b2lkIE9QUFJPVE8gZ2x1ZShvcF9tb3ZxX21tX1QwLCBTVUZGSVgpICh2b2lk KQordm9pZCBnbHVlKGhlbHBlcl9tb3ZxX21tX1QwLCBTVUZGSVgpICh1aW50MzJfdCBkc3Rfb2Zm c2V0LCB0YXJnZXRfdWxvbmcgdmFsKQogewogICAgIFJlZyAqZDsKLSAgICBkID0gKFJlZyAqKSgo Y2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgZC0+USgwKSA9IFQwOworICAgIGQgPSAoUmVnICop KChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgZC0+USgwKSA9IHZhbDsKICNpZiBTSElG VCA9PSAxCiAgICAgZC0+USgxKSA9IDA7CiAjZW5kaWYKIH0KIAotdm9pZCBPUFBST1RPIGdsdWUo b3BfbW92cV9UMF9tbSwgU1VGRklYKSAodm9pZCkKK3RhcmdldF91bG9uZyBnbHVlKGhlbHBlcl9t b3ZxX1QwX21tLCBTVUZGSVgpICh1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyAqczsK LSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgVDAgPSBzLT5RKDAp OworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CisgICAgcmV0dXJu IHMtPlEoMCk7CiB9CiAjZW5kaWYKIAogI2lmIFNISUZUID09IDAKLXZvaWQgT1BQUk9UTyBnbHVl KG9wX3BzaHVmdywgU1VGRklYKSAodm9pZCkKK3ZvaWQgZ2x1ZShoZWxwZXJfcHNodWZ3LCBTVUZG SVgpICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIFJl ZyByLCAqZCwgKnM7CiAgICAgaW50IG9yZGVyOwotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52 ICsgUEFSQU0xKTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAg ZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgo Y2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogICAgIG9yZGVyID0gUEFSQU0zOwogICAgIHIuVygw KSA9IHMtPlcob3JkZXIgJiAzKTsKICAgICByLlcoMSkgPSBzLT5XKChvcmRlciA+PiAyKSAmIDMp OwpAQCAtNTkyLDEyICs1ODIsMTIgQEAKICAgICAqZCA9IHI7CiB9CiAjZWxzZQotdm9pZCBPUFBS T1RPIG9wX3NodWZwcyh2b2lkKQordm9pZCBoZWxwZXJfc2h1ZnBzKHVpbnQzMl90IGRzdF9vZmZz ZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7CiAgICAgUmVnIHIsICpkLCAqczsKICAgICBpbnQg b3JkZXI7Ci0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAo UmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVu diArIGRzdF9vZmZzZXQpOworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNl dCk7CiAgICAgb3JkZXIgPSBQQVJBTTM7CiAgICAgci5MKDApID0gZC0+TChvcmRlciAmIDMpOwog ICAgIHIuTCgxKSA9IGQtPkwoKG9yZGVyID4+IDIpICYgMyk7CkBAIC02MDYsMjQgKzU5NiwyNCBA QAogICAgICpkID0gcjsKIH0KIAotdm9pZCBPUFBST1RPIG9wX3NodWZwZCh2b2lkKQordm9pZCBo ZWxwZXJfc2h1ZnBkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7 CiAgICAgUmVnIHIsICpkLCAqczsKICAgICBpbnQgb3JkZXI7Ci0gICAgZCA9IChSZWcgKikoKGNo YXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0y KTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMgPSAo UmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgb3JkZXIgPSBQQVJBTTM7CiAg ICAgci5RKDApID0gZC0+UShvcmRlciAmIDEpOwogICAgIHIuUSgxKSA9IHMtPlEoKG9yZGVyID4+ IDEpICYgMSk7CiAgICAgKmQgPSByOwogfQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wc2h1ZmQs IFNVRkZJWCkgKHZvaWQpCit2b2lkIGdsdWUoaGVscGVyX3BzaHVmZCwgU1VGRklYKSAodWludDMy X3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkKIHsKICAgICBSZWcgciwgKmQsICpz OwogICAgIGludCBvcmRlcjsKLSAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7 Ci0gICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIGQgPSAoUmVnICop KChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYg KyBzcmNfb2Zmc2V0KTsKICAgICBvcmRlciA9IFBBUkFNMzsKICAgICByLkwoMCkgPSBzLT5MKG9y ZGVyICYgMyk7CiAgICAgci5MKDEpID0gcy0+TCgob3JkZXIgPj4gMikgJiAzKTsKQEAgLTYzMiwx MiArNjIyLDEyIEBACiAgICAgKmQgPSByOwogfQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wc2h1 Zmx3LCBTVUZGSVgpICh2b2lkKQordm9pZCBnbHVlKGhlbHBlcl9wc2h1Zmx3LCBTVUZGSVgpICh1 aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyByLCAq ZCwgKnM7CiAgICAgaW50IG9yZGVyOwotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFS QU0xKTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgZCA9IChS ZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAq KWVudiArIHNyY19vZmZzZXQpOwogICAgIG9yZGVyID0gUEFSQU0zOwogICAgIHIuVygwKSA9IHMt Plcob3JkZXIgJiAzKTsKICAgICByLlcoMSkgPSBzLT5XKChvcmRlciA+PiAyKSAmIDMpOwpAQCAt NjQ3LDEyICs2MzcsMTIgQEAKICAgICAqZCA9IHI7CiB9CiAKLXZvaWQgT1BQUk9UTyBnbHVlKG9w X3BzaHVmaHcsIFNVRkZJWCkgKHZvaWQpCit2b2lkIGdsdWUoaGVscGVyX3BzaHVmaHcsIFNVRkZJ WCkgKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7CiAgICAgUmVn IHIsICpkLCAqczsKICAgICBpbnQgb3JkZXI7Ci0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYg KyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBk ID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMgPSAoUmVnICopKChj aGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgb3JkZXIgPSBQQVJBTTM7CiAgICAgci5RKDAp ID0gcy0+USgwKTsKICAgICByLlcoNCkgPSBzLT5XKDQgKyAob3JkZXIgJiAzKSk7CkBAIC02Njcs MzkgKzY1NywzOSBAQAogLyogRlBVIG9wcyAqLwogLyogWFhYOiBub3QgYWNjdXJhdGUgKi8KIAot I2RlZmluZSBTU0VfT1BfUyhuYW1lLCBGKVwKLXZvaWQgT1BQUk9UTyBvcF8gIyMgbmFtZSAjIyBw cyAodm9pZClcCisjZGVmaW5lIFNTRV9IRUxQRVJfUyhuYW1lLCBGKVwKK3ZvaWQgaGVscGVyXyAj IyBuYW1lICMjIHBzICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KVwK IHtcCiAgICAgUmVnICpkLCAqcztcCi0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJB TTEpO1wKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7XAorICAgIGQgPSAo UmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7XAorICAgIHMgPSAoUmVnICopKChjaGFy ICopZW52ICsgc3JjX29mZnNldCk7XAogICAgIGQtPlhNTV9TKDApID0gRigzMiwgZC0+WE1NX1Mo MCksIHMtPlhNTV9TKDApKTtcCiAgICAgZC0+WE1NX1MoMSkgPSBGKDMyLCBkLT5YTU1fUygxKSwg cy0+WE1NX1MoMSkpO1wKICAgICBkLT5YTU1fUygyKSA9IEYoMzIsIGQtPlhNTV9TKDIpLCBzLT5Y TU1fUygyKSk7XAogICAgIGQtPlhNTV9TKDMpID0gRigzMiwgZC0+WE1NX1MoMyksIHMtPlhNTV9T KDMpKTtcCiB9XAogXAotdm9pZCBPUFBST1RPIG9wXyAjIyBuYW1lICMjIHNzICh2b2lkKVwKK3Zv aWQgaGVscGVyXyAjIyBuYW1lICMjIHNzICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KVwKIHtcCiAgICAgUmVnICpkLCAqcztcCi0gICAgZCA9IChSZWcgKikoKGNoYXIg KillbnYgKyBQQVJBTTEpO1wKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7 XAorICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7XAorICAgIHMgPSAo UmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7XAogICAgIGQtPlhNTV9TKDApID0gRigz MiwgZC0+WE1NX1MoMCksIHMtPlhNTV9TKDApKTtcCiB9XAotdm9pZCBPUFBST1RPIG9wXyAjIyBu YW1lICMjIHBkICh2b2lkKVwKK3ZvaWQgaGVscGVyXyAjIyBuYW1lICMjIHBkICh1aW50MzJfdCBk c3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KVwKIHtcCiAgICAgUmVnICpkLCAqcztcCi0g ICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpO1wKLSAgICBzID0gKFJlZyAqKSgo Y2hhciAqKWVudiArIFBBUkFNMik7XAorICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0 X29mZnNldCk7XAorICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7XAog ICAgIGQtPlhNTV9EKDApID0gRig2NCwgZC0+WE1NX0QoMCksIHMtPlhNTV9EKDApKTtcCiAgICAg ZC0+WE1NX0QoMSkgPSBGKDY0LCBkLT5YTU1fRCgxKSwgcy0+WE1NX0QoMSkpO1wKIH1cCiBcCi12 b2lkIE9QUFJPVE8gb3BfICMjIG5hbWUgIyMgc2QgKHZvaWQpXAordm9pZCBoZWxwZXJfICMjIG5h bWUgIyMgc2QgKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpXAoge1wK ICAgICBSZWcgKmQsICpzO1wKLSAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7 XAotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTtcCisgICAgZCA9IChSZWcg KikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTtcCisgICAgcyA9IChSZWcgKikoKGNoYXIgKill bnYgKyBzcmNfb2Zmc2V0KTtcCiAgICAgZC0+WE1NX0QoMCkgPSBGKDY0LCBkLT5YTU1fRCgwKSwg cy0+WE1NX0QoMCkpO1wKIH0KIApAQCAtNzExLDY5ICs3MDEsNjkgQEAKICNkZWZpbmUgRlBVX01B WChzaXplLCBhLCBiKSAoYSkgPiAoYikgPyAoYSkgOiAoYikKICNkZWZpbmUgRlBVX1NRUlQoc2l6 ZSwgYSwgYikgZmxvYXQgIyMgc2l6ZSAjIyBfc3FydChiLCAmZW52LT5zc2Vfc3RhdHVzKQogCi1T U0VfT1BfUyhhZGQsIEZQVV9BREQpCi1TU0VfT1BfUyhzdWIsIEZQVV9TVUIpCi1TU0VfT1BfUyht dWwsIEZQVV9NVUwpCi1TU0VfT1BfUyhkaXYsIEZQVV9ESVYpCi1TU0VfT1BfUyhtaW4sIEZQVV9N SU4pCi1TU0VfT1BfUyhtYXgsIEZQVV9NQVgpCi1TU0VfT1BfUyhzcXJ0LCBGUFVfU1FSVCkKK1NT RV9IRUxQRVJfUyhhZGQsIEZQVV9BREQpCitTU0VfSEVMUEVSX1Moc3ViLCBGUFVfU1VCKQorU1NF X0hFTFBFUl9TKG11bCwgRlBVX01VTCkKK1NTRV9IRUxQRVJfUyhkaXYsIEZQVV9ESVYpCitTU0Vf SEVMUEVSX1MobWluLCBGUFVfTUlOKQorU1NFX0hFTFBFUl9TKG1heCwgRlBVX01BWCkKK1NTRV9I RUxQRVJfUyhzcXJ0LCBGUFVfU1FSVCkKIAogCiAvKiBmbG9hdCB0byBmbG9hdCBjb252ZXJzaW9u cyAqLwotdm9pZCBPUFBST1RPIG9wX2N2dHBzMnBkKHZvaWQpCit2b2lkIGhlbHBlcl9jdnRwczJw ZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIGZsb2F0 MzIgczAsIHMxOwogICAgIFJlZyAqZCwgKnM7Ci0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYg KyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBk ID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMgPSAoUmVnICopKChj aGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgczAgPSBzLT5YTU1fUygwKTsKICAgICBzMSA9 IHMtPlhNTV9TKDEpOwogICAgIGQtPlhNTV9EKDApID0gZmxvYXQzMl90b19mbG9hdDY0KHMwLCAm ZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5YTU1fRCgxKSA9IGZsb2F0MzJfdG9fZmxvYXQ2NChz MSwgJmVudi0+c3NlX3N0YXR1cyk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9jdnRwZDJwcyh2b2lk KQordm9pZCBoZWxwZXJfY3Z0cGQycHModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3Jj X29mZnNldCkKIHsKICAgICBSZWcgKmQsICpzOwotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52 ICsgUEFSQU0xKTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAg ZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgo Y2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogICAgIGQtPlhNTV9TKDApID0gZmxvYXQ2NF90b19m bG9hdDMyKHMtPlhNTV9EKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5YTU1fUygxKSA9 IGZsb2F0NjRfdG9fZmxvYXQzMihzLT5YTU1fRCgxKSwgJmVudi0+c3NlX3N0YXR1cyk7CiAgICAg ZC0+USgxKSA9IDA7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9jdnRzczJzZCh2b2lkKQordm9pZCBo ZWxwZXJfY3Z0c3Myc2QodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkK IHsKICAgICBSZWcgKmQsICpzOwotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0x KTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgZCA9IChSZWcg KikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVu diArIHNyY19vZmZzZXQpOwogICAgIGQtPlhNTV9EKDApID0gZmxvYXQzMl90b19mbG9hdDY0KHMt PlhNTV9TKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2N2dHNk MnNzKHZvaWQpCit2b2lkIGhlbHBlcl9jdnRzZDJzcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50 MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyAqZCwgKnM7Ci0gICAgZCA9IChSZWcgKikoKGNo YXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0y KTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMgPSAo UmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgZC0+WE1NX1MoMCkgPSBmbG9h dDY0X3RvX2Zsb2F0MzIocy0+WE1NX0QoMCksICZlbnYtPnNzZV9zdGF0dXMpOwogfQogCiAvKiBp bnRlZ2VyIHRvIGZsb2F0ICovCi12b2lkIE9QUFJPVE8gb3BfY3Z0ZHEycHModm9pZCkKK3ZvaWQg aGVscGVyX2N2dGRxMnBzKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQp CiB7Ci0gICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0g ICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgWE1N UmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIFhNTVJl ZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsKICAgICBkLT5YTU1f UygwKSA9IGludDMyX3RvX2Zsb2F0MzIocy0+WE1NX0woMCksICZlbnYtPnNzZV9zdGF0dXMpOwog ICAgIGQtPlhNTV9TKDEpID0gaW50MzJfdG9fZmxvYXQzMihzLT5YTU1fTCgxKSwgJmVudi0+c3Nl X3N0YXR1cyk7CiAgICAgZC0+WE1NX1MoMikgPSBpbnQzMl90b19mbG9hdDMyKHMtPlhNTV9MKDIp LCAmZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5YTU1fUygzKSA9IGludDMyX3RvX2Zsb2F0MzIo cy0+WE1NX0woMyksICZlbnYtPnNzZV9zdGF0dXMpOwogfQogCi12b2lkIE9QUFJPVE8gb3BfY3Z0 ZHEycGQodm9pZCkKK3ZvaWQgaGVscGVyX2N2dGRxMnBkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVp bnQzMl90IHNyY19vZmZzZXQpCiB7Ci0gICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAq KWVudiArIFBBUkFNMSk7Ci0gICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiAr IFBBUkFNMik7CisgICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9v ZmZzZXQpOworICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zm c2V0KTsKICAgICBpbnQzMl90IGwwLCBsMTsKICAgICBsMCA9IChpbnQzMl90KXMtPlhNTV9MKDAp OwogICAgIGwxID0gKGludDMyX3Qpcy0+WE1NX0woMSk7CkBAIC03ODEsMjEwICs3NzEsMjEwIEBA CiAgICAgZC0+WE1NX0QoMSkgPSBpbnQzMl90b19mbG9hdDY0KGwxLCAmZW52LT5zc2Vfc3RhdHVz KTsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2N2dHBpMnBzKHZvaWQpCit2b2lkIGhlbHBlcl9jdnRw aTJwcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewotICAgIFhN TVJlZyAqZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIE1NWFJlZyAqcyA9 IChNTVhSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIFhNTVJlZyAqZCA9IChSZWcg KikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBNTVhSZWcgKnMgPSAoTU1YUmVnICop KChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgZC0+WE1NX1MoMCkgPSBpbnQzMl90b19m bG9hdDMyKHMtPk1NWF9MKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5YTU1fUygxKSA9 IGludDMyX3RvX2Zsb2F0MzIocy0+TU1YX0woMSksICZlbnYtPnNzZV9zdGF0dXMpOwogfQogCi12 b2lkIE9QUFJPVE8gb3BfY3Z0cGkycGQodm9pZCkKK3ZvaWQgaGVscGVyX2N2dHBpMnBkKHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7Ci0gICAgWE1NUmVnICpkID0g KFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgTU1YUmVnICpzID0gKE1NWFJlZyAq KSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgWE1NUmVnICpkID0gKFJlZyAqKSgoY2hhciAq KWVudiArIGRzdF9vZmZzZXQpOworICAgIE1NWFJlZyAqcyA9IChNTVhSZWcgKikoKGNoYXIgKill bnYgKyBzcmNfb2Zmc2V0KTsKICAgICBkLT5YTU1fRCgwKSA9IGludDMyX3RvX2Zsb2F0NjQocy0+ TU1YX0woMCksICZlbnYtPnNzZV9zdGF0dXMpOwogICAgIGQtPlhNTV9EKDEpID0gaW50MzJfdG9f ZmxvYXQ2NChzLT5NTVhfTCgxKSwgJmVudi0+c3NlX3N0YXR1cyk7CiB9CiAKLXZvaWQgT1BQUk9U TyBvcF9jdnRzaTJzcyh2b2lkKQordm9pZCBoZWxwZXJfY3Z0c2kyc3ModWludDMyX3QgZHN0X29m ZnNldCwgdGFyZ2V0X3Vsb25nIHZhbCkKIHsKLSAgICBYTU1SZWcgKmQgPSAoUmVnICopKChjaGFy ICopZW52ICsgUEFSQU0xKTsKLSAgICBkLT5YTU1fUygwKSA9IGludDMyX3RvX2Zsb2F0MzIoVDAs ICZlbnYtPnNzZV9zdGF0dXMpOworICAgIFhNTVJlZyAqZCA9IChSZWcgKikoKGNoYXIgKillbnYg KyBkc3Rfb2Zmc2V0KTsKKyAgICBkLT5YTU1fUygwKSA9IGludDMyX3RvX2Zsb2F0MzIodmFsLCAm ZW52LT5zc2Vfc3RhdHVzKTsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2N2dHNpMnNkKHZvaWQpCit2 b2lkIGhlbHBlcl9jdnRzaTJzZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB0YXJnZXRfdWxvbmcgdmFs KQogewotICAgIFhNTVJlZyAqZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAg IGQtPlhNTV9EKDApID0gaW50MzJfdG9fZmxvYXQ2NChUMCwgJmVudi0+c3NlX3N0YXR1cyk7Cisg ICAgWE1NUmVnICpkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIGQt PlhNTV9EKDApID0gaW50MzJfdG9fZmxvYXQ2NCh2YWwsICZlbnYtPnNzZV9zdGF0dXMpOwogfQog CiAjaWZkZWYgVEFSR0VUX1g4Nl82NAotdm9pZCBPUFBST1RPIG9wX2N2dHNxMnNzKHZvaWQpCit2 b2lkIGhlbHBlcl9jdnRzcTJzcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB0YXJnZXRfdWxvbmcgdmFs KQogewotICAgIFhNTVJlZyAqZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAg IGQtPlhNTV9TKDApID0gaW50NjRfdG9fZmxvYXQzMihUMCwgJmVudi0+c3NlX3N0YXR1cyk7Cisg ICAgWE1NUmVnICpkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIGQt PlhNTV9TKDApID0gaW50NjRfdG9fZmxvYXQzMih2YWwsICZlbnYtPnNzZV9zdGF0dXMpOwogfQog Ci12b2lkIE9QUFJPVE8gb3BfY3Z0c3Eyc2Qodm9pZCkKK3ZvaWQgaGVscGVyX2N2dHNxMnNkKHVp bnQzMl90IGRzdF9vZmZzZXQsIHRhcmdldF91bG9uZyB2YWwpCiB7Ci0gICAgWE1NUmVnICpkID0g KFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgZC0+WE1NX0QoMCkgPSBpbnQ2NF90 b19mbG9hdDY0KFQwLCAmZW52LT5zc2Vfc3RhdHVzKTsKKyAgICBYTU1SZWcgKmQgPSAoUmVnICop KChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgZC0+WE1NX0QoMCkgPSBpbnQ2NF90b19m bG9hdDY0KHZhbCwgJmVudi0+c3NlX3N0YXR1cyk7CiB9CiAjZW5kaWYKIAogLyogZmxvYXQgdG8g aW50ZWdlciAqLwotdm9pZCBPUFBST1RPIG9wX2N2dHBzMmRxKHZvaWQpCit2b2lkIGhlbHBlcl9j dnRwczJkcSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewotICAg IFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIFhNTVJl ZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIFhNTVJlZyAqZCA9 IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBYTU1SZWcgKnMgPSAo WE1NUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgZC0+WE1NX0woMCkgPSBm bG9hdDMyX3RvX2ludDMyKHMtPlhNTV9TKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5Y TU1fTCgxKSA9IGZsb2F0MzJfdG9faW50MzIocy0+WE1NX1MoMSksICZlbnYtPnNzZV9zdGF0dXMp OwogICAgIGQtPlhNTV9MKDIpID0gZmxvYXQzMl90b19pbnQzMihzLT5YTU1fUygyKSwgJmVudi0+ c3NlX3N0YXR1cyk7CiAgICAgZC0+WE1NX0woMykgPSBmbG9hdDMyX3RvX2ludDMyKHMtPlhNTV9T KDMpLCAmZW52LT5zc2Vfc3RhdHVzKTsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2N2dHBkMmRxKHZv aWQpCit2b2lkIGhlbHBlcl9jdnRwZDJkcSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KQogewotICAgIFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQ QVJBTTEpOwotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIp OworICAgIFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsK KyAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAg ICAgZC0+WE1NX0woMCkgPSBmbG9hdDY0X3RvX2ludDMyKHMtPlhNTV9EKDApLCAmZW52LT5zc2Vf c3RhdHVzKTsKICAgICBkLT5YTU1fTCgxKSA9IGZsb2F0NjRfdG9faW50MzIocy0+WE1NX0QoMSks ICZlbnYtPnNzZV9zdGF0dXMpOwogICAgIGQtPlhNTV9RKDEpID0gMDsKIH0KIAotdm9pZCBPUFBS T1RPIG9wX2N2dHBzMnBpKHZvaWQpCit2b2lkIGhlbHBlcl9jdnRwczJwaSh1aW50MzJfdCBkc3Rf b2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewotICAgIE1NWFJlZyAqZCA9IChNTVhSZWcg KikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNo YXIgKillbnYgKyBQQVJBTTIpOworICAgIE1NWFJlZyAqZCA9IChNTVhSZWcgKikoKGNoYXIgKill bnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52 ICsgc3JjX29mZnNldCk7CiAgICAgZC0+TU1YX0woMCkgPSBmbG9hdDMyX3RvX2ludDMyKHMtPlhN TV9TKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5NTVhfTCgxKSA9IGZsb2F0MzJfdG9f aW50MzIocy0+WE1NX1MoMSksICZlbnYtPnNzZV9zdGF0dXMpOwogfQogCi12b2lkIE9QUFJPVE8g b3BfY3Z0cGQycGkodm9pZCkKK3ZvaWQgaGVscGVyX2N2dHBkMnBpKHVpbnQzMl90IGRzdF9vZmZz ZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7Ci0gICAgTU1YUmVnICpkID0gKE1NWFJlZyAqKSgo Y2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAq KWVudiArIFBBUkFNMik7CisgICAgTU1YUmVnICpkID0gKE1NWFJlZyAqKSgoY2hhciAqKWVudiAr IGRzdF9vZmZzZXQpOworICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBz cmNfb2Zmc2V0KTsKICAgICBkLT5NTVhfTCgwKSA9IGZsb2F0NjRfdG9faW50MzIocy0+WE1NX0Qo MCksICZlbnYtPnNzZV9zdGF0dXMpOwogICAgIGQtPk1NWF9MKDEpID0gZmxvYXQ2NF90b19pbnQz MihzLT5YTU1fRCgxKSwgJmVudi0+c3NlX3N0YXR1cyk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9j dnRzczJzaSh2b2lkKQordGFyZ2V0X3Vsb25nIGhlbHBlcl9jdnRzczJzaSh1aW50MzJfdCBzcmNf b2Zmc2V0KQogewotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJB TTEpOwotICAgIFQwID0gZmxvYXQzMl90b19pbnQzMihzLT5YTU1fUygwKSwgJmVudi0+c3NlX3N0 YXR1cyk7CisgICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZz ZXQpOworICAgIHJldHVybiBmbG9hdDMyX3RvX2ludDMyKHMtPlhNTV9TKDApLCAmZW52LT5zc2Vf c3RhdHVzKTsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2N2dHNkMnNpKHZvaWQpCit0YXJnZXRfdWxv bmcgaGVscGVyX2N2dHNkMnNpKHVpbnQzMl90IHNyY19vZmZzZXQpCiB7Ci0gICAgWE1NUmVnICpz ID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgVDAgPSBmbG9hdDY0X3Rv X2ludDMyKHMtPlhNTV9EKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKKyAgICBYTU1SZWcgKnMgPSAo WE1NUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CisgICAgcmV0dXJuIGZsb2F0NjRf dG9faW50MzIocy0+WE1NX0QoMCksICZlbnYtPnNzZV9zdGF0dXMpOwogfQogCiAjaWZkZWYgVEFS R0VUX1g4Nl82NAotdm9pZCBPUFBST1RPIG9wX2N2dHNzMnNxKHZvaWQpCit0YXJnZXRfdWxvbmcg aGVscGVyX2N2dHNzMnNxKHVpbnQzMl90IHNyY19vZmZzZXQpCiB7Ci0gICAgWE1NUmVnICpzID0g KFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgVDAgPSBmbG9hdDMyX3RvX2lu dDY0KHMtPlhNTV9TKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKKyAgICBYTU1SZWcgKnMgPSAoWE1N UmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CisgICAgcmV0dXJuIGZsb2F0MzJfdG9f aW50NjQocy0+WE1NX1MoMCksICZlbnYtPnNzZV9zdGF0dXMpOwogfQogCi12b2lkIE9QUFJPVE8g b3BfY3Z0c2Qyc3Eodm9pZCkKK3RhcmdldF91bG9uZyBoZWxwZXJfY3Z0c2Qyc3EodWludDMyX3Qg c3JjX29mZnNldCkKIHsKLSAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsg UEFSQU0xKTsKLSAgICBUMCA9IGZsb2F0NjRfdG9faW50NjQocy0+WE1NX0QoMCksICZlbnYtPnNz ZV9zdGF0dXMpOworICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBzcmNf b2Zmc2V0KTsKKyAgICByZXR1cm4gZmxvYXQ2NF90b19pbnQ2NChzLT5YTU1fRCgwKSwgJmVudi0+ c3NlX3N0YXR1cyk7CiB9CiAjZW5kaWYKIAogLyogZmxvYXQgdG8gaW50ZWdlciB0cnVuY2F0ZWQg Ki8KLXZvaWQgT1BQUk9UTyBvcF9jdnR0cHMyZHEodm9pZCkKK3ZvaWQgaGVscGVyX2N2dHRwczJk cSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewotICAgIFhNTVJl ZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIFhNTVJlZyAqcyA9 IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIFhNTVJlZyAqZCA9IChYTU1S ZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBYTU1SZWcgKnMgPSAoWE1NUmVn ICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgZC0+WE1NX0woMCkgPSBmbG9hdDMy X3RvX2ludDMyX3JvdW5kX3RvX3plcm8ocy0+WE1NX1MoMCksICZlbnYtPnNzZV9zdGF0dXMpOwog ICAgIGQtPlhNTV9MKDEpID0gZmxvYXQzMl90b19pbnQzMl9yb3VuZF90b196ZXJvKHMtPlhNTV9T KDEpLCAmZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5YTU1fTCgyKSA9IGZsb2F0MzJfdG9faW50 MzJfcm91bmRfdG9femVybyhzLT5YTU1fUygyKSwgJmVudi0+c3NlX3N0YXR1cyk7CiAgICAgZC0+ WE1NX0woMykgPSBmbG9hdDMyX3RvX2ludDMyX3JvdW5kX3RvX3plcm8ocy0+WE1NX1MoMyksICZl bnYtPnNzZV9zdGF0dXMpOwogfQogCi12b2lkIE9QUFJPVE8gb3BfY3Z0dHBkMmRxKHZvaWQpCit2 b2lkIGhlbHBlcl9jdnR0cGQyZHEodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCkKIHsKLSAgICBYTU1SZWcgKmQgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgUEFSQU0x KTsKLSAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAg ICBYTU1SZWcgKmQgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAg WE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogICAgIGQt PlhNTV9MKDApID0gZmxvYXQ2NF90b19pbnQzMl9yb3VuZF90b196ZXJvKHMtPlhNTV9EKDApLCAm ZW52LT5zc2Vfc3RhdHVzKTsKICAgICBkLT5YTU1fTCgxKSA9IGZsb2F0NjRfdG9faW50MzJfcm91 bmRfdG9femVybyhzLT5YTU1fRCgxKSwgJmVudi0+c3NlX3N0YXR1cyk7CiAgICAgZC0+WE1NX1Eo MSkgPSAwOwogfQogCi12b2lkIE9QUFJPVE8gb3BfY3Z0dHBzMnBpKHZvaWQpCit2b2lkIGhlbHBl cl9jdnR0cHMycGkodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkKIHsK LSAgICBNTVhSZWcgKmQgPSAoTU1YUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBY TU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBNTVhSZWcg KmQgPSAoTU1YUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgWE1NUmVnICpz ID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogICAgIGQtPk1NWF9MKDAp ID0gZmxvYXQzMl90b19pbnQzMl9yb3VuZF90b196ZXJvKHMtPlhNTV9TKDApLCAmZW52LT5zc2Vf c3RhdHVzKTsKICAgICBkLT5NTVhfTCgxKSA9IGZsb2F0MzJfdG9faW50MzJfcm91bmRfdG9femVy byhzLT5YTU1fUygxKSwgJmVudi0+c3NlX3N0YXR1cyk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9j dnR0cGQycGkodm9pZCkKK3ZvaWQgaGVscGVyX2N2dHRwZDJwaSh1aW50MzJfdCBkc3Rfb2Zmc2V0 LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewotICAgIE1NWFJlZyAqZCA9IChNTVhSZWcgKikoKGNo YXIgKillbnYgKyBQQVJBTTEpOwotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKill bnYgKyBQQVJBTTIpOworICAgIE1NWFJlZyAqZCA9IChNTVhSZWcgKikoKGNoYXIgKillbnYgKyBk c3Rfb2Zmc2V0KTsKKyAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgc3Jj X29mZnNldCk7CiAgICAgZC0+TU1YX0woMCkgPSBmbG9hdDY0X3RvX2ludDMyX3JvdW5kX3RvX3pl cm8ocy0+WE1NX0QoMCksICZlbnYtPnNzZV9zdGF0dXMpOwogICAgIGQtPk1NWF9MKDEpID0gZmxv YXQ2NF90b19pbnQzMl9yb3VuZF90b196ZXJvKHMtPlhNTV9EKDEpLCAmZW52LT5zc2Vfc3RhdHVz KTsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2N2dHRzczJzaSh2b2lkKQordWludDMyX3QgaGVscGVy X2N2dHRzczJzaSh1aW50MzJfdCBzcmNfb2Zmc2V0KQogewotICAgIFhNTVJlZyAqcyA9IChYTU1S ZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIFQwID0gZmxvYXQzMl90b19pbnQzMl9y b3VuZF90b196ZXJvKHMtPlhNTV9TKDApLCAmZW52LT5zc2Vfc3RhdHVzKTsKKyAgICBYTU1SZWcg KnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CisgICAgcmV0dXJuIGZs b2F0MzJfdG9faW50MzJfcm91bmRfdG9femVybyhzLT5YTU1fUygwKSwgJmVudi0+c3NlX3N0YXR1 cyk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9jdnR0c2Qyc2kodm9pZCkKK3VpbnQzMl90IGhlbHBl cl9jdnR0c2Qyc2kodWludDMyX3Qgc3JjX29mZnNldCkKIHsKLSAgICBYTU1SZWcgKnMgPSAoWE1N UmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBUMCA9IGZsb2F0NjRfdG9faW50MzJf cm91bmRfdG9femVybyhzLT5YTU1fRCgwKSwgJmVudi0+c3NlX3N0YXR1cyk7CisgICAgWE1NUmVn ICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOworICAgIHJldHVybiBm bG9hdDY0X3RvX2ludDMyX3JvdW5kX3RvX3plcm8ocy0+WE1NX0QoMCksICZlbnYtPnNzZV9zdGF0 dXMpOwogfQogCiAjaWZkZWYgVEFSR0VUX1g4Nl82NAotdm9pZCBPUFBST1RPIG9wX2N2dHRzczJz cSh2b2lkKQordWludDMyX3QgaGVscGVyX2N2dHRzczJzcSh1aW50MzJfdCBzcmNfb2Zmc2V0KQog ewotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAg IFQwID0gZmxvYXQzMl90b19pbnQ2NF9yb3VuZF90b196ZXJvKHMtPlhNTV9TKDApLCAmZW52LT5z c2Vfc3RhdHVzKTsKKyAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgc3Jj X29mZnNldCk7CisgICAgcmV0dXJuIGZsb2F0MzJfdG9faW50NjRfcm91bmRfdG9femVybyhzLT5Y TU1fUygwKSwgJmVudi0+c3NlX3N0YXR1cyk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9jdnR0c2Qy c3Eodm9pZCkKK3VpbnQzMl90IGhlbHBlcl9jdnR0c2Qyc3EodWludDMyX3Qgc3JjX29mZnNldCkK IHsKLSAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAg ICBUMCA9IGZsb2F0NjRfdG9faW50NjRfcm91bmRfdG9femVybyhzLT5YTU1fRCgwKSwgJmVudi0+ c3NlX3N0YXR1cyk7CisgICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIHNy Y19vZmZzZXQpOworICAgIHJldHVybiBmbG9hdDY0X3RvX2ludDY0X3JvdW5kX3RvX3plcm8ocy0+ WE1NX0QoMCksICZlbnYtPnNzZV9zdGF0dXMpOwogfQogI2VuZGlmCiAKLXZvaWQgT1BQUk9UTyBv cF9yc3FydHBzKHZvaWQpCit2b2lkIGhlbHBlcl9yc3FydHBzKHVpbnQzMl90IGRzdF9vZmZzZXQs IHVpbnQzMl90IHNyY19vZmZzZXQpCiB7Ci0gICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hh ciAqKWVudiArIFBBUkFNMSk7Ci0gICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVu diArIFBBUkFNMik7CisgICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIGRz dF9vZmZzZXQpOworICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBzcmNf b2Zmc2V0KTsKICAgICBkLT5YTU1fUygwKSA9IGFwcHJveF9yc3FydChzLT5YTU1fUygwKSk7CiAg ICAgZC0+WE1NX1MoMSkgPSBhcHByb3hfcnNxcnQocy0+WE1NX1MoMSkpOwogICAgIGQtPlhNTV9T KDIpID0gYXBwcm94X3JzcXJ0KHMtPlhNTV9TKDIpKTsKICAgICBkLT5YTU1fUygzKSA9IGFwcHJv eF9yc3FydChzLT5YTU1fUygzKSk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9yc3FydHNzKHZvaWQp Cit2b2lkIGhlbHBlcl9yc3FydHNzKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19v ZmZzZXQpCiB7Ci0gICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFN MSk7Ci0gICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7Cisg ICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAg IFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsKICAgICBk LT5YTU1fUygwKSA9IGFwcHJveF9yc3FydChzLT5YTU1fUygwKSk7CiB9CiAKLXZvaWQgT1BQUk9U TyBvcF9yY3Bwcyh2b2lkKQordm9pZCBoZWxwZXJfcmNwcHModWludDMyX3QgZHN0X29mZnNldCwg dWludDMyX3Qgc3JjX29mZnNldCkKIHsKLSAgICBYTU1SZWcgKmQgPSAoWE1NUmVnICopKChjaGFy ICopZW52ICsgUEFSQU0xKTsKLSAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52 ICsgUEFSQU0yKTsKKyAgICBYTU1SZWcgKmQgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgZHN0 X29mZnNldCk7CisgICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIHNyY19v ZmZzZXQpOwogICAgIGQtPlhNTV9TKDApID0gYXBwcm94X3JjcChzLT5YTU1fUygwKSk7CiAgICAg ZC0+WE1NX1MoMSkgPSBhcHByb3hfcmNwKHMtPlhNTV9TKDEpKTsKICAgICBkLT5YTU1fUygyKSA9 IGFwcHJveF9yY3Aocy0+WE1NX1MoMikpOwogICAgIGQtPlhNTV9TKDMpID0gYXBwcm94X3JjcChz LT5YTU1fUygzKSk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9yY3Bzcyh2b2lkKQordm9pZCBoZWxw ZXJfcmNwc3ModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkKIHsKLSAg ICBYTU1SZWcgKmQgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBYTU1S ZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBYTU1SZWcgKmQg PSAoWE1NUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgWE1NUmVnICpzID0g KFhNTVJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogICAgIGQtPlhNTV9TKDApID0g YXBwcm94X3JjcChzLT5YTU1fUygwKSk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9oYWRkcHModm9p ZCkKK3ZvaWQgaGVscGVyX2hhZGRwcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNf b2Zmc2V0KQogewotICAgIFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJB TTEpOwotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOwor ICAgIFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAg ICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAgICAg WE1NUmVnIHI7CiAgICAgci5YTU1fUygwKSA9IGQtPlhNTV9TKDApICsgZC0+WE1NX1MoMSk7CiAg ICAgci5YTU1fUygxKSA9IGQtPlhNTV9TKDIpICsgZC0+WE1NX1MoMyk7CkBAIC05OTMsMjAgKzk4 MywyMCBAQAogICAgICpkID0gcjsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2hhZGRwZCh2b2lkKQor dm9pZCBoZWxwZXJfaGFkZHBkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZz ZXQpCiB7Ci0gICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7 Ci0gICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAg WE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIFhN TVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsKICAgICBYTU1S ZWcgcjsKICAgICByLlhNTV9EKDApID0gZC0+WE1NX0QoMCkgKyBkLT5YTU1fRCgxKTsKICAgICBy LlhNTV9EKDEpID0gcy0+WE1NX0QoMCkgKyBzLT5YTU1fRCgxKTsKICAgICAqZCA9IHI7CiB9CiAK LXZvaWQgT1BQUk9UTyBvcF9oc3VicHModm9pZCkKK3ZvaWQgaGVscGVyX2hzdWJwcyh1aW50MzJf dCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewotICAgIFhNTVJlZyAqZCA9IChY TU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcg KikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNo YXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFy ICopZW52ICsgc3JjX29mZnNldCk7CiAgICAgWE1NUmVnIHI7CiAgICAgci5YTU1fUygwKSA9IGQt PlhNTV9TKDApIC0gZC0+WE1NX1MoMSk7CiAgICAgci5YTU1fUygxKSA9IGQtPlhNTV9TKDIpIC0g ZC0+WE1NX1MoMyk7CkBAIC0xMDE1LDY4ICsxMDA1LDY4IEBACiAgICAgKmQgPSByOwogfQogCi12 b2lkIE9QUFJPVE8gb3BfaHN1YnBkKHZvaWQpCit2b2lkIGhlbHBlcl9oc3VicGQodWludDMyX3Qg ZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkKIHsKLSAgICBYTU1SZWcgKmQgPSAoWE1N UmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICop KChjaGFyICopZW52ICsgUEFSQU0yKTsKKyAgICBYTU1SZWcgKmQgPSAoWE1NUmVnICopKChjaGFy ICopZW52ICsgZHN0X29mZnNldCk7CisgICAgWE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAq KWVudiArIHNyY19vZmZzZXQpOwogICAgIFhNTVJlZyByOwogICAgIHIuWE1NX0QoMCkgPSBkLT5Y TU1fRCgwKSAtIGQtPlhNTV9EKDEpOwogICAgIHIuWE1NX0QoMSkgPSBzLT5YTU1fRCgwKSAtIHMt PlhNTV9EKDEpOwogICAgICpkID0gcjsKIH0KIAotdm9pZCBPUFBST1RPIG9wX2FkZHN1YnBzKHZv aWQpCit2b2lkIGhlbHBlcl9hZGRzdWJwcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KQogewotICAgIFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQ QVJBTTEpOwotICAgIFhNTVJlZyAqcyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIp OworICAgIFhNTVJlZyAqZCA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsK KyAgICBYTU1SZWcgKnMgPSAoWE1NUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAg ICAgZC0+WE1NX1MoMCkgPSBkLT5YTU1fUygwKSAtIHMtPlhNTV9TKDApOwogICAgIGQtPlhNTV9T KDEpID0gZC0+WE1NX1MoMSkgKyBzLT5YTU1fUygxKTsKICAgICBkLT5YTU1fUygyKSA9IGQtPlhN TV9TKDIpIC0gcy0+WE1NX1MoMik7CiAgICAgZC0+WE1NX1MoMykgPSBkLT5YTU1fUygzKSArIHMt PlhNTV9TKDMpOwogfQogCi12b2lkIE9QUFJPVE8gb3BfYWRkc3VicGQodm9pZCkKK3ZvaWQgaGVs cGVyX2FkZHN1YnBkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7 Ci0gICAgWE1NUmVnICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAg WE1NUmVnICpzID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgWE1NUmVn ICpkID0gKFhNTVJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIFhNTVJlZyAq cyA9IChYTU1SZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsKICAgICBkLT5YTU1fRCgw KSA9IGQtPlhNTV9EKDApIC0gcy0+WE1NX0QoMCk7CiAgICAgZC0+WE1NX0QoMSkgPSBkLT5YTU1f RCgxKSArIHMtPlhNTV9EKDEpOwogfQogCiAvKiBYWFg6IHVub3JkZXJlZCAqLwotI2RlZmluZSBT U0VfT1BfQ01QKG5hbWUsIEYpXAotdm9pZCBPUFBST1RPIG9wXyAjIyBuYW1lICMjIHBzICh2b2lk KVwKKyNkZWZpbmUgU1NFX0hFTFBFUl9DTVAobmFtZSwgRilcCit2b2lkIGhlbHBlcl8gIyMgbmFt ZSAjIyBwcyAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldClcCiB7XAog ICAgIFJlZyAqZCwgKnM7XAotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTtc Ci0gICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpO1wKKyAgICBkID0gKFJlZyAq KSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpO1wKKyAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVu diArIHNyY19vZmZzZXQpO1wKICAgICBkLT5YTU1fTCgwKSA9IEYoMzIsIGQtPlhNTV9TKDApLCBz LT5YTU1fUygwKSk7XAogICAgIGQtPlhNTV9MKDEpID0gRigzMiwgZC0+WE1NX1MoMSksIHMtPlhN TV9TKDEpKTtcCiAgICAgZC0+WE1NX0woMikgPSBGKDMyLCBkLT5YTU1fUygyKSwgcy0+WE1NX1Mo MikpO1wKICAgICBkLT5YTU1fTCgzKSA9IEYoMzIsIGQtPlhNTV9TKDMpLCBzLT5YTU1fUygzKSk7 XAogfVwKIFwKLXZvaWQgT1BQUk9UTyBvcF8gIyMgbmFtZSAjIyBzcyAodm9pZClcCit2b2lkIGhl bHBlcl8gIyMgbmFtZSAjIyBzcyAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldClcCiB7XAogICAgIFJlZyAqZCwgKnM7XAotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52 ICsgUEFSQU0xKTtcCi0gICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpO1wKKyAg ICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpO1wKKyAgICBzID0gKFJlZyAq KSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpO1wKICAgICBkLT5YTU1fTCgwKSA9IEYoMzIsIGQt PlhNTV9TKDApLCBzLT5YTU1fUygwKSk7XAogfVwKLXZvaWQgT1BQUk9UTyBvcF8gIyMgbmFtZSAj IyBwZCAodm9pZClcCit2b2lkIGhlbHBlcl8gIyMgbmFtZSAjIyBwZCAodWludDMyX3QgZHN0X29m ZnNldCwgdWludDMyX3Qgc3JjX29mZnNldClcCiB7XAogICAgIFJlZyAqZCwgKnM7XAotICAgIGQg PSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTtcCi0gICAgcyA9IChSZWcgKikoKGNoYXIg KillbnYgKyBQQVJBTTIpO1wKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZz ZXQpO1wKKyAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpO1wKICAgICBk LT5YTU1fUSgwKSA9IEYoNjQsIGQtPlhNTV9EKDApLCBzLT5YTU1fRCgwKSk7XAogICAgIGQtPlhN TV9RKDEpID0gRig2NCwgZC0+WE1NX0QoMSksIHMtPlhNTV9EKDEpKTtcCiB9XAogXAotdm9pZCBP UFBST1RPIG9wXyAjIyBuYW1lICMjIHNkICh2b2lkKVwKK3ZvaWQgaGVscGVyXyAjIyBuYW1lICMj IHNkICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KVwKIHtcCiAgICAg UmVnICpkLCAqcztcCi0gICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpO1wKLSAg ICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7XAorICAgIGQgPSAoUmVnICopKChj aGFyICopZW52ICsgZHN0X29mZnNldCk7XAorICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsg c3JjX29mZnNldCk7XAogICAgIGQtPlhNTV9RKDApID0gRig2NCwgZC0+WE1NX0QoMCksIHMtPlhN TV9EKDApKTtcCiB9CiAKQEAgLTEwODksMTQ3ICsxMDc5LDE0NCBAQAogI2RlZmluZSBGUFVfQ01Q TkxFKHNpemUsIGEsIGIpIGZsb2F0ICMjIHNpemUgIyMgX2xlKGEsIGIsICZlbnYtPnNzZV9zdGF0 dXMpID8gMCA6IC0xCiAjZGVmaW5lIEZQVV9DTVBPUkQoc2l6ZSwgYSwgYikgZmxvYXQgIyMgc2l6 ZSAjIyBfdW5vcmRlcmVkKGEsIGIsICZlbnYtPnNzZV9zdGF0dXMpID8gMCA6IC0xCiAKLVNTRV9P UF9DTVAoY21wZXEsIEZQVV9DTVBFUSkKLVNTRV9PUF9DTVAoY21wbHQsIEZQVV9DTVBMVCkKLVNT RV9PUF9DTVAoY21wbGUsIEZQVV9DTVBMRSkKLVNTRV9PUF9DTVAoY21wdW5vcmQsIEZQVV9DTVBV Tk9SRCkKLVNTRV9PUF9DTVAoY21wbmVxLCBGUFVfQ01QTkVRKQotU1NFX09QX0NNUChjbXBubHQs IEZQVV9DTVBOTFQpCi1TU0VfT1BfQ01QKGNtcG5sZSwgRlBVX0NNUE5MRSkKLVNTRV9PUF9DTVAo Y21wb3JkLCBGUFVfQ01QT1JEKQorU1NFX0hFTFBFUl9DTVAoY21wZXEsIEZQVV9DTVBFUSkKK1NT RV9IRUxQRVJfQ01QKGNtcGx0LCBGUFVfQ01QTFQpCitTU0VfSEVMUEVSX0NNUChjbXBsZSwgRlBV X0NNUExFKQorU1NFX0hFTFBFUl9DTVAoY21wdW5vcmQsIEZQVV9DTVBVTk9SRCkKK1NTRV9IRUxQ RVJfQ01QKGNtcG5lcSwgRlBVX0NNUE5FUSkKK1NTRV9IRUxQRVJfQ01QKGNtcG5sdCwgRlBVX0NN UE5MVCkKK1NTRV9IRUxQRVJfQ01QKGNtcG5sZSwgRlBVX0NNUE5MRSkKK1NTRV9IRUxQRVJfQ01Q KGNtcG9yZCwgRlBVX0NNUE9SRCkKIAogY29uc3QgaW50IGNvbWlzX2VmbGFnc1s0XSA9IHtDQ19D LCBDQ19aLCAwLCBDQ19aIHwgQ0NfUCB8IENDX0N9OwogCi12b2lkIE9QUFJPVE8gb3BfdWNvbWlz cyh2b2lkKQordm9pZCBoZWxwZXJfdWNvbWlzcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KQogewogICAgIGludCByZXQ7CiAgICAgZmxvYXQzMiBzMCwgczE7CiAgICAg UmVnICpkLCAqczsKLSAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAg cyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIGQgPSAoUmVnICopKChjaGFy ICopZW52ICsgZHN0X29mZnNldCk7CisgICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBzcmNf b2Zmc2V0KTsKIAogICAgIHMwID0gZC0+WE1NX1MoMCk7CiAgICAgczEgPSBzLT5YTU1fUygwKTsK ICAgICByZXQgPSBmbG9hdDMyX2NvbXBhcmVfcXVpZXQoczAsIHMxLCAmZW52LT5zc2Vfc3RhdHVz KTsKICAgICBDQ19TUkMgPSBjb21pc19lZmxhZ3NbcmV0ICsgMV07Ci0gICAgRk9SQ0VfUkVUKCk7 CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF9jb21pc3Modm9pZCkKK3ZvaWQgaGVscGVyX2NvbWlzcyh1 aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIGludCByZXQ7 CiAgICAgZmxvYXQzMiBzMCwgczE7CiAgICAgUmVnICpkLCAqczsKLSAgICBkID0gKFJlZyAqKSgo Y2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJB TTIpOworICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7CisgICAgcyA9 IChSZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsKIAogICAgIHMwID0gZC0+WE1NX1Mo MCk7CiAgICAgczEgPSBzLT5YTU1fUygwKTsKICAgICByZXQgPSBmbG9hdDMyX2NvbXBhcmUoczAs IHMxLCAmZW52LT5zc2Vfc3RhdHVzKTsKICAgICBDQ19TUkMgPSBjb21pc19lZmxhZ3NbcmV0ICsg MV07Ci0gICAgRk9SQ0VfUkVUKCk7CiB9CiAKLXZvaWQgT1BQUk9UTyBvcF91Y29taXNkKHZvaWQp Cit2b2lkIGhlbHBlcl91Y29taXNkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19v ZmZzZXQpCiB7CiAgICAgaW50IHJldDsKICAgICBmbG9hdDY0IGQwLCBkMTsKICAgICBSZWcgKmQs ICpzOwotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBzID0gKFJl ZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYg KyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQp OwogCiAgICAgZDAgPSBkLT5YTU1fRCgwKTsKICAgICBkMSA9IHMtPlhNTV9EKDApOwogICAgIHJl dCA9IGZsb2F0NjRfY29tcGFyZV9xdWlldChkMCwgZDEsICZlbnYtPnNzZV9zdGF0dXMpOwogICAg IENDX1NSQyA9IGNvbWlzX2VmbGFnc1tyZXQgKyAxXTsKLSAgICBGT1JDRV9SRVQoKTsKIH0KIAot dm9pZCBPUFBST1RPIG9wX2NvbWlzZCh2b2lkKQordm9pZCBoZWxwZXJfY29taXNkKHVpbnQzMl90 IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7CiAgICAgaW50IHJldDsKICAgICBm bG9hdDY0IGQwLCBkMTsKICAgICBSZWcgKmQsICpzOwotICAgIGQgPSAoUmVnICopKChjaGFyICop ZW52ICsgUEFSQU0xKTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7Cisg ICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAq KSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogCiAgICAgZDAgPSBkLT5YTU1fRCgwKTsKICAg ICBkMSA9IHMtPlhNTV9EKDApOwogICAgIHJldCA9IGZsb2F0NjRfY29tcGFyZShkMCwgZDEsICZl bnYtPnNzZV9zdGF0dXMpOwogICAgIENDX1NSQyA9IGNvbWlzX2VmbGFnc1tyZXQgKyAxXTsKLSAg ICBGT1JDRV9SRVQoKTsKIH0KIAotdm9pZCBPUFBST1RPIG9wX21vdm1za3BzKHZvaWQpCit1aW50 MzJfdCBoZWxwZXJfbW92bXNrcHModWludDMyX3Qgc3JjX29mZnNldCkKIHsKICAgICBpbnQgYjAs IGIxLCBiMiwgYjM7CiAgICAgUmVnICpzOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsg UEFSQU0xKTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOwogICAg IGIwID0gcy0+WE1NX0woMCkgPj4gMzE7CiAgICAgYjEgPSBzLT5YTU1fTCgxKSA+PiAzMTsKICAg ICBiMiA9IHMtPlhNTV9MKDIpID4+IDMxOwogICAgIGIzID0gcy0+WE1NX0woMykgPj4gMzE7Ci0g ICAgVDAgPSBiMCB8IChiMSA8PCAxKSB8IChiMiA8PCAyKSB8IChiMyA8PCAzKTsKKyAgICByZXR1 cm4gYjAgfCAoYjEgPDwgMSkgfCAoYjIgPDwgMikgfCAoYjMgPDwgMyk7CiB9CiAKLXZvaWQgT1BQ Uk9UTyBvcF9tb3Ztc2twZCh2b2lkKQordWludDMyX3QgaGVscGVyX21vdm1za3BkKHVpbnQzMl90 IHNyY19vZmZzZXQpCiB7CiAgICAgaW50IGIwLCBiMTsKICAgICBSZWcgKnM7Ci0gICAgcyA9IChS ZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52 ICsgc3JjX29mZnNldCk7CiAgICAgYjAgPSBzLT5YTU1fTCgxKSA+PiAzMTsKICAgICBiMSA9IHMt PlhNTV9MKDMpID4+IDMxOwotICAgIFQwID0gYjAgfCAoYjEgPDwgMSk7CisgICAgcmV0dXJuIGIw IHwgKGIxIDw8IDEpOwogfQogCiAjZW5kaWYKIAotdm9pZCBPUFBST1RPIGdsdWUob3BfcG1vdm1z a2IsIFNVRkZJWCkodm9pZCkKK3VpbnQzMl90IGdsdWUoaGVscGVyX3Btb3Ztc2tiLCBTVUZGSVgp KHVpbnQzMl90IHNyY19vZmZzZXQpCiB7CiAgICAgUmVnICpzOwotICAgIHMgPSAoUmVnICopKChj aGFyICopZW52ICsgUEFSQU0xKTsKLSAgICBUMCA9IDA7Ci0gICAgVDAgfD0gKHMtPlhNTV9CKDAp ID4+IDcpOwotICAgIFQwIHw9IChzLT5YTU1fQigxKSA+PiA2KSAmIDB4MDI7Ci0gICAgVDAgfD0g KHMtPlhNTV9CKDIpID4+IDUpICYgMHgwNDsKLSAgICBUMCB8PSAocy0+WE1NX0IoMykgPj4gNCkg JiAweDA4OwotICAgIFQwIHw9IChzLT5YTU1fQig0KSA+PiAzKSAmIDB4MTA7Ci0gICAgVDAgfD0g KHMtPlhNTV9CKDUpID4+IDIpICYgMHgyMDsKLSAgICBUMCB8PSAocy0+WE1NX0IoNikgPj4gMSkg JiAweDQwOwotICAgIFQwIHw9IChzLT5YTU1fQig3KSkgJiAweDgwOworICAgIHVpbnQzMl90IHJl dDsKKworICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CisgICAgcmV0 ID0gMDsKKyAgICByZXQgfD0gKHMtPlhNTV9CKDApID4+IDcpOworICAgIHJldCB8PSAocy0+WE1N X0IoMSkgPj4gNikgJiAweDAyOworICAgIHJldCB8PSAocy0+WE1NX0IoMikgPj4gNSkgJiAweDA0 OworICAgIHJldCB8PSAocy0+WE1NX0IoMykgPj4gNCkgJiAweDA4OworICAgIHJldCB8PSAocy0+ WE1NX0IoNCkgPj4gMykgJiAweDEwOworICAgIHJldCB8PSAocy0+WE1NX0IoNSkgPj4gMikgJiAw eDIwOworICAgIHJldCB8PSAocy0+WE1NX0IoNikgPj4gMSkgJiAweDQwOworICAgIHJldCB8PSAo cy0+WE1NX0IoNykpICYgMHg4MDsKICNpZiBTSElGVCA9PSAxCi0gICAgVDAgfD0gKHMtPlhNTV9C KDgpIDw8IDEpICYgMHgwMTAwOwotICAgIFQwIHw9IChzLT5YTU1fQig5KSA8PCAyKSAmIDB4MDIw MDsKLSAgICBUMCB8PSAocy0+WE1NX0IoMTApIDw8IDMpICYgMHgwNDAwOwotICAgIFQwIHw9IChz LT5YTU1fQigxMSkgPDwgNCkgJiAweDA4MDA7Ci0gICAgVDAgfD0gKHMtPlhNTV9CKDEyKSA8PCA1 KSAmIDB4MTAwMDsKLSAgICBUMCB8PSAocy0+WE1NX0IoMTMpIDw8IDYpICYgMHgyMDAwOwotICAg IFQwIHw9IChzLT5YTU1fQigxNCkgPDwgNykgJiAweDQwMDA7Ci0gICAgVDAgfD0gKHMtPlhNTV9C KDE1KSA8PCA4KSAmIDB4ODAwMDsKKyAgICByZXQgfD0gKHMtPlhNTV9CKDgpIDw8IDEpICYgMHgw MTAwOworICAgIHJldCB8PSAocy0+WE1NX0IoOSkgPDwgMikgJiAweDAyMDA7CisgICAgcmV0IHw9 IChzLT5YTU1fQigxMCkgPDwgMykgJiAweDA0MDA7CisgICAgcmV0IHw9IChzLT5YTU1fQigxMSkg PDwgNCkgJiAweDA4MDA7CisgICAgcmV0IHw9IChzLT5YTU1fQigxMikgPDwgNSkgJiAweDEwMDA7 CisgICAgcmV0IHw9IChzLT5YTU1fQigxMykgPDwgNikgJiAweDIwMDA7CisgICAgcmV0IHw9IChz LT5YTU1fQigxNCkgPDwgNykgJiAweDQwMDA7CisgICAgcmV0IHw9IChzLT5YTU1fQigxNSkgPDwg OCkgJiAweDgwMDA7CiAjZW5kaWYKKyAgICByZXR1cm4gcmV0OwogfQogCi12b2lkIE9QUFJPVE8g Z2x1ZShvcF9waW5zcncsIFNVRkZJWCkgKHZvaWQpCit2b2lkIGdsdWUoaGVscGVyX3BpbnNydywg U1VGRklYKSAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3QgcG9zLCB1aW50MzJfdCB2YWwp CiB7Ci0gICAgUmVnICpkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgaW50 IHBvcyA9IFBBUkFNMjsKKyAgICBSZWcgKmQgPSAoUmVnICopKChjaGFyICopZW52ICsgZHN0X29m ZnNldCk7CiAKLSAgICBkLT5XKHBvcykgPSBUMDsKKyAgICBkLT5XKHBvcykgPSB2YWw7CiB9CiAK LXZvaWQgT1BQUk9UTyBnbHVlKG9wX3BleHRydywgU1VGRklYKSAodm9pZCkKK3VpbnQzMl90IGds dWUoaGVscGVyX3BleHRydywgU1VGRklYKSAodWludDMyX3Qgc3JjX29mZnNldCwgdWludDMyX3Qg cG9zKQogewotICAgIFJlZyAqcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAg IGludCBwb3MgPSBQQVJBTTI7CisgICAgUmVnICpzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIHNy Y19vZmZzZXQpOwogCi0gICAgVDAgPSBzLT5XKHBvcyk7CisgICAgcmV0dXJuIHMtPlcocG9zKTsK IH0KIAotdm9pZCBPUFBST1RPIGdsdWUob3BfcGFja3Nzd2IsIFNVRkZJWCkgKHZvaWQpCit2b2lk IGdsdWUoaGVscGVyX3BhY2tzc3diLCBTVUZGSVgpICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50 MzJfdCBzcmNfb2Zmc2V0KQogewogICAgIFJlZyByLCAqZCwgKnM7Ci0gICAgZCA9IChSZWcgKiko KGNoYXIgKillbnYgKyBQQVJBTTEpOwotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFS QU0yKTsKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOworICAgIHMg PSAoUmVnICopKChjaGFyICopZW52ICsgc3JjX29mZnNldCk7CiAKICAgICByLkIoMCkgPSBzYXRz YigoaW50MTZfdClkLT5XKDApKTsKICAgICByLkIoMSkgPSBzYXRzYigoaW50MTZfdClkLT5XKDEp KTsKQEAgLTEyNTQsMTEgKzEyNDEsMTEgQEAKICAgICAqZCA9IHI7CiB9CiAKLXZvaWQgT1BQUk9U TyBnbHVlKG9wX3BhY2t1c3diLCBTVUZGSVgpICh2b2lkKQordm9pZCBnbHVlKGhlbHBlcl9wYWNr dXN3YiwgU1VGRklYKSAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkK IHsKICAgICBSZWcgciwgKmQsICpzOwotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFS QU0xKTsKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7CisgICAgZCA9IChS ZWcgKikoKGNoYXIgKillbnYgKyBkc3Rfb2Zmc2V0KTsKKyAgICBzID0gKFJlZyAqKSgoY2hhciAq KWVudiArIHNyY19vZmZzZXQpOwogCiAgICAgci5CKDApID0gc2F0dWIoKGludDE2X3QpZC0+Vygw KSk7CiAgICAgci5CKDEpID0gc2F0dWIoKGludDE2X3QpZC0+VygxKSk7CkBAIC0xMjgzLDExICsx MjcwLDExIEBACiAgICAgKmQgPSByOwogfQogCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wYWNrc3Nk dywgU1VGRklYKSAodm9pZCkKK3ZvaWQgZ2x1ZShoZWxwZXJfcGFja3NzZHcsIFNVRkZJWCkgKHVp bnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpCiB7CiAgICAgUmVnIHIsICpk LCAqczsKLSAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMSk7Ci0gICAgcyA9IChS ZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTIpOworICAgIGQgPSAoUmVnICopKChjaGFyICopZW52 ICsgZHN0X29mZnNldCk7CisgICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0 KTsKIAogICAgIHIuVygwKSA9IHNhdHN3KGQtPkwoMCkpOwogICAgIHIuVygxKSA9IHNhdHN3KGQt PkwoMSkpOwpAQCAtMTMwNiwxMSArMTI5MywxMSBAQAogCiAjZGVmaW5lIFVOUENLX09QKGJhc2Vf bmFtZSwgYmFzZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLXZv aWQgT1BQUk9UTyBnbHVlKG9wX3B1bnBjayAjIyBiYXNlX25hbWUgIyMgYncsIFNVRkZJWCkgKHZv aWQpICAgXAordm9pZCBnbHVlKGhlbHBlcl9wdW5wY2sgIyMgYmFzZV9uYW1lICMjIGJ3LCBTVUZG SVgpICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KSAgIFwKIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgUmVnIHIsICpkLCAqczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBB UkFNMik7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZCA9IChSZWcgKikoKGNoYXIg KillbnYgKyBkc3Rfb2Zmc2V0KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzID0g KFJlZyAqKSgoY2hhciAqKWVudiArIHNyY19vZmZzZXQpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICByLkIoMCkgPSBkLT5CKChiYXNlIDw8IChTSElGVCArIDIpKSAr IDApOyAgICAgICAgICAgICAgICAgICBcCiAgICAgci5CKDEpID0gcy0+QigoYmFzZSA8PCAoU0hJ RlQgKyAyKSkgKyAwKTsgICAgICAgICAgICAgICAgICAgXApAQCAtMTMzMywxMSArMTMyMCwxMSBA QAogICAgICpkID0gcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotdm9pZCBPUFBST1RPIGdsdWUob3BfcHVu cGNrICMjIGJhc2VfbmFtZSAjIyB3ZCwgU1VGRklYKSAodm9pZCkgICBcCit2b2lkIGdsdWUoaGVs cGVyX3B1bnBjayAjIyBiYXNlX25hbWUgIyMgd2QsIFNVRkZJWCkgKHVpbnQzMl90IGRzdF9vZmZz ZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpICAgXAogeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBSZWcgciwgKmQsICpz OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZCA9 IChSZWcgKikoKGNoYXIgKillbnYgKyBQQVJBTTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAg XAotICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0yKTsgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiArIGRzdF9vZmZzZXQpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHMgPSAoUmVnICopKChjaGFyICopZW52ICsg c3JjX29mZnNldCk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHIu VygwKSA9IGQtPlcoKGJhc2UgPDwgKFNISUZUICsgMSkpICsgMCk7ICAgICAgICAgICAgICAgICAg IFwKICAgICByLlcoMSkgPSBzLT5XKChiYXNlIDw8IChTSElGVCArIDEpKSArIDApOyAgICAgICAg ICAgICAgICAgICBcCkBAIC0xMzUyLDExICsxMzM5LDExIEBACiAgICAgKmQgPSByOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCi12b2lkIE9QUFJPVE8gZ2x1ZShvcF9wdW5wY2sgIyMgYmFzZV9uYW1lICMjIGRx LCBTVUZGSVgpICh2b2lkKSAgIFwKK3ZvaWQgZ2x1ZShoZWxwZXJfcHVucGNrICMjIGJhc2VfbmFt ZSAjIyBkcSwgU1VGRklYKSAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNl dCkgICBcCiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgIFJlZyByLCAqZCwgKnM7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkID0gKFJlZyAqKSgoY2hhciAqKWVudiAr IFBBUkFNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgcyA9IChSZWcgKikoKGNo YXIgKillbnYgKyBQQVJBTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGQgPSAo UmVnICopKChjaGFyICopZW52ICsgZHN0X29mZnNldCk7ICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgcyA9IChSZWcgKikoKGNoYXIgKillbnYgKyBzcmNfb2Zmc2V0KTsgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgci5MKDApID0gZC0+TCgoYmFzZSA8PCBT SElGVCkgKyAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHIuTCgxKSA9IHMtPkwo KGJhc2UgPDwgU0hJRlQpICsgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTEzNjgs MTEgKzEzNTUsMTEgQEAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogWE1NX09OTFkoICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLXZvaWQgT1BQUk9U TyBnbHVlKG9wX3B1bnBjayAjIyBiYXNlX25hbWUgIyMgcWRxLCBTVUZGSVgpICh2b2lkKSAgXAor dm9pZCBnbHVlKGhlbHBlcl9wdW5wY2sgIyMgYmFzZV9uYW1lICMjIHFkcSwgU1VGRklYKSAodWlu dDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCkgIFwKIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg UmVnIHIsICpkLCAqczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgIGQgPSAoUmVnICopKChjaGFyICopZW52ICsgUEFSQU0xKTsgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgICBzID0gKFJlZyAqKSgoY2hhciAqKWVudiArIFBBUkFNMik7ICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZCA9IChSZWcgKikoKGNoYXIgKillbnYgKyBk c3Rfb2Zmc2V0KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzID0gKFJlZyAqKSgo Y2hhciAqKWVudiArIHNyY19vZmZzZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICByLlEoMCkgPSBkLT5RKGJhc2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgci5RKDEpID0gcy0+UShiYXNlKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXApJbmRleDogcWVtdS90YXJnZXQtaTM4Ni9oZWxwZXIu aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LWkzODYvaGVscGVyLmgJMjAwOC0wMy0x OSAxODoyNjoyOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0LWkzODYvaGVscGVyLmgJ MjAwOC0wMy0xOSAxODoyODoxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTIsMyArMiwyOTMgQEAKIAog dm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9kaXZsX0VBWF9UMCh0YXJnZXRfdWxvbmcgdDAp Owogdm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9pZGl2bF9FQVhfVDAodGFyZ2V0X3Vsb25n IHQwKTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc3Jsd194bW0odWludDMyX3Qg ZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8g aGVscGVyX3BzcmF3X3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0 KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHNsbHdfeG1tKHVpbnQzMl90IGRzdF9v ZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBl cl9wc3JsZF94bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2 b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzcmFkX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0 LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHNs bGRfeG1tKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBU Q0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc3JscV94bW0odWludDMyX3QgZHN0X29mZnNldCwgdWlu dDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzbGxxX3ht bSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfcHNybGRxX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHNsbGRxX3htbSh1 aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBF Ul9QUk9UTyBoZWxwZXJfcGFkZGJfeG1tKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNy Y19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wYWRkd194bW0odWludDMy X3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJP VE8gaGVscGVyX3BhZGRsX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFkZHFfeG1tKHVpbnQzMl90IGRz dF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJPVE8g aGVscGVyX3BzdWJiX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0 KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHN1YndfeG1tKHVpbnQzMl90IGRzdF9v ZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBl cl9wc3VibF94bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2 b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzdWJxX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0 LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9w YWRkdXNiX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3Zv aWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFkZHNiX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0 LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHN1 YnVzYl94bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lk IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzdWJzYl94bW0odWludDMyX3QgZHN0X29mZnNldCwg dWludDMyX3Qgc3JjX29mZnNldCk7CisKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFk ZHVzd194bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lk IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BhZGRzd194bW0odWludDMyX3QgZHN0X29mZnNldCwg dWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzdWJ1 c3dfeG1tKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBU Q0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc3Vic3dfeG1tKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVp bnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BtaW51 Yl94bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRD R19IRUxQRVJfUFJPVE8gaGVscGVyX3BtYXh1Yl94bW0odWludDMyX3QgZHN0X29mZnNldCwgdWlu dDMyX3Qgc3JjX29mZnNldCk7CisKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcG1pbnN3 X3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENH X0hFTFBFUl9QUk9UTyBoZWxwZXJfcG1heHN3X3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50 MzJfdCBzcmNfb2Zmc2V0KTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wYW5kX3ht bSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfcGFuZG5feG1tKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90 IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wb3JfeG1tKHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BS T1RPIGhlbHBlcl9weG9yX3htbSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wY21wZ3RiX3htbSh1aW50MzJf dCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9U TyBoZWxwZXJfcGNtcGd0d194bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BjbXBndGxfeG1tKHVpbnQzMl90 IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJP VE8gaGVscGVyX3BjbXBlcWJfeG1tKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19v ZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wY21wZXF3X3htbSh1aW50MzJf dCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9U TyBoZWxwZXJfcGNtcGVxbF94bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7CisKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcG11bGx3X3htbSh1aW50MzJf dCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9U TyBoZWxwZXJfcG11bGh1d194bW0odWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BtdWxod194bW0odWludDMyX3Qg ZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7CisKK3ZvaWQgVENHX0hFTFBFUl9QUk9U TyBoZWxwZXJfcGF2Z2JfeG1tKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZz ZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wYXZnd194bW0odWludDMyX3QgZHN0 X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVs cGVyX3BtdWx1ZHFfeG1tICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0 KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcG1hZGR3ZF94bW0gKHVpbnQzMl90IGRz dF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhl bHBlcl9wc2FkYndfeG1tICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0 KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbWFza21vdl94bW0gKHVpbnQzMl90IGRz dF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhl bHBlcl9tb3ZsX21tX1QwX3htbSAodWludDMyX3QgZHN0X29mZnNldCwgdGFyZ2V0X3Vsb25nIHZh bCk7Cit0YXJnZXRfdWxvbmcgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbW92bF9UMF9tbV94bW0g KHVpbnQzMl90IHNyY19vZmZzZXQpOworI2lmZGVmIFRBUkdFVF9YODZfNjQKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfbW92cV9tbV9UMF94bW0gKHVpbnQzMl90IGRzdF9vZmZzZXQsIHRh cmdldF91bG9uZyB2YWwpOwordGFyZ2V0X3Vsb25nIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX21v dnFfVDBfbW1feG1tICh1aW50MzJfdCBzcmNfb2Zmc2V0KTsKKyNlbmRpZgordm9pZCBUQ0dfSEVM UEVSX1BST1RPIGhlbHBlcl9wc2h1ZndfeG1tICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc3Jsd19tbXgo dWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQ RVJfUFJPVE8gaGVscGVyX3BzcmF3X21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHNsbHdfbW14KHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BS T1RPIGhlbHBlcl9wc3JsZF9tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzcmFkX21teCh1aW50MzJfdCBk c3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBo ZWxwZXJfcHNsbGRfbW14KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQp Owordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc3JscV9tbXgodWludDMyX3QgZHN0X29m ZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVy X3BzbGxxX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3Zv aWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHNybGRxX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0 LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHNs bGRxX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQg VENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFkZGJfbW14KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVp bnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wYWRkd19t bXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19I RUxQRVJfUFJPVE8gaGVscGVyX3BhZGRsX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFkZHFfbW14KHVp bnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQ RVJfUFJPVE8gaGVscGVyX3BzdWJiX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHN1YndfbW14KHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BS T1RPIGhlbHBlcl9wc3VibF9tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzdWJxX21teCh1aW50MzJfdCBk c3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RP IGhlbHBlcl9wYWRkdXNiX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFkZHNiX21teCh1aW50MzJfdCBk c3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBo ZWxwZXJfcHN1YnVzYl9tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNl dCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzdWJzYl9tbXgodWludDMyX3QgZHN0 X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7CisKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBo ZWxwZXJfcGFkZHVzd19tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNl dCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BhZGRzd19tbXgodWludDMyX3QgZHN0 X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVs cGVyX3BzdWJ1c3dfbW14KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQp Owordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc3Vic3dfbW14KHVpbnQzMl90IGRzdF9v ZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVs cGVyX3BtaW51Yl9tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7 Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BtYXh1Yl9tbXgodWludDMyX3QgZHN0X29m ZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7CisKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxw ZXJfcG1pbnN3X21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsK K3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcG1heHN3X21teCh1aW50MzJfdCBkc3Rfb2Zm c2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBl cl9wYW5kX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3Zv aWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFuZG5fbW14KHVpbnQzMl90IGRzdF9vZmZzZXQs IHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wb3Jf bW14KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0df SEVMUEVSX1BST1RPIGhlbHBlcl9weG9yX21teCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KTsKKwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wY21wZ3RiX21t eCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfcGNtcGd0d19tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMy X3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BjbXBndGxfbW14 KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19I RUxQRVJfUFJPVE8gaGVscGVyX3BjbXBlcWJfbW14KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQz Ml90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wY21wZXF3X21t eCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfcGNtcGVxbF9tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMy X3Qgc3JjX29mZnNldCk7CisKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcG11bGx3X21t eCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfcG11bGh1d19tbXgodWludDMyX3QgZHN0X29mZnNldCwgdWludDMy X3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BtdWxod19tbXgo dWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7CisKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfcGF2Z2JfbW14KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90 IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wYXZnd19tbXgodWlu dDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJf UFJPVE8gaGVscGVyX3BtdWx1ZHFfbW14ICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcG1hZGR3ZF9tbXggKHVp bnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVS X1BST1RPIGhlbHBlcl9wc2FkYndfbW14ICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbWFza21vdl9tbXggKHVp bnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVS X1BST1RPIGhlbHBlcl9tb3ZsX21tX1QwX21teCAodWludDMyX3QgZHN0X29mZnNldCwgdGFyZ2V0 X3Vsb25nIHZhbCk7Cit0YXJnZXRfdWxvbmcgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbW92bF9U MF9tbV9tbXggKHVpbnQzMl90IHNyY19vZmZzZXQpOworI2lmZGVmIFRBUkdFVF9YODZfNjQKK3Zv aWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbW92cV9tbV9UMF9tbXggKHVpbnQzMl90IGRzdF9v ZmZzZXQsIHRhcmdldF91bG9uZyB2YWwpOwordGFyZ2V0X3Vsb25nIFRDR19IRUxQRVJfUFJPVE8g aGVscGVyX21vdnFfVDBfbW1fbW14ICh1aW50MzJfdCBzcmNfb2Zmc2V0KTsKKyNlbmRpZgordm9p ZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc2h1ZndfbW14ICh1aW50MzJfdCBkc3Rfb2Zmc2V0 LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgaGVscGVyX3NodWZwcyh1aW50MzJfdCBkc3Rf b2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgaGVscGVyX3NodWZwZCh1aW50MzJf dCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9U TyBoZWxwZXJfcHNodWZkX3htbSAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3BzaHVmbHdfeG1tICh1aW50MzJf dCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9U TyBoZWxwZXJfcHNodWZod194bW0gKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19v ZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc2h1ZmRfbW14ICh1aW50MzJf dCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9U TyBoZWxwZXJfcHNodWZsd19tbXggKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19v ZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wc2h1Zmh3X21teCAodWludDMy X3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJP VE8gaGVscGVyX2FkZHBzICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0 KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfYWRkc3MgKHVpbnQzMl90IGRzdF9vZmZz ZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9h ZGRwZCAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRD R19IRUxQRVJfUFJPVE8gaGVscGVyX2FkZHNkICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfc3VicHMgKHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BS T1RPIGhlbHBlcl9zdWJzcyAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNl dCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3N1YnNkICh1aW50MzJfdCBkc3Rfb2Zm c2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJf c3VicGQgKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBU Q0dfSEVMUEVSX1BST1RPIGhlbHBlcl9tdWxwcyAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMy X3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX211bHNzICh1aW50 MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9Q Uk9UTyBoZWxwZXJfbXVscGQgKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZz ZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9tdWxzZCAodWludDMyX3QgZHN0X29m ZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVy X2RpdnBzICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQg VENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfZGl2c3MgKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQz Ml90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9kaXZwZCAodWlu dDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJf UFJPVE8gaGVscGVyX2RpdnNkICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbWlucHMgKHVpbnQzMl90IGRzdF9v ZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBl cl9taW5zcyAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lk IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX21pbnBkICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50 MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbWluc2QgKHVp bnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVS X1BST1RPIGhlbHBlcl9tYXhwcyAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX21heHNzICh1aW50MzJfdCBkc3Rf b2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxw ZXJfbWF4cGQgKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9p ZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9tYXhzZCAodWludDMyX3QgZHN0X29mZnNldCwgdWlu dDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3NxcnRwcyAo dWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQ RVJfUFJPVE8gaGVscGVyX3NxcnRzcyAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3Jj X29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3NxcnRwZCAodWludDMyX3Qg ZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8g aGVscGVyX3NxcnRzZCAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7 Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dHBzMnBkKHVpbnQzMl90IGRzdF9vZmZz ZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9j dnRwZDJwcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQg VENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY3Z0c3Myc2QodWludDMyX3QgZHN0X29mZnNldCwgdWlu dDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dHNkMnNz KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVM UEVSX1BST1RPIGhlbHBlcl9jdnRwczJwZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY3Z0cGQycHModWludDMy X3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJP VE8gaGVscGVyX2N2dHNzMnNkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZz ZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9jdnRzZDJzcyh1aW50MzJfdCBkc3Rf b2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxw ZXJfY3Z0ZHEycHModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2 b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dGRxMnBkKHVpbnQzMl90IGRzdF9vZmZzZXQs IHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9jdnRw aTJwcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENH X0hFTFBFUl9QUk9UTyBoZWxwZXJfY3Z0cGkycGQodWludDMyX3QgZHN0X29mZnNldCwgdWludDMy X3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dHNpMnNzKHVp bnQzMl90IGRzdF9vZmZzZXQsIHRhcmdldF91bG9uZyB2YWwpOwordm9pZCBUQ0dfSEVMUEVSX1BS T1RPIGhlbHBlcl9jdnRzaTJzZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB0YXJnZXRfdWxvbmcgdmFs KTsKKyNpZmRlZiBUQVJHRVRfWDg2XzY0Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2 dHNxMnNzKHVpbnQzMl90IGRzdF9vZmZzZXQsIHRhcmdldF91bG9uZyB2YWwpOwordm9pZCBUQ0df SEVMUEVSX1BST1RPIGhlbHBlcl9jdnRzcTJzZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB0YXJnZXRf dWxvbmcgdmFsKTsKKyNlbmRpZgordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9jdnRwczJk cSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfY3Z0cGQyZHEodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qg c3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dHBzMnBpKHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BS T1RPIGhlbHBlcl9jdnRwZDJwaSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KTsKK3RhcmdldF91bG9uZyBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9jdnRzczJzaSh1aW50 MzJfdCBzcmNfb2Zmc2V0KTsKK3RhcmdldF91bG9uZyBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9j dnRzZDJzaSh1aW50MzJfdCBzcmNfb2Zmc2V0KTsKKyNpZmRlZiBUQVJHRVRfWDg2XzY0Cit0YXJn ZXRfdWxvbmcgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY3Z0c3Myc3EodWludDMyX3Qgc3JjX29m ZnNldCk7Cit0YXJnZXRfdWxvbmcgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY3Z0c2Qyc3EodWlu dDMyX3Qgc3JjX29mZnNldCk7CisjZW5kaWYKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJf Y3Z0dHBzMmRxKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9p ZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9jdnR0cGQyZHEodWludDMyX3QgZHN0X29mZnNldCwg dWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dHRw czJwaSh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENH X0hFTFBFUl9QUk9UTyBoZWxwZXJfY3Z0dHBkMnBpKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQz Ml90IHNyY19vZmZzZXQpOwordWludDMyX3QgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY3Z0dHNz MnNpKHVpbnQzMl90IHNyY19vZmZzZXQpOwordWludDMyX3QgVENHX0hFTFBFUl9QUk9UTyBoZWxw ZXJfY3Z0dHNkMnNpKHVpbnQzMl90IHNyY19vZmZzZXQpOworI2lmZGVmIFRBUkdFVF9YODZfNjQK K3VpbnQzMl90IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dHRzczJzcSh1aW50MzJfdCBzcmNf b2Zmc2V0KTsKK3VpbnQzMl90IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2N2dHRzZDJzcSh1aW50 MzJfdCBzcmNfb2Zmc2V0KTsKKyNlbmRpZgordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9y c3FydHBzKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBU Q0dfSEVMUEVSX1BST1RPIGhlbHBlcl9yc3FydHNzKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQz Ml90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9yY3Bwcyh1aW50 MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9Q Uk9UTyBoZWxwZXJfcmNwc3ModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNl dCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2hhZGRwcyh1aW50MzJfdCBkc3Rfb2Zm c2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJf aGFkZHBkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBU Q0dfSEVMUEVSX1BST1RPIGhlbHBlcl9oc3VicHModWludDMyX3QgZHN0X29mZnNldCwgdWludDMy X3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2hzdWJwZCh1aW50 MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9Q Uk9UTyBoZWxwZXJfYWRkc3VicHModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2FkZHN1YnBkKHVpbnQzMl90IGRz dF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJPVE8g aGVscGVyX2NtcGVxcHModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7 Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcGx0cHModWludDMyX3QgZHN0X29mZnNl dCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2Nt cGxlcHModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRD R19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcHVub3JkcHModWludDMyX3QgZHN0X29mZnNldCwgdWlu dDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcG5lcXBz KHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVM UEVSX1BST1RPIGhlbHBlcl9jbXBubHRwcyh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY21wbmxlcHModWludDMy X3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJP VE8gaGVscGVyX2NtcG9yZHBzKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZz ZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcGVxc3ModWludDMyX3QgZHN0 X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVs cGVyX2NtcGx0c3ModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2 b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcGxlc3ModWludDMyX3QgZHN0X29mZnNldCwg dWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcHVu b3Jkc3ModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRD R19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcG5lcXNzKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQz Ml90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9jbXBubHRzcyh1 aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBF Ul9QUk9UTyBoZWxwZXJfY21wbmxlc3ModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3Jj X29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcG9yZHNzKHVpbnQzMl90 IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJP VE8gaGVscGVyX2NtcGVxcGQodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNl dCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcGx0cGQodWludDMyX3QgZHN0X29m ZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVy X2NtcGxlcGQodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lk IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcHVub3JkcGQodWludDMyX3QgZHN0X29mZnNldCwg dWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcG5l cXBkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0df SEVMUEVSX1BST1RPIGhlbHBlcl9jbXBubHRwZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJf dCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY21wbmxlcGQodWlu dDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJf UFJPVE8gaGVscGVyX2NtcG9yZHBkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19v ZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcGVxc2QodWludDMyX3Qg ZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8g aGVscGVyX2NtcGx0c2QodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7 Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcGxlc2QodWludDMyX3QgZHN0X29mZnNl dCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2Nt cHVub3Jkc2QodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lk IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcG5lcXNkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVp bnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9jbXBubHRz ZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfY21wbmxlc2QodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qg c3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NtcG9yZHNkKHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOworCit2b2lkIFRDR19IRUxQRVJf UFJPVE8gaGVscGVyX3Vjb21pc3ModWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX2NvbWlzcyh1aW50MzJfdCBkc3Rf b2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxw ZXJfdWNvbWlzZCh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3Zv aWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfY29taXNkKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVp bnQzMl90IHNyY19vZmZzZXQpOwordWludDMyX3QgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfbW92 bXNrcHModWludDMyX3Qgc3JjX29mZnNldCk7Cit1aW50MzJfdCBUQ0dfSEVMUEVSX1BST1RPIGhl bHBlcl9tb3Ztc2twZCh1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3VpbnQzMl90IFRDR19IRUxQRVJf UFJPVE8gaGVscGVyX3Btb3Ztc2tiX3htbSh1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENH X0hFTFBFUl9QUk9UTyBoZWxwZXJfcGluc3J3X3htbSAodWludDMyX3QgZHN0X29mZnNldCwgdWlu dDMyX3QgcG9zLCB1aW50MzJfdCB2YWwpOwordWludDMyX3QgVENHX0hFTFBFUl9QUk9UTyBoZWxw ZXJfcGV4dHJ3X3htbSAodWludDMyX3Qgc3JjX29mZnNldCwgdWludDMyX3QgcG9zKTsKK3ZvaWQg VENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFja3Nzd2JfeG1tICh1aW50MzJfdCBkc3Rfb2Zmc2V0 LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFj a3Vzd2JfeG1tICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3Zv aWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFja3NzZHdfeG1tICh1aW50MzJfdCBkc3Rfb2Zm c2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJf cHVucGNrbGJ3X3htbSAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7 Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3B1bnBja2x3ZF94bW0gKHVpbnQzMl90IGRz dF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhl bHBlcl9wdW5wY2tsZHFfeG1tICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zm c2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHVucGNrbHFkcV94bW0gKHVpbnQz Ml90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BS T1RPIGhlbHBlcl9wdW5wY2toYndfeG1tICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHVucGNraHdkX3htbSAo dWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQ RVJfUFJPVE8gaGVscGVyX3B1bnBja2hkcV94bW0gKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQz Ml90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wdW5wY2tocWRx X3htbSAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7CisKK3VpbnQz Ml90IFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3Btb3Ztc2tiX21teCh1aW50MzJfdCBzcmNfb2Zm c2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGluc3J3X21teCAodWludDMyX3Qg ZHN0X29mZnNldCwgdWludDMyX3QgcG9zLCB1aW50MzJfdCB2YWwpOwordWludDMyX3QgVENHX0hF TFBFUl9QUk9UTyBoZWxwZXJfcGV4dHJ3X21teCAodWludDMyX3Qgc3JjX29mZnNldCwgdWludDMy X3QgcG9zKTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFja3Nzd2JfbW14ICh1aW50 MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9Q Uk9UTyBoZWxwZXJfcGFja3Vzd2JfbW14ICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBz cmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcGFja3NzZHdfbW14ICh1 aW50MzJfdCBkc3Rfb2Zmc2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBF Ul9QUk9UTyBoZWxwZXJfcHVucGNrbGJ3X21teCAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMy X3Qgc3JjX29mZnNldCk7Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3B1bnBja2x3ZF9t bXggKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0df SEVMUEVSX1BST1RPIGhlbHBlcl9wdW5wY2tsZHFfbW14ICh1aW50MzJfdCBkc3Rfb2Zmc2V0LCB1 aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJfcHVucGNr bHFkcV9tbXggKHVpbnQzMl90IGRzdF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9p ZCBUQ0dfSEVMUEVSX1BST1RPIGhlbHBlcl9wdW5wY2toYndfbW14ICh1aW50MzJfdCBkc3Rfb2Zm c2V0LCB1aW50MzJfdCBzcmNfb2Zmc2V0KTsKK3ZvaWQgVENHX0hFTFBFUl9QUk9UTyBoZWxwZXJf cHVucGNraHdkX21teCAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29mZnNldCk7 Cit2b2lkIFRDR19IRUxQRVJfUFJPVE8gaGVscGVyX3B1bnBja2hkcV9tbXggKHVpbnQzMl90IGRz dF9vZmZzZXQsIHVpbnQzMl90IHNyY19vZmZzZXQpOwordm9pZCBUQ0dfSEVMUEVSX1BST1RPIGhl bHBlcl9wdW5wY2tocWRxX21teCAodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qgc3JjX29m ZnNldCk7Cg== ------=_Part_22599_1568038.1205954608049--