From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6537 invoked by alias); 26 Oct 2010 05:17:28 -0000 Received: (qmail 6526 invoked by uid 22791); 26 Oct 2010 05:17:25 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,TW_BJ,TW_VF,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 26 Oct 2010 05:17:18 +0000 Received: (qmail 31936 invoked from network); 25 Oct 2010 22:10:35 -0000 Received: from unknown (HELO digraph.polyomino.org.uk) (joseph@127.0.0.2) by mail.codesourcery.com with ESMTPA; 25 Oct 2010 22:10:35 -0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.72) (envelope-from ) id 1PAVFS-0004n6-EQ for overseers@gcc.gnu.org; Mon, 25 Oct 2010 22:10:34 +0000 Date: Tue, 26 Oct 2010 05:17:00 -0000 From: "Joseph S. Myers" To: overseers@gcc.gnu.org Subject: Email problems Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1152306461-1703087293-1288044634=:17296" Mailing-List: contact overseers-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: , Sender: overseers-owner@sourceware.org X-SW-Source: 2010-q4/txt/msg00014.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. ---1152306461-1703087293-1288044634=:17296 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 301 It appears there are some problems with emails to gcc.gnu.org lists not reaching the lists - for example, I received a personal copy of the attached message but it did not reach the mailing list. Could someone look into what happened with this message? -- Joseph S. Myers joseph@codesourcery.com ---1152306461-1703087293-1288044634=:17296 Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII Content-ID: Content-Description: Re: Vector shifting patch (fwd) Content-length: 27568 Return-Path: Delivered-To: joseph@codesourcery.com Received: (qmail 324 invoked from network); 25 Oct 2010 17:16:06 -0000 Received: from lax-gw04.mailroute.net (HELO mail.mroute.net) (199.89.0.104) by mail.codesourcery.com with SMTP; 25 Oct 2010 17:16:06 -0000 Received: from localhost (lax-gw01 [127.0.0.1]) by lax-gw04.mroute.net (Postfix) with ESMTP id E96EA13B874; Mon, 25 Oct 2010 17:16:05 +0000 (GMT) X-Virus-Scanned: by MailRoute X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Score-Int: 0 X-Spam-Score-Float: -0.946 X-Spam-Level: X-Spam-Status: No, score=-0.946 tagged_above=-999 tests=[AM:BOOST=-2, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VERIFIED=-0.3, FREEMAIL_FROM=0.001, J_CHICKENPOX_12=0.6, J_CHICKENPOX_26=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_44=0.6, J_CHICKENPOX_46=0.6, L_P0F_Linux=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, TW_BJ=0.077, TW_VF=0.077, USER_IN_DEF_DKIM_WL=-1.5] autolearn=disabled X-Amavis-OS-Fingerprint: Linux 2.6 (newer, 2) (firewall!) (up: 4673 hrs), (distance 9, link: (Google 2)), [209.85.216.48:59900] Received: from mail-qw0-f48.google.com (mail-qw0-f48.google.com [209.85.216.48]) by lax-gw04.mroute.net (Postfix) with ESMTP id AF3B313B796; Mon, 25 Oct 2010 17:16:01 +0000 (GMT) Received: by qwb8 with SMTP id 8so213089qwb.35 for ; Mon, 25 Oct 2010 10:16:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:cc:content-type; bh=M9s7gwRqS3Lc7WDPTvkrH16rH64/lsK+uUAc31Ka9Mc=; b=DoBAfUNdvNhrkC+SHhN3DxOrYzanUVtFyH9GeLu+BP0FVMYFMRui+WGhLH0LP6BeEt 7fuzpOEphTTiO98sjAGKoaH1mIcVGUk0WAkZftehwqtpgAZy07cF+dhw+VAluUUu9BoR MdHxLPehcF/P2ezJY3qlrYWAl2H8LEwSJLCKg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=FmxvLej/XAFwKorZDFqMLsppJGKb79I5KY+EQmKlINI6bgB0Y5LAoXaYfOgoCdRvKL wiX+GgHlrC99GoQSPYHiy/SJFoFRiDQ+7048ko/Xl4uUvyNidYqStULpLalf3DQVfFQQ YienQPQaZaZm7MdCHAnvKye7O54dNWrxgg+jg= Received: by 10.229.213.212 with SMTP id gx20mr6249994qcb.60.1288026960670; Mon, 25 Oct 2010 10:16:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.182.207 with HTTP; Mon, 25 Oct 2010 10:15:40 -0700 (PDT) In-Reply-To: <20101025152737.GD2806@nightcrawler> References: <20101025144714.GZ2806@nightcrawler> <20101025150704.GC2806@nightcrawler> <20101025152737.GD2806@nightcrawler> From: Artem Shinkarov Date: Mon, 25 Oct 2010 18:15:40 +0100 Message-ID: Subject: Re: Vector shifting patch To: Nathan Froyd Cc: gcc-patches@gcc.gnu.org, Richard Guenther , "Joseph S. Myers" Content-Type: multipart/mixed; boundary=0016362844f273c0e0049374256a --0016362844f273c0e0049374256a Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2021 Here is a version with improved build_vector_from val. ChangeLog: 2010-10-25 Artjoms Sinkarovs Andrew Pinski gcc/ * tree.h (build_vector_from_val): Declare. * tree.c (build_vector_from_val): New function. * c-typeck.c (build_binary_op): Handle vector shifting. gcc/testsuite/ * gcc.c-torture/execute/vector-shift.c: Likewise. * gcc.c-torture/execute/vector-shift1.c: New testcase. * gcc.c-torture/execute/vector-shift2.c: New testcase. * gcc.dg/vector-shift.c: New testcase. * gcc.dg/vector-shift1.c: New testcase. * gcc.dg/vector-shift2.c: New testcase. * gcc.dg/vector-shift3.c: New testcase. * gcc.dg/vector-shift4.c: New testcase. bootstrapped and tested on x86_64_unknown-linux OK? On Mon, Oct 25, 2010 at 4:27 PM, Nathan Froyd wr= ote: > On Mon, Oct 25, 2010 at 04:21:47PM +0100, Artem Shinkarov wrote: >> Does it look better now: >> >> tree >> build_vector_from_val (const tree sc, const tree vectype) >> { >> =A0 int i, nunits =3D TYPE_VECTOR_SUBPARTS (vectype); >> =A0 VEC(constructor_elt, gc) *v; >> >> =A0 if (sc =3D=3D error_mark_node) >> =A0 =A0 return sc; >> >> =A0 gcc_assert (TREE_TYPE (sc) =3D=3D TREE_TYPE (vectype)); >> >> =A0 v =3D VEC_alloc (constructor_elt, gc, nunits); >> =A0 for (i =3D 0; i < nunits; ++i) >> =A0 =A0 CONSTRUCTOR_APPEND_ELT (v, size_int (i), sc); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ^^^^^^^^^= ^^^ > > You can just pass NULL_TREE here and the Right Thing will happen. > > I think the logic looks fine. =A0For consistency's sake, it would probably > be good to have the argument order reversed, i.e.: > > tree > build_vector_from_val (const_tree vectype, const_tree sc) > > as that would more closely match the existing build_vector* functions. > > Please also note that you want const_tree instead of 'const tree' (note > underscore). =A0If there are other instances of that in your patch, you'll > want to fix those too. > > -Nathan > --0016362844f273c0e0049374256a Content-Type: text/x-diff; charset=US-ASCII; name="vectorshift.c.v7.diff" Content-Disposition: attachment; filename="vectorshift.c.v7.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gfplz0cs0 Content-length: 21570 SW5kZXg6IGdjYy9kb2MvZXh0ZW5kLnRleGkKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gZ2NjL2RvYy9leHRlbmQudGV4aQkocmV2aXNpb24gMTY1OTEz KQorKysgZ2NjL2RvYy9leHRlbmQudGV4aQkod29ya2luZyBjb3B5KQpAQCAt NjMwOSw2ICs2MzA5LDIzIEBAIHY0c2kgYSwgYiwgYzsKIGMgPSBhICsgYjsK IEBlbmQgc21hbGxleGFtcGxlCiAKK0luIEMgaXQgaXMgcG9zc2libGUgdG8g dXNlIHNoaWZ0aW5nIG9wZXJhdG9ycyBAY29kZXs8PCwgPj59IG9uIGludGVn ZXItdHlwZQordmVjdG9ycy4gVGhlIG9wZXJhdGlvbiBpcyBkZWZpbmVkIGFz IGZvbGxvd2luZzogQGNvZGV7QHthMCwgYTEsIC4uLiwgYW5AfSA+PiBAe2Iw LCBiMSwKKy4uLiwgYm5AfSA9PSBAe2EwID4+IGIwLCBhMSA+PiBiMSwgLi4u LCBhbiA+PiBibkB9fUAuICBBZGRpdGlvbmFsbHkgb25lIG9mIHRoZQorb3Bl cmFuZHMgY2FuIGJlIGEgc2NhbGFyIGludGVnZXIgaW4gd2hpY2ggY2FzZSB0 aGUgc2NhbGFyIGlzIGNvbnZlcnRlZCB0byB0aGUKK3R5cGUgdXNlZCBieSB0 aGUgdmVjdG9yIG9wZXJhbmQgYW5kIGVhY2ggZWxlbWVudCBvZiB0aGlzIG5l dyB2ZWN0b3IgaXMgdGhlCitzY2FsYXIncyB2YWx1ZS4gIENvbnNpZGVyIHRo ZSBmb2xsb3dpbmcgY29kZS4KKworQHNtYWxsZXhhbXBsZQordHlwZWRlZiBp bnQgdjRzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDE2KSkpOwor Cit2NHNpIGEsIGIsIGM7CitpbnQgaSA9IDE7CisKK2IgPSBhID4+IDE7ICAg ICAvKiBiID0gYSA+PiBAezEsMSwxLDFAfTsgKi8KK2MgPSAxIDw8IGE7ICAg ICAvKiBjID0gQHsxLDEsMSwxQH0gPDwgYTsgKi8KK0BlbmQgc21hbGxleGFt cGxlCisKIFN1YnRyYWN0aW9uLCBtdWx0aXBsaWNhdGlvbiwgZGl2aXNpb24s IGFuZCB0aGUgbG9naWNhbCBvcGVyYXRpb25zCiBvcGVyYXRlIGluIGEgc2lt aWxhciBtYW5uZXIuICBMaWtld2lzZSwgdGhlIHJlc3VsdCBvZiB1c2luZyB0 aGUgdW5hcnkKIG1pbnVzIG9yIGNvbXBsZW1lbnQgb3BlcmF0b3JzIG9uIGEg dmVjdG9yIHR5cGUgaXMgYSB2ZWN0b3Igd2hvc2UKSW5kZXg6IGdjYy90cmVl LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL3RyZWUuYwkocmV2 aXNpb24gMTY1OTEzKQorKysgZ2NjL3RyZWUuYwkod29ya2luZyBjb3B5KQpA QCAtMTM2Niw2ICsxMzY2LDI4IEBAIGJ1aWxkX3ZlY3Rvcl9mcm9tX2N0b3Ig KHRyZWUgdHlwZSwgVkVDKGMKICAgcmV0dXJuIGJ1aWxkX3ZlY3RvciAodHlw ZSwgbnJldmVyc2UgKGxpc3QpKTsKIH0KIAorLyogQnVpbGQgYSB2ZWN0b3Ig b2YgdHlwZSBWRUNUWVBFIHdoZXJlIGFsbCB0aGUgZWxlbWVudHMgYXJlIFND cy4gICovCit0cmVlCitidWlsZF92ZWN0b3JfZnJvbV92YWwgKHRyZWUgdmVj dHlwZSwgdHJlZSBzYykgCit7CisgIGludCBpLCBudW5pdHMgPSBUWVBFX1ZF Q1RPUl9TVUJQQVJUUyAodmVjdHlwZSk7CisgIFZFQyhjb25zdHJ1Y3Rvcl9l bHQsIGdjKSAqdiA9IE5VTEw7CisKKyAgaWYgKHNjID09IGVycm9yX21hcmtf bm9kZSkKKyAgICByZXR1cm4gc2M7CisKKyAgZ2NjX2Fzc2VydCAoVFJFRV9U WVBFIChzYykgPT0gVFJFRV9UWVBFICh2ZWN0eXBlKSk7CisKKyAgdiA9IFZF Q19hbGxvYyAoY29uc3RydWN0b3JfZWx0LCBnYywgbnVuaXRzKTsKKyAgZm9y IChpID0gMDsgaSA8IG51bml0czsgKytpKQorICAgIENPTlNUUlVDVE9SX0FQ UEVORF9FTFQgKHYsIHNpemVfaW50IChpKSwgc2MpOworCisgIGlmIChDT05T VEFOVF9DTEFTU19QIChzYykpCisgICAgcmV0dXJuIGJ1aWxkX3ZlY3Rvcl9m cm9tX2N0b3IgKHZlY3R5cGUsIHYpOworICBlbHNlIAorICAgIHJldHVybiBi dWlsZF9jb25zdHJ1Y3RvciAodmVjdHlwZSwgdik7Cit9CisKIC8qIFJldHVy biBhIG5ldyBDT05TVFJVQ1RPUiBub2RlIHdob3NlIHR5cGUgaXMgVFlQRSBh bmQgd2hvc2UgdmFsdWVzCiAgICBhcmUgaW4gdGhlIFZFQyBwb2ludGVkIHRv IGJ5IFZBTFMuICAqLwogdHJlZQpJbmRleDogZ2NjL3RyZWUuaAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBnY2MvdHJlZS5oCShyZXZpc2lvbiAxNjU5 MTMpCisrKyBnY2MvdHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDM0LDYg KzQwMzQsNyBAQCBleHRlcm4gdHJlZSBidWlsZF9pbnRfY3N0X3R5cGUgKHRy ZWUsIEhPCiBleHRlcm4gdHJlZSBidWlsZF9pbnRfY3N0X3dpZGUgKHRyZWUs IHVuc2lnbmVkIEhPU1RfV0lERV9JTlQsIEhPU1RfV0lERV9JTlQpOwogZXh0 ZXJuIHRyZWUgYnVpbGRfdmVjdG9yICh0cmVlLCB0cmVlKTsKIGV4dGVybiB0 cmVlIGJ1aWxkX3ZlY3Rvcl9mcm9tX2N0b3IgKHRyZWUsIFZFQyhjb25zdHJ1 Y3Rvcl9lbHQsZ2MpICopOworZXh0ZXJuIHRyZWUgYnVpbGRfdmVjdG9yX2Zy b21fdmFsICh0cmVlLCB0cmVlKTsKIGV4dGVybiB0cmVlIGJ1aWxkX2NvbnN0 cnVjdG9yICh0cmVlLCBWRUMoY29uc3RydWN0b3JfZWx0LGdjKSAqKTsKIGV4 dGVybiB0cmVlIGJ1aWxkX2NvbnN0cnVjdG9yX3NpbmdsZSAodHJlZSwgdHJl ZSwgdHJlZSk7CiBleHRlcm4gdHJlZSBidWlsZF9jb25zdHJ1Y3Rvcl9mcm9t X2xpc3QgKHRyZWUsIHRyZWUpOwpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nY2Mu Yy10b3J0dXJlL2V4ZWN1dGUvdmVjdG9yLXNoaWZ0Mi5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9l eGVjdXRlL3ZlY3Rvci1zaGlmdDIuYwkocmV2aXNpb24gMCkKKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRlL3ZlY3Rvci1zaGlmdDIu YwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorLyogZGctZG8gcnVu ICovCisjZGVmaW5lIHZlY3RvcihlbGNvdW50LCB0eXBlKSAgXAorX19hdHRy aWJ1dGVfXygodmVjdG9yX3NpemUoKGVsY291bnQpKnNpemVvZih0eXBlKSkp KSB0eXBlCisKKyNkZWZpbmUgdmlkeCh0eXBlLCB2ZWMsIGlkeCkgKCooKHR5 cGUgKikgJih2ZWMpICsgaWR4KSkKKyNkZWZpbmUgdWludCB1bnNpZ25lZCBp bnQKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKyAg ICB2ZWN0b3IoNCwgdWludCkgdnVpbnQgID0geyAxLCAgMiwgIDMsICA0fTsK KyAgICB2ZWN0b3IoNCwgIGludCkgdmludDAgID0geyAxLCAgMSwgIDEsICAx fTsKKyAgICB2ZWN0b3IoNCwgIGludCkgdmludDEgID0gey0xLCAtMSwgLTEs IC0xfTsKKworICAgIHZlY3Rvcig0LCAgaW50KSBpMSwgaTIsIGkzOworICAg IHZlY3Rvcig0LCB1aW50KSB1MSwgdTIsIHUzOworCisgICAgaTEgPSB2aW50 MTw8IHZpbnQwOworICAgIAorICAgIGlmICh2aWR4KGludCwgaTEsIDApICE9 ICgoaW50KS0xIDw8IChpbnQpMSkpCisgICAgICAgIF9fYnVpbHRpbl9hYm9y dCAoKTsKKyAgICBpZiAodmlkeChpbnQsIGkxLCAxKSAhPSAoKGludCktMSA8 PCAoaW50KTEpKQorICAgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAg aWYgKHZpZHgoaW50LCBpMSwgMikgIT0gKChpbnQpLTEgPDwgKGludCkxKSkK KyAgICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAgIGlmICh2aWR4KGlu dCwgaTEsIDMpICE9ICgoaW50KS0xIDw8IChpbnQpMSkpCisgICAgICAgIF9f YnVpbHRpbl9hYm9ydCAoKTsKKworICAgIHUxID0gdnVpbnQgPDwgdmludDA7 CisKKyAgICBpZiAodmlkeChpbnQsIHUxLCAwKSAhPSAoKHVpbnQpMSAgPDwg KGludCkxKSkKKyAgICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAgIGlm ICh2aWR4KGludCwgdTEsIDEpICE9ICgodWludCkyICA8PCAoaW50KTEpKQor ICAgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgaWYgKHZpZHgoaW50 LCB1MSwgMikgIT0gKCh1aW50KTMgIDw8IChpbnQpMSkpCisgICAgICAgIF9f YnVpbHRpbl9hYm9ydCAoKTsKKyAgICBpZiAodmlkeChpbnQsIHUxLCAzKSAh PSAoKHVpbnQpNCAgPDwgKGludCkxKSkKKyAgICAgICAgX19idWlsdGluX2Fi b3J0ICgpOworCisgICAgCisgICAgaTIgPSB2aW50MSA+PiB2dWludDsKKwor ICAgIGlmICh2aWR4KGludCwgaTIsIDApICE9ICgoaW50KS0xICA+PiAodWlu dCkxKSkKKyAgICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAgIGlmICh2 aWR4KGludCwgaTIsIDEpICE9ICgoaW50KS0xICA+PiAodWludCkyKSkKKyAg ICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAgIGlmICh2aWR4KGludCwg aTIsIDIpICE9ICgoaW50KS0xICA+PiAodWludCkzKSkKKyAgICAgICAgX19i dWlsdGluX2Fib3J0ICgpOworICAgIGlmICh2aWR4KGludCwgaTIsIDMpICE9 ICgoaW50KS0xICA+PiAodWludCk0KSkKKyAgICAgICAgX19idWlsdGluX2Fi b3J0ICgpOworCisKKyAgICB2aW50MSA+Pj0gdnVpbnQ7CisgICAgCisgICAg dnVpbnQgPDw9IHZpbnQwOworICAgIHZ1aW50IDw8PSB2aW50MTsKKworCisg ICAgcmV0dXJuIDA7Cit9CisKKwpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nY2Mu Yy10b3J0dXJlL2V4ZWN1dGUvdmVjdG9yLXNoaWZ0LmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4 ZWN1dGUvdmVjdG9yLXNoaWZ0LmMJKHJldmlzaW9uIDApCisrKyBnY2MvdGVz dHN1aXRlL2djYy5jLXRvcnR1cmUvZXhlY3V0ZS92ZWN0b3Itc2hpZnQuYwko cmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorCisjZGVmaW5lIHZlY3Rv ciBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZShzaXplb2YoaW50KSo0KSAp KQorCitzdGF0aWMgdmVjdG9yIGludCBhbGxvbmVzID0gezEsIDEsIDEsIDF9 Oworc3RhdGljIHZlY3RvciBpbnQgYWxsemVyb3MgPSB7MCwgMCwgMCwgMH07 CitzdGF0aWMgdmVjdG9yIGludCBudW1iZXJzID0gezAsIDEsIDIsIDN9Owor c3RhdGljIHZlY3RvciBpbnQgbnVtYmVyc2xlZnRzaGlmdGFsbG9uZXMgPSB7 MCwgMiwgNCwgNn07CitzdGF0aWMgdmVjdG9yIGludCBudW1iZXJzcmlnaHRz aGlmdGFsbG9uZXMgPSB7MCwgMCwgMSwgMX07CisKKworc3RhdGljIHZlY3Rv ciB1bnNpZ25lZCBpbnQgdWFsbG9uZXMgPSB7MSwgMSwgMSwgMX07CitzdGF0 aWMgdmVjdG9yIHVuc2lnbmVkIGludCB1YWxsemVyb3MgPSB7MCwgMCwgMCwg MH07CitzdGF0aWMgdmVjdG9yIHVuc2lnbmVkIGludCB1bnVtYmVycyA9IHsw LCAxLCAyLCAzfTsKK3N0YXRpYyB2ZWN0b3IgdW5zaWduZWQgaW50IHVudW1i ZXJzbGVmdHNoaWZ0YWxsb25lcyA9IHswLCAyLCA0LCA2fTsKK3N0YXRpYyB2 ZWN0b3IgdW5zaWduZWQgaW50IHVudW1iZXJzcmlnaHRzaGlmdGFsbG9uZXMg PSB7MCwgMCwgMSwgMX07CisKKyNkZWZpbmUgVEVTVChyZXN1bHQsIGV4cGVj dGVkKSBcCitkbyB7IFwKKyAgdHlwZW9mKHJlc3VsdCkgcmVzdWx0MSA9IHJl c3VsdDsgXAorICBpZihzaXplb2YgKHJlc3VsdDEpICE9IHNpemVvZiAoZXhw ZWN0ZWQpKSBcCisgICAgX19idWlsdGluX2Fib3J0ICgpOyBcCisgIGlmIChf X2J1aWx0aW5fbWVtY21wICgmcmVzdWx0MSwgJmV4cGVjdGVkLCBzaXplb2Yo cmVzdWx0MSkpICE9IDApIFwKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7IFwK K313aGlsZSAoMCk7CisKK2ludCBtYWluKHZvaWQpCit7CisgIHZlY3RvciBp bnQgcmVzdWx0OworICBURVNUICgobnVtYmVycyA8PCBhbGx6ZXJvcyksIG51 bWJlcnMpOworICBURVNUICgobnVtYmVycyA+PiBhbGx6ZXJvcyksIG51bWJl cnMpOworICBURVNUKChudW1iZXJzIDw8IGFsbG9uZXMpLCBudW1iZXJzbGVm dHNoaWZ0YWxsb25lcyk7CisgIFRFU1QoKG51bWJlcnMgPj4gYWxsb25lcyks IG51bWJlcnNyaWdodHNoaWZ0YWxsb25lcyk7CisgIC8qIFRlc3QgbGVmdCBz aGlmdCBmb2xsb3dlZCBieSBhIHJpZ2h0IHNoaWZ0LCBudW1iZXJzIHNob3Vs ZCBiZSBiYWNrIGFzCisgICAgIG51bWJlcnMgYXJlIGFsbCBzbWFsbCBudW1i ZXJzIGFuZCBubyBsb3NlIG9mIHByZWNpc2lvbiBoYXBwZW5zLiAgICovCisg IFRFU1QoKG51bWJlcnMgPDwgYWxsb25lcykgPj4gYWxsb25lcywgbnVtYmVy cyk7CisgIAorICAKKyAgCisgIFRFU1QgKCh1bnVtYmVycyA8PCB1YWxsemVy b3MpLCB1bnVtYmVycyk7CisgIFRFU1QgKCh1bnVtYmVycyA+PiB1YWxsemVy b3MpLCB1bnVtYmVycyk7CisgIFRFU1QoKHVudW1iZXJzIDw8IHVhbGxvbmVz KSwgdW51bWJlcnNsZWZ0c2hpZnRhbGxvbmVzKTsKKyAgVEVTVCgodW51bWJl cnMgPj4gdWFsbG9uZXMpLCB1bnVtYmVyc3JpZ2h0c2hpZnRhbGxvbmVzKTsK KyAgLyogVGVzdCBsZWZ0IHNoaWZ0IGZvbGxvd2VkIGJ5IGEgcmlnaHQgc2hp ZnQsIG51bWJlcnMgc2hvdWxkIGJlIGJhY2sgYXMKKyAgICAgbnVtYmVycyBh cmUgYWxsIHNtYWxsIG51bWJlcnMgYW5kIG5vIGxvc2Ugb2YgcHJlY2lzaW9u IGhhcHBlbnMuICAgKi8KKyAgVEVTVCgodW51bWJlcnMgPDwgdWFsbG9uZXMp ID4+IHVhbGxvbmVzLCB1bnVtYmVycyk7CisKKyAgcmV0dXJuIDA7ICAKK30K SW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRlL3Zl Y3Rvci1zaGlmdDEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2Mv dGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvZXhlY3V0ZS92ZWN0b3Itc2hpZnQx LmMJKHJldmlzaW9uIDApCisrKyBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1 cmUvZXhlY3V0ZS92ZWN0b3Itc2hpZnQxLmMJKHJldmlzaW9uIDApCkBAIC0w LDAgKzEsMTcgQEAKKyNkZWZpbmUgdmVjdG9yIF9fYXR0cmlidXRlX18oKHZl Y3Rvcl9zaXplKDgqc2l6ZW9mKHNob3J0KSkpKQorCitpbnQgbWFpbiAoaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworICB2ZWN0b3Igc2hvcnQgdjAgPSB7 YXJnYywyLDMsNCw1LDYsN307CisgIHZlY3RvciBzaG9ydCB2MSA9IHsyLDIs MiwyLDIsMiwyfTsKKyAgdmVjdG9yIHNob3J0IHIxLHIyLHIzLHI0OworICBp bnQgaSA9IDg7CisKKyAgcjEgPSB2MCA8PCAxOworICByMiA9IDEgPDwgdjA7 CisKKyAgcjMgPSB2MCA8PCB2MTsKKyAgcjQgPSB2MCA+PiB2MTsKKworICBy ZXR1cm4gMDsKK30KKwpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVj dG9yLXNoaWZ0NC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Rvci1zaGlmdDQuYwkocmV2aXNpb24gMCkK KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Rvci1zaGlmdDQuYwkocmV2 aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorLyogeyBkZy1kbyBjb21waWxl IH0gKi8KKworI2RlZmluZSB2ZWN0b3IoZWxjb3VudCwgdHlwZSkgIFwKK19f YXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKChlbGNvdW50KSpzaXplb2YodHlw ZSkpKSkgdHlwZQorCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJn dltdKSB7CisgICAgdmVjdG9yKDgsIHNob3J0KSB2MCA9IHthcmdjLDIsMyw0 LDUsNiw3fTsKKyAgICBzaG9ydCBzYzsKKworICAgIHYwID4+PSBzY2FsYXIw OyAvKiB7IGRnLWVycm9yICIuKnNjYWxhcjAuKnVuZGVjbGFyZWQiIH0gKi8K KyAgICAKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDogZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvdmVjdG9yLXNoaWZ0LmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdG9yLXNoaWZ0LmMJKHJl dmlzaW9uIDApCisrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0b3Itc2hp ZnQuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorLyogeyBkZy1k byBjb21waWxlIH0gKi8KKyNkZWZpbmUgdmVjdG9yKGVsY291bnQsIHR5cGUp ICBcCitfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgoZWxjb3VudCkqc2l6 ZW9mKHR5cGUpKSkpIHR5cGUKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFy ICphcmd2W10pIHsKKyAgICB2ZWN0b3IoNCxjaGFyKSB2Y2hhciA9IHsxLDIs Myw0fTsKKyAgICB2ZWN0b3IoNCwgaW50KSB2aW50ICA9IHsxLDEsMSwxfTsK KyAgICAKKyAgICB2aW50IDw8PSB2Y2hhcjsgIC8qIHsgZGctZXJyb3IgIm52 YWxpZCBvcGVyYW5kcyB0byBiaW5hcnkgPDwiIH0gKi8KKyAgICB2Y2hhciA+ Pj0gdmludDsgIC8qIHsgZGctZXJyb3IgIm52YWxpZCBvcGVyYW5kcyB0byBi aW5hcnkgPj4iIH0gKi8KKworICAgIHJldHVybiAwOworfQorCkluZGV4OiBn Y2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0b3Itc2hpZnQxLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdG9y LXNoaWZ0MS5jCShyZXZpc2lvbiAwKQorKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvdmVjdG9yLXNoaWZ0MS5jCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4 IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworI2RlZmluZSB2ZWN0b3Io ZWxjb3VudCwgdHlwZSkgIFwKK19fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXpl KChlbGNvdW50KSpzaXplb2YodHlwZSkpKSkgdHlwZQorCitpbnQgbWFpbiAo aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworICAgIHZlY3Rvcig0LCBmbG9h dCkgdmZsb2F0MCA9IHsxLiwgMi4sIDMuLCA0Ln07CisgICAgdmVjdG9yKDQs IGZsb2F0KSB2ZmxvYXQxID0gezEuLCAyLiwgMy4sIDQufTsKKyAgICAKKyAg ICB2ZWN0b3IoNCwgICBpbnQpIHZpbnQgICA9IHsxLCAgMSwgIDEsICAxIH07 CisgICAgCisgICAgdmludCA8PD0gdmZsb2F0MDsgIC8qIHsgZGctZXJyb3Ig Im52YWxpZCBvcGVyYW5kcyB0byBiaW5hcnkgPDwiIH0gKi8KKyAgICB2Zmxv YXQwID4+PSB2aW50OyAgLyogeyBkZy1lcnJvciAibnZhbGlkIG9wZXJhbmRz IHRvIGJpbmFyeSA+PiIgfSAqLworCisgICAgdmZsb2F0MCA8PD0gdmZsb2F0 MTsgIC8qIHsgZGctZXJyb3IgIm52YWxpZCBvcGVyYW5kcyB0byBiaW5hcnkg PDwiIH0gKi8KKworICAgIHJldHVybiAwOworfQorCkluZGV4OiBnY2MvdGVz dHN1aXRlL2djYy5kZy92ZWN0b3Itc2hpZnQyLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdG9yLXNoaWZ0 Mi5jCShyZXZpc2lvbiAwKQorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVj dG9yLXNoaWZ0Mi5jCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisv KiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1mbm8tdmFy LXRyYWNraW5nLWFzc2lnbm1lbnRzIiB9ICovCisKKyNkZWZpbmUgdmVjdG9y KGVsY291bnQsIHR5cGUpICBcCitfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6 ZSgoZWxjb3VudCkqc2l6ZW9mKHR5cGUpKSkpIHR5cGUKKworI2RlZmluZSB2 aWR4KHR5cGUsIHZlYywgaWR4KSAoKigodHlwZSAqKSAmKHZlYykgKyBpZHgp KQorI2RlZmluZSB1Y2hhciB1bnNpZ25lZCBjaGFyCisKKyNkZWZpbmUgY2gx NCAxLDIsMyw0CisjZGVmaW5lIGNoMSAgMSwxLDEsMQorI2RlZmluZSBjaG0x IC0xLC0xLC0xLC0xCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJn dltdKSB7CisgICAgdmVjdG9yKDE2LCB1Y2hhcikgdnVjaGFyICA9IHsgY2gx NCwgY2gxNCwgY2gxNCwgY2gxNH07CisgICAgdmVjdG9yKDE2LCAgY2hhcikg dmNoYXIwICA9IHsgY2gxLCBjaDEsIGNoMSwgY2gxfTsKKyAgICB2ZWN0b3Io MTYsICBjaGFyKSB2Y2hhcjEgID0geyBjaG0xLCBjaG0xLCBjaG0xLCBjaG0x fTsKKworICAgIHZlY3RvcigxNiwgIGNoYXIpIGkxLCBpMiwgaTM7CisgICAg dmVjdG9yKDE2LCB1Y2hhcikgdTEsIHUyLCB1MzsKKworICAgIGkxID0gdmNo YXIxPDwgdmNoYXIwOworICAgIAorICAgIGlmICh2aWR4KGNoYXIsIGkxLCAw KSAhPSAoKGNoYXIpLTEgPDwgKGNoYXIpMSkpCisgICAgICAgIF9fYnVpbHRp bl9hYm9ydCAoKTsKKyAgICBpZiAodmlkeChjaGFyLCBpMSwgMSkgIT0gKChj aGFyKS0xIDw8IChjaGFyKTEpKQorICAgICAgICBfX2J1aWx0aW5fYWJvcnQg KCk7CisgICAgaWYgKHZpZHgoY2hhciwgaTEsIDIpICE9ICgoY2hhciktMSA8 PCAoY2hhcikxKSkKKyAgICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAg IGlmICh2aWR4KGNoYXIsIGkxLCAzKSAhPSAoKGNoYXIpLTEgPDwgKGNoYXIp MSkpCisgICAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB1MSA9IHZ1 Y2hhciA8PCB2Y2hhcjA7CisKKyAgICBpZiAodmlkeChjaGFyLCB1MSwgMCkg IT0gKCh1Y2hhcikxICA8PCAoY2hhcikxKSkKKyAgICAgICAgX19idWlsdGlu X2Fib3J0ICgpOworICAgIGlmICh2aWR4KGNoYXIsIHUxLCAxKSAhPSAoKHVj aGFyKTIgIDw8IChjaGFyKTEpKQorICAgICAgICBfX2J1aWx0aW5fYWJvcnQg KCk7CisgICAgaWYgKHZpZHgoY2hhciwgdTEsIDIpICE9ICgodWNoYXIpMyAg PDwgKGNoYXIpMSkpCisgICAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAg ICBpZiAodmlkeChjaGFyLCB1MSwgMykgIT0gKCh1Y2hhcik0ICA8PCAoY2hh cikxKSkKKyAgICAgICAgX19idWlsdGluX2Fib3J0ICgpOworCisgICAgCisg ICAgaTIgPSB2Y2hhcjEgPj4gdnVjaGFyOworCisgICAgaWYgKHZpZHgoY2hh ciwgaTIsIDApICE9ICgoY2hhciktMSAgPj4gKHVjaGFyKTEpKQorICAgICAg ICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgaWYgKHZpZHgoY2hhciwgaTIs IDEpICE9ICgoY2hhciktMSAgPj4gKHVjaGFyKTIpKQorICAgICAgICBfX2J1 aWx0aW5fYWJvcnQgKCk7CisgICAgaWYgKHZpZHgoY2hhciwgaTIsIDIpICE9 ICgoY2hhciktMSAgPj4gKHVjaGFyKTMpKQorICAgICAgICBfX2J1aWx0aW5f YWJvcnQgKCk7CisgICAgaWYgKHZpZHgoY2hhciwgaTIsIDMpICE9ICgoY2hh ciktMSAgPj4gKHVjaGFyKTQpKQorICAgICAgICBfX2J1aWx0aW5fYWJvcnQg KCk7CisgICAgCisgICAgdmNoYXIxID4+PSB2dWNoYXI7CisgICAgdnVjaGFy IDw8PSB2Y2hhcjA7CisgICAgdnVjaGFyIDw8PSB2Y2hhcjE7CisKKyAgICBy ZXR1cm4gMDsKK30KKwpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVj dG9yLXNoaWZ0My5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Rvci1zaGlmdDMuYwkocmV2aXNpb24gMCkK KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Rvci1zaGlmdDMuYwkocmV2 aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorLyogeyBkZy1kbyBjb21waWxl IH0gKi8KKworI2RlZmluZSB2ZWN0b3IoZWxjb3VudCwgdHlwZSkgIFwKK19f YXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKChlbGNvdW50KSpzaXplb2YodHlw ZSkpKSkgdHlwZQorCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJn dltdKSB7CisgICAgdmVjdG9yKDgsIHNob3J0KSB2MCA9IHthcmdjLDIsMyw0 LDUsNiw3fTsKKyAgICBzaG9ydCBzYzsKKworICAgIAorICAgIHNjYWxhcjEg PDw9IHYwOyAvKiB7IGRnLWVycm9yICIuKnNjYWxhcjEuKnVuZGVjbGFyZWQi IH0gKi8KKyAgIAorICAgIHJldHVybiAwOworfQorCkluZGV4OiBnY2MvYy10 eXBlY2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvYy10eXBl Y2suYwkocmV2aXNpb24gMTY1OTEzKQorKysgZ2NjL2MtdHlwZWNrLmMJKHdv cmtpbmcgY29weSkKQEAgLTk1NjUsNiArOTU2NSwzMCBAQCBidWlsZF9iaW5h cnlfb3AgKGxvY2F0aW9uX3QgbG9jYXRpb24sIGVuCiAKICAgb2JqY19vayA9 IG9iamNfY29tcGFyZV90eXBlcyAodHlwZTAsIHR5cGUxLCAtMywgTlVMTF9U UkVFKTsKIAorICAvKiBGb3IgJ3ZlY3RvciA8c2hpZnQ+IHNjYWxhcicgb3Ig J3NjYWxhciA8c2hpZnQ+IHZlY3RvcicsIHdlIGNvbnZlcnQgCisgICAgIGEg c2NhbGFyIHRvIGEgdmVjdG9yLiBUcnVuY2F0aW5nIHRoZSBzaGlmdCBhbW91 bnQgaXMgb2suICAqLworICBpZiAoKGNvZGUwID09IFZFQ1RPUl9UWVBFIHx8 IGNvZGUxID09IFZFQ1RPUl9UWVBFKQorICAgICAgJiYgKGNvZGUwICE9IGNv ZGUxKSkKKyAgICB7CisgICAgICBzd2l0Y2ggKGNvZGUpCisgICAgICAgIHsK KyAgICAgICAgICBjYXNlIFJTSElGVF9FWFBSOgorICAgICAgICAgIGNhc2Ug TFNISUZUX0VYUFI6CisgICAgICAgICAgICBpZiAoY29kZTAgPT0gSU5URUdF Ul9UWVBFKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHJl ZSBzYyA9IHNhdmVfZXhwciAob3AwKTsKKyAgICAgICAgICAgICAgICBzYyA9 IGNvbnZlcnQgKFRSRUVfVFlQRSAodHlwZTEpLCBzYyk7CisgICAgICAgICAg ICAgICAgb3AwID0gYnVpbGRfdmVjdG9yX2Zyb21fdmFsICh0eXBlMSwgc2Mp OworICAgICAgICAgICAgICAgIG9yaWdfdHlwZTAgPSB0eXBlMCA9IFRSRUVf VFlQRSAob3AwKTsKKyAgICAgICAgICAgICAgICBjb2RlMCA9IFRSRUVfQ09E RSAodHlwZTApOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh azsKKworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsK KyAgICAgICAgfQorICAgIH0KKwogICBzd2l0Y2ggKGNvZGUpCiAgICAgewog ICAgIGNhc2UgUExVU19FWFBSOgpAQCAtOTcyNyw3ICs5NzUxLDIxIEBAIGJ1 aWxkX2JpbmFyeV9vcCAobG9jYXRpb25fdCBsb2NhdGlvbiwgZW4KIAkgQWxz byBzZXQgU0hPUlRfU0hJRlQgaWYgc2hpZnRpbmcgcmlnaHR3YXJkLiAgKi8K IAogICAgIGNhc2UgUlNISUZUX0VYUFI6Ci0gICAgICBpZiAoKGNvZGUwID09 IElOVEVHRVJfVFlQRSB8fCBjb2RlMCA9PSBGSVhFRF9QT0lOVF9UWVBFKQor ICAgICAgaWYgKGNvZGUwID09IFZFQ1RPUl9UWVBFICYmIGNvZGUxID09IElO VEVHRVJfVFlQRQorICAgICAgICAgICYmIFRSRUVfQ09ERSAoVFJFRV9UWVBF ICh0eXBlMCkpID09IElOVEVHRVJfVFlQRSkKKyAgICAgICAgeworICAgICAg ICAgIHJlc3VsdF90eXBlID0gdHlwZTA7CisgICAgICAgICAgY29udmVydGVk ID0gMTsKKyAgICAgICAgfQorICAgICAgZWxzZSBpZiAoY29kZTAgPT0gVkVD VE9SX1RZUEUgJiYgY29kZTEgPT0gVkVDVE9SX1RZUEUKKwkgICYmIFRSRUVf Q09ERSAoVFJFRV9UWVBFICh0eXBlMCkpID09IElOVEVHRVJfVFlQRQorICAg ICAgICAgICYmIFRSRUVfQ09ERSAoVFJFRV9UWVBFICh0eXBlMSkpID09IElO VEVHRVJfVFlQRQorICAgICAgICAgICYmIFRZUEVfVkVDVE9SX1NVQlBBUlRT ICh0eXBlMCkgPT0gVFlQRV9WRUNUT1JfU1VCUEFSVFMgKHR5cGUxKSkKKwl7 CisJICByZXN1bHRfdHlwZSA9IHR5cGUwOworCSAgY29udmVydGVkID0gMTsK Kwl9CisgICAgICBlbHNlIGlmICgoY29kZTAgPT0gSU5URUdFUl9UWVBFIHx8 IGNvZGUwID09IEZJWEVEX1BPSU5UX1RZUEUpCiAJICAmJiBjb2RlMSA9PSBJ TlRFR0VSX1RZUEUpCiAJewogCSAgaWYgKFRSRUVfQ09ERSAob3AxKSA9PSBJ TlRFR0VSX0NTVCkKQEAgLTk3NTQsOSArOTc5MiwxMCBAQCBidWlsZF9iaW5h cnlfb3AgKGxvY2F0aW9uX3QgbG9jYXRpb24sIGVuCiAKIAkgIC8qIFVzZSB0 aGUgdHlwZSBvZiB0aGUgdmFsdWUgdG8gYmUgc2hpZnRlZC4gICovCiAJICBy ZXN1bHRfdHlwZSA9IHR5cGUwOwotCSAgLyogQ29udmVydCB0aGUgc2hpZnQt Y291bnQgdG8gYW4gaW50ZWdlciwgcmVnYXJkbGVzcyBvZiBzaXplCi0JICAg ICBvZiB2YWx1ZSBiZWluZyBzaGlmdGVkLiAgKi8KLQkgIGlmIChUWVBFX01B SU5fVkFSSUFOVCAoVFJFRV9UWVBFIChvcDEpKSAhPSBpbnRlZ2VyX3R5cGVf bm9kZSkKKwkgIC8qIENvbnZlcnQgdGhlIG5vbiB2ZWN0b3Igc2hpZnQtY291 bnQgdG8gYW4gaW50ZWdlciwgcmVnYXJkbGVzcworCSAgICAgb2Ygc2l6ZSBv ZiB2YWx1ZSBiZWluZyBzaGlmdGVkLiAgKi8KKwkgIGlmIChUUkVFX0NPREUg KFRSRUVfVFlQRSAob3AxKSkgIT0gVkVDVE9SX1RZUEUKKwkgICAgICAmJiBU WVBFX01BSU5fVkFSSUFOVCAoVFJFRV9UWVBFIChvcDEpKSAhPSBpbnRlZ2Vy X3R5cGVfbm9kZSkKIAkgICAgb3AxID0gY29udmVydCAoaW50ZWdlcl90eXBl X25vZGUsIG9wMSk7CiAJICAvKiBBdm9pZCBjb252ZXJ0aW5nIG9wMSB0byBy ZXN1bHRfdHlwZSBsYXRlci4gICovCiAJICBjb252ZXJ0ZWQgPSAxOwpAQCAt OTc2NCw3ICs5ODAzLDIxIEBAIGJ1aWxkX2JpbmFyeV9vcCAobG9jYXRpb25f dCBsb2NhdGlvbiwgZW4KICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBMU0hJ RlRfRVhQUjoKLSAgICAgIGlmICgoY29kZTAgPT0gSU5URUdFUl9UWVBFIHx8 IGNvZGUwID09IEZJWEVEX1BPSU5UX1RZUEUpCisgICAgICBpZiAoY29kZTAg PT0gVkVDVE9SX1RZUEUgJiYgY29kZTEgPT0gSU5URUdFUl9UWVBFCisgICAg ICAgICAgJiYgVFJFRV9DT0RFIChUUkVFX1RZUEUgKHR5cGUwKSkgPT0gSU5U RUdFUl9UWVBFKQorICAgICAgICB7CisgICAgICAgICAgcmVzdWx0X3R5cGUg PSB0eXBlMDsKKyAgICAgICAgICBjb252ZXJ0ZWQgPSAxOworICAgICAgICB9 CisgICAgICBlbHNlIGlmIChjb2RlMCA9PSBWRUNUT1JfVFlQRSAmJiBjb2Rl MSA9PSBWRUNUT1JfVFlQRQorCSAgJiYgVFJFRV9DT0RFIChUUkVFX1RZUEUg KHR5cGUwKSkgPT0gSU5URUdFUl9UWVBFCisgICAgICAgICAgJiYgVFJFRV9D T0RFIChUUkVFX1RZUEUgKHR5cGUxKSkgPT0gSU5URUdFUl9UWVBFCisgICAg ICAgICAgJiYgVFlQRV9WRUNUT1JfU1VCUEFSVFMgKHR5cGUwKSA9PSBUWVBF X1ZFQ1RPUl9TVUJQQVJUUyAodHlwZTEpKQorCXsKKwkgIHJlc3VsdF90eXBl ID0gdHlwZTA7CisJICBjb252ZXJ0ZWQgPSAxOworCX0KKyAgICAgIGVsc2Ug aWYgKChjb2RlMCA9PSBJTlRFR0VSX1RZUEUgfHwgY29kZTAgPT0gRklYRURf UE9JTlRfVFlQRSkKIAkgICYmIGNvZGUxID09IElOVEVHRVJfVFlQRSkKIAl7 CiAJICBpZiAoVFJFRV9DT0RFIChvcDEpID09IElOVEVHRVJfQ1NUKQpAQCAt OTc4Niw5ICs5ODM5LDEwIEBAIGJ1aWxkX2JpbmFyeV9vcCAobG9jYXRpb25f dCBsb2NhdGlvbiwgZW4KIAogCSAgLyogVXNlIHRoZSB0eXBlIG9mIHRoZSB2 YWx1ZSB0byBiZSBzaGlmdGVkLiAgKi8KIAkgIHJlc3VsdF90eXBlID0gdHlw ZTA7Ci0JICAvKiBDb252ZXJ0IHRoZSBzaGlmdC1jb3VudCB0byBhbiBpbnRl Z2VyLCByZWdhcmRsZXNzIG9mIHNpemUKLQkgICAgIG9mIHZhbHVlIGJlaW5n IHNoaWZ0ZWQuICAqLwotCSAgaWYgKFRZUEVfTUFJTl9WQVJJQU5UIChUUkVF X1RZUEUgKG9wMSkpICE9IGludGVnZXJfdHlwZV9ub2RlKQorCSAgLyogQ29u dmVydCB0aGUgbm9uIHZlY3RvciBzaGlmdC1jb3VudCB0byBhbiBpbnRlZ2Vy LCByZWdhcmRsZXNzCisJICAgICBvZiBzaXplIG9mIHZhbHVlIGJlaW5nIHNo aWZ0ZWQuICAqLworCSAgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChvcDEp KSAhPSBWRUNUT1JfVFlQRQorCSAgICAgICYmIFRZUEVfTUFJTl9WQVJJQU5U IChUUkVFX1RZUEUgKG9wMSkpICE9IGludGVnZXJfdHlwZV9ub2RlKQogCSAg ICBvcDEgPSBjb252ZXJ0IChpbnRlZ2VyX3R5cGVfbm9kZSwgb3AxKTsKIAkg IC8qIEF2b2lkIGNvbnZlcnRpbmcgb3AxIHRvIHJlc3VsdF90eXBlIGxhdGVy LiAgKi8KIAkgIGNvbnZlcnRlZCA9IDE7Cg== --0016362844f273c0e0049374256a-- ---1152306461-1703087293-1288044634=:17296--