From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v5 36/47] x86emul: support AVX512F legacy-equivalent packed int/FP conversion insns Date: Mon, 19 Nov 2018 03:34:55 -0700 Message-ID: <5BF291CF02000078001FD57E@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BF289D802000078001FD3DF@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gOgtS-0003H6-3c for xen-devel@lists.xenproject.org; Mon, 19 Nov 2018 10:35:02 +0000 In-Reply-To: <5BF289D802000078001FD3DF@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 Li4uIGluY2x1ZGluZyB0aGUgdHdvIEFWWDUxMkRRIGZvcm1zIHdoaWNoIHNoYXJlZCBlbmNvZGlu Z3MsIGp1c3Qgd2l0aApFVkVYLlcgc2V0IHRoZXJlLgoKVkNWVERRMlBELCBzaGFyaW5nIGl0cyBt YWluIG9wY29kZSB3aXRoIG90aGVycywgbmVlZHMgYSAibWFudWFsIgpvdmVycmlkZSBvZiBkaXNw OHNjYWxlLgoKVGhlIHNpbWRfc2l6ZSBjaGFuZ2VzIGZvciB0aGUgdHdvYnl0ZV90YWJsZVtdIGVu dHJpZXMgYXJlIGJlbmlnbiB0bwpwcmUtZXhpc3RpbmcgY29kZSwgYnV0IGFsbG93IGRlY29kZV9k aXNwOHNjYWxlKCkgdG8gd29yayBhcyBpcyBoZXJlLgoKVGhlIGF0IHRoaXMgcG9pbnQgd3Jvbmcg cGxhY2VtZW50IG9mIHRoZSAweGU2IGNhc2UgYmxvY2sgaXMgb25jZSBhZ2FpbgppbiBhbnRpY2lw YXRpb24gb2YgZnVydGhlciBhZGRpdGlvbnMgb2YgY2FzZSBsYWJlbHMuCgpTaWduZWQtb2ZmLWJ5 OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NDogTmV3LgoKLS0tIGEvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZf ZW11bGF0b3IvZXZleC1kaXNwOC5jCkBAIC0xMDksOCArMTA5LDEyIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdGVzdCBhdng1MTJmX2FsbFtdID0KICAgICBJTlNOX0ZQKGNtcCwgICAgICAgICAgICAg MGYsIGMyKSwKICAgICBJTlNOKGNvbWlzZCwgICAgICAgNjYsICAgMGYsIDJmLCAgICBlbCwgICAg ICBxLCBlbCksCiAgICAgSU5TTihjb21pc3MsICAgICAgICAgLCAgIDBmLCAyZiwgICAgZWwsICAg ICAgZCwgZWwpLAorICAgIElOU04oY3Z0ZHEycGQsICAgICBmMywgICAwZiwgZTYsICAgIHZsXzIs ICAgIGQsIHZsKSwKKyAgICBJTlNOKGN2dGRxMnBzLCAgICAgICAsICAgMGYsIDViLCAgICB2bCwg ICAgICBkLCB2bCksCisgICAgSU5TTihjdnRwZDJkcSwgICAgIGYyLCAgIDBmLCBlNiwgICAgdmws ICAgICAgcSwgdmwpLAogICAgIElOU04oY3Z0cGQycHMsICAgICA2NiwgICAwZiwgNWEsICAgIHZs LCAgICAgIHEsIHZsKSwKICAgICBJTlNOKGN2dHBoMnBzLCAgICAgNjYsIDBmMzgsIDEzLCAgICB2 bF8yLCBkX25iLCB2bCksCisgICAgSU5TTihjdnRwczJkcSwgICAgIDY2LCAgIDBmLCA1YiwgICAg dmwsICAgICAgZCwgdmwpLAogICAgIElOU04oY3Z0cHMycGQsICAgICAgICwgICAwZiwgNWEsICAg IHZsXzIsICAgIGQsIHZsKSwKICAgICBJTlNOKGN2dHBzMnBoLCAgICAgNjYsIDBmM2EsIDFkLCAg ICB2bF8yLCBkX25iLCB2bCksCiAgICAgSU5TTihjdnRzZDJzcywgICAgIGYyLCAgIDBmLCA1YSwg ICAgZWwsICAgICAgcSwgZWwpLApAQCAtMzk5LDYgKzQwMyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgdGVzdCBhdng1MTJkcV9hbGxbXQogICAgIElOU05fUEZQKGFuZCwgICAgICAgICAgICAgIDBm LCA1NCksCiAgICAgSU5TTl9QRlAoYW5kbiwgICAgICAgICAgICAgMGYsIDU1KSwKICAgICBJTlNO KGJyb2FkY2FzdGkzMngyLCA2NiwgMGYzOCwgNTksIGVsXzIsICBkLCB2bCksCisgICAgSU5TTihj dnRxcTJwZCwgICAgICAgZjMsICAgMGYsIGU2LCAgIHZsLCAgcSwgdmwpLAorICAgIElOU04oY3Z0 cXEycHMsICAgICAgICAgLCAgIDBmLCA1YiwgICB2bCwgIHEsIHZsKSwKICAgICBJTlNOX1BGUChv ciwgICAgICAgICAgICAgICAwZiwgNTYpLAogLy8gICAgICAgcG1vdmQybSwgICAgICAgIGYzLCAw ZjM4LCAzOSwgICAgICAgIGQKIC8vICAgICAgIHBtb3ZtMiwgICAgICAgICBmMywgMGYzOCwgMzgs ICAgICAgIGRxCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKKysrIGIvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAtOTIsNiArOTIsMTMgQEAgc3RhdGljIGlu bGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyBkZWZpbmUgdG9faW50KHgpICgodmVj X3QpeyAoaW50KSh4KVswXSB9KQogI2VsaWYgVkVDX1NJWkUgPT0gOCAmJiBGTE9BVF9TSVpFID09 IDQgJiYgZGVmaW5lZChfXzNkTk9XX18pCiAjIGRlZmluZSB0b19pbnQoeCkgX19idWlsdGluX2lh MzJfcGkyZmQoX19idWlsdGluX2lhMzJfcGYyaWQoeCkpCisjZWxpZiBkZWZpbmVkKEZMT0FUX1NJ WkUpICYmIFZFQ19TSVpFID4gRkxPQVRfU0laRSAmJiBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBc CisgICAgICAoVkVDX1NJWkUgPT0gNjQgfHwgZGVmaW5lZChfX0FWWDUxMlZMX18pKQorIyBpZiBG TE9BVF9TSVpFID09IDQKKyMgIGRlZmluZSB0b19pbnQoeCkgQlIoY3Z0ZHEycHMsIF9tYXNrLCBC UihjdnRwczJkcSwgX21hc2ssIHgsICh2c2lfdCl1bmRlZigpLCB+MCksIHVuZGVmKCksIH4wKQor IyBlbGlmIEZMT0FUX1NJWkUgPT0gOAorIyAgZGVmaW5lIHRvX2ludCh4KSBCKGN2dGRxMnBkLCBf bWFzaywgQlIoY3Z0cGQyZHEsIF9tYXNrLCB4LCAodnNpX2hhbGZfdCl7fSwgfjApLCB1bmRlZigp LCB+MCkKKyMgZW5kaWYKICNlbGlmIFZFQ19TSVpFID09IDE2ICYmIGRlZmluZWQoX19TU0UyX18p CiAjIGlmIEZMT0FUX1NJWkUgPT0gNAogIyAgZGVmaW5lIHRvX2ludCh4KSBfX2J1aWx0aW5faWEz Ml9jdnRkcTJwcyhfX2J1aWx0aW5faWEzMl9jdnRwczJkcSh4KSkKQEAgLTExNDIsMTUgKzExNDks MjEgQEAgaW50IHNpbWRfdGVzdCh2b2lkKQogICAgIHRvdWNoKHNyYyk7CiAgICAgaWYgKCAhZXEo eCAqIC1hbHQsIC1zcmMpICkgcmV0dXJuIF9fTElORV9fOwogCi0jIGlmIGRlZmluZWQocmVjaXAp ICYmIGRlZmluZWQodG9faW50KQorIyBpZmRlZiB0b19pbnQKKworICAgIHRvdWNoKHNyYyk7Cisg ICAgeCA9IHRvX2ludChzcmMpOworICAgIHRvdWNoKHNyYyk7CisgICAgaWYgKCAhZXEoeCwgc3Jj KSApIHJldHVybiBfX0xJTkVfXzsKIAorIyAgaWZkZWYgcmVjaXAKICAgICB0b3VjaChzcmMpOwog ICAgIHggPSByZWNpcChzcmMpOwogICAgIHRvdWNoKHNyYyk7CiAgICAgdG91Y2goeCk7CiAgICAg aWYgKCAhZXEodG9faW50KHJlY2lwKHgpKSwgc3JjKSApIHJldHVybiBfX0xJTkVfXzsKIAotIyAg aWZkZWYgcnNxcnQKKyMgICBpZmRlZiByc3FydAogICAgIHggPSBzcmMgKiBzcmM7CiAgICAgdG91 Y2goeCk7CiAgICAgeSA9IHJzcXJ0KHgpOwpAQCAtMTE1OCw2ICsxMTcxLDcgQEAgaW50IHNpbWRf dGVzdCh2b2lkKQogICAgIGlmICggIWVxKHRvX2ludChyZWNpcCh5KSksIHNyYykgKSByZXR1cm4g X19MSU5FX187CiAgICAgdG91Y2goc3JjKTsKICAgICBpZiAoICFlcSh0b19pbnQoeSksIHRvX2lu dChyZWNpcChzcmMpKSkgKSByZXR1cm4gX19MSU5FX187CisjICAgZW5kaWYKICMgIGVuZGlmCiAK ICMgZW5kaWYKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaAorKysgYi90b29s cy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5oCkBAIC0yNDQsNiArMjQ0LDcgQEAgYXNtICggIi5t YWNybyBvdmVycmlkZSBpbnNuICAgIFxuXHQiCiBPVlJfSU5UKGJyb2FkY2FzdCk7CiBPVlJfU0ZQ KGJyb2FkY2FzdCk7CiBPVlJfU0ZQKGNvbWkpOworT1ZSX1ZGUChjdnRkcTIpOwogT1ZSX0ZQKGFk ZCk7CiBPVlJfSU5UKGFkZCk7CiBPVlJfQlcoYWRkcyk7CkBAIC0zMzAsMTMgKzMzMSwxOSBAQCBS RU4ocGFuZG4sICwgZCk7CiBSRU4ocG9yLCAsIGQpOwogUkVOKHB4b3IsICwgZCk7CiAjIGVuZGlm CitPVlIoY3Z0cGQyZHF4KTsKK09WUihjdnRwZDJkcXkpOwogT1ZSKGN2dHBkMnBzeCk7CiBPVlIo Y3Z0cGQycHN5KTsKIE9WUihjdnRwaDJwcyk7CitPVlIoY3Z0cHMyZHEpOwogT1ZSKGN2dHBzMnBk KTsKIE9WUihjdnRwczJwaCk7CiBPVlIoY3Z0c2Qyc3MpOwogT1ZSKGN2dHNzMnNkKTsKK09WUihj dnR0cGQyZHF4KTsKK09WUihjdnR0cGQyZHF5KTsKK09WUihjdnR0cHMyZHEpOwogT1ZSKG1vdmRk dXApOwogT1ZSKG1vdm50ZHEpOwogT1ZSKG1vdm50ZHFhKTsKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmMKQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR3b2J5 dGVfdGFibGUgewogICAgIFsweDU0IC4uLiAweDU3XSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1v ZFJNLCBzaW1kX3BhY2tlZF9mcCwgZDhzX3ZsIH0sCiAgICAgWzB4NTggLi4uIDB4NTldID0geyBE c3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfYW55X2ZwLCBkOHNfdmwgfSwKICAgICBbMHg1 YV0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfYW55X2ZwLCBkOHNfdmwg fSwKLSAgICBbMHg1Yl0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfb3Ro ZXIgfSwKKyAgICBbMHg1Yl0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRf cGFja2VkX2ZwLCBkOHNfdmwgfSwKICAgICBbMHg1YyAuLi4gMHg1Zl0gPSB7IERzdEltcGxpY2l0 fFNyY01lbXxNb2RSTSwgc2ltZF9hbnlfZnAsIGQ4c192bCB9LAogICAgIFsweDYwIC4uLiAweDYy XSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBzaW1kX290aGVyLCBkOHNfdmwgfSwKICAg ICBbMHg2MyAuLi4gMHg2N10gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNr ZWRfaW50LCBkOHNfdmwgfSwKQEAgLTM3NSw3ICszNzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHR3b2J5dGVfdGFibGUgewogICAgIFsweGUwXSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJN LCBzaW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LAogICAgIFsweGUxIC4uLiAweGUyXSA9IHsgRHN0 SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBzaW1kXzEyOCwgNCB9LAogICAgIFsweGUzIC4uLiAweGU1 XSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBzaW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9 LAotICAgIFsweGU2XSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9vdGhl ciB9LAorICAgIFsweGU2XSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9w YWNrZWRfZnAsIGQ4c192bCB9LAogICAgIFsweGU3XSA9IHsgRHN0TWVtfFNyY0ltcGxpY2l0fE1v ZFJNfE1vdiwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwKICAgICBbMHhlOCAuLi4gMHhlZl0g PSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwK ICAgICBbMHhmMF0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfb3RoZXIg fSwKQEAgLTMwNzYsNiArMzA3NiwxMSBAQCB4ODZfZGVjb2RlKAogICAgICAgICAgICAgICAgIGlm ICggZGlzcDhzY2FsZSA9PSAyICYmIGV2ZXgucGZ4ID09IHZleF9mMyApCiAgICAgICAgICAgICAg ICAgICAgIGRpc3A4c2NhbGUgPSAzOwogICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg ICAgICBjYXNlIDB4ZTY6IC8qIHZjdnRkcTJwZCBuZWVkcyBzcGVjaWFsIGNhc2luZyAqLworICAg ICAgICAgICAgICAgIGlmICggZGlzcDhzY2FsZSAmJiBldmV4LnBmeCA9PSB2ZXhfZjMgJiYgIWV2 ZXgudyAmJiAhZXZleC5iciApCisgICAgICAgICAgICAgICAgICAgIC0tZGlzcDhzY2FsZTsKKyAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwog CkBAIC02NTYwLDYgKzY1NjUsMjIgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIG9wX2J5dGVzID0g MTYgPDwgdmV4Lmw7CiAgICAgICAgIGdvdG8gc2ltZF8wZl9jdnQ7CiAKKyAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZiwgMHg1Yik6IC8qIHZjdnRwczJkcSBbeHl6XW1tL21lbSxbeHl6 XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYsIDB4NWIpOiAvKiB2 Y3Z0dHBzMmRxIFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgZ2VuZXJhdGVfZXhj ZXB0aW9uX2lmKGV2ZXgudywgRVhDX1VEKTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisg ICAgY2FzZSBYODZFTVVMX09QQ19FVkVYKDB4MGYsIDB4NWIpOiAgICAvKiB2Y3Z0ZHEycHMgW3h5 el1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogdmN2dHFxMnBzIFt4eXpdbW0vbWVtLHt4LHl9bW17a30gKi8KKyAgICAgICAg aWYgKCBldmV4LncgKQorICAgICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEy ZHEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShh dng1MTJmKTsKKyAgICAgICAgaWYgKCBlYS50eXBlID09IE9QX01FTSB8fCAhZXZleC5iciApCisg ICAgICAgICAgICBhdng1MTJfdmxlbl9jaGVjayhmYWxzZSk7CisgICAgICAgIGQgfD0gVHdvT3A7 CisgICAgICAgIG9wX2J5dGVzID0gMTYgPDwgZXZleC5scjsKKyAgICAgICAgZ290byBzaW1kX3pt bTsKKwogICAgIENBU0VfU0lNRF9QQUNLRURfSU5UKDB4MGYsIDB4NjApOiAgICAvKiBwdW5wY2ts Yncgeyx4fW1tL21lbSx7LHh9bW0gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBm LCAweDYwKTogLyogdnB1bnBja2xidyB7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KICAg ICBDQVNFX1NJTURfUEFDS0VEX0lOVCgweDBmLCAweDYxKTogICAgLyogcHVucGNrbHdkIHsseH1t bS9tZW0seyx4fW1tICovCkBAIC03MjE4LDYgKzcyMzksMjcgQEAgeDg2X2VtdWxhdGUoCiAgICAg ICAgIG9wX2J5dGVzID0gODsKICAgICAgICAgZ290byBzaW1kXzBmX3htbTsKIAorICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGU2KTogICAvKiB2Y3Z0dHBkMmRxIFt4eXpdbW0v bWVtLHt4LHl9bW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjIoMHgwZiwgMHhl Nik6ICAgLyogdmN2dHBkMmRxIFt4eXpdbW0vbWVtLHt4LHl9bW17a30gKi8KKyAgICAgICAgZ2Vu ZXJhdGVfZXhjZXB0aW9uX2lmKCFldmV4LncsIEVYQ19VRCk7CisgICAgICAgIC8qIGZhbGwgdGhy b3VnaCAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmLCAweGU2KTogICAvKiB2 Y3Z0ZHEycGQge3gseX1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiB2Y3Z0cXEycGQgW3h5el1tbS9tZW0sW3h5el1tbXtr fSAqLworICAgICAgICBpZiAoIGV2ZXgucGZ4ICE9IHZleF9mMyApCisgICAgICAgICAgICBob3N0 X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJmKTsKKyAgICAgICAgZWxzZSBpZiAoIGV2ZXgudyAp CisgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJkcSk7CisgICAgICAg IGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4 NTEyZik7CisgICAgICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZWEudHlwZSAhPSBPUF9N RU0gJiYgZXZleC5iciwgRVhDX1VEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIGVhLnR5cGUg PT0gT1BfTUVNIHx8ICFldmV4LmJyICkKKyAgICAgICAgICAgIGF2eDUxMl92bGVuX2NoZWNrKGZh bHNlKTsKKyAgICAgICAgZCB8PSBUd29PcDsKKyAgICAgICAgb3BfYnl0ZXMgPSA4IDw8IChldmV4 LncgKyBldmV4LmxyKTsKKyAgICAgICAgZ290byBzaW1kX3ptbTsKKwogICAgIGNhc2UgWDg2RU1V TF9PUENfRjIoMHgwZiwgMHhmMCk6ICAgICAvKiBsZGRxdSBtMTI4LHhtbSAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfVkVYX0YyKDB4MGYsIDB4ZjApOiAvKiB2bGRkcXUgbWVtLHt4LHl9bW0gKi8K ICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfTUVNLCBFWENfVUQp OwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==