From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18586 invoked by alias); 12 Jul 2014 09:07:19 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 18511 invoked by uid 89); 12 Jul 2014 09:07:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-lb0-f182.google.com Received: from mail-lb0-f182.google.com (HELO mail-lb0-f182.google.com) (209.85.217.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sat, 12 Jul 2014 09:07:12 +0000 Received: by mail-lb0-f182.google.com with SMTP id c11so1536698lbj.41 for ; Sat, 12 Jul 2014 02:07:08 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.112.163.65 with SMTP id yg1mr3493658lbb.44.1405156027842; Sat, 12 Jul 2014 02:07:07 -0700 (PDT) Received: by 10.152.104.140 with HTTP; Sat, 12 Jul 2014 02:07:07 -0700 (PDT) Date: Sat, 12 Jul 2014 09:07:00 -0000 Message-ID: Subject: [PATCH, i386]: Optimize ix86_atomic_assign_expand_fenv a bit From: Uros Bizjak To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary=089e0115fdc4e5ee0d04fdfb6136 X-SW-Source: 2014-07/txt/msg00871.txt.bz2 --089e0115fdc4e5ee0d04fdfb6136 Content-Type: text/plain; charset=UTF-8 Content-length: 884 Hello! Attached patch optimizes ix86_atomic_assign_expand_fenv by using register form of "fnstsw %ax" instead of "fnstsw ". This way a memory RW cycle is removed for a temporary. 2014-07-12 Uros Bizjak * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID. Remove VOID_FTYPE_PUSHORT. * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>: Change code to USHORT_FTYPE_VOID. (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID. (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling. (ix86_atomic_assign_expand_fenv): Update for __builtin_ia32_fnstsw changes. * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2. (fnstsw): Change operand 0 to nonimmediate operand. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32} and committed to mainline SVN. Uros. --089e0115fdc4e5ee0d04fdfb6136 Content-Type: text/plain; charset=US-ASCII; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hxipm5qm0 Content-length: 10350 SW5kZXg6IGNvbmZpZy9hbHBoYS9hbHBoYS5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGNvbmZpZy9hbHBoYS9hbHBoYS5jCShyZXZpc2lvbiAyMTI0 NzcpCisrKyBjb25maWcvYWxwaGEvYWxwaGEuYwkod29ya2luZyBjb3B5KQpA QCAtOTg4OCw2ICs5ODg4LDcyIEBAIGFscGhhX2Nhbm9uaWNhbGl6ZV9jb21w YXJpc29uIChpbnQgKmNvZGUsIHJ0eCAqb3AwCiAgICAgICAqb3AxID0gR0VO X0lOVCAoMjU1KTsKICAgICB9CiB9CisKKy8qIEltcGxlbWVudCBUQVJHRVRf QVRPTUlDX0FTU0lHTl9FWFBBTkRfRkVOVi4gICovCisKK3N0YXRpYyB2b2lk CithbHBoYV9hdG9taWNfYXNzaWduX2V4cGFuZF9mZW52ICh0cmVlICpob2xk LCB0cmVlICpjbGVhciwgdHJlZSAqdXBkYXRlKQoreworICBjb25zdCB1bnNp Z25lZCBIT1NUX1dJREVfSU5UIFNXQ1JfU1RBVFVTX01BU0sgPSAoMHgzZlVM IDw8IDE3KTsKKworICB0cmVlIGZlbnZfdmFyLCBnZXRfZnBzY3IsIHNldF9m cHNjciwgbWFzaywgbGRfZmVudiwgbWFza2VkX2ZlbnY7CisgIHRyZWUgbmV3 X2ZlbnZfdmFyLCByZWxvYWRfZmVudiwgcmVzdG9yZV9mbmVudjsKKyAgdHJl ZSB1cGRhdGVfY2FsbCwgYXRvbWljX2ZlcmFpc2VleGNlcHQsIGhvbGRfZm5j bGV4OworCisgIC8qIEFzc3VtZSBPU0YvMSBjb21wYXRpYmxlIGludGVyZmFj ZXMuICAqLworICBpZiAoIVRBUkdFVF9BQklfT1NGKQorICAgIHJldHVybjsK KworICAvKiBHZW5lcmF0ZSB0aGUgZXF1aXZhbGVudCBvZiA6CisgICAgICAg dW5zaWduZWQgbG9uZyBmZW52X3ZhcjsKKyAgICAgICBmZW52X3ZhciA9IF9f aWVlZV9nZXRfZnBfY29udHJvbCAoKTsKKworICAgICAgIHVuc2lnbmVkIGxv bmcgbWFza2VkX2ZlbnY7CisgICAgICAgbWFza2VkX2ZlbnYgPSBmZW52X3Zh ciAmIG1hc2s7CisKKyAgICAgICBfX2llZWVfc2V0X2ZwX2NvbnRyb2wgKG1h c2tlZF9mZW52KTsgICovCisKKyAgZmVudl92YXIgPSBjcmVhdGVfdG1wX3Zh ciAobG9uZ191bnNpZ25lZF90eXBlX25vZGUsIE5VTEwpOworICBnZXRfZnBz Y3IKKyAgICA9IGJ1aWxkX2ZuX2RlY2wgKCJfX2llZWVfZ2V0X2ZwX2NvbnRy b2wiLAorCQkgICAgIGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAobG9uZ191 bnNpZ25lZF90eXBlX25vZGUsIE5VTEwpKTsKKyAgc2V0X2Zwc2NyCisgICAg PSBidWlsZF9mbl9kZWNsICgiX19pZWVlX3NldF9mcF9jb250cm9sIiwKKwkJ ICAgICBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKHZvaWRfdHlwZV9ub2Rl LCBOVUxMKSk7CisgIG1hc2sgPSBidWlsZF9pbnRfY3N0IChsb25nX3Vuc2ln bmVkX3R5cGVfbm9kZSwgflNXQ1JfU1RBVFVTX01BU0spOworICBsZF9mZW52 ID0gYnVpbGQyIChNT0RJRllfRVhQUiwgbG9uZ191bnNpZ25lZF90eXBlX25v ZGUsCisJCSAgICBmZW52X3ZhciwgYnVpbGRfY2FsbF9leHByIChnZXRfZnBz Y3IsIDApKTsKKyAgbWFza2VkX2ZlbnYgPSBidWlsZDIgKEJJVF9BTkRfRVhQ UiwgbG9uZ191bnNpZ25lZF90eXBlX25vZGUsIGZlbnZfdmFyLCBtYXNrKTsK KyAgaG9sZF9mbmNsZXggPSBidWlsZF9jYWxsX2V4cHIgKHNldF9mcHNjciwg MSwgbWFza2VkX2ZlbnYpOworICAqaG9sZCA9IGJ1aWxkMiAoQ09NUE9VTkRf RVhQUiwgdm9pZF90eXBlX25vZGUsCisJCSAgYnVpbGQyIChDT01QT1VORF9F WFBSLCB2b2lkX3R5cGVfbm9kZSwgbWFza2VkX2ZlbnYsIGxkX2ZlbnYpLAor CQkgIGhvbGRfZm5jbGV4KTsKKworICAvKiBTdG9yZSB0aGUgdmFsdWUgb2Yg bWFza2VkX2ZlbnYgdG8gY2xlYXIgdGhlIGV4Y2VwdGlvbnM6CisgICAgIF9f aWVlZV9zZXRfZnBfY29udHJvbCAobWFza2VkX2ZlbnYpOyAgKi8KKworICAq Y2xlYXIgPSBidWlsZF9jYWxsX2V4cHIgKHNldF9mcHNjciwgMSwgbWFza2Vk X2ZlbnYpOworCisgIC8qIEdlbmVyYXRlIHRoZSBlcXVpdmFsZW50IG9mIDoK KyAgICAgICB1bnNpZ25lZCBsb25nIG5ld19mZW52X3ZhcjsKKyAgICAgICBu ZXdfZmVudl92YXIgPSBfX2llZWVfZ2V0X2ZwX2NvbnRyb2wgKCk7CisKKyAg ICAgICBfX2llZWVfc2V0X2ZwX2NvbnRyb2wgKGZlbnZfdmFyKTsKKworICAg ICAgIF9fYXRvbWljX2ZlcmFpc2VleGNlcHQgKG5ld19mZW52X3Zhcik7ICAq LworCisgIG5ld19mZW52X3ZhciA9IGNyZWF0ZV90bXBfdmFyIChsb25nX3Vu c2lnbmVkX3R5cGVfbm9kZSwgTlVMTCk7CisgIHJlbG9hZF9mZW52ID0gYnVp bGQyIChNT0RJRllfRVhQUiwgbG9uZ191bnNpZ25lZF90eXBlX25vZGUsIG5l d19mZW52X3ZhciwKKwkJCWJ1aWxkX2NhbGxfZXhwciAoZ2V0X2Zwc2NyLCAw KSk7CisgIHJlc3RvcmVfZm5lbnYgPSBidWlsZF9jYWxsX2V4cHIgKHNldF9m cHNjciwgMSwgZmVudl92YXIpOworICBhdG9taWNfZmVyYWlzZWV4Y2VwdCA9 IGJ1aWx0aW5fZGVjbF9pbXBsaWNpdCAoQlVJTFRfSU5fQVRPTUlDX0ZFUkFJ U0VFWENFUFQpOworICB1cGRhdGVfY2FsbAorICAgID0gYnVpbGRfY2FsbF9l eHByIChhdG9taWNfZmVyYWlzZWV4Y2VwdCwgMSwKKwkJICAgICAgIGZvbGRf Y29udmVydCAoaW50ZWdlcl90eXBlX25vZGUsIG5ld19mZW52X3ZhcikpOwor ICAqdXBkYXRlID0gYnVpbGQyIChDT01QT1VORF9FWFBSLCB2b2lkX3R5cGVf bm9kZSwKKwkJICAgIGJ1aWxkMiAoQ09NUE9VTkRfRVhQUiwgdm9pZF90eXBl X25vZGUsCisJCQkgICAgcmVsb2FkX2ZlbnYsIHJlc3RvcmVfZm5lbnYpLCB1 cGRhdGVfY2FsbCk7Cit9CiAMCiAvKiBJbml0aWFsaXplIHRoZSBHQ0MgdGFy Z2V0IHN0cnVjdHVyZS4gICovCiAjaWYgVEFSR0VUX0FCSV9PUEVOX1ZNUwpA QCAtMTAwNjAsNiArMTAxMjYsOSBAQCBhbHBoYV9jYW5vbmljYWxpemVfY29t cGFyaXNvbiAoaW50ICpjb2RlLCBydHggKm9wMAogI3VuZGVmIFRBUkdFVF9D QU5PTklDQUxJWkVfQ09NUEFSSVNPTgogI2RlZmluZSBUQVJHRVRfQ0FOT05J Q0FMSVpFX0NPTVBBUklTT04gYWxwaGFfY2Fub25pY2FsaXplX2NvbXBhcmlz b24KIAorI3VuZGVmIFRBUkdFVF9BVE9NSUNfQVNTSUdOX0VYUEFORF9GRU5W CisjZGVmaW5lIFRBUkdFVF9BVE9NSUNfQVNTSUdOX0VYUEFORF9GRU5WIGFs cGhhX2F0b21pY19hc3NpZ25fZXhwYW5kX2ZlbnYKKwogc3RydWN0IGdjY190 YXJnZXQgdGFyZ2V0bSA9IFRBUkdFVF9JTklUSUFMSVpFUjsKIAogDApJbmRl eDogY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLXR5cGVzLmRlZgo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBjb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW4t dHlwZXMuZGVmCShyZXZpc2lvbiAyMTI0NzcpCisrKyBjb25maWcvaTM4Ni9p Mzg2LWJ1aWx0aW4tdHlwZXMuZGVmCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIs NiArMTYyLDcgQEAgREVGX1BPSU5URVJfVFlQRSAoUENWMTZTSSwgVjE2U0ks IENPTlNUKQogREVGX0ZVTkNUSU9OX1RZUEUgKEZMT0FUMTI4KQogREVGX0ZV TkNUSU9OX1RZUEUgKFVJTlQ2NCkKIERFRl9GVU5DVElPTl9UWVBFIChVTlNJ R05FRCkKK0RFRl9GVU5DVElPTl9UWVBFIChVU0hPUlQpCiBERUZfRlVOQ1RJ T05fVFlQRSAoSU5UKQogREVGX0ZVTkNUSU9OX1RZUEUgKFZPSUQpCiBERUZf RlVOQ1RJT05fVFlQRSAoUFZPSUQpCkBAIC0yNTYsNyArMjU3LDYgQEAgREVG X0ZVTkNUSU9OX1RZUEUgKFZPSUQsIFBDVk9JRCkKIERFRl9GVU5DVElPTl9U WVBFIChWT0lELCBQVk9JRCkKIERFRl9GVU5DVElPTl9UWVBFIChWT0lELCBV SU5UNjQpCiBERUZfRlVOQ1RJT05fVFlQRSAoVk9JRCwgVU5TSUdORUQpCi1E RUZfRlVOQ1RJT05fVFlQRSAoVk9JRCwgUFVTSE9SVCkKIERFRl9GVU5DVElP Tl9UWVBFIChJTlQsIFBVU0hPUlQpCiBERUZfRlVOQ1RJT05fVFlQRSAoSU5U LCBQVU5TSUdORUQpCiBERUZfRlVOQ1RJT05fVFlQRSAoSU5ULCBQVUxPTkdM T05HKQpJbmRleDogY29uZmlnL2kzODYvaTM4Ni5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGNvbmZpZy9pMzg2L2kzODYuYwkocmV2aXNpb24gMjEy NDc3KQorKysgY29uZmlnL2kzODYvaTM4Ni5jCSh3b3JraW5nIGNvcHkpCkBA IC0yODk5NCw3ICsyODk5NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVp bHRpbl9kZXNjcmlwdGlvbiBiZGVzY19zcGVjCiAgIC8qIDgwMzg3IChmb3Ig dXNlIGludGVybmFsbHkgZm9yIGF0b21pYyBjb21wb3VuZCBhc3NpZ25tZW50 KS4gICovCiAgIHsgMCwgQ09ERV9GT1JfZm5zdGVudiwgIl9fYnVpbHRpbl9p YTMyX2Zuc3RlbnYiLCBJWDg2X0JVSUxUSU5fRk5TVEVOViwgVU5LTk9XTiwg KGludCkgVk9JRF9GVFlQRV9QVk9JRCB9LAogICB7IDAsIENPREVfRk9SX2Zs ZGVudiwgIl9fYnVpbHRpbl9pYTMyX2ZsZGVudiIsIElYODZfQlVJTFRJTl9G TERFTlYsIFVOS05PV04sIChpbnQpIFZPSURfRlRZUEVfUENWT0lEIH0sCi0g IHsgMCwgQ09ERV9GT1JfZm5zdHN3LCAiX19idWlsdGluX2lhMzJfZm5zdHN3 IiwgSVg4Nl9CVUlMVElOX0ZOU1RTVywgVU5LTk9XTiwgKGludCkgVk9JRF9G VFlQRV9QVVNIT1JUIH0sCisgIHsgMCwgQ09ERV9GT1JfZm5zdHN3LCAiX19i dWlsdGluX2lhMzJfZm5zdHN3IiwgSVg4Nl9CVUlMVElOX0ZOU1RTVywgVU5L Tk9XTiwgKGludCkgVVNIT1JUX0ZUWVBFX1ZPSUQgfSwKICAgeyAwLCBDT0RF X0ZPUl9mbmNsZXgsICJfX2J1aWx0aW5faWEzMl9mbmNsZXgiLCBJWDg2X0JV SUxUSU5fRk5DTEVYLCBVTktOT1dOLCAoaW50KSBWT0lEX0ZUWVBFX1ZPSUQg fSwKIAogICAvKiBNTVggKi8KQEAgLTM0NTk4LDYgKzM0NTk4LDcgQEAgaXg4 Nl9leHBhbmRfc3BlY2lhbF9hcmdzX2J1aWx0aW4gKGNvbnN0IHN0cnVjdCBi dWkKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBJTlRfRlRZUEVfVk9JRDoK KyAgICBjYXNlIFVTSE9SVF9GVFlQRV9WT0lEOgogICAgIGNhc2UgVUlOVDY0 X0ZUWVBFX1ZPSUQ6CiAgICAgY2FzZSBVTlNJR05FRF9GVFlQRV9WT0lEOgog ICAgICAgbmFyZ3MgPSAwOwpAQCAtMzUyODMsNyArMzUyODQsNiBAQCBpeDg2 X2V4cGFuZF9idWlsdGluICh0cmVlIGV4cCwgcnR4IHRhcmdldCwgcnR4IHN1 YgogICAgIGNhc2UgSVg4Nl9CVUlMVElOX0ZYUlNUT1I2NDoKICAgICBjYXNl IElYODZfQlVJTFRJTl9GTlNURU5WOgogICAgIGNhc2UgSVg4Nl9CVUlMVElO X0ZMREVOVjoKLSAgICBjYXNlIElYODZfQlVJTFRJTl9GTlNUU1c6CiAgICAg ICBtb2RlMCA9IEJMS21vZGU7CiAgICAgICBzd2l0Y2ggKGZjb2RlKQogCXsK QEAgLTM1MzA1LDEwICszNTMwNSw2IEBAIGl4ODZfZXhwYW5kX2J1aWx0aW4g KHRyZWUgZXhwLCBydHggdGFyZ2V0LCBydHggc3ViCiAJY2FzZSBJWDg2X0JV SUxUSU5fRkxERU5WOgogCSAgaWNvZGUgPSBDT0RFX0ZPUl9mbGRlbnY7CiAJ ICBicmVhazsKLQljYXNlIElYODZfQlVJTFRJTl9GTlNUU1c6Ci0JICBpY29k ZSA9IENPREVfRk9SX2Zuc3RzdzsKLQkgIG1vZGUwID0gSEltb2RlOwotCSAg YnJlYWs7CiAJZGVmYXVsdDoKIAkgIGdjY191bnJlYWNoYWJsZSAoKTsKIAl9 CkBAIC00Njg5NCwxNSArNDY4OTAsMTQgQEAgaXg4Nl9hdG9taWNfYXNzaWdu X2V4cGFuZF9mZW52ICh0cmVlICpob2xkLCB0cmVlICoKIAkJICAgICAgaG9s ZF9mbmNsZXgpOwogICAgICAgKmNsZWFyID0gYnVpbGRfY2FsbF9leHByIChm bmNsZXgsIDApOwogICAgICAgdHJlZSBzd192YXIgPSBjcmVhdGVfdG1wX3Zh ciAoc2hvcnRfdW5zaWduZWRfdHlwZV9ub2RlLCBOVUxMKTsKLSAgICAgIG1h cmtfYWRkcmVzc2FibGUgKHN3X3Zhcik7Ci0gICAgICB0cmVlIHN1X3B0ciA9 IGJ1aWxkX3BvaW50ZXJfdHlwZSAoc2hvcnRfdW5zaWduZWRfdHlwZV9ub2Rl KTsKLSAgICAgIHRyZWUgc3dfYWRkciA9IGJ1aWxkMSAoQUREUl9FWFBSLCBz dV9wdHIsIHN3X3Zhcik7Ci0gICAgICB0cmVlIGZuc3Rzd19jYWxsID0gYnVp bGRfY2FsbF9leHByIChmbnN0c3csIDEsIHN3X2FkZHIpOworICAgICAgdHJl ZSBmbnN0c3dfY2FsbCA9IGJ1aWxkX2NhbGxfZXhwciAoZm5zdHN3LCAwKTsK KyAgICAgIHRyZWUgc3dfbW9kID0gYnVpbGQyIChNT0RJRllfRVhQUiwgc2hv cnRfdW5zaWduZWRfdHlwZV9ub2RlLAorCQkJICAgIHN3X3ZhciwgZm5zdHN3 X2NhbGwpOwogICAgICAgdHJlZSBleGNlcHRpb25zX3g4NyA9IGZvbGRfY29u dmVydCAoaW50ZWdlcl90eXBlX25vZGUsIHN3X3Zhcik7CiAgICAgICB0cmVl IHVwZGF0ZV9tb2QgPSBidWlsZDIgKE1PRElGWV9FWFBSLCBpbnRlZ2VyX3R5 cGVfbm9kZSwKIAkJCQlleGNlcHRpb25zX3ZhciwgZXhjZXB0aW9uc194ODcp OwogICAgICAgKnVwZGF0ZSA9IGJ1aWxkMiAoQ09NUE9VTkRfRVhQUiwgaW50 ZWdlcl90eXBlX25vZGUsCi0JCQlmbnN0c3dfY2FsbCwgdXBkYXRlX21vZCk7 CisJCQlzd19tb2QsIHVwZGF0ZV9tb2QpOwogICAgICAgdHJlZSB1cGRhdGVf ZmxkZW52ID0gYnVpbGRfY2FsbF9leHByIChmbGRlbnYsIDEsIGZlbnZfYWRk cik7CiAgICAgICAqdXBkYXRlID0gYnVpbGQyIChDT01QT1VORF9FWFBSLCB2 b2lkX3R5cGVfbm9kZSwgKnVwZGF0ZSwgdXBkYXRlX2ZsZGVudik7CiAgICAg fQpJbmRleDogY29uZmlnL2kzODYvaTM4Ni5tZAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBjb25maWcvaTM4Ni9pMzg2Lm1kCShyZXZpc2lvbiAyMTI0 NzcpCisrKyBjb25maWcvaTM4Ni9pMzg2Lm1kCSh3b3JraW5nIGNvcHkpCkBA IC0xNTMyLDggKzE1MzIsNyBAQAogCSh1bnNwZWM6SEkgWyhyZWc6Q0NGUCBG UFNSX1JFRyldIFVOU1BFQ19GTlNUU1cpKV0KICAgIlRBUkdFVF84MDM4NyIK ICAgImZuc3Rzd1x0JTAiCi0gIFsoc2V0IChhdHRyICJsZW5ndGgiKQotCShz eW1ib2xfcmVmICJpeDg2X2F0dHJfbGVuZ3RoX2FkZHJlc3NfZGVmYXVsdCAo aW5zbikgKyAyIikpCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQogICAg KHNldF9hdHRyICJtb2RlIiAiU0kiKQogICAgKHNldF9hdHRyICJ1bml0IiAi aTM4NyIpXSkKIApAQCAtMTgxMTQsMTIgKzE4MTEzLDEyIEBACiAgICAgICAg IChzeW1ib2xfcmVmICJpeDg2X2F0dHJfbGVuZ3RoX2FkZHJlc3NfZGVmYXVs dCAoaW5zbikgKyAyIikpXSkKIAogKGRlZmluZV9pbnNuICJmbnN0c3ciCi0g IFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgIm1lbW9yeV9vcGVyYW5kIiAi PW0iKQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJub25pbW1lZGlh dGVfb3BlcmFuZCIgIj1hLG0iKQogCSh1bnNwZWNfdm9sYXRpbGU6SEkgWyhj b25zdF9pbnQgMCldIFVOU1BFQ1ZfRk5TVFNXKSldCiAgICJUQVJHRVRfODAz ODciCiAgICJmbnN0c3dcdCUwIgotICBbKHNldF9hdHRyICJ0eXBlIiAib3Ro ZXIiKQotICAgKHNldF9hdHRyICJtZW1vcnkiICJzdG9yZSIpCisgIFsoc2V0 X2F0dHIgInR5cGUiICJvdGhlcixvdGhlciIpCisgICAoc2V0X2F0dHIgIm1l bW9yeSIgIm5vbmUsc3RvcmUiKQogICAgKHNldCAoYXR0ciAibGVuZ3RoIikK ICAgICAgICAgKHN5bWJvbF9yZWYgIml4ODZfYXR0cl9sZW5ndGhfYWRkcmVz c19kZWZhdWx0IChpbnNuKSArIDIiKSldKQogCg== --089e0115fdc4e5ee0d04fdfb6136--