From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 24/50] x86emul: support AVX512{F, DQ} FP-to-uint conversion insns Date: Fri, 15 Mar 2019 04:54:03 -0600 Message-ID: <5C8B844B020000780021F211@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C8B7EC0020000780021F10B@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h4kTU-0006rH-6Z for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 10:54:04 +0000 In-Reply-To: <5C8B7EC0020000780021F10B@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org QWxvbmcgdGhlIGxpbmVzIG9mIHByaW9yIHBhdGNoZXMsIFZDVlR7LFR9UFMyVVFRIGFzIHdlbGwg YXMKVkNWVHssVH1Te1MsRH0yVVNJIG5lZWQgIm1hbnVhbCIgb3ZlcnJpZGVzIG9mIGRpc3A4c2Nh bGUuCgpUaGUgdHdvYnl0ZV90YWJsZVtdIGVudHJpZXMgZ2V0IGFsdGVyZWQsIHdpdGggdGhlaXIg cHJpb3IgdmFsdWVzCm5vdyBwdXQgaW4gcGxhY2UgaW4geDg2X2RlY29kZV90d29ieXRlKCkuCgpT aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NzogUmUt YmFzZS4KdjQ6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4 LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYwpAQCAtMTEyLDIx ICsxMTIsMjkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmZfYWxsW10gPQogICAg IElOU04oY3Z0ZHEycGQsICAgICBmMywgICAwZiwgZTYsICAgIHZsXzIsICAgIGQsIHZsKSwKICAg ICBJTlNOKGN2dGRxMnBzLCAgICAgICAsICAgMGYsIDViLCAgICB2bCwgICAgICBkLCB2bCksCiAg ICAgSU5TTihjdnRwZDJkcSwgICAgIGYyLCAgIDBmLCBlNiwgICAgdmwsICAgICAgcSwgdmwpLAor ICAgIElOU04oY3Z0cGQydWRxLCAgICAgICwgICAwZiwgNzksICAgIHZsLCAgICAgIHEsIHZsKSwK ICAgICBJTlNOKGN2dHBkMnBzLCAgICAgNjYsICAgMGYsIDVhLCAgICB2bCwgICAgICBxLCB2bCks CiAgICAgSU5TTihjdnRwaDJwcywgICAgIDY2LCAwZjM4LCAxMywgICAgdmxfMiwgZF9uYiwgdmwp LAogICAgIElOU04oY3Z0cHMyZHEsICAgICA2NiwgICAwZiwgNWIsICAgIHZsLCAgICAgIGQsIHZs KSwKICAgICBJTlNOKGN2dHBzMnBkLCAgICAgICAsICAgMGYsIDVhLCAgICB2bF8yLCAgICBkLCB2 bCksCiAgICAgSU5TTihjdnRwczJwaCwgICAgIDY2LCAwZjNhLCAxZCwgICAgdmxfMiwgZF9uYiwg dmwpLAorICAgIElOU04oY3Z0cHMydWRxLCAgICAgICwgICAwZiwgNzksICAgIHZsLCAgICAgIGQs IHZsKSwKICAgICBJTlNOKGN2dHNkMnNpLCAgICAgZjIsICAgMGYsIDJkLCAgICBlbCwgICAgICBx LCBlbCksCisgICAgSU5TTihjdnRzZDJ1c2ksICAgIGYyLCAgIDBmLCA3OSwgICAgZWwsICAgICAg cSwgZWwpLAogICAgIElOU04oY3Z0c2Qyc3MsICAgICBmMiwgICAwZiwgNWEsICAgIGVsLCAgICAg IHEsIGVsKSwKICAgICBJTlNOKGN2dHNpMnNkLCAgICAgZjIsICAgMGYsIDJhLCAgICBlbCwgICBk cTY0LCBlbCksCiAgICAgSU5TTihjdnRzaTJzcywgICAgIGYzLCAgIDBmLCAyYSwgICAgZWwsICAg ZHE2NCwgZWwpLAogICAgIElOU04oY3Z0c3Myc2QsICAgICBmMywgICAwZiwgNWEsICAgIGVsLCAg ICAgIGQsIGVsKSwKICAgICBJTlNOKGN2dHNzMnNpLCAgICAgZjMsICAgMGYsIDJkLCAgICBlbCwg ICAgICBkLCBlbCksCisgICAgSU5TTihjdnRzczJ1c2ksICAgIGYzLCAgIDBmLCA3OSwgICAgZWws ICAgICAgZCwgZWwpLAogICAgIElOU04oY3Z0dHBkMmRxLCAgICA2NiwgICAwZiwgZTYsICAgIHZs LCAgICAgIHEsIHZsKSwKKyAgICBJTlNOKGN2dHRwZDJ1ZHEsICAgICAsICAgMGYsIDc4LCAgICB2 bCwgICAgICBxLCB2bCksCiAgICAgSU5TTihjdnR0cHMyZHEsICAgIGYzLCAgIDBmLCA1YiwgICAg dmwsICAgICAgZCwgdmwpLAorICAgIElOU04oY3Z0dHBzMnVkcSwgICAgICwgICAwZiwgNzgsICAg IHZsLCAgICAgIGQsIHZsKSwKICAgICBJTlNOKGN2dHRzZDJzaSwgICAgZjIsICAgMGYsIDJjLCAg ICBlbCwgICAgICBxLCBlbCksCisgICAgSU5TTihjdnR0c2QydXNpLCAgIGYyLCAgIDBmLCA3OCwg ICAgZWwsICAgICAgcSwgZWwpLAogICAgIElOU04oY3Z0dHNzMnNpLCAgICBmMywgICAwZiwgMmMs ICAgIGVsLCAgICAgIGQsIGVsKSwKKyAgICBJTlNOKGN2dHRzczJ1c2ksICAgZjMsICAgMGYsIDc4 LCAgICBlbCwgICAgICBkLCBlbCksCiAgICAgSU5TTihjdnR1ZHEycGQsICAgIGYzLCAgIDBmLCA3 YSwgICAgdmxfMiwgICAgZCwgdmwpLAogICAgIElOU04oY3Z0dWRxMnBzLCAgICBmMiwgICAwZiwg N2EsICAgIHZsLCAgICAgIGQsIHZsKSwKICAgICBJTlNOKGN2dHVzaTJzZCwgICAgZjIsICAgMGYs IDdiLCAgICBlbCwgICBkcTY0LCBlbCksCkBAIC00MTUsMTEgKzQyMywxNSBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfYWxsW10KICAgICBJTlNOX1BGUChhbmRuLCAgICAgICAg ICAgICAwZiwgNTUpLAogICAgIElOU04oYnJvYWRjYXN0aTMyeDIsIDY2LCAwZjM4LCA1OSwgZWxf MiwgIGQsIHZsKSwKICAgICBJTlNOKGN2dHBkMnFxLCAgICAgICA2NiwgICAwZiwgN2IsICAgdmws ICBxLCB2bCksCisgICAgSU5TTihjdnRwZDJ1cXEsICAgICAgNjYsICAgMGYsIDc5LCAgIHZsLCAg cSwgdmwpLAogICAgIElOU04oY3Z0cHMycXEsICAgICAgIDY2LCAgIDBmLCA3YiwgdmxfMiwgIGQs IHZsKSwKKyAgICBJTlNOKGN2dHBzMnVxcSwgICAgICA2NiwgICAwZiwgNzksIHZsXzIsICBkLCB2 bCksCiAgICAgSU5TTihjdnRxcTJwZCwgICAgICAgZjMsICAgMGYsIGU2LCAgIHZsLCAgcSwgdmwp LAogICAgIElOU04oY3Z0cXEycHMsICAgICAgICAgLCAgIDBmLCA1YiwgICB2bCwgIHEsIHZsKSwK ICAgICBJTlNOKGN2dHRwZDJxcSwgICAgICA2NiwgICAwZiwgN2EsICAgdmwsICBxLCB2bCksCisg ICAgSU5TTihjdnR0cGQydXFxLCAgICAgNjYsICAgMGYsIDc4LCAgIHZsLCAgcSwgdmwpLAogICAg IElOU04oY3Z0dHBzMnFxLCAgICAgIDY2LCAgIDBmLCA3YSwgdmxfMiwgIGQsIHZsKSwKKyAgICBJ TlNOKGN2dHRwczJ1cXEsICAgICA2NiwgICAwZiwgNzgsIHZsXzIsICBkLCB2bCksCiAgICAgSU5T TihjdnR1cXEycGQsICAgICAgZjMsICAgMGYsIDdhLCAgIHZsLCAgcSwgdmwpLAogICAgIElOU04o Y3Z0dXFxMnBzLCAgICAgIGYyLCAgIDBmLCA3YSwgICB2bCwgIHEsIHZsKSwKICAgICBJTlNOX1BG UChvciwgICAgICAgICAgICAgICAwZiwgNTYpLAotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0 b3Ivc2ltZC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTkzLDMx ICs5Myw2NSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjIGlm ZGVmIF9feDg2XzY0X18KICMgIGRlZmluZSB0b193aW50KHgpICh7IGxvbmcgbF8gPSAoeClbMF07 IHRvdWNoKGxfKTsgKCh2ZWNfdCl7IGxfIH0pOyB9KQogIyBlbmRpZgorIyBpZmRlZiBfX0FWWDUx MkZfXworLyoKKyAqIFNhZGx5IGV2ZW4gZ2NjIDkueCwgYXQgdGhlIHRpbWUgb2Ygd3JpdGluZywg ZG9lcyBub3QgY2Fycnkgb3V0IGF0IGxlYXN0CisgKiB1aW50IC0+IEZQIGNvbnZlcnNpb25zIHVz aW5nIFZDVlRVU0kyU3tTLER9LCBzbyB3ZSBuZWVkIHRvIHVzZSBidWlsdGlucworICogb3IgaW5s aW5lIGFzc2VtYmx5IGhlcmUuIFRoZSBmdWxsLXZlY3RvciBwYXJhbWV0ZXIgdHlwZXMgb2YgdGhl IGJ1aWx0aW5zCisgKiBhcmVuJ3QgdmVyeSBoZWxwZnVsIGZvciBvdXIgcHVycG9zZXMsIHNvIHVz ZSBpbmxpbmUgYXNzZW1ibHkuCisgKi8KKyMgIGlmIEZMT0FUX1NJWkUgPT0gNAorIyAgIGRlZmlu ZSB0b191X2ludCh0eXBlLCB4KSAoeyBcCisgICAgdW5zaWduZWQgdHlwZSB1XzsgXAorICAgIGZs b2F0IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSkpIHRfOyBcCisgICAgYXNtICggInZj dnRzczJ1c2kgJTEsICUwIiA6ICI9ciIgKHVfKSA6ICJtIiAoKHgpWzBdKSApOyBcCisgICAgYXNt ICggInZjdnR1c2kyc3MlejEgJTEsICUwLCAlMCIgOiAiPXYiICh0XykgOiAibSIgKHVfKSApOyBc CisgICAgKHZlY190KXsgdF9bMF0gfTsgXAorfSkKKyMgIGVsaWYgRkxPQVRfU0laRSA9PSA4Cisj ICAgZGVmaW5lIHRvX3VfaW50KHR5cGUsIHgpICh7IFwKKyAgICB1bnNpZ25lZCB0eXBlIHVfOyBc CisgICAgZG91YmxlIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSkpIHRfOyBcCisgICAg YXNtICggInZjdnRzZDJ1c2kgJTEsICUwIiA6ICI9ciIgKHVfKSA6ICJtIiAoKHgpWzBdKSApOyBc CisgICAgYXNtICggInZjdnR1c2kyc2QlejEgJTEsICUwLCAlMCIgOiAiPXYiICh0XykgOiAibSIg KHVfKSApOyBcCisgICAgKHZlY190KXsgdF9bMF0gfTsgXAorfSkKKyMgIGVuZGlmCisjICBkZWZp bmUgdG9fdWludCh4KSB0b191X2ludChpbnQsIHgpCisjICBpZmRlZiBfX3g4Nl82NF9fCisjICAg ZGVmaW5lIHRvX3V3aW50KHgpIHRvX3VfaW50KGxvbmcsIHgpCisjICBlbmRpZgorIyBlbmRpZgog I2VsaWYgVkVDX1NJWkUgPT0gOCAmJiBGTE9BVF9TSVpFID09IDQgJiYgZGVmaW5lZChfXzNkTk9X X18pCiAjIGRlZmluZSB0b19pbnQoeCkgX19idWlsdGluX2lhMzJfcGkyZmQoX19idWlsdGluX2lh MzJfcGYyaWQoeCkpCiAjZWxpZiBkZWZpbmVkKEZMT0FUX1NJWkUpICYmIFZFQ19TSVpFID4gRkxP QVRfU0laRSAmJiBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBcCiAgICAgICAoVkVDX1NJWkUgPT0g NjQgfHwgZGVmaW5lZChfX0FWWDUxMlZMX18pKQogIyBpZiBGTE9BVF9TSVpFID09IDQKICMgIGRl ZmluZSB0b19pbnQoeCkgQlIoY3Z0ZHEycHMsIF9tYXNrLCBCUihjdnRwczJkcSwgX21hc2ssIHgs ICh2c2lfdCl1bmRlZigpLCB+MCksIHVuZGVmKCksIH4wKQorIyAgZGVmaW5lIHRvX3VpbnQoeCkg QlIoY3Z0dWRxMnBzLCBfbWFzaywgQlIoY3Z0cHMydWRxLCBfbWFzaywgeCwgKHZzaV90KXVuZGVm KCksIH4wKSwgdW5kZWYoKSwgfjApCiAjICBpZmRlZiBfX0FWWDUxMkRRX18KLSMgICBkZWZpbmUg dG9fd2ludCh4KSAoeyBcCisjICAgZGVmaW5lIHRvX3dfaW50KHgsIHMpICh7IFwKICAgICB2c2Zf aGFsZl90IHRfID0gbG93X2hhbGYoeCk7IFwKICAgICB2ZGlfdCBsb18sIGhpXzsgXAogICAgIHRv dWNoKHRfKTsgXAotICAgIGxvXyA9IEJSKGN2dHBzMnFxLCBfbWFzaywgdF8sICh2ZGlfdCl1bmRl ZigpLCB+MCk7IFwKKyAgICBsb18gPSBCUihjdnRwczIgIyMgcyAjIyBxcSwgX21hc2ssIHRfLCAo dmRpX3QpdW5kZWYoKSwgfjApOyBcCiAgICAgdF8gPSBoaWdoX2hhbGYoeCk7IFwKICAgICB0b3Vj aCh0Xyk7IFwKLSAgICBoaV8gPSBCUihjdnRwczJxcSwgX21hc2ssIHRfLCAodmRpX3QpdW5kZWYo KSwgfjApOyBcCisgICAgaGlfID0gQlIoY3Z0cHMyICMjIHMgIyMgcXEsIF9tYXNrLCB0XywgKHZk aV90KXVuZGVmKCksIH4wKTsgXAogICAgIHRvdWNoKGxvXyk7IHRvdWNoKGhpXyk7IFwKICAgICBp bnNlcnRfaGFsZihpbnNlcnRfaGFsZih1bmRlZigpLCBcCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgQlIoY3Z0cXEycHMsIF9tYXNrLCBsb18sICh2c2ZfaGFsZl90KXt9LCB+MCksIDApLCBc Ci0gICAgICAgICAgICAgICAgQlIoY3Z0cXEycHMsIF9tYXNrLCBoaV8sICh2c2ZfaGFsZl90KXt9 LCB+MCksIDEpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlIoY3Z0ICMjIHMgIyMg cXEycHMsIF9tYXNrLCBsb18sICh2c2ZfaGFsZl90KXt9LCB+MCksIDApLCBcCisgICAgICAgICAg ICAgICAgQlIoY3Z0ICMjIHMgIyMgcXEycHMsIF9tYXNrLCBoaV8sICh2c2ZfaGFsZl90KXt9LCB+ MCksIDEpOyBcCiB9KQorIyAgIGRlZmluZSB0b193aW50KHgpIHRvX3dfaW50KHgsICkKKyMgICBk ZWZpbmUgdG9fdXdpbnQoeCkgdG9fd19pbnQoeCwgdSkKICMgIGVuZGlmCiAjIGVsaWYgRkxPQVRf U0laRSA9PSA4CiAjICBkZWZpbmUgdG9faW50KHgpIEIoY3Z0ZHEycGQsIF9tYXNrLCBCUihjdnRw ZDJkcSwgX21hc2ssIHgsICh2c2lfaGFsZl90KXt9LCB+MCksIHVuZGVmKCksIH4wKQorIyAgZGVm aW5lIHRvX3VpbnQoeCkgQihjdnR1ZHEycGQsIF9tYXNrLCBCUihjdnRwZDJ1ZHEsIF9tYXNrLCB4 LCAodnNpX2hhbGZfdCl7fSwgfjApLCB1bmRlZigpLCB+MCkKICMgIGlmZGVmIF9fQVZYNTEyRFFf XwogIyAgIGRlZmluZSB0b193aW50KHgpIEJSKGN2dHFxMnBkLCBfbWFzaywgQlIoY3Z0cGQycXEs IF9tYXNrLCB4LCAodmRpX3QpdW5kZWYoKSwgfjApLCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUg dG9fdXdpbnQoeCkgQlIoY3Z0dXFxMnBkLCBfbWFzaywgQlIoY3Z0cGQydXFxLCBfbWFzaywgeCwg KHZkaV90KXVuZGVmKCksIH4wKSwgdW5kZWYoKSwgfjApCiAjICBlbmRpZgogIyBlbmRpZgogI2Vs aWYgVkVDX1NJWkUgPT0gMTYgJiYgZGVmaW5lZChfX1NTRTJfXykKQEAgLTEyMjEsNiArMTI1NSwy MCBAQCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAgICAgdG91Y2goc3JjKTsKICAgICBpZiAoICFlcSh4 LCBzcmMpICkgcmV0dXJuIF9fTElORV9fOwogIyBlbmRpZgorCisjIGlmZGVmIHRvX3VpbnQKKyAg ICB0b3VjaChzcmMpOworICAgIHggPSB0b191aW50KHNyYyk7CisgICAgdG91Y2goc3JjKTsKKyAg ICBpZiAoICFlcSh4LCBzcmMpICkgcmV0dXJuIF9fTElORV9fOworIyBlbmRpZgorCisjIGlmZGVm IHRvX3V3aW50CisgICAgdG91Y2goc3JjKTsKKyAgICB4ID0gdG9fdXdpbnQoc3JjKTsKKyAgICB0 b3VjaChzcmMpOworICAgIGlmICggIWVxKHgsIHNyYykgKSByZXR1cm4gX19MSU5FX187CisjIGVu ZGlmCiAKICMgaWZkZWYgc3FydAogICAgIHggPSBzcmMgKiBzcmM7Ci0tLSBhL3hlbi9hcmNoL3g4 Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0 ZS94ODZfZW11bGF0ZS5jCkBAIC0zMjMsOCArMzIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0 d29ieXRlX3RhYmxlIHsKICAgICBbMHg3MSAuLi4gMHg3M10gPSB7IERzdEltcGxpY2l0fFNyY0lt bUJ5dGV8TW9kUk0sIHNpbWRfbm9uZSwgZDhzX3ZsIH0sCiAgICAgWzB4NzQgLi4uIDB4NzZdID0g eyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfcGFja2VkX2ludCwgZDhzX3ZsIH0sCiAg ICAgWzB4NzddID0geyBEc3RJbXBsaWNpdHxTcmNOb25lIH0sCi0gICAgWzB4NzhdID0geyBJbXBs aWNpdE9wc3xNb2RSTSB9LAotICAgIFsweDc5XSA9IHsgRHN0UmVnfFNyY01lbXxNb2RSTSwgc2lt ZF9wYWNrZWRfaW50IH0sCisgICAgWzB4NzggLi4uIDB4NzldID0geyBEc3RJbXBsaWNpdHxTcmNN ZW18TW9kUk18TW92LCBzaW1kX290aGVyLCBkOHNfdmwgfSwKICAgICBbMHg3YV0gPSB7IERzdElt cGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfcGFja2VkX2ZwLCBkOHNfdmwgfSwKICAgICBb MHg3Yl0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfb3RoZXIsIGQ4c19k cTY0IH0sCiAgICAgWzB4N2MgLi4uIDB4N2RdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0s IHNpbWRfb3RoZXIgfSwKQEAgLTI1MjMsNiArMjUyMiw4IEBAIHg4Nl9kZWNvZGVfdHdvYnl0ZSgK ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIDB4Nzg6CisgICAgICAgIHN0YXRlLT5kZXNjID0g SW1wbGljaXRPcHM7CisgICAgICAgIHN0YXRlLT5zaW1kX3NpemUgPSBzaW1kX25vbmU7CiAgICAg ICAgIHN3aXRjaCAoIHZleC5wZnggKQogICAgICAgICB7CiAgICAgICAgIGNhc2UgdmV4XzY2OiAv KiBleHRycSAkaW1tOCwgJGltbTgsIHhtbSAqLwpAQCAtMjUzNSw3ICsyNTM2LDcgQEAgeDg2X2Rl Y29kZV90d29ieXRlKAogICAgIGNhc2UgMHgxMCAuLi4gMHgxODoKICAgICBjYXNlIDB4MjggLi4u IDB4MmY6CiAgICAgY2FzZSAweDUwIC4uLiAweDc3OgotICAgIGNhc2UgMHg3OSAuLi4gMHg3ZDoK KyAgICBjYXNlIDB4N2EgLi4uIDB4N2Q6CiAgICAgY2FzZSAweDdmOgogICAgIGNhc2UgMHhjMiAu Li4gMHhjMzoKICAgICBjYXNlIDB4YzUgLi4uIDB4YzY6CkBAIC0yNTU3LDYgKzI1NTgsMTIgQEAg eDg2X2RlY29kZV90d29ieXRlKAogICAgICAgICBvcF9ieXRlcyA9IG1vZGVfNjRiaXQoKSA/IDgg OiA0OwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgMHg3OToKKyAgICAgICAgc3RhdGUtPmRl c2MgPSBEc3RSZWcgfCBTcmNNZW07CisgICAgICAgIHN0YXRlLT5zaW1kX3NpemUgPSBzaW1kX3Bh Y2tlZF9pbnQ7CisgICAgICAgIGN0eHQtPm9wY29kZSB8PSBNQVNLX0lOU1IodmV4LnBmeCwgWDg2 RU1VTF9PUENfUEZYX01BU0spOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgMHg3ZToKICAg ICAgICAgY3R4dC0+b3Bjb2RlIHw9IE1BU0tfSU5TUih2ZXgucGZ4LCBYODZFTVVMX09QQ19QRlhf TUFTSyk7CiAgICAgICAgIGlmICggdmV4LnBmeCA9PSB2ZXhfZjMgKSAvKiBtb3ZxIHhtbS9tNjQs eG1tICovCkBAIC0zMDc0LDYgKzMwODEsMTggQEAgeDg2X2RlY29kZSgKICAgICAgICAgICAgICAg ICBtb2RybV9tb2QgPSAzOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAgICBj YXNlIDB4Nzg6CisgICAgICAgICAgICBjYXNlIDB4Nzk6CisgICAgICAgICAgICAgICAgaWYgKCAh ZXZleC5wZnggKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAv KiB2Y3Z0eyx0fXBzMnVxcSBuZWVkIHNwZWNpYWwgY2FzaW5nICovCisgICAgICAgICAgICAgICAg aWYgKCBldmV4LnBmeCA9PSB2ZXhfNjYgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgaWYgKCAhZXZleC53ICYmICFldmV4LmJycyApCisgICAgICAgICAgICAgICAgICAg ICAgICAtLWRpc3A4c2NhbGU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiB2Y3Z0eyx0fXN7cyxkfTJ1c2kgbmVlZCBzcGVj aWFsIGNhc2luZzogZmFsbCB0aHJvdWdoICovCiAgICAgICAgICAgICBjYXNlIDB4MmM6IC8qIHZj dnR0c3tzLGR9MnNpIG5lZWQgc3BlY2lhbCBjYXNpbmcgKi8KICAgICAgICAgICAgIGNhc2UgMHgy ZDogLyogdmN2dHN7cyxkfTJzaSBuZWVkIHNwZWNpYWwgY2FzaW5nICovCiAgICAgICAgICAgICAg ICAgaWYgKCBldmV4X2VuY29kZWQoKSApCkBAIC02MzI5LDYgKzYzNDgsOCBAQCB4ODZfZW11bGF0 ZSgKIAogICAgIENBU0VfU0lNRF9TQ0FMQVJfRlAoX0VWRVgsIDB4MGYsIDB4MmMpOiAvKiB2Y3Z0 dHN7cyxkfTJzaSB4bW0vbWVtLHJlZyAqLwogICAgIENBU0VfU0lNRF9TQ0FMQVJfRlAoX0VWRVgs IDB4MGYsIDB4MmQpOiAvKiB2Y3Z0c3tzLGR9MnNpIHhtbS9tZW0scmVnICovCisgICAgQ0FTRV9T SU1EX1NDQUxBUl9GUChfRVZFWCwgMHgwZiwgMHg3OCk6IC8qIHZjdnR0c3tzLGR9MnVzaSB4bW0v bWVtLHJlZyAqLworICAgIENBU0VfU0lNRF9TQ0FMQVJfRlAoX0VWRVgsIDB4MGYsIDB4NzkpOiAv KiB2Y3Z0c3tzLGR9MnVzaSB4bW0vbWVtLHJlZyAqLwogICAgICAgICBnZW5lcmF0ZV9leGNlcHRp b25faWYoKGV2ZXgucmVnICE9IDB4ZiB8fCAhZXZleC5SWCB8fCBldmV4Lm9wbXNrIHx8CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVhLnR5cGUgIT0gT1BfUkVHICYmIGV2ZXguYnJz KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENfVUQpOwpAQCAtNjY5MCw3ICs2 NzExLDExIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBpZiAoIGV2ZXgudyApCiAgICAgICAgICAg ICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJkcSk7CiAgICAgICAgIGVsc2UKKyAgICAg ICAgeworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWCgweDBmLCAweDc4KTogICAgLyogdmN2dHRw e3MsZH0ydWRxIFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVgoMHgwZiwgMHg3OSk6ICAgIC8qIHZjdnRwe3MsZH0ydWRxIFt4eXpdbW0vbWVtLFt4eXpd bW17a30gKi8KICAgICAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmYpOwor ICAgICAgICB9CiAgICAgICAgIGlmICggZWEudHlwZSAhPSBPUF9SRUcgfHwgIWV2ZXguYnJzICkK ICAgICAgICAgICAgIGF2eDUxMl92bGVuX2NoZWNrKGZhbHNlKTsKICAgICAgICAgZCB8PSBUd29P cDsKQEAgLTczNzMsNiArNzM5OCwxMCBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgIGhvc3Rf YW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmYpOwogICAgICAgICBlbHNlIGlmICggZXZleC53ICkK ICAgICAgICAgeworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweDc4KTogICAv KiB2Y3Z0dHBzMnVxcSB7eCx5fW1tL21lbSxbeHl6XW1te2t9ICovCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZjdnR0cGQydXFxIFt4eXpdbW0vbWVtLFt4 eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHg3OSk6ICAg LyogdmN2dHBzMnVxcSB7eCx5fW1tL21lbSxbeHl6XW1te2t9ICovCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZjdnRwZDJ1cXEgW3h5el1tbS9tZW0sW3h5 el1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweDdhKTogICAv KiB2Y3Z0dHBzMnFxIHt4LHl9bW0vbWVtLFt4eXpdbW17a30gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdmN2dHRwZDJxcSBbeHl6XW1tL21lbSxbeHl6 XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4N2IpOiAgIC8q IHZjdnRwczJxcSB7eCx5fW1tL21lbSxbeHl6XW1te2t9ICovCgoKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs