From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9694 invoked by alias); 4 Dec 2012 16:28:26 -0000 Received: (qmail 9654 invoked by uid 22791); 4 Dec 2012 16:28:22 -0000 X-SWARE-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail4-relais-sop.national.inria.fr (HELO mail4-relais-sop.national.inria.fr) (192.134.164.105) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 04 Dec 2012 16:28:05 +0000 Received: from stedding.saclay.inria.fr ([193.55.250.194]) by mail4-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 04 Dec 2012 17:28:03 +0100 Received: from glisse (helo=localhost) by stedding.saclay.inria.fr with local-esmtp (Exim 4.80) (envelope-from ) id 1TfvLn-0005nj-6t; Tue, 04 Dec 2012 17:28:03 +0100 Date: Tue, 04 Dec 2012 16:28:00 -0000 From: Marc Glisse To: Uros Bizjak cc: gcc-patches@gcc.gnu.org, "H.J. Lu" Subject: Re: [i386] scalar ops that preserve the high part of a vector In-Reply-To: Message-ID: References: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-901431822-1354638483=:22183" 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 X-SW-Source: 2012-12/txt/msg00243.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-901431822-1354638483=:22183 Content-Type: TEXT/PLAIN; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8BIT Content-length: 930 On Tue, 4 Dec 2012, Marc Glisse wrote: > Do you agree? Like thisĀ ? (only tested on the new testcases, and then I'd need to ask Eric his opinion) 2012-12-04 Marc Glisse PR target/54855 gcc/ * simplify-rtx.c (simplify_binary_operation_1) : Replace with VEC_MERGE. * config/i386/sse.md (_vm3): Rewrite pattern. * config/i386/i386-builtin-types.def: New function types. * config/i386/i386.c (ix86_expand_args_builtin): Likewise. (bdesc_args) <__builtin_ia32_addss, __builtin_ia32_subss, __builtin_ia32_addsd, __builtin_ia32_subsd>: Change prototype. * config/i386/xmmintrin.h: Adapt to new builtin prototype. * config/i386/emmintrin.h: Likewise. * doc/extend.texi (X86 Built-in Functions): Document changed prototype. testsuite/ * gcc.target/i386/pr54855-1.c: New testcase. * gcc.target/i386/pr54855-2.c: New testcase. -- Marc Glisse --8323329-901431822-1354638483=:22183 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=p36 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=p36 Content-length: 25425 SW5kZXg6IGRvYy9leHRlbmQudGV4aQ0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KLS0tIGRvYy9leHRlbmQudGV4aQkocmV2aXNpb24gMTk0MTUwKQ0KKysr IGRvYy9leHRlbmQudGV4aQkod29ya2luZyBjb3B5KQ0KQEAgLTk4NDMsMjIg Kzk4NDMsMjIgQEAgaW50IF9fYnVpbHRpbl9pYTMyX2NvbWlnZSAodjRzZiwg djRzZikNCiBpbnQgX19idWlsdGluX2lhMzJfdWNvbWllcSAodjRzZiwgdjRz ZikNCiBpbnQgX19idWlsdGluX2lhMzJfdWNvbWluZXEgKHY0c2YsIHY0c2Yp DQogaW50IF9fYnVpbHRpbl9pYTMyX3Vjb21pbHQgKHY0c2YsIHY0c2YpDQog aW50IF9fYnVpbHRpbl9pYTMyX3Vjb21pbGUgKHY0c2YsIHY0c2YpDQogaW50 IF9fYnVpbHRpbl9pYTMyX3Vjb21pZ3QgKHY0c2YsIHY0c2YpDQogaW50IF9f YnVpbHRpbl9pYTMyX3Vjb21pZ2UgKHY0c2YsIHY0c2YpDQogdjRzZiBfX2J1 aWx0aW5faWEzMl9hZGRwcyAodjRzZiwgdjRzZikNCiB2NHNmIF9fYnVpbHRp bl9pYTMyX3N1YnBzICh2NHNmLCB2NHNmKQ0KIHY0c2YgX19idWlsdGluX2lh MzJfbXVscHMgKHY0c2YsIHY0c2YpDQogdjRzZiBfX2J1aWx0aW5faWEzMl9k aXZwcyAodjRzZiwgdjRzZikNCi12NHNmIF9fYnVpbHRpbl9pYTMyX2FkZHNz ICh2NHNmLCB2NHNmKQ0KLXY0c2YgX19idWlsdGluX2lhMzJfc3Vic3MgKHY0 c2YsIHY0c2YpDQordjRzZiBfX2J1aWx0aW5faWEzMl9hZGRzcyAodjRzZiwg ZmxvYXQpDQordjRzZiBfX2J1aWx0aW5faWEzMl9zdWJzcyAodjRzZiwgZmxv YXQpDQogdjRzZiBfX2J1aWx0aW5faWEzMl9tdWxzcyAodjRzZiwgdjRzZikN CiB2NHNmIF9fYnVpbHRpbl9pYTMyX2RpdnNzICh2NHNmLCB2NHNmKQ0KIHY0 c2kgX19idWlsdGluX2lhMzJfY21wZXFwcyAodjRzZiwgdjRzZikNCiB2NHNp IF9fYnVpbHRpbl9pYTMyX2NtcGx0cHMgKHY0c2YsIHY0c2YpDQogdjRzaSBf X2J1aWx0aW5faWEzMl9jbXBsZXBzICh2NHNmLCB2NHNmKQ0KIHY0c2kgX19i dWlsdGluX2lhMzJfY21wZ3RwcyAodjRzZiwgdjRzZikNCiB2NHNpIF9fYnVp bHRpbl9pYTMyX2NtcGdlcHMgKHY0c2YsIHY0c2YpDQogdjRzaSBfX2J1aWx0 aW5faWEzMl9jbXB1bm9yZHBzICh2NHNmLCB2NHNmKQ0KIHY0c2kgX19idWls dGluX2lhMzJfY21wbmVxcHMgKHY0c2YsIHY0c2YpDQogdjRzaSBfX2J1aWx0 aW5faWEzMl9jbXBubHRwcyAodjRzZiwgdjRzZikNCkBAIC05OTY0LDIyICs5 OTY0LDIyIEBAIHYyZGYgX19idWlsdGluX2lhMzJfY21wdW5vcmRzZCAodjJk ZiwgdjINCiB2MmRmIF9fYnVpbHRpbl9pYTMyX2NtcG5lcXNkICh2MmRmLCB2 MmRmKQ0KIHYyZGYgX19idWlsdGluX2lhMzJfY21wbmx0c2QgKHYyZGYsIHYy ZGYpDQogdjJkZiBfX2J1aWx0aW5faWEzMl9jbXBubGVzZCAodjJkZiwgdjJk ZikNCiB2MmRmIF9fYnVpbHRpbl9pYTMyX2NtcG9yZHNkICh2MmRmLCB2MmRm KQ0KIHYyZGkgX19idWlsdGluX2lhMzJfcGFkZHEgKHYyZGksIHYyZGkpDQog djJkaSBfX2J1aWx0aW5faWEzMl9wc3VicSAodjJkaSwgdjJkaSkNCiB2MmRm IF9fYnVpbHRpbl9pYTMyX2FkZHBkICh2MmRmLCB2MmRmKQ0KIHYyZGYgX19i dWlsdGluX2lhMzJfc3VicGQgKHYyZGYsIHYyZGYpDQogdjJkZiBfX2J1aWx0 aW5faWEzMl9tdWxwZCAodjJkZiwgdjJkZikNCiB2MmRmIF9fYnVpbHRpbl9p YTMyX2RpdnBkICh2MmRmLCB2MmRmKQ0KLXYyZGYgX19idWlsdGluX2lhMzJf YWRkc2QgKHYyZGYsIHYyZGYpDQotdjJkZiBfX2J1aWx0aW5faWEzMl9zdWJz ZCAodjJkZiwgdjJkZikNCit2MmRmIF9fYnVpbHRpbl9pYTMyX2FkZHNkICh2 MmRmLCBkb3VibGUpDQordjJkZiBfX2J1aWx0aW5faWEzMl9zdWJzZCAodjJk ZiwgZG91YmxlKQ0KIHYyZGYgX19idWlsdGluX2lhMzJfbXVsc2QgKHYyZGYs IHYyZGYpDQogdjJkZiBfX2J1aWx0aW5faWEzMl9kaXZzZCAodjJkZiwgdjJk ZikNCiB2MmRmIF9fYnVpbHRpbl9pYTMyX21pbnBkICh2MmRmLCB2MmRmKQ0K IHYyZGYgX19idWlsdGluX2lhMzJfbWF4cGQgKHYyZGYsIHYyZGYpDQogdjJk ZiBfX2J1aWx0aW5faWEzMl9taW5zZCAodjJkZiwgdjJkZikNCiB2MmRmIF9f YnVpbHRpbl9pYTMyX21heHNkICh2MmRmLCB2MmRmKQ0KIHYyZGYgX19idWls dGluX2lhMzJfYW5kcGQgKHYyZGYsIHYyZGYpDQogdjJkZiBfX2J1aWx0aW5f aWEzMl9hbmRucGQgKHYyZGYsIHYyZGYpDQogdjJkZiBfX2J1aWx0aW5faWEz Ml9vcnBkICh2MmRmLCB2MmRmKQ0KIHYyZGYgX19idWlsdGluX2lhMzJfeG9y cGQgKHYyZGYsIHYyZGYpDQpJbmRleDogdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9wcjU0ODU1LTIuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t IHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1NDg1NS0yLmMJKHJldmlz aW9uIDApDQorKysgdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjU0ODU1 LTIuYwkocmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsMTggQEANCisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8gLW1zc2Ui IH0gKi8NCisNCit0eXBlZGVmIGZsb2F0IHZlYyBfX2F0dHJpYnV0ZV9fKCh2 ZWN0b3Jfc2l6ZSgxNikpKTsNCisNCit2ZWMgZiAodmVjIHgpDQorew0KKyAg eFswXSArPSAyOw0KKyAgcmV0dXJuIHg7DQorfQ0KKw0KK3ZlYyBnICh2ZWMg eCkNCit7DQorICB4WzBdIC09IDE7DQorICByZXR1cm4geDsNCit9DQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAibW92IiB9IH0g Ki8NCg0KUHJvcGVydHkgY2hhbmdlcyBvbjogdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9wcjU0ODU1LTIuYw0KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K QWRkZWQ6IHN2bjprZXl3b3Jkcw0KICAgKyBBdXRob3IgRGF0ZSBJZCBSZXZp c2lvbiBVUkwNCkFkZGVkOiBzdm46ZW9sLXN0eWxlDQogICArIG5hdGl2ZQ0K DQpJbmRleDogdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjU0ODU1LTEu Yw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHRlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvcHI1NDg1NS0xLmMJKHJldmlzaW9uIDApDQorKysgdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjU0ODU1LTEuYwkocmV2aXNpb24g MCkNCkBAIC0wLDAgKzEsMTggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KKy8qIHsgZGctb3B0aW9ucyAiLU8gLW1zc2UyIiB9ICovDQorDQordHlw ZWRlZiBkb3VibGUgdmVjIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2 KSkpOw0KKw0KK3ZlYyBmICh2ZWMgeCkNCit7DQorICB4WzBdICs9IDI7DQor ICByZXR1cm4geDsNCit9DQorDQordmVjIGcgKHZlYyB4KQ0KK3sNCisgIHhb MF0gLT0gMTsNCisgIHJldHVybiB4Ow0KK30NCisNCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90ICJtb3YiIH0gfSAqLw0KDQpQcm9wZXJ0 eSBjaGFuZ2VzIG9uOiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTQ4 NTUtMS5jDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpBZGRlZDogc3ZuOmVv bC1zdHlsZQ0KICAgKyBuYXRpdmUNCkFkZGVkOiBzdm46a2V5d29yZHMNCiAg ICsgQXV0aG9yIERhdGUgSWQgUmV2aXNpb24gVVJMDQoNCkluZGV4OiBjb25m aWcvaTM4Ni94bW1pbnRyaW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K LS0tIGNvbmZpZy9pMzg2L3htbWludHJpbi5oCShyZXZpc2lvbiAxOTQxNTAp DQorKysgY29uZmlnL2kzODYveG1taW50cmluLmgJKHdvcmtpbmcgY29weSkN CkBAIC05MiwyNyArOTIsMjcgQEAgX21tX3NldHplcm9fcHMgKHZvaWQpDQog ICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgMC4wZiwgMC4wZiwg MC4wZiwgMC4wZiB9Ow0KIH0NCiANCiAvKiBQZXJmb3JtIHRoZSByZXNwZWN0 aXZlIG9wZXJhdGlvbiBvbiB0aGUgbG93ZXIgU1BGUCAoc2luZ2xlLXByZWNp c2lvbg0KICAgIGZsb2F0aW5nLXBvaW50KSB2YWx1ZXMgb2YgQSBhbmQgQjsg dGhlIHVwcGVyIHRocmVlIFNQRlAgdmFsdWVzIGFyZQ0KICAgIHBhc3NlZCB0 aHJvdWdoIGZyb20gQS4gICovDQogDQogZXh0ZXJuIF9faW5saW5lIF9fbTEy OCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5s aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiBfbW1fYWRkX3NzIChfX20xMjgg X19BLCBfX20xMjggX19CKQ0KIHsNCi0gIHJldHVybiAoX19tMTI4KSBfX2J1 aWx0aW5faWEzMl9hZGRzcyAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKTsN CisgIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9hZGRzcyAoKF9f djRzZilfX0EsIF9fQlswXSk7DQogfQ0KIA0KIGV4dGVybiBfX2lubGluZSBf X20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogX21tX3N1Yl9zcyAoX19t MTI4IF9fQSwgX19tMTI4IF9fQikNCiB7DQotICByZXR1cm4gKF9fbTEyOCkg X19idWlsdGluX2lhMzJfc3Vic3MgKChfX3Y0c2YpX19BLCAoX192NHNmKV9f Qik7DQorICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc3Vic3Mg KChfX3Y0c2YpX19BLCBfX0JbMF0pOw0KIH0NCiANCiBleHRlcm4gX19pbmxp bmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KIF9tbV9tdWxfc3Mg KF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpDQogew0KICAgcmV0dXJuIChfX20x MjgpIF9fYnVpbHRpbl9pYTMyX211bHNzICgoX192NHNmKV9fQSwgKF9fdjRz ZilfX0IpOw0KIH0NCiANCiBleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0 cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQ0KIF9tbV9kaXZfc3MgKF9fbTEyOCBfX0EsIF9f bTEyOCBfX0IpDQpJbmRleDogY29uZmlnL2kzODYvZW1taW50cmluLmgNCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCi0tLSBjb25maWcvaTM4Ni9lbW1pbnRy aW4uaAkocmV2aXNpb24gMTk0MTUwKQ0KKysrIGNvbmZpZy9pMzg2L2VtbWlu dHJpbi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMjI2LDMzICsyMjYsMzMgQEAg X21tX2N2dHNpMTI4X3NpNjR4IChfX20xMjhpIF9fQSkNCiANCiBleHRlcm4g X19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf XywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiBfbW1f YWRkX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpDQogew0KICAgcmV0 dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2FkZHBkICgoX192MmRmKV9f QSwgKF9fdjJkZilfX0IpOw0KIH0NCiANCiBleHRlcm4gX19pbmxpbmUgX19t MTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiBfbW1fYWRkX3NkIChfX20x MjhkIF9fQSwgX19tMTI4ZCBfX0IpDQogew0KLSAgcmV0dXJuIChfX20xMjhk KV9fYnVpbHRpbl9pYTMyX2FkZHNkICgoX192MmRmKV9fQSwgKF9fdjJkZilf X0IpOw0KKyAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2FkZHNk ICgoX192MmRmKV9fQSwgX19CWzBdKTsNCiB9DQogDQogZXh0ZXJuIF9faW5s aW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9f YWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogX21tX3N1Yl9w ZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQ0KIHsNCiAgIHJldHVybiAo X19tMTI4ZClfX2J1aWx0aW5faWEzMl9zdWJwZCAoKF9fdjJkZilfX0EsIChf X3YyZGYpX19CKTsNCiB9DQogDQogZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQg X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogX21tX3N1Yl9zZCAoX19tMTI4ZCBf X0EsIF9fbTEyOGQgX19CKQ0KIHsNCi0gIHJldHVybiAoX19tMTI4ZClfX2J1 aWx0aW5faWEzMl9zdWJzZCAoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CKTsN CisgIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zdWJzZCAoKF9f djJkZilfX0EsIF9fQlswXSk7DQogfQ0KIA0KIGV4dGVybiBfX2lubGluZSBf X20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5 c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KIF9tbV9tdWxfcGQgKF9f bTEyOGQgX19BLCBfX20xMjhkIF9fQikNCiB7DQogICByZXR1cm4gKF9fbTEy OGQpX19idWlsdGluX2lhMzJfbXVscGQgKChfX3YyZGYpX19BLCAoX192MmRm KV9fQik7DQogfQ0KIA0KIGV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0 cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQ0KIF9tbV9tdWxfc2QgKF9fbTEyOGQgX19BLCBf X20xMjhkIF9fQikNCkluZGV4OiBjb25maWcvaTM4Ni9zc2UubWQNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCi0tLSBjb25maWcvaTM4Ni9zc2UubWQJKHJl dmlzaW9uIDE5NDE1MCkNCisrKyBjb25maWcvaTM4Ni9zc2UubWQJKHdvcmtp bmcgY29weSkNCkBAIC04NTgsMjMgKzg1OCwyNiBAQA0KICAgIDxwbHVzbWlu dXNfbW5lbW9uaWM+PHNzZW1vZGVzdWZmaXg+XHR7JTIsICUwfCUwLCAlMn0N CiAgICB2PHBsdXNtaW51c19tbmVtb25pYz48c3NlbW9kZXN1ZmZpeD5cdHsl MiwgJTEsICUwfCUwLCAlMSwgJTJ9Ig0KICAgWyhzZXRfYXR0ciAiaXNhIiAi bm9hdngsYXZ4IikNCiAgICAoc2V0X2F0dHIgInR5cGUiICJzc2VhZGQiKQ0K ICAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQ0KICAgIChzZXRf YXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCiANCiAoZGVmaW5lX2luc24gIjxz c2U+X3ZtPHBsdXNtaW51c19pbnNuPjxtb2RlPjMiDQogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWRl8xMjggMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgi KQ0KIAkodmVjX21lcmdlOlZGXzEyOA0KLQkgIChwbHVzbWludXM6VkZfMTI4 DQotCSAgICAobWF0Y2hfb3BlcmFuZDpWRl8xMjggMSAicmVnaXN0ZXJfb3Bl cmFuZCIgIjAseCIpDQotCSAgICAobWF0Y2hfb3BlcmFuZDpWRl8xMjggMiAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpKQ0KKwkgICh2ZWNfZHVw bGljYXRlOlZGXzEyOA0KKwkgICAgKHBsdXNtaW51czo8c3Nlc2NhbGFybW9k ZT4NCisJICAgICAgKHZlY19zZWxlY3Q6PHNzZXNjYWxhcm1vZGU+DQorCQko bWF0Y2hfb3BlcmFuZDpWRl8xMjggMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAs eCIpDQorCQkocGFyYWxsZWwgWyhjb25zdF9pbnQgMCldKSkNCisJICAgICAg KG1hdGNoX29wZXJhbmQ6PHNzZXNjYWxhcm1vZGU+IDIgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAieG0seG0iKSkpDQogCSAgKG1hdGNoX2R1cCAxKQ0KIAkg IChjb25zdF9pbnQgMSkpKV0NCiAgICJUQVJHRVRfU1NFIg0KICAgIkANCiAg ICA8cGx1c21pbnVzX21uZW1vbmljPjxzc2VzY2FsYXJtb2Rlc3VmZml4Plx0 eyUyLCAlMHwlMCwgJTJ9DQogICAgdjxwbHVzbWludXNfbW5lbW9uaWM+PHNz ZXNjYWxhcm1vZGVzdWZmaXg+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIN CiAgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpDQogICAgKHNldF9h dHRyICJ0eXBlIiAic3NlYWRkIikNCiAgICAoc2V0X2F0dHIgInByZWZpeCIg Im9yaWcsdmV4IikNCiAgICAoc2V0X2F0dHIgIm1vZGUiICI8c3Nlc2NhbGFy bW9kZT4iKV0pDQpJbmRleDogY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLXR5 cGVzLmRlZg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGNvbmZpZy9p Mzg2L2kzODYtYnVpbHRpbi10eXBlcy5kZWYJKHJldmlzaW9uIDE5NDE1MCkN CisrKyBjb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW4tdHlwZXMuZGVmCSh3b3Jr aW5nIGNvcHkpDQpAQCAtMjYzLDIwICsyNjMsMjEgQEAgREVGX0ZVTkNUSU9O X1RZUEUgKFVJTlQ2NCwgVUlOVDY0LCBVSU5UNg0KIERFRl9GVU5DVElPTl9U WVBFIChVSU5UOCwgVUlOVDgsIElOVCkNCiBERUZfRlVOQ1RJT05fVFlQRSAo VjE2UUksIFYxNlFJLCBTSSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjE2UUks IFYxNlFJLCBWMTZRSSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjE2UUksIFY4 SEksIFY4SEkpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFYxREksIFYxREksIFNJ KQ0KIERFRl9GVU5DVElPTl9UWVBFIChWMURJLCBWMURJLCBWMURJKQ0KIERF Rl9GVU5DVElPTl9UWVBFIChWMURJLCBWMlNJLCBWMlNJKQ0KIERFRl9GVU5D VElPTl9UWVBFIChWMURJLCBWOFFJLCBWOFFJKQ0KIERFRl9GVU5DVElPTl9U WVBFIChWMkRGLCBQQ1YyREYsIFYyREkpDQogREVGX0ZVTkNUSU9OX1RZUEUg KFYyREYsIFYyREYsIERJKQ0KK0RFRl9GVU5DVElPTl9UWVBFIChWMkRGLCBW MkRGLCBET1VCTEUpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFYyREYsIFYyREYs IElOVCkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjJERiwgVjJERiwgUENET1VC TEUpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFYyREYsIFYyREYsIFNJKQ0KIERF Rl9GVU5DVElPTl9UWVBFIChWMkRGLCBWMkRGLCBWMkRGKQ0KIERFRl9GVU5D VElPTl9UWVBFIChWMkRGLCBWMkRGLCBWMkRJKQ0KIERFRl9GVU5DVElPTl9U WVBFIChWMkRGLCBWMkRGLCBWNFNGKQ0KIERFRl9GVU5DVElPTl9UWVBFIChW MkRGLCBWNERGLCBJTlQpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFYyREksIFYx NlFJLCBWMTZRSSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjJESSwgVjJERiwg VjJERikNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjJESSwgVjJESSwgSU5UKQ0K QEAgLTI5NiwyMCArMjk3LDIxIEBAIERFRl9GVU5DVElPTl9UWVBFIChWNERG LCBQQ1Y0REYsIFY0REkpDQogREVGX0ZVTkNUSU9OX1RZUEUgKFY0REYsIFY0 REYsIElOVCkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRERiwgVjRERiwgVjRE RikNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRERiwgVjRERiwgVjRESSkNCiBE RUZfRlVOQ1RJT05fVFlQRSAoVjRISSwgVjJTSSwgVjJTSSkNCiBERUZfRlVO Q1RJT05fVFlQRSAoVjRISSwgVjRISSwgSU5UKQ0KIERFRl9GVU5DVElPTl9U WVBFIChWNEhJLCBWNEhJLCBTSSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRI SSwgVjRISSwgVjRISSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRISSwgVjhR SSwgVjhRSSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRTRiwgUENWNFNGLCBW NFNJKQ0KIERFRl9GVU5DVElPTl9UWVBFIChWNFNGLCBWNFNGLCBESSkNCitE RUZfRlVOQ1RJT05fVFlQRSAoVjRTRiwgVjRTRiwgRkxPQVQpDQogREVGX0ZV TkNUSU9OX1RZUEUgKFY0U0YsIFY0U0YsIElOVCkNCiBERUZfRlVOQ1RJT05f VFlQRSAoVjRTRiwgVjRTRiwgUENWMlNGKQ0KIERFRl9GVU5DVElPTl9UWVBF IChWNFNGLCBWNFNGLCBTSSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRTRiwg VjRTRiwgVjJERikNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRTRiwgVjRTRiwg VjJTSSkNCiBERUZfRlVOQ1RJT05fVFlQRSAoVjRTRiwgVjRTRiwgVjRTRikN CiBERUZfRlVOQ1RJT05fVFlQRSAoVjRTRiwgVjRTRiwgVjRTSSkNCiBERUZf RlVOQ1RJT05fVFlQRSAoVjRTRiwgVjhTRiwgSU5UKQ0KIERFRl9GVU5DVElP Tl9UWVBFIChWNFNJLCBWMkRGLCBWMkRGKQ0KIERFRl9GVU5DVElPTl9UWVBF IChWNFNJLCBWNFNGLCBWNFNGKQ0KSW5kZXg6IGNvbmZpZy9pMzg2L2kzODYu Yw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGNvbmZpZy9pMzg2L2kz ODYuYwkocmV2aXNpb24gMTk0MTUwKQ0KKysrIGNvbmZpZy9pMzg2L2kzODYu Ywkod29ya2luZyBjb3B5KQ0KQEAgLTI3MDU5LDIyICsyNzA1OSwyMiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24NCiAgIHsg T1BUSU9OX01BU0tfSVNBX1NTRSwgQ09ERV9GT1Jfc3NlX2N2dHRwczJwaSwg Il9fYnVpbHRpbl9pYTMyX2N2dHRwczJwaSIsIElYODZfQlVJTFRJTl9DVlRU UFMyUEksIFVOS05PV04sIChpbnQpIFYyU0lfRlRZUEVfVjRTRiB9LA0KICAg eyBPUFRJT05fTUFTS19JU0FfU1NFLCBDT0RFX0ZPUl9zc2VfY3Z0dHNzMnNp LCAiX19idWlsdGluX2lhMzJfY3Z0dHNzMnNpIiwgSVg4Nl9CVUlMVElOX0NW VFRTUzJTSSwgVU5LTk9XTiwgKGludCkgSU5UX0ZUWVBFX1Y0U0YgfSwNCiAg IHsgT1BUSU9OX01BU0tfSVNBX1NTRSB8IE9QVElPTl9NQVNLX0lTQV82NEJJ VCwgQ09ERV9GT1Jfc3NlX2N2dHRzczJzaXEsICJfX2J1aWx0aW5faWEzMl9j dnR0c3Myc2k2NCIsIElYODZfQlVJTFRJTl9DVlRUU1MyU0k2NCwgVU5LTk9X TiwgKGludCkgSU5UNjRfRlRZUEVfVjRTRiB9LA0KIA0KICAgeyBPUFRJT05f TUFTS19JU0FfU1NFLCBDT0RFX0ZPUl9zc2Vfc2h1ZnBzLCAiX19idWlsdGlu X2lhMzJfc2h1ZnBzIiwgSVg4Nl9CVUlMVElOX1NIVUZQUywgVU5LTk9XTiwg KGludCkgVjRTRl9GVFlQRV9WNFNGX1Y0U0ZfSU5UIH0sDQogDQogICB7IE9Q VElPTl9NQVNLX0lTQV9TU0UsIENPREVfRk9SX2FkZHY0c2YzLCAiX19idWls dGluX2lhMzJfYWRkcHMiLCBJWDg2X0JVSUxUSU5fQUREUFMsIFVOS05PV04s IChpbnQpIFY0U0ZfRlRZUEVfVjRTRl9WNFNGIH0sDQogICB7IE9QVElPTl9N QVNLX0lTQV9TU0UsIENPREVfRk9SX3N1YnY0c2YzLCAiX19idWlsdGluX2lh MzJfc3VicHMiLCBJWDg2X0JVSUxUSU5fU1VCUFMsIFVOS05PV04sIChpbnQp IFY0U0ZfRlRZUEVfVjRTRl9WNFNGIH0sDQogICB7IE9QVElPTl9NQVNLX0lT QV9TU0UsIENPREVfRk9SX211bHY0c2YzLCAiX19idWlsdGluX2lhMzJfbXVs cHMiLCBJWDg2X0JVSUxUSU5fTVVMUFMsIFVOS05PV04sIChpbnQpIFY0U0Zf RlRZUEVfVjRTRl9WNFNGIH0sDQogICB7IE9QVElPTl9NQVNLX0lTQV9TU0Us IENPREVfRk9SX3NzZV9kaXZ2NHNmMywgIl9fYnVpbHRpbl9pYTMyX2RpdnBz IiwgSVg4Nl9CVUlMVElOX0RJVlBTLCBVTktOT1dOLCAoaW50KSBWNFNGX0ZU WVBFX1Y0U0ZfVjRTRiB9LA0KLSAgeyBPUFRJT05fTUFTS19JU0FfU1NFLCBD T0RFX0ZPUl9zc2Vfdm1hZGR2NHNmMywgICJfX2J1aWx0aW5faWEzMl9hZGRz cyIsIElYODZfQlVJTFRJTl9BRERTUywgVU5LTk9XTiwgKGludCkgVjRTRl9G VFlQRV9WNFNGX1Y0U0YgfSwNCi0gIHsgT1BUSU9OX01BU0tfSVNBX1NTRSwg Q09ERV9GT1Jfc3NlX3Ztc3VidjRzZjMsICAiX19idWlsdGluX2lhMzJfc3Vi c3MiLCBJWDg2X0JVSUxUSU5fU1VCU1MsIFVOS05PV04sIChpbnQpIFY0U0Zf RlRZUEVfVjRTRl9WNFNGIH0sDQorICB7IE9QVElPTl9NQVNLX0lTQV9TU0Us IENPREVfRk9SX3NzZV92bWFkZHY0c2YzLCAgIl9fYnVpbHRpbl9pYTMyX2Fk ZHNzIiwgSVg4Nl9CVUlMVElOX0FERFNTLCBVTktOT1dOLCAoaW50KSBWNFNG X0ZUWVBFX1Y0U0ZfRkxPQVQgfSwNCisgIHsgT1BUSU9OX01BU0tfSVNBX1NT RSwgQ09ERV9GT1Jfc3NlX3Ztc3VidjRzZjMsICAiX19idWlsdGluX2lhMzJf c3Vic3MiLCBJWDg2X0JVSUxUSU5fU1VCU1MsIFVOS05PV04sIChpbnQpIFY0 U0ZfRlRZUEVfVjRTRl9GTE9BVCB9LA0KICAgeyBPUFRJT05fTUFTS19JU0Ff U1NFLCBDT0RFX0ZPUl9zc2Vfdm1tdWx2NHNmMywgICJfX2J1aWx0aW5faWEz Ml9tdWxzcyIsIElYODZfQlVJTFRJTl9NVUxTUywgVU5LTk9XTiwgKGludCkg VjRTRl9GVFlQRV9WNFNGX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01BU0tfSVNB X1NTRSwgQ09ERV9GT1Jfc3NlX3ZtZGl2djRzZjMsICAiX19idWlsdGluX2lh MzJfZGl2c3MiLCBJWDg2X0JVSUxUSU5fRElWU1MsIFVOS05PV04sIChpbnQp IFY0U0ZfRlRZUEVfVjRTRl9WNFNGIH0sDQogDQogICB7IE9QVElPTl9NQVNL X0lTQV9TU0UsIENPREVfRk9SX3NzZV9tYXNrY21wdjRzZjMsICJfX2J1aWx0 aW5faWEzMl9jbXBlcXBzIiwgSVg4Nl9CVUlMVElOX0NNUEVRUFMsIEVRLCAo aW50KSBWNFNGX0ZUWVBFX1Y0U0ZfVjRTRiB9LA0KICAgeyBPUFRJT05fTUFT S19JU0FfU1NFLCBDT0RFX0ZPUl9zc2VfbWFza2NtcHY0c2YzLCAiX19idWls dGluX2lhMzJfY21wbHRwcyIsIElYODZfQlVJTFRJTl9DTVBMVFBTLCBMVCwg KGludCkgVjRTRl9GVFlQRV9WNFNGX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01B U0tfSVNBX1NTRSwgQ09ERV9GT1Jfc3NlX21hc2tjbXB2NHNmMywgIl9fYnVp bHRpbl9pYTMyX2NtcGxlcHMiLCBJWDg2X0JVSUxUSU5fQ01QTEVQUywgTEUs IChpbnQpIFY0U0ZfRlRZUEVfVjRTRl9WNFNGIH0sDQogICB7IE9QVElPTl9N QVNLX0lTQV9TU0UsIENPREVfRk9SX3NzZV9tYXNrY21wdjRzZjMsICJfX2J1 aWx0aW5faWEzMl9jbXBndHBzIiwgSVg4Nl9CVUlMVElOX0NNUEdUUFMsIExU LCAoaW50KSBWNFNGX0ZUWVBFX1Y0U0ZfVjRTRl9TV0FQIH0sDQogICB7IE9Q VElPTl9NQVNLX0lTQV9TU0UsIENPREVfRk9SX3NzZV9tYXNrY21wdjRzZjMs ICJfX2J1aWx0aW5faWEzMl9jbXBnZXBzIiwgSVg4Nl9CVUlMVElOX0NNUEdF UFMsIExFLCAoaW50KSBWNFNGX0ZUWVBFX1Y0U0ZfVjRTRl9TV0FQIH0sDQog ICB7IE9QVElPTl9NQVNLX0lTQV9TU0UsIENPREVfRk9SX3NzZV9tYXNrY21w djRzZjMsICJfX2J1aWx0aW5faWEzMl9jbXB1bm9yZHBzIiwgSVg4Nl9CVUlM VElOX0NNUFVOT1JEUFMsIFVOT1JERVJFRCwgKGludCkgVjRTRl9GVFlQRV9W NFNGX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01BU0tfSVNBX1NTRSwgQ09ERV9G T1Jfc3NlX21hc2tjbXB2NHNmMywgIl9fYnVpbHRpbl9pYTMyX2NtcG5lcXBz IiwgSVg4Nl9CVUlMVElOX0NNUE5FUVBTLCBORSwgKGludCkgVjRTRl9GVFlQ RV9WNFNGX1Y0U0YgfSwNCkBAIC0yNzE2MywyMiArMjcxNjMsMjIgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBidWlsdGluX2Rlc2NyaXB0aW9uDQogICB7IE9Q VElPTl9NQVNLX0lTQV9TU0UyIHwgT1BUSU9OX01BU0tfSVNBXzY0QklULCBD T0RFX0ZPUl9zc2UyX2N2dHRzZDJzaXEsICJfX2J1aWx0aW5faWEzMl9jdnR0 c2Qyc2k2NCIsIElYODZfQlVJTFRJTl9DVlRUU0QyU0k2NCwgVU5LTk9XTiwg KGludCkgSU5UNjRfRlRZUEVfVjJERiB9LA0KIA0KICAgeyBPUFRJT05fTUFT S19JU0FfU1NFMiwgQ09ERV9GT1Jfc3NlMl9jdnRwczJkcSwgIl9fYnVpbHRp bl9pYTMyX2N2dHBzMmRxIiwgSVg4Nl9CVUlMVElOX0NWVFBTMkRRLCBVTktO T1dOLCAoaW50KSBWNFNJX0ZUWVBFX1Y0U0YgfSwNCiAgIHsgT1BUSU9OX01B U0tfSVNBX1NTRTIsIENPREVfRk9SX3NzZTJfY3Z0cHMycGQsICJfX2J1aWx0 aW5faWEzMl9jdnRwczJwZCIsIElYODZfQlVJTFRJTl9DVlRQUzJQRCwgVU5L Tk9XTiwgKGludCkgVjJERl9GVFlQRV9WNFNGIH0sDQogICB7IE9QVElPTl9N QVNLX0lTQV9TU0UyLCBDT0RFX0ZPUl9maXhfdHJ1bmN2NHNmdjRzaTIsICJf X2J1aWx0aW5faWEzMl9jdnR0cHMyZHEiLCBJWDg2X0JVSUxUSU5fQ1ZUVFBT MkRRLCBVTktOT1dOLCAoaW50KSBWNFNJX0ZUWVBFX1Y0U0YgfSwNCiANCiAg IHsgT1BUSU9OX01BU0tfSVNBX1NTRTIsIENPREVfRk9SX2FkZHYyZGYzLCAi X19idWlsdGluX2lhMzJfYWRkcGQiLCBJWDg2X0JVSUxUSU5fQUREUEQsIFVO S05PV04sIChpbnQpIFYyREZfRlRZUEVfVjJERl9WMkRGIH0sDQogICB7IE9Q VElPTl9NQVNLX0lTQV9TU0UyLCBDT0RFX0ZPUl9zdWJ2MmRmMywgIl9fYnVp bHRpbl9pYTMyX3N1YnBkIiwgSVg4Nl9CVUlMVElOX1NVQlBELCBVTktOT1dO LCAoaW50KSBWMkRGX0ZUWVBFX1YyREZfVjJERiB9LA0KICAgeyBPUFRJT05f TUFTS19JU0FfU1NFMiwgQ09ERV9GT1JfbXVsdjJkZjMsICJfX2J1aWx0aW5f aWEzMl9tdWxwZCIsIElYODZfQlVJTFRJTl9NVUxQRCwgVU5LTk9XTiwgKGlu dCkgVjJERl9GVFlQRV9WMkRGX1YyREYgfSwNCiAgIHsgT1BUSU9OX01BU0tf SVNBX1NTRTIsIENPREVfRk9SX2RpdnYyZGYzLCAiX19idWlsdGluX2lhMzJf ZGl2cGQiLCBJWDg2X0JVSUxUSU5fRElWUEQsIFVOS05PV04sIChpbnQpIFYy REZfRlRZUEVfVjJERl9WMkRGIH0sDQotICB7IE9QVElPTl9NQVNLX0lTQV9T U0UyLCBDT0RFX0ZPUl9zc2UyX3ZtYWRkdjJkZjMsICAiX19idWlsdGluX2lh MzJfYWRkc2QiLCBJWDg2X0JVSUxUSU5fQUREU0QsIFVOS05PV04sIChpbnQp IFYyREZfRlRZUEVfVjJERl9WMkRGIH0sDQotICB7IE9QVElPTl9NQVNLX0lT QV9TU0UyLCBDT0RFX0ZPUl9zc2UyX3Ztc3VidjJkZjMsICAiX19idWlsdGlu X2lhMzJfc3Vic2QiLCBJWDg2X0JVSUxUSU5fU1VCU0QsIFVOS05PV04sIChp bnQpIFYyREZfRlRZUEVfVjJERl9WMkRGIH0sDQorICB7IE9QVElPTl9NQVNL X0lTQV9TU0UyLCBDT0RFX0ZPUl9zc2UyX3ZtYWRkdjJkZjMsICAiX19idWls dGluX2lhMzJfYWRkc2QiLCBJWDg2X0JVSUxUSU5fQUREU0QsIFVOS05PV04s IChpbnQpIFYyREZfRlRZUEVfVjJERl9ET1VCTEUgfSwNCisgIHsgT1BUSU9O X01BU0tfSVNBX1NTRTIsIENPREVfRk9SX3NzZTJfdm1zdWJ2MmRmMywgICJf X2J1aWx0aW5faWEzMl9zdWJzZCIsIElYODZfQlVJTFRJTl9TVUJTRCwgVU5L Tk9XTiwgKGludCkgVjJERl9GVFlQRV9WMkRGX0RPVUJMRSB9LA0KICAgeyBP UFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jfc3NlMl92bW11bHYyZGYz LCAgIl9fYnVpbHRpbl9pYTMyX211bHNkIiwgSVg4Nl9CVUlMVElOX01VTFNE LCBVTktOT1dOLCAoaW50KSBWMkRGX0ZUWVBFX1YyREZfVjJERiB9LA0KICAg eyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jfc3NlMl92bWRpdnYy ZGYzLCAgIl9fYnVpbHRpbl9pYTMyX2RpdnNkIiwgSVg4Nl9CVUlMVElOX0RJ VlNELCBVTktOT1dOLCAoaW50KSBWMkRGX0ZUWVBFX1YyREZfVjJERiB9LA0K IA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jfc3NlMl9t YXNrY21wdjJkZjMsICJfX2J1aWx0aW5faWEzMl9jbXBlcXBkIiwgSVg4Nl9C VUlMVElOX0NNUEVRUEQsIEVRLCAoaW50KSBWMkRGX0ZUWVBFX1YyREZfVjJE RiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jfc3Nl Ml9tYXNrY21wdjJkZjMsICJfX2J1aWx0aW5faWEzMl9jbXBsdHBkIiwgSVg4 Nl9CVUlMVElOX0NNUExUUEQsIExULCAoaW50KSBWMkRGX0ZUWVBFX1YyREZf VjJERiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1Jf c3NlMl9tYXNrY21wdjJkZjMsICJfX2J1aWx0aW5faWEzMl9jbXBsZXBkIiwg SVg4Nl9CVUlMVElOX0NNUExFUEQsIExFLCAoaW50KSBWMkRGX0ZUWVBFX1Yy REZfVjJERiB9LA0KICAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9G T1Jfc3NlMl9tYXNrY21wdjJkZjMsICJfX2J1aWx0aW5faWEzMl9jbXBndHBk IiwgSVg4Nl9CVUlMVElOX0NNUEdUUEQsIExULCAoaW50KSBWMkRGX0ZUWVBF X1YyREZfVjJERl9TV0FQIH0sDQogICB7IE9QVElPTl9NQVNLX0lTQV9TU0Uy LCBDT0RFX0ZPUl9zc2UyX21hc2tjbXB2MmRmMywgIl9fYnVpbHRpbl9pYTMy X2NtcGdlcGQiLCBJWDg2X0JVSUxUSU5fQ01QR0VQRCwgTEUsIChpbnQpIFYy REZfRlRZUEVfVjJERl9WMkRGX1NXQVB9LA0KICAgeyBPUFRJT05fTUFTS19J U0FfU1NFMiwgQ09ERV9GT1Jfc3NlMl9tYXNrY21wdjJkZjMsICJfX2J1aWx0 aW5faWEzMl9jbXB1bm9yZHBkIiwgSVg4Nl9CVUlMVElOX0NNUFVOT1JEUEQs IFVOT1JERVJFRCwgKGludCkgVjJERl9GVFlQRV9WMkRGX1YyREYgfSwNCiAg IHsgT1BUSU9OX01BU0tfSVNBX1NTRTIsIENPREVfRk9SX3NzZTJfbWFza2Nt cHYyZGYzLCAiX19idWlsdGluX2lhMzJfY21wbmVxcGQiLCBJWDg2X0JVSUxU SU5fQ01QTkVRUEQsIE5FLCAoaW50KSBWMkRGX0ZUWVBFX1YyREZfVjJERiB9 LA0KQEAgLTMwNzkwLDM0ICszMDc5MCwzNiBAQCBpeDg2X2V4cGFuZF9hcmdz X2J1aWx0aW4gKGNvbnN0IHN0cnVjdCBiDQogICAgIGNhc2UgVjRISV9GVFlQ RV9WOFFJX1Y4UUk6DQogICAgIGNhc2UgVjRISV9GVFlQRV9WMlNJX1YyU0k6 DQogICAgIGNhc2UgVjRERl9GVFlQRV9WNERGX1Y0REY6DQogICAgIGNhc2Ug VjRERl9GVFlQRV9WNERGX1Y0REk6DQogICAgIGNhc2UgVjRTRl9GVFlQRV9W NFNGX1Y0U0Y6DQogICAgIGNhc2UgVjRTRl9GVFlQRV9WNFNGX1Y0U0k6DQog ICAgIGNhc2UgVjRTRl9GVFlQRV9WNFNGX1YyU0k6DQogICAgIGNhc2UgVjRT Rl9GVFlQRV9WNFNGX1YyREY6DQogICAgIGNhc2UgVjRTRl9GVFlQRV9WNFNG X0RJOg0KICAgICBjYXNlIFY0U0ZfRlRZUEVfVjRTRl9TSToNCisgICAgY2Fz ZSBWNFNGX0ZUWVBFX1Y0U0ZfRkxPQVQ6DQogICAgIGNhc2UgVjJESV9GVFlQ RV9WMkRJX1YyREk6DQogICAgIGNhc2UgVjJESV9GVFlQRV9WMTZRSV9WMTZR SToNCiAgICAgY2FzZSBWMkRJX0ZUWVBFX1Y0U0lfVjRTSToNCiAgICAgY2Fz ZSBWMlVESV9GVFlQRV9WNFVTSV9WNFVTSToNCiAgICAgY2FzZSBWMkRJX0ZU WVBFX1YyRElfVjE2UUk6DQogICAgIGNhc2UgVjJESV9GVFlQRV9WMkRGX1Yy REY6DQogICAgIGNhc2UgVjJTSV9GVFlQRV9WMlNJX1YyU0k6DQogICAgIGNh c2UgVjJTSV9GVFlQRV9WNEhJX1Y0SEk6DQogICAgIGNhc2UgVjJTSV9GVFlQ RV9WMlNGX1YyU0Y6DQogICAgIGNhc2UgVjJERl9GVFlQRV9WMkRGX1YyREY6 DQogICAgIGNhc2UgVjJERl9GVFlQRV9WMkRGX1Y0U0Y6DQogICAgIGNhc2Ug VjJERl9GVFlQRV9WMkRGX1YyREk6DQogICAgIGNhc2UgVjJERl9GVFlQRV9W MkRGX0RJOg0KICAgICBjYXNlIFYyREZfRlRZUEVfVjJERl9TSToNCisgICAg Y2FzZSBWMkRGX0ZUWVBFX1YyREZfRE9VQkxFOg0KICAgICBjYXNlIFYyU0Zf RlRZUEVfVjJTRl9WMlNGOg0KICAgICBjYXNlIFYxRElfRlRZUEVfVjFESV9W MURJOg0KICAgICBjYXNlIFYxRElfRlRZUEVfVjhRSV9WOFFJOg0KICAgICBj YXNlIFYxRElfRlRZUEVfVjJTSV9WMlNJOg0KICAgICBjYXNlIFYzMlFJX0ZU WVBFX1YxNkhJX1YxNkhJOg0KICAgICBjYXNlIFYxNkhJX0ZUWVBFX1Y4U0lf VjhTSToNCiAgICAgY2FzZSBWMzJRSV9GVFlQRV9WMzJRSV9WMzJRSToNCiAg ICAgY2FzZSBWMTZISV9GVFlQRV9WMzJRSV9WMzJRSToNCiAgICAgY2FzZSBW MTZISV9GVFlQRV9WMTZISV9WMTZISToNCiAgICAgY2FzZSBWOFNJX0ZUWVBF X1Y0REZfVjRERjoNCkluZGV4OiBzaW1wbGlmeS1ydHguYw0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KLS0tIHNpbXBsaWZ5LXJ0eC5jCShyZXZpc2lvbiAx OTQxNTApDQorKysgc2ltcGxpZnktcnR4LmMJKHdvcmtpbmcgY29weSkNCkBA IC0zNTg4LDIwICszNTg4LDMyIEBAIHNpbXBsaWZ5X2JpbmFyeV9vcGVyYXRp b25fMSAoZW51bSBydHhfY28NCiAJICAgIGludCBsZW4wID0gWFZFQ0xFTiAo cGFyMCwgMCk7DQogCSAgICBpbnQgbGVuMSA9IFhWRUNMRU4gKHBhcjEsIDAp Ow0KIAkgICAgcnR2ZWMgdmVjID0gcnR2ZWNfYWxsb2MgKGxlbjAgKyBsZW4x KTsNCiAJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuMDsgaSsrKQ0KIAkg ICAgICBSVFZFQ19FTFQgKHZlYywgaSkgPSBYVkVDRVhQIChwYXIwLCAwLCBp KTsNCiAJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuMTsgaSsrKQ0KIAkg ICAgICBSVFZFQ19FTFQgKHZlYywgbGVuMCArIGkpID0gWFZFQ0VYUCAocGFy MSwgMCwgaSk7DQogCSAgICByZXR1cm4gc2ltcGxpZnlfZ2VuX2JpbmFyeSAo VkVDX1NFTEVDVCwgbW9kZSwgWEVYUCAodHJ1ZW9wMCwgMCksDQogCQkJCQln ZW5fcnR4X1BBUkFMTEVMIChWT0lEbW9kZSwgdmVjKSk7DQogCSAgfQ0KKw0K KwkvKiBSZWNvZ25pemUgYSBzaW1wbGUgZm9ybSBvZiBWRUNfTUVSR0UuICAq Lw0KKwlpZiAoR0VUX0NPREUgKHRydWVvcDEpID09IFZFQ19TRUxFQ1QNCisJ ICAgICYmIEdFVF9NT0RFIChYRVhQICh0cnVlb3AxLCAwKSkgPT0gbW9kZQ0K KwkgICAgJiYgWFZFQ0xFTiAoWEVYUCAodHJ1ZW9wMSwgMSksIDApID09IDEN CisJICAgICYmIElOVFZBTCAoWFZFQ0VYUCAoWEVYUCAodHJ1ZW9wMSwgMSks IDAsIDApKSA9PSAxKQ0KKwkgIHsNCisJICAgIHJ0eCBuZXdvcDAgPSBnZW5f cnR4X2ZtdF9lIChWRUNfRFVQTElDQVRFLCBtb2RlLCB0cnVlb3AwKTsNCisJ ICAgIHJ0eCBuZXdvcDEgPSBYRVhQICh0cnVlb3AxLCAwKTsNCisJICAgIHJl dHVybiBzaW1wbGlmeV9nZW5fdGVybmFyeSAoVkVDX01FUkdFLCBtb2RlLCBH RVRfTU9ERSAobmV3b3AwKSwNCisJCQkJCSBuZXdvcDAsIG5ld29wMSwgR0VO X0lOVCAoMSkpOw0KKwkgIH0NCiAgICAgICB9DQogICAgICAgcmV0dXJuIDA7 DQogDQogICAgIGRlZmF1bHQ6DQogICAgICAgZ2NjX3VucmVhY2hhYmxlICgp Ow0KICAgICB9DQogDQogICByZXR1cm4gMDsNCiB9DQogDQo= --8323329-901431822-1354638483=:22183--