From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 35659 invoked by alias); 15 May 2015 16:52:30 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 35640 invoked by uid 89); 15 May 2015 16:52:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.7 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-oi0-f51.google.com Received: from mail-oi0-f51.google.com (HELO mail-oi0-f51.google.com) (209.85.218.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 15 May 2015 16:52:26 +0000 Received: by oign205 with SMTP id n205so86687113oig.2 for ; Fri, 15 May 2015 09:52:24 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.45.104 with SMTP id l8mr9332458oem.61.1431708744355; Fri, 15 May 2015 09:52:24 -0700 (PDT) Received: by 10.76.54.14 with HTTP; Fri, 15 May 2015 09:52:24 -0700 (PDT) In-Reply-To: <5555B0C2020000780007A5FB@mail.emea.novell.com> References: <20150511212331.GA1838@intel.com> <55520C440200007800079718@mail.emea.novell.com> <5552318402000078000798A8@mail.emea.novell.com> <555233B602000078000798EF@mail.emea.novell.com> <555235930200007800079911@mail.emea.novell.com> <5555B0C2020000780007A5FB@mail.emea.novell.com> Date: Fri, 15 May 2015 16:52:00 -0000 Message-ID: Subject: Re: [committed, PATCH] Remove Disp16|Disp32 from 64-bit direct branches From: "H.J. Lu" To: Jan Beulich Cc: "Maciej W. Rozycki" , Binutils , Michael Matz Content-Type: multipart/mixed; boundary=089e0149ce3821b7a5051621ab0e X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg00143.txt.bz2 --089e0149ce3821b7a5051621ab0e Content-Type: text/plain; charset=UTF-8 Content-length: 5179 On Thu, May 14, 2015 at 11:39 PM, Jan Beulich wrote: >>>> On 13.05.15 at 18:53, wrote: >> On Wed, May 13, 2015 at 9:50 AM, Maciej W. Rozycki >> wrote: >>> On Wed, 13 May 2015, H.J. Lu wrote: >>> >>>> >> > Well, what do you suggest? Your change is clearly wrong as well. >>>> >> >>>> >> I won't call it wrong since it implies there is a right. >>>> > >>>> > Of course there is a right. The x86-64 specification is quite clear what >>>> > happens with the prefix on jumps. Intel CPUs are simply buggy in not >>>> > implementing it. And you're making binutils follow that buggy behaviour. >>>> >>>> AMD64 and Intel64 differ in some subtle ways. >>>> >>>> > And that is wrong. The associated bug report is invalid. >>>> >>>> How about this >>>> >>>> 1. Add flavors of AMD64 and Intel64 to assembler. Make the most >>>> permissive one as the default. In case of call/jmp, the default will >>>> take AMD64. >>>> 2. Add -Mintel64/-Mamd64 to objdump, Make the most permissive >>>> ones the default. >>> >>> FWIW I think this will be the right direction, though the exact options >>> may have to be discussed yet. >>> >>> The assembler is a tool, it should not be forcing a use policy upon >>> users. Therefore it should allow whatever is encodable given the >>> instruction set definition and let users decide themselves how to use >>> it, whether implementations follow the rules or not. >>> >>> And then if you want to add safety traps such as for this difference >>> between individual model implementations, then wire them to `-march=' or >>> suchlike. >> >> Thanks for your feedbacks. I am waiting for feedbacks from Jan and >> Michael before I start investigation. > > Not sure what else feedback you expect - after all I had suggested > the introduction of command line options or alike to control the > specific behavior. All I'm really after is that without any such override > given behavior remain like what it is in 2.25. > That is what I checked in. -- H.J. --- AMD64 spec and Intel64 spec differ in direct unconditional branches in 64-bit mode. AMD64 supports direct unconditional branches with 16-bit offset via the data size prefix, which truncates RIP to 16 bits, while the data size prefix is ignored by Intel64. This patch adds -mamd64/-mintel64 option to x86-64 assembler and -Mamd64/-Mintel64 option to x86-64 disassembler. The most permissive ISA, which is AMD64, is the default. GDB can add an option, similar to (gdb) help set disassembly-flavor Set the disassembly flavor. The valid values are "att" and "intel", and the default value is "att". to select which ISA to disassemble. binutils/ PR binutis/18386 gnu-6:pts/14[321]> m 0001-Support-AMD64-Intel-ISAs-in-assembler-disassembler.patch Date: Fri, 15 May 2015 09:47:39 -0700 Subject: [PATCH] Support AMD64/Intel ISAs in assembler/disassembler AMD64 spec and Intel64 spec differ in direct unconditional branches in 64-bit mode. AMD64 supports direct unconditional branches with 16-bit offset via the data size prefix, which truncates RIP to 16 bits, while the data size prefix is ignored by Intel64. This patch adds -mamd64/-mintel64 option to x86-64 assembler and -Mamd64/-Mintel64 option to x86-64 disassembler. The most permissive ISA, which is AMD64, is the default. GDB can add an option, similar to (gdb) help set disassembly-flavor Set the disassembly flavor. The valid values are "att" and "intel", and the default value is "att". to select which ISA to disassemble. binutils/ PR binutis/18386 * doc/binutils.texi: Document -Mamd64 and -Mintel64. gas/ PR binutis/18386 * config/tc-i386.c (OPTION_MAMD64): New. (OPTION_MINTEL64): Likewise. (md_longopts): Add -mamd64 and -mintel64. (md_parse_option): Handle OPTION_MAMD64 and OPTION_MINTEL64. (md_show_usage): Add -mamd64 and -mintel64. * doc/c-i386.texi: Document -mamd64 and -mintel64. gas/testsuite/ PR binutis/18386 * gas/i386/i386.exp: Run x86-64-branch-2 and x86-64-branch-3. * gas/i386/x86-64-branch.d: Also pass -Mintel64 to objdump. * gas/i386/ilp32/x86-64-branch.d: Likewise. * gas/i386/x86-64-branch-2.d: New file. * gas/i386/x86-64-branch-2.s: Likewise. * gas/i386/x86-64-branch-3.l: Likewise. * gas/i386/x86-64-branch-3.s: Likewise. ld/testsuite/ PR binutis/18386 * ld-x86-64/tlsgdesc.dd: Also pass -Mintel64 to objdump. * ld-x86-64/tlspic.dd: Likewise. * ld-x86-64/x86-64.exp (x86_64tests): Also pass -Mintel64 to objdump for tlspic.dd and tlsgdesc.dd. opcodes/ PR binutis/18386 * i386-dis.c: Add comments for '@'. (x86_64_table): Use '@' on call/jmp for X86_64_E8/X86_64_E9. (enum x86_64_isa): New. (isa64): Likewise. (print_i386_disassembler_options): Add amd64 and intel64. (print_insn): Handle amd64 and intel64. (putop): Handle '@'. (OP_J): Don't ignore the operand size prefix for AMD64 in 64-bit. * i386-gen.c (cpu_flags): Add CpuAMD64 and CpuIntel64. * i386-opc.h (AMD64): New. (CpuIntel64): Likewise. (i386_cpu_flags): Add cpuamd64 and cpuintel64. * i386-opc.tbl: Add direct call/jmp with Disp16|Disp32 for AMD64. Mark direct call/jmp without Disp16|Disp32 as Intel64. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. --089e0149ce3821b7a5051621ab0e Content-Type: text/x-patch; charset=US-ASCII; name="0001-Support-AMD64-Intel-ISAs-in-assembler-disassembler.patch" Content-Disposition: attachment; filename="0001-Support-AMD64-Intel-ISAs-in-assembler-disassembler.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i9pud5o70 Content-length: 29846 RGF0ZTogRnJpLCAxNSBNYXkgMjAxNSAwOTo0NzozOSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0hdIFN1cHBvcnQgQU1ENjQvSW50ZWwgSVNBcyBpbiBhc3NlbWJs ZXIvZGlzYXNzZW1ibGVyCgpBTUQ2NCBzcGVjIGFuZCBJbnRlbDY0IHNwZWMg ZGlmZmVyIGluIGRpcmVjdCB1bmNvbmRpdGlvbmFsIGJyYW5jaGVzIGluCjY0 LWJpdCBtb2RlLiAgQU1ENjQgc3VwcG9ydHMgZGlyZWN0IHVuY29uZGl0aW9u YWwgYnJhbmNoZXMgd2l0aCAxNi1iaXQKb2Zmc2V0IHZpYSB0aGUgZGF0YSBz aXplIHByZWZpeCwgd2hpY2ggdHJ1bmNhdGVzIFJJUCB0byAxNiBiaXRzLCB3 aGlsZQp0aGUgZGF0YSBzaXplIHByZWZpeCBpcyBpZ25vcmVkIGJ5IEludGVs NjQuCgpUaGlzIHBhdGNoIGFkZHMgLW1hbWQ2NC8tbWludGVsNjQgb3B0aW9u IHRvIHg4Ni02NCBhc3NlbWJsZXIgYW5kCi1NYW1kNjQvLU1pbnRlbDY0IG9w dGlvbiB0byB4ODYtNjQgZGlzYXNzZW1ibGVyLiAgVGhlIG1vc3QgcGVybWlz c2l2ZQpJU0EsIHdoaWNoIGlzIEFNRDY0LCBpcyB0aGUgZGVmYXVsdC4KCkdE QiBjYW4gYWRkIGFuIG9wdGlvbiwgc2ltaWxhciB0bwoKKGdkYikgaGVscCBz ZXQgZGlzYXNzZW1ibHktZmxhdm9yClNldCB0aGUgZGlzYXNzZW1ibHkgZmxh dm9yLgpUaGUgdmFsaWQgdmFsdWVzIGFyZSAiYXR0IiBhbmQgImludGVsIiwg YW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlzICJhdHQiLgoKdG8gc2VsZWN0IHdo aWNoIElTQSB0byBkaXNhc3NlbWJsZS4KCmJpbnV0aWxzLwoKCVBSIGJpbnV0 aXMvMTgzODYKCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC1NYW1k NjQgYW5kIC1NaW50ZWw2NC4KCmdhcy8KCglQUiBiaW51dGlzLzE4Mzg2Cgkq IGNvbmZpZy90Yy1pMzg2LmMgKE9QVElPTl9NQU1ENjQpOiBOZXcuCgkoT1BU SU9OX01JTlRFTDY0KTogTGlrZXdpc2UuCgkobWRfbG9uZ29wdHMpOiBBZGQg LW1hbWQ2NCBhbmQgLW1pbnRlbDY0LgoJKG1kX3BhcnNlX29wdGlvbik6IEhh bmRsZSBPUFRJT05fTUFNRDY0IGFuZCBPUFRJT05fTUlOVEVMNjQuCgkobWRf c2hvd191c2FnZSk6IEFkZCAtbWFtZDY0IGFuZCAtbWludGVsNjQuCgkqIGRv Yy9jLWkzODYudGV4aTogRG9jdW1lbnQgLW1hbWQ2NCBhbmQgLW1pbnRlbDY0 LgoKZ2FzL3Rlc3RzdWl0ZS8KCglQUiBiaW51dGlzLzE4Mzg2CgkqIGdhcy9p Mzg2L2kzODYuZXhwOiBSdW4geDg2LTY0LWJyYW5jaC0yIGFuZCB4ODYtNjQt YnJhbmNoLTMuCgkqIGdhcy9pMzg2L3g4Ni02NC1icmFuY2guZDogQWxzbyBw YXNzIC1NaW50ZWw2NCB0byBvYmpkdW1wLgoJKiBnYXMvaTM4Ni9pbHAzMi94 ODYtNjQtYnJhbmNoLmQ6IExpa2V3aXNlLgoJKiBnYXMvaTM4Ni94ODYtNjQt YnJhbmNoLTIuZDogTmV3IGZpbGUuCgkqIGdhcy9pMzg2L3g4Ni02NC1icmFu Y2gtMi5zOiBMaWtld2lzZS4KCSogZ2FzL2kzODYveDg2LTY0LWJyYW5jaC0z Lmw6IExpa2V3aXNlLgoJKiBnYXMvaTM4Ni94ODYtNjQtYnJhbmNoLTMuczog TGlrZXdpc2UuCgpsZC90ZXN0c3VpdGUvCgoJUFIgYmludXRpcy8xODM4NgoJ KiBsZC14ODYtNjQvdGxzZ2Rlc2MuZGQ6IEFsc28gcGFzcyAtTWludGVsNjQg dG8gb2JqZHVtcC4KCSogbGQteDg2LTY0L3Rsc3BpYy5kZDogTGlrZXdpc2Uu CgkqIGxkLXg4Ni02NC94ODYtNjQuZXhwICh4ODZfNjR0ZXN0cyk6IEFsc28g cGFzcyAtTWludGVsNjQgdG8KCW9iamR1bXAgZm9yIHRsc3BpYy5kZCBhbmQg dGxzZ2Rlc2MuZGQuCgpvcGNvZGVzLwoKCVBSIGJpbnV0aXMvMTgzODYKCSog aTM4Ni1kaXMuYzogQWRkIGNvbW1lbnRzIGZvciAnQCcuCgkoeDg2XzY0X3Rh YmxlKTogVXNlICdAJyBvbiBjYWxsL2ptcCBmb3IgWDg2XzY0X0U4L1g4Nl82 NF9FOS4KCShlbnVtIHg4Nl82NF9pc2EpOiBOZXcuCgkoaXNhNjQpOiBMaWtl d2lzZS4KCShwcmludF9pMzg2X2Rpc2Fzc2VtYmxlcl9vcHRpb25zKTogQWRk IGFtZDY0IGFuZCBpbnRlbDY0LgoJKHByaW50X2luc24pOiBIYW5kbGUgYW1k NjQgYW5kIGludGVsNjQuCgkocHV0b3ApOiBIYW5kbGUgJ0AnLgoJKE9QX0op OiBEb24ndCBpZ25vcmUgdGhlIG9wZXJhbmQgc2l6ZSBwcmVmaXggZm9yIEFN RDY0IGluIDY0LWJpdC4KCSogaTM4Ni1nZW4uYyAoY3B1X2ZsYWdzKTogQWRk IENwdUFNRDY0IGFuZCBDcHVJbnRlbDY0LgoJKiBpMzg2LW9wYy5oIChBTUQ2 NCk6IE5ldy4KCShDcHVJbnRlbDY0KTogTGlrZXdpc2UuCgkoaTM4Nl9jcHVf ZmxhZ3MpOiBBZGQgY3B1YW1kNjQgYW5kIGNwdWludGVsNjQuCgkqIGkzODYt b3BjLnRibDogQWRkIGRpcmVjdCBjYWxsL2ptcCB3aXRoIERpc3AxNnxEaXNw MzIgZm9yIEFNRDY0LgoJTWFyayBkaXJlY3QgY2FsbC9qbXAgd2l0aG91dCBE aXNwMTZ8RGlzcDMyIGFzIEludGVsNjQuCgkqIGkzODYtaW5pdC5oOiBSZWdl bmVyYXRlZC4KCSogaTM4Ni10YmwuaDogTGlrZXdpc2UuCi0tLQogYmludXRp bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg NSArCiBiaW51dGlscy9kb2MvYmludXRpbHMudGV4aSAgICAgICAgICAgICAg ICAgICB8ICAgICA0ICsKIGdhcy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgMTAgKwogZ2FzL2NvbmZpZy90Yy1pMzg2 LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyMiArCiBnYXMvZG9j L2MtaTM4Ni50ZXhpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICA3 ICsKIGdhcy90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg ICAgIHwgICAgMTEgKwogZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9pMzg2LmV4 cCAgICAgICAgICAgICAgfCAgICAgMiArCiBnYXMvdGVzdHN1aXRlL2dhcy9p Mzg2L2lscDMyL3g4Ni02NC1icmFuY2guZCB8ICAgICAyICstCiBnYXMvdGVz dHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1icmFuY2gtMi5kICAgICB8ICAgIDE1 ICsKIGdhcy90ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LWJyYW5jaC0yLnMg ICAgIHwgICAgIDcgKwogZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQt YnJhbmNoLTMubCAgICAgfCAgICAxNyArCiBnYXMvdGVzdHN1aXRlL2dhcy9p Mzg2L3g4Ni02NC1icmFuY2gtMy5zICAgICB8ICAgICA3ICsKIGdhcy90ZXN0 c3VpdGUvZ2FzL2kzODYveDg2LTY0LWJyYW5jaC5kICAgICAgIHwgICAgIDIg Ky0KIGxkL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgIDggKwogbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC90bHNnZGVz Yy5kZCAgICAgICAgICAgfCAgICAgMiArLQogbGQvdGVzdHN1aXRlL2xkLXg4 Ni02NC90bHNwaWMuZGQgICAgICAgICAgICAgfCAgICAgMiArLQogbGQvdGVz dHN1aXRlL2xkLXg4Ni02NC94ODYtNjQuZXhwICAgICAgICAgICAgfCAgICAg NCArLQogb3Bjb2Rlcy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAyMCArCiBvcGNvZGVzL2kzODYtZGlzLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgIDQ1ICstCiBvcGNvZGVzL2kzODYtZ2Vu LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyICsKIG9wY29k ZXMvaTM4Ni1pbml0LmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy MTIgKy0KIG9wY29kZXMvaTM4Ni1vcGMuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgIDYgKwogb3Bjb2Rlcy9pMzg2LW9wYy50YmwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgNiArLQogb3Bjb2Rlcy9pMzg2LXRi bC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDM5MiArKysrKysr KysrKysrLS0tLS0tLS0tLS0tCiAyNCBmaWxlcyBjaGFuZ2VkLCA1NTA4IGlu c2VydGlvbnMoKyksIDUzMDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQtYnJhbmNoLTIu ZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdhcy90ZXN0c3VpdGUvZ2FzL2kzODYv eDg2LTY0LWJyYW5jaC0yLnMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnYXMvdGVz dHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1icmFuY2gtMy5sCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQtYnJhbmNo LTMucwoKZGlmZiAtLWdpdCBhL2JpbnV0aWxzL0NoYW5nZUxvZyBiL2JpbnV0 aWxzL0NoYW5nZUxvZwppbmRleCBlZTJkZGYwLi4yMzI4ZjZlIDEwMDY0NAot LS0gYS9iaW51dGlscy9DaGFuZ2VMb2cKKysrIGIvYmludXRpbHMvQ2hhbmdl TG9nCkBAIC0xLDMgKzEsOCBAQAorMjAxNS0wNS0xNSAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorCisJUFIgYmludXRpcy8xODM4NgorCSog ZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC1NYW1kNjQgYW5kIC1NaW50 ZWw2NC4KKwogMjAxNS0wNS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVk aGF0LmNvbT4KIAogCSogcmVhZGVsZi5jIChvcHRpb25zKTogQWRkICJkZWNv bXByZXNzIi4KZGlmZiAtLWdpdCBhL2JpbnV0aWxzL2RvYy9iaW51dGlscy50 ZXhpIGIvYmludXRpbHMvZG9jL2JpbnV0aWxzLnRleGkKaW5kZXggNjE5YzI4 ZS4uNzU4NTJlNiAxMDA2NDQKLS0tIGEvYmludXRpbHMvZG9jL2JpbnV0aWxz LnRleGkKKysrIGIvYmludXRpbHMvZG9jL2JpbnV0aWxzLnRleGkKQEAgLTIx NzUsNiArMjE3NSwxMCBAQCBTZWxlY3QgZGlzYXNzZW1ibHkgZm9yIHRoZSBn aXZlbiBhcmNoaXRlY3R1cmUuCiBAaXRlbXggYXR0CiBTZWxlY3QgYmV0d2Vl biBpbnRlbCBzeW50YXggbW9kZSBhbmQgQVQmVCBzeW50YXggbW9kZS4KIAor QGl0ZW0gYW1kNjQKK0BpdGVteCBpbnRlbDY0CitTZWxlY3QgYmV0d2VlbiBB TUQ2NCBJU0EgYW5kIEludGVsNjQgSVNBLgorCiBAaXRlbSBpbnRlbC1tbmVt b25pYwogQGl0ZW14IGF0dC1tbmVtb25pYwogU2VsZWN0IGJldHdlZW4gaW50 ZWwgbW5lbW9uaWMgbW9kZSBhbmQgQVQmVCBtbmVtb25pYyBtb2RlLgpkaWZm IC0tZ2l0IGEvZ2FzL0NoYW5nZUxvZyBiL2dhcy9DaGFuZ2VMb2cKaW5kZXgg OWJjNGExNS4uNmNkMzYzOSAxMDA2NDQKLS0tIGEvZ2FzL0NoYW5nZUxvZwor KysgYi9nYXMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTUtMDUt MTUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KIAorCVBSIGJp bnV0aXMvMTgzODYKKwkqIGNvbmZpZy90Yy1pMzg2LmMgKE9QVElPTl9NQU1E NjQpOiBOZXcuCisJKE9QVElPTl9NSU5URUw2NCk6IExpa2V3aXNlLgorCSht ZF9sb25nb3B0cyk6IEFkZCAtbWFtZDY0IGFuZCAtbWludGVsNjQuCisJKG1k X3BhcnNlX29wdGlvbik6IEhhbmRsZSBPUFRJT05fTUFNRDY0IGFuZCBPUFRJ T05fTUlOVEVMNjQuCisJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgLW1hbWQ2NCBh bmQgLW1pbnRlbDY0LgorCSogZG9jL2MtaTM4Ni50ZXhpOiBEb2N1bWVudCAt bWFtZDY0IGFuZCAtbWludGVsNjQuCisKKzIwMTUtMDUtMTUgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KKwogCSogY29uZmlnL3RjLWkzODYu YyAoc2hhcmVkKTogTmV3LgogCShPUFRJT05fTVNIQVJFRCk6IExpa2V3aXNl LgogCShlbGZfc3ltYm9sX3Jlc29sdmVkX2luX3NlZ21lbnRfcCk6IEFkZCBy ZWxvY2F0aW9uIGFyZ3VtZW50LgpkaWZmIC0tZ2l0IGEvZ2FzL2NvbmZpZy90 Yy1pMzg2LmMgYi9nYXMvY29uZmlnL3RjLWkzODYuYwppbmRleCAyNTQ1NDhm Li4zNGI1YzI4IDEwMDY0NAotLS0gYS9nYXMvY29uZmlnL3RjLWkzODYuYwor KysgYi9nYXMvY29uZmlnL3RjLWkzODYuYwpAQCAtOTU1MCw2ICs5NTUwLDgg QEAgY29uc3QgY2hhciAqbWRfc2hvcnRvcHRzID0gInFuIjsKICNkZWZpbmUg T1BUSU9OX09NSVRfTE9DS19QUkVGSVggKE9QVElPTl9NRF9CQVNFICsgMTkp CiAjZGVmaW5lIE9QVElPTl9NRVZFWFJDSUcgKE9QVElPTl9NRF9CQVNFICsg MjApCiAjZGVmaW5lIE9QVElPTl9NU0hBUkVEIChPUFRJT05fTURfQkFTRSAr IDIxKQorI2RlZmluZSBPUFRJT05fTUFNRDY0IChPUFRJT05fTURfQkFTRSAr IDIyKQorI2RlZmluZSBPUFRJT05fTUlOVEVMNjQgKE9QVElPTl9NRF9CQVNF ICsgMjMpCiAKIHN0cnVjdCBvcHRpb24gbWRfbG9uZ29wdHNbXSA9CiB7CkBA IC05NTgyLDYgKzk1ODQsOCBAQCBzdHJ1Y3Qgb3B0aW9uIG1kX2xvbmdvcHRz W10gPQogI2VuZGlmCiAgIHsibW9taXQtbG9jay1wcmVmaXgiLCByZXF1aXJl ZF9hcmd1bWVudCwgTlVMTCwgT1BUSU9OX09NSVRfTE9DS19QUkVGSVh9LAog ICB7Im1ldmV4cmNpZyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBPUFRJ T05fTUVWRVhSQ0lHfSwKKyAgeyJtYW1kNjQiLCBub19hcmd1bWVudCwgTlVM TCwgT1BUSU9OX01BTUQ2NH0sCisgIHsibWludGVsNjQiLCBub19hcmd1bWVu dCwgTlVMTCwgT1BUSU9OX01JTlRFTDY0fSwKICAge05VTEwsIG5vX2FyZ3Vt ZW50LCBOVUxMLCAwfQogfTsKIHNpemVfdCBtZF9sb25nb3B0c19zaXplID0g c2l6ZW9mIChtZF9sb25nb3B0cyk7CkBAIC05ODk4LDYgKzk5MDIsMjAgQEAg bWRfcGFyc2Vfb3B0aW9uIChpbnQgYywgY2hhciAqYXJnKQogICAgICAgICBh c19mYXRhbCAoXygiaW52YWxpZCAtbW9taXQtbG9jay1wcmVmaXg9IG9wdGlv bjogYCVzJyIpLCBhcmcpOwogICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIE9Q VElPTl9NQU1ENjQ6CisgICAgICBjcHVfYXJjaF9mbGFncy5iaXRmaWVsZC5j cHVhbWQ2NCA9IDE7CisgICAgICBjcHVfYXJjaF9mbGFncy5iaXRmaWVsZC5j cHVpbnRlbDY0ID0gMDsKKyAgICAgIGNwdV9hcmNoX2lzYV9mbGFncy5iaXRm aWVsZC5jcHVhbWQ2NCA9IDE7CisgICAgICBjcHVfYXJjaF9pc2FfZmxhZ3Mu Yml0ZmllbGQuY3B1aW50ZWw2NCA9IDA7CisgICAgICBicmVhazsKKworICAg IGNhc2UgT1BUSU9OX01JTlRFTDY0OgorICAgICAgY3B1X2FyY2hfZmxhZ3Mu Yml0ZmllbGQuY3B1YW1kNjQgPSAwOworICAgICAgY3B1X2FyY2hfZmxhZ3Mu Yml0ZmllbGQuY3B1aW50ZWw2NCA9IDE7CisgICAgICBjcHVfYXJjaF9pc2Ff ZmxhZ3MuYml0ZmllbGQuY3B1YW1kNjQgPSAwOworICAgICAgY3B1X2FyY2hf aXNhX2ZsYWdzLmJpdGZpZWxkLmNwdWludGVsNjQgPSAxOworICAgICAgYnJl YWs7CisKICAgICBkZWZhdWx0OgogICAgICAgcmV0dXJuIDA7CiAgICAgfQpA QCAtMTAwNjMsNiArMTAwODEsMTAgQEAgbWRfc2hvd191c2FnZSAoRklMRSAq c3RyZWFtKQogICBmcHJpbnRmIChzdHJlYW0sIF8oIlwKICAgLW1vbWl0LWxv Y2stcHJlZml4PVtub3x5ZXNdXG5cCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cmlwIGFsbCBsb2NrIHByZWZpeGVzXG4iKSk7CisgIGZwcmludGYg KHN0cmVhbSwgXygiXAorICAtbWFtZDY0ICAgICAgICAgICAgICAgICBhY2Nl cHQgb25seSBBTUQ2NCBJU0FcbiIpKTsKKyAgZnByaW50ZiAoc3RyZWFtLCBf KCJcCisgIC1taW50ZWw2NCAgICAgICAgICAgICAgIGFjY2VwdCBvbmx5IElu dGVsNjQgSVNBXG4iKSk7CiB9CiAKICNpZiAoKGRlZmluZWQgKE9CSl9NQVlC RV9DT0ZGKSAmJiBkZWZpbmVkIChPQkpfTUFZQkVfQU9VVCkpIFwKZGlmZiAt LWdpdCBhL2dhcy9kb2MvYy1pMzg2LnRleGkgYi9nYXMvZG9jL2MtaTM4Ni50 ZXhpCmluZGV4IGVhMDhjNjMuLjYxMTg5ODcgMTAwNjQ0Ci0tLSBhL2dhcy9k b2MvYy1pMzg2LnRleGkKKysrIGIvZ2FzL2RvYy9jLWkzODYudGV4aQpAQCAt MzM5LDYgKzMzOSwxMyBAQCBvZiBFVkVYIGluc3RydWN0aW9uIHdpdGggMDAs IHdoaWNoIGlzIHRoZSBkZWZhdWx0LgogYW5kIEBvcHRpb257LW1ldmV4cmNp Zz1AdmFye3J6fX0gd2lsbCBlbmNvZGUgU0FFLW9ubHkgRVZFWCBpbnN0cnVj dGlvbnMKIHdpdGggMDEsIDEwIGFuZCAxMSBSQyBiaXRzLCByZXNwZWN0aXZl bHkuCiAKK0BjaW5kZXggQHNhbXB7LW1hbWQ2NH0gb3B0aW9uLCB4ODYtNjQK K0BjaW5kZXggQHNhbXB7LW1pbnRlbDY0fSBvcHRpb24sIHg4Ni02NAorQGl0 ZW0gLW1hbWQ2NAorQGl0ZW14IC1taW50ZWw2NAorVGhpcyBvcHRpb24gc3Bl Y2lmaWVzIHRoYXQgdGhlIGFzc2VtYmxlciBzaG91bGQgYWNjZXB0IG9ubHkg QU1ENjQgb3IKK0ludGVsNjQgSVNBIGluIDY0LWJpdCBtb2RlLiAgVGhlIGRl ZmF1bHQgaXMgdG8gYWNjZXB0IGJvdGguCisKIEBlbmQgdGFibGUKIEBjIG1h biBlbmQKIApkaWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cg Yi9nYXMvdGVzdHN1aXRlL0NoYW5nZUxvZwppbmRleCA5NWI3NTgzLi43ZjRi ODFiIDEwMDY0NAotLS0gYS9nYXMvdGVzdHN1aXRlL0NoYW5nZUxvZworKysg Yi9nYXMvdGVzdHN1aXRlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAy MDE1LTA1LTE1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CiAK KwlQUiBiaW51dGlzLzE4Mzg2CisJKiBnYXMvaTM4Ni9pMzg2LmV4cDogUnVu IHg4Ni02NC1icmFuY2gtMiBhbmQgeDg2LTY0LWJyYW5jaC0zLgorCSogZ2Fz L2kzODYveDg2LTY0LWJyYW5jaC5kOiBBbHNvIHBhc3MgLU1pbnRlbDY0IHRv IG9iamR1bXAuCisJKiBnYXMvaTM4Ni9pbHAzMi94ODYtNjQtYnJhbmNoLmQ6 IExpa2V3aXNlLgorCSogZ2FzL2kzODYveDg2LTY0LWJyYW5jaC0yLmQ6IE5l dyBmaWxlLgorCSogZ2FzL2kzODYveDg2LTY0LWJyYW5jaC0yLnM6IExpa2V3 aXNlLgorCSogZ2FzL2kzODYveDg2LTY0LWJyYW5jaC0zLmw6IExpa2V3aXNl LgorCSogZ2FzL2kzODYveDg2LTY0LWJyYW5jaC0zLnM6IExpa2V3aXNlLgor CisyMDE1LTA1LTE1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisKIAkqIGdhcy9pMzg2L2kzODYuZXhwOiBEb24ndCBydW4gcGNyZWwgZm9y IEVMRiB0YXJnZXRzLiAgUnVuCiAJcGNyZWwtZWxmLCByZWxheC00IGFuZCB4 ODYtNjQtcmVsYXgtMyBmb3IgRUxGIHRhcmdldHMuCiAJKiBnYXMvaTM4Ni9w Y3JlbC1lbGYuZDogTmV3IGZpbGUuCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1 aXRlL2dhcy9pMzg2L2kzODYuZXhwIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4 Ni9pMzg2LmV4cAppbmRleCBmZjY0OGIwLi45ZmYzOGQzIDEwMDY0NAotLS0g YS9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L2kzODYuZXhwCisrKyBiL2dhcy90 ZXN0c3VpdGUvZ2FzL2kzODYvaTM4Ni5leHAKQEAgLTc3MCw2ICs3NzAsOCBA QCBpZiBbZXhwciAoW2lzdGFyZ2V0ICJpKjg2LSotKiJdIHx8IFtpc3Rhcmdl dCAieDg2XzY0LSotKiJdKSAmJiBbZ2FzXzY0X2NoZWNrXV0gdAogCXJ1bl9k dW1wX3Rlc3QgIng4Ni02NC1yZWxheC0zIgogCiAJcnVuX2R1bXBfdGVzdCAi eDg2LTY0LWp1bXAiCisJcnVuX2R1bXBfdGVzdCAieDg2LTY0LWJyYW5jaC0y IgorCXJ1bl9saXN0X3Rlc3QgIng4Ni02NC1icmFuY2gtMyIgIi1hbCAtbWlu dGVsNjQiCiAgICAgfQogCiAgICAgc2V0IEFTRkxBR1MgIiRvbGRfQVNGTEFH UyIKZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYvaWxwMzIv eDg2LTY0LWJyYW5jaC5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9pbHAz Mi94ODYtNjQtYnJhbmNoLmQKaW5kZXggOWZjYjhjYS4uODIwMDI4MiAxMDA2 NDQKLS0tIGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9pbHAzMi94ODYtNjQt YnJhbmNoLmQKKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9pbHAzMi94 ODYtNjQtYnJhbmNoLmQKQEAgLTEsNiArMSw2IEBACiAjc291cmNlOiAuLi94 ODYtNjQtYnJhbmNoLnMKICNhczogLUoKLSNvYmpkdW1wOiAtZHJ3Cisjb2Jq ZHVtcDogLWRydyAtTWludGVsNjQKICNuYW1lOiB4ODYtNjQgKElMUDMyKSBi cmFuY2gKIAogLio6ICtmaWxlIGZvcm1hdCAuKgpkaWZmIC0tZ2l0IGEvZ2Fz L3Rlc3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQtYnJhbmNoLTIuZCBiL2dhcy90 ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LWJyYW5jaC0yLmQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA3OGRhYQotLS0gL2Rldi9u dWxsCisrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LWJyYW5j aC0yLmQKQEAgLTAsMCArMSwxNSBAQAorI2FzOiAtSgorI29iamR1bXA6IC1k d3IKKyNuYW1lOiB4ODYtNjQgYnJhbmNoIDIKKworLio6ICtmaWxlIGZvcm1h dCAuKgorCitEaXNhc3NlbWJseSBvZiBzZWN0aW9uIC50ZXh0OgorCiswKyA8 YmFyLTB4ND46CitbIAldKlthLWYwLTldKzoJNjYgZTkgMDAgMDAgICAgICAg ICAgCWptcHcgICA0IDxiYXI+CTI6IFJfWDg2XzY0X1BDMTYJZm9vLTB4Mgor CiswKzQgPGJhcj46CitbIAldKlthLWYwLTldKzoJODkgYzMgICAgICAgICAg ICAgICAgCW1vdiAgICAlZWF4LCVlYngKK1sgCV0qW2EtZjAtOV0rOgk2NiBl OCAwMCAwMCAgICAgICAgICAJY2FsbHcgIGEgPGJhclwrMHg2Pgk4OiBSX1g4 Nl82NF9QQzE2CWZvby0weDIKKyNwYXNzCmRpZmYgLS1naXQgYS9nYXMvdGVz dHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1icmFuY2gtMi5zIGIvZ2FzL3Rlc3Rz dWl0ZS9nYXMvaTM4Ni94ODYtNjQtYnJhbmNoLTIucwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmM4NWEzCi0tLSAvZGV2L251bGwK KysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQtYnJhbmNoLTIu cwpAQCAtMCwwICsxLDcgQEAKKwkudGV4dAorCWRhdGExNiBqbXAgZm9vCisK K2JhcjoKKwltb3YgJWVheCwgJWVieAorCisJZGF0YTE2IGNhbGwgZm9vCmRp ZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1icmFu Y2gtMy5sIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQtYnJhbmNo LTMubApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTNj MmRkCi0tLSAvZGV2L251bGwKKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4 Ni94ODYtNjQtYnJhbmNoLTMubApAQCAtMCwwICsxLDE3IEBACisuKjogQXNz ZW1ibGVyIG1lc3NhZ2VzOgorLio6MjogV2FybmluZzogaW5kaXJlY3Qgam1w IHdpdGhvdXQgYFwqJworLio6NzogV2FybmluZzogaW5kaXJlY3QgY2FsbCB3 aXRob3V0IGBcKicKK0dBUyBMSVNUSU5HIC4qCisKKworWyAJXSoxWyAJXStc LnRleHQKK1sgCV0qMlsgCV0rMDAwMCA2NkZGMkMyNSAJCWRhdGExNiBqbXAg Zm9vCitcKlwqXCpcKiAgV2FybmluZzogaW5kaXJlY3Qgam1wIHdpdGhvdXQg YFwqJworWyAJXSoyWyAJXSswMDAwMDAwMCAKK1sgCV0qM1sgCV0rCitbIAld KjRbIAldK2JhcjoKK1sgCV0qNVsgCV0rMDAwOCA4OUMzICAgICAJCW1vdiAl ZWF4LCAlZWJ4CitbIAldKjZbIAldKworWyAJXSo3WyAJXSswMDBhIDY2RkYx QzI1IAkJZGF0YTE2IGNhbGwgZm9vCitcKlwqXCpcKiAgV2FybmluZzogaW5k aXJlY3QgY2FsbCB3aXRob3V0IGBcKicKK1sgCV0qN1sgCV0rMDAwMDAwMDAg CmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1i cmFuY2gtMy5zIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni94ODYtNjQtYnJh bmNoLTMucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x NmM4NWEzCi0tLSAvZGV2L251bGwKKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMv aTM4Ni94ODYtNjQtYnJhbmNoLTMucwpAQCAtMCwwICsxLDcgQEAKKwkudGV4 dAorCWRhdGExNiBqbXAgZm9vCisKK2JhcjoKKwltb3YgJWVheCwgJWVieAor CisJZGF0YTE2IGNhbGwgZm9vCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRl L2dhcy9pMzg2L3g4Ni02NC1icmFuY2guZCBiL2dhcy90ZXN0c3VpdGUvZ2Fz L2kzODYveDg2LTY0LWJyYW5jaC5kCmluZGV4IDQ5ZTE3YTQuLjYxMmFjYzAg MTAwNjQ0Ci0tLSBhL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LWJy YW5jaC5kCisrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LWJy YW5jaC5kCkBAIC0xLDUgKzEsNSBAQAogI2FzOiAtSgotI29iamR1bXA6IC1k dworI29iamR1bXA6IC1kdyAtTWludGVsNjQKICNuYW1lOiB4ODYtNjQgYnJh bmNoCiAKIC4qOiArZmlsZSBmb3JtYXQgLioKZGlmZiAtLWdpdCBhL2xkL3Rl c3RzdWl0ZS9DaGFuZ2VMb2cgYi9sZC90ZXN0c3VpdGUvQ2hhbmdlTG9nCmlu ZGV4IGE3YjAwNmMuLjQzYzdjMjQgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKKysrIGIvbGQvdGVzdHN1aXRlL0NoYW5nZUxvZwpAQCAt MSwzICsxLDExIEBACisyMDE1LTA1LTE1ICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisKKwlQUiBiaW51dGlzLzE4Mzg2CisJKiBsZC14ODYt NjQvdGxzZ2Rlc2MuZGQ6IEFsc28gcGFzcyAtTWludGVsNjQgdG8gb2JqZHVt cC4KKwkqIGxkLXg4Ni02NC90bHNwaWMuZGQ6IExpa2V3aXNlLgorCSogbGQt eDg2LTY0L3g4Ni02NC5leHAgKHg4Nl82NHRlc3RzKTogQWxzbyBwYXNzIC1N aW50ZWw2NCB0bworCW9iamR1bXAgZm9yIHRsc3BpYy5kZCBhbmQgdGxzZ2Rl c2MuZGQuCisKIDIwMTUtMDUtMTIgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KIAogCSogbGQtaTM4Ni9pMzg2LmV4cDogUnVuIHBsdGdvdC0x IGZvciBMaW51eCB0YXJnZXRzLgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRl L2xkLXg4Ni02NC90bHNnZGVzYy5kZCBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYt NjQvdGxzZ2Rlc2MuZGQKaW5kZXggODhlYjk1My4uYTk4M2E3NSAxMDA2NDQK LS0tIGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC90bHNnZGVzYy5kZAorKysg Yi9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3Rsc2dkZXNjLmRkCkBAIC0xLDcg KzEsNyBAQAogI3NvdXJjZTogdGxzZ2Rlc2MucwogI2FzOiAtLTY0CiAjbGQ6 IC1zaGFyZWQgLW1lbGZfeDg2XzY0IC0tbm8tbGQtZ2VuZXJhdGVkLXVud2lu ZC1pbmZvCi0jb2JqZHVtcDogLWRyai50ZXh0Cisjb2JqZHVtcDogLWRyai50 ZXh0IC1NaW50ZWw2NAogI3RhcmdldDogeDg2XzY0LSotKgogCiAuKjogK2Zp bGUgZm9ybWF0IGVsZjY0LXg4Ni02NC4qCmRpZmYgLS1naXQgYS9sZC90ZXN0 c3VpdGUvbGQteDg2LTY0L3Rsc3BpYy5kZCBiL2xkL3Rlc3RzdWl0ZS9sZC14 ODYtNjQvdGxzcGljLmRkCmluZGV4IGFhYjgxODEuLmJmM2JhNjkgMTAwNjQ0 Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvdGxzcGljLmRkCisrKyBi L2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvdGxzcGljLmRkCkBAIC0yLDcgKzIs NyBAQAogI3NvdXJjZTogdGxzcGljMi5zCiAjYXM6IC0tNjQKICNsZDogLXNo YXJlZCAtbWVsZl94ODZfNjQgLS1uby1sZC1nZW5lcmF0ZWQtdW53aW5kLWlu Zm8KLSNvYmpkdW1wOiAtZHJqLnRleHQKKyNvYmpkdW1wOiAtZHJqLnRleHQg LU1pbnRlbDY0CiAjdGFyZ2V0OiB4ODZfNjQtKi0qCiAKIC4qOiArZmlsZSBm b3JtYXQgZWxmNjQteDg2LTY0LioKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0 ZS9sZC14ODYtNjQveDg2LTY0LmV4cCBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYt NjQveDg2LTY0LmV4cAppbmRleCA1OGU1OThlLi5hMzEyMjcxIDEwMDY0NAot LS0gYS9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3g4Ni02NC5leHAKKysrIGIv bGQvdGVzdHN1aXRlL2xkLXg4Ni02NC94ODYtNjQuZXhwCkBAIC01Miw3ICs1 Miw3IEBAIHNldCB4ODZfNjR0ZXN0cyB7CiAgICAgeyJUTFMgLWZwaWMgLXNo YXJlZCB0cmFuc2l0aW9ucyIKICAgICAgIi1zaGFyZWQgLW1lbGZfeDg2XzY0 IC0tbm8tbGQtZ2VuZXJhdGVkLXVud2luZC1pbmZvIiAiIgogICAgICAiLS02 NCIge3Rsc3BpYzEucyB0bHNwaWMyLnN9Ci0gICAgIHt7cmVhZGVsZiAtV1Nz cmwgdGxzcGljLnJkfSB7b2JqZHVtcCAtZHJqLnRleHQgdGxzcGljLmRkfQor ICAgICB7e3JlYWRlbGYgLVdTc3JsIHRsc3BpYy5yZH0ge29iamR1bXAgLWRy ai50ZXh0XCAtTWludGVsNjQgdGxzcGljLmRkfQogICAgICAge29iamR1bXAg LXNqLmdvdCB0bHNwaWMuc2R9IHtvYmpkdW1wIC1zai50ZGF0YSB0bHNwaWMu dGR9fQogICAgICAgImxpYnRsc3BpYy5zbyJ9CiAgICAgeyJUTFMgZGVzY3Jp cHRvciAtZnBpYyAtc2hhcmVkIHRyYW5zaXRpb25zIgpAQCAtNzgsNyArNzgs NyBAQCBzZXQgeDg2XzY0dGVzdHMgewogICAgIHsiVExTIHdpdGggZ2xvYmFs IGR5bmFtaWMgYW5kIGRlc2NyaXB0b3JzIgogICAgICAiLXNoYXJlZCAtbWVs Zl94ODZfNjQgLS1uby1sZC1nZW5lcmF0ZWQtdW53aW5kLWluZm8iICIiCiAg ICAgICItLTY0IiB7dGxzZ2Rlc2Muc30KLSAgICAge3tyZWFkZWxmIC1XU3Ny bCB0bHNnZGVzYy5yZH0ge29iamR1bXAgLWRyai50ZXh0IHRsc2dkZXNjLmRk fX0KKyAgICAge3tyZWFkZWxmIC1XU3NybCB0bHNnZGVzYy5yZH0ge29iamR1 bXAgLWRyai50ZXh0XCAtTWludGVsNjQgdGxzZ2Rlc2MuZGR9fQogICAgICAg ImxpYnRsc2dkZXNjLnNvIn0KICAgICB7IlRMUyBpbiBkZWJ1ZyBzZWN0aW9u cyIgIi1tZWxmX3g4Nl82NCIgIiIKICAgICAgIi0tNjQiIHt0bHNnLnN9CmRp ZmYgLS1naXQgYS9vcGNvZGVzL0NoYW5nZUxvZyBiL29wY29kZXMvQ2hhbmdl TG9nCmluZGV4IGRiY2UyZDMuLmQzZjkxNGMgMTAwNjQ0Ci0tLSBhL29wY29k ZXMvQ2hhbmdlTG9nCisrKyBiL29wY29kZXMvQ2hhbmdlTG9nCkBAIC0xLDMg KzEsMjMgQEAKKzIwMTUtMDUtMTUgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKworCVBSIGJpbnV0aXMvMTgzODYKKwkqIGkzODYtZGlzLmM6 IEFkZCBjb21tZW50cyBmb3IgJ0AnLgorCSh4ODZfNjRfdGFibGUpOiBVc2Ug J0AnIG9uIGNhbGwvam1wIGZvciBYODZfNjRfRTgvWDg2XzY0X0U5LgorCShl bnVtIHg4Nl82NF9pc2EpOiBOZXcuCisJKGlzYTY0KTogTGlrZXdpc2UuCisJ KHByaW50X2kzODZfZGlzYXNzZW1ibGVyX29wdGlvbnMpOiBBZGQgYW1kNjQg YW5kIGludGVsNjQuCisJKHByaW50X2luc24pOiBIYW5kbGUgYW1kNjQgYW5k IGludGVsNjQuCisJKHB1dG9wKTogSGFuZGxlICdAJy4KKwkoT1BfSik6IERv bid0IGlnbm9yZSB0aGUgb3BlcmFuZCBzaXplIHByZWZpeCBmb3IgQU1ENjQg aW4gNjQtYml0LgorCSogaTM4Ni1nZW4uYyAoY3B1X2ZsYWdzKTogQWRkIENw dUFNRDY0IGFuZCBDcHVJbnRlbDY0LgorCSogaTM4Ni1vcGMuaCAoQU1ENjQp OiBOZXcuCisJKENwdUludGVsNjQpOiBMaWtld2lzZS4KKwkoaTM4Nl9jcHVf ZmxhZ3MpOiBBZGQgY3B1YW1kNjQgYW5kIGNwdWludGVsNjQuCisJKiBpMzg2 LW9wYy50Ymw6IEFkZCBkaXJlY3QgY2FsbC9qbXAgd2l0aCBEaXNwMTZ8RGlz cDMyIGZvciBBTUQ2NC4KKwlNYXJrIGRpcmVjdCBjYWxsL2ptcCB3aXRob3V0 IERpc3AxNnxEaXNwMzIgYXMgSW50ZWw2NC4KKwkqIGkzODYtaW5pdC5oOiBS ZWdlbmVyYXRlZC4KKwkqIGkzODYtdGJsLmg6IExpa2V3aXNlLgorCiAyMDE1 LTA1LTE0ICBQZXRlciBCZXJnbmVyICA8YmVyZ25lckB2bmV0LmlibS5jb20+ CiAKIAkqIHBwYy1vcGMuYyAoSUgpIE5ldyBkZWZpbmUuCmRpZmYgLS1naXQg YS9vcGNvZGVzL2kzODYtZGlzLmMgYi9vcGNvZGVzL2kzODYtZGlzLmMKaW5k ZXggOTQxZjY5OS4uNzZmM2VhZCAxMDA2NDQKLS0tIGEvb3Bjb2Rlcy9pMzg2 LWRpcy5jCisrKyBiL29wY29kZXMvaTM4Ni1kaXMuYwpAQCAtMjQxOCw2ICsy NDE4LDggQEAgc3RydWN0IGRpczM4NiB7CiAgICAnJScgPT4gYWRkIDEgdXBw ZXIgY2FzZSBsZXR0ZXIgdG8gdGhlIG1hY3JvLgogICAgJ14nID0+IHByaW50 ICd3JyBvciAnbCcgZGVwZW5kaW5nIG9uIG9wZXJhbmQgc2l6ZSBwcmVmaXgg b3IKIAkgIHN1ZmZpeF9hbHdheXMgaXMgdHJ1ZSAobGNhbGwvbGptcCkuCisg ICAnQCcgPT4gcHJpbnQgJ3EnIGZvciBJbnRlbDY0IElTQSwgJ3cnIG9yICdx JyBmb3IgQU1ENjQgSVNBIGRlcGVuZGluZworCSAgb24gb3BlcmFuZCBzaXpl IHByZWZpeC4KIAogICAgMiB1cHBlciBjYXNlIGxldHRlciBtYWNyb3M6CiAg ICAiWFkiID0+IHByaW50ICd4JyBvciAneScgaWYgc3VmZml4X2Fsd2F5cyBp cyB0cnVlIG9yIG5vIHJlZ2lzdGVyCkBAIC02ODQ0LDEzICs2ODQ2LDEzIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGlzMzg2IHg4Nl82NF90YWJsZVtdWzJd ID0gewogICAvKiBYODZfNjRfRTggKi8KICAgewogICAgIHsgImNhbGxQIiwJ CXsgSnYsIEJORCB9LCAwIH0sCi0gICAgeyAiY2FsbHEiLAkJeyBKdiwgQk5E IH0sIDAgfQorICAgIHsgImNhbGxAIiwJCXsgSnYsIEJORCB9LCAwIH0KICAg fSwKIAogICAvKiBYODZfNjRfRTkgKi8KICAgewogICAgIHsgImptcFAiLAkJ eyBKdiwgQk5EIH0sIDAgfSwKLSAgICB7ICJqbXBxIiwJCXsgSnYsIEJORCB9 LCAwIH0KKyAgICB7ICJqbXBAIiwJCXsgSnYsIEJORCB9LCAwIH0KICAgfSwK IAogICAvKiBYODZfNjRfRUEgKi8KQEAgLTEyMzQyLDYgKzEyMzQ0LDE0IEBA IHN0YXRpYyBjaGFyIGNsb3NlX2NoYXI7CiBzdGF0aWMgY2hhciBzZXBhcmF0 b3JfY2hhcjsKIHN0YXRpYyBjaGFyIHNjYWxlX2NoYXI7CiAKK2VudW0geDg2 XzY0X2lzYQoreworICBhbWQ2NCA9IDAsCisgIGludGVsNjQKK307CisKK3N0 YXRpYyBlbnVtIHg4Nl82NF9pc2EgaXNhNjQ7CisKIC8qIEhlcmUgZm9yIGJh Y2t3YXJkcyBjb21wYXRpYmlsaXR5LiAgV2hlbiBnZGIgc3RvcHMgdXNpbmcK ICAgIHByaW50X2luc25faTM4Nl9hdHQgYW5kIHByaW50X2luc25faTM4Nl9p bnRlbCB0aGVzZSBmdW5jdGlvbnMgY2FuCiAgICBkaXNhcHBlYXIsIGFuZCBw cmludF9pbnNuX2kzODYgYmUgbWVyZ2VkIGludG8gcHJpbnRfaW5zbi4gICov CkBAIC0xMjM5MSw2ICsxMjQwMSw4IEBAIHdpdGggdGhlIC1NIHN3aXRjaCAo bXVsdGlwbGUgb3B0aW9ucyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IGNvbW1h cyk6XG4iKSk7CiAgIGZwcmludGYgKHN0cmVhbSwgXygiICBkYXRhMzIgICAg ICBBc3N1bWUgMzJiaXQgZGF0YSBzaXplXG4iKSk7CiAgIGZwcmludGYgKHN0 cmVhbSwgXygiICBkYXRhMTYgICAgICBBc3N1bWUgMTZiaXQgZGF0YSBzaXpl XG4iKSk7CiAgIGZwcmludGYgKHN0cmVhbSwgXygiICBzdWZmaXggICAgICBB bHdheXMgZGlzcGxheSBpbnN0cnVjdGlvbiBzdWZmaXggaW4gQVQmVCBzeW50 YXhcbiIpKTsKKyAgZnByaW50ZiAoc3RyZWFtLCBfKCIgIGFtZDY0ICAgICAg IERpc3BsYXkgaW5zdHJ1Y3Rpb24gaW4gQU1ENjQgSVNBXG4iKSk7CisgIGZw cmludGYgKHN0cmVhbSwgXygiICBpbnRlbDY0ICAgICBEaXNwbGF5IGluc3Ry dWN0aW9uIGluIEludGVsNjQgSVNBXG4iKSk7CiB9CiAKIC8qIEJhZCBvcGNv ZGUuICAqLwpAQCAtMTI4NzQsNyArMTI4ODYsMTEgQEAgcHJpbnRfaW5zbiAo YmZkX3ZtYSBwYywgZGlzYXNzZW1ibGVfaW5mbyAqaW5mbykKIAogICBmb3Ig KHAgPSBpbmZvLT5kaXNhc3NlbWJsZXJfb3B0aW9uczsgcCAhPSBOVUxMOyAp CiAgICAgewotICAgICAgaWYgKENPTlNUX1NUUk5FUSAocCwgIng4Ni02NCIp KQorICAgICAgaWYgKENPTlNUX1NUUk5FUSAocCwgImFtZDY0IikpCisJaXNh NjQgPSBhbWQ2NDsKKyAgICAgIGVsc2UgaWYgKENPTlNUX1NUUk5FUSAocCwg ImludGVsNjQiKSkKKwlpc2E2NCA9IGludGVsNjQ7CisgICAgICBlbHNlIGlm IChDT05TVF9TVFJORVEgKHAsICJ4ODYtNjQiKSkKIAl7CiAJICBhZGRyZXNz X21vZGUgPSBtb2RlXzY0Yml0OwogCSAgcHJpdi5vcmlnX3NpemVmbGFnID0g QUZMQUcgfCBERkxBRzsKQEAgLTE0MjA4LDYgKzE0MjI0LDIwIEBAIGNhc2Vf UzoKIAkgICAgICB1c2VkX3ByZWZpeGVzIHw9IChwcmVmaXhlcyAmIFBSRUZJ WF9EQVRBKTsKIAkgICAgfQogCSAgYnJlYWs7CisJY2FzZSAnQCc6CisJICBp ZiAoaW50ZWxfc3ludGF4KQorCSAgICBicmVhazsKKwkgIGlmIChhZGRyZXNz X21vZGUgPT0gbW9kZV82NGJpdAorCSAgICAgICYmIChpc2E2NCA9PSBpbnRl bDY0CisJCSAgfHwgKChzaXplZmxhZyAmIERGTEFHKSB8fCAocmV4ICYgUkVY X1cpKSkpCisJICAgICAgKm9idWZwKysgPSAncSc7CisJICBlbHNlIGlmICgo cHJlZml4ZXMgJiBQUkVGSVhfREFUQSkpCisJICAgIHsKKwkgICAgICBpZiAo IShzaXplZmxhZyAmIERGTEFHKSkKKwkJKm9idWZwKysgPSAndyc7CisJICAg ICAgdXNlZF9wcmVmaXhlcyB8PSAocHJlZml4ZXMgJiBQUkVGSVhfREFUQSk7 CisJICAgIH0KKwkgIGJyZWFrOwogCX0KICAgICAgIGFsdCA9IDA7CiAgICAg fQpAQCAtMTU3MjQsNyArMTU3NTQsMTEgQEAgT1BfSiAoaW50IGJ5dGVtb2Rl LCBpbnQgc2l6ZWZsYWcpCiAJZGlzcCAtPSAweDEwMDsKICAgICAgIGJyZWFr OwogICAgIGNhc2Ugdl9tb2RlOgotICAgICAgaWYgKGFkZHJlc3NfbW9kZSA9 PSBtb2RlXzY0Yml0IHx8IChzaXplZmxhZyAmIERGTEFHKSkKKyAgICAgIGlm IChpc2E2NCA9PSBhbWQ2NCkKKwlVU0VEX1JFWCAoUkVYX1cpOworICAgICAg aWYgKChzaXplZmxhZyAmIERGTEFHKQorCSAgfHwgKGFkZHJlc3NfbW9kZSA9 PSBtb2RlXzY0Yml0CisJICAgICAgJiYgKGlzYTY0ICE9IGFtZDY0IHx8IChy ZXggJiBSRVhfVykpKSkKIAlkaXNwID0gZ2V0MzJzICgpOwogICAgICAgZWxz ZQogCXsKQEAgLTE1NzQwLDcgKzE1Nzc0LDggQEAgT1BfSiAoaW50IGJ5dGVt b2RlLCBpbnQgc2l6ZWZsYWcpCiAJICAgIHNlZ21lbnQgPSAoKHN0YXJ0X3Bj ICsgY29kZXAgLSBzdGFydF9jb2RlcCkKIAkJICAgICAgICYgfigoYmZkX3Zt YSkgMHhmZmZmKSk7CiAJfQotICAgICAgaWYgKGFkZHJlc3NfbW9kZSAhPSBt b2RlXzY0Yml0KQorICAgICAgaWYgKGFkZHJlc3NfbW9kZSAhPSBtb2RlXzY0 Yml0CisJICB8fCAoaXNhNjQgPT0gYW1kNjQgJiYgIShyZXggJiBSRVhfVykp KQogCXVzZWRfcHJlZml4ZXMgfD0gKHByZWZpeGVzICYgUFJFRklYX0RBVEEp OwogICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL29w Y29kZXMvaTM4Ni1nZW4uYyBiL29wY29kZXMvaTM4Ni1nZW4uYwppbmRleCAy MTZiYzQ5Li4wNTIzOTM2IDEwMDY0NAotLS0gYS9vcGNvZGVzL2kzODYtZ2Vu LmMKKysrIGIvb3Bjb2Rlcy9pMzg2LWdlbi5jCkBAIC00NTgsNiArNDU4LDgg QEAgc3RhdGljIGJpdGZpZWxkIGNwdV9mbGFnc1tdID0KICAgQklURklFTEQg KENwdUFWWDUxMklGTUEpLAogICBCSVRGSUVMRCAoQ3B1QVZYNTEyVkJNSSks CiAgIEJJVEZJRUxEIChDcHVDTFpFUk8pLAorICBCSVRGSUVMRCAoQ3B1QU1E NjQpLAorICBCSVRGSUVMRCAoQ3B1SW50ZWw2NCksCiAjaWZkZWYgQ3B1VW51 c2VkCiAgIEJJVEZJRUxEIChDcHVVbnVzZWQpLAogI2VuZGlmCmRpZmYgLS1n aXQgYS9vcGNvZGVzL2kzODYtb3BjLmggYi9vcGNvZGVzL2kzODYtb3BjLmgK aW5kZXggZmY5YjMyYy4uNjJhYzQyYSAxMDA2NDQKLS0tIGEvb3Bjb2Rlcy9p Mzg2LW9wYy5oCisrKyBiL29wY29kZXMvaTM4Ni1vcGMuaApAQCAtMjAwLDYg KzIwMCwxMCBAQCBlbnVtCiAgIENwdTY0LAogICAvKiBOb3Qgc3VwcG9ydGVk IGluIHRoZSA2NGJpdCBtb2RlICAqLwogICBDcHVObzY0LAorICAvKiBBTUQ2 NCBzdXBwb3J0IHJlcXVpcmVkICAqLworICBDcHVBTUQ2NCwKKyAgLyogSW50 ZWw2NCBzdXBwb3J0IHJlcXVpcmVkICAqLworICBDcHVJbnRlbDY0LAogICAv KiBUaGUgbGFzdCBiaXRmaWVsZCBpbiBpMzg2X2NwdV9mbGFncy4gICovCiAg IENwdU1heCA9IENwdU5vNjQKIH07CkBAIC0zMDMsNiArMzA3LDggQEAgdHlw ZWRlZiB1bmlvbiBpMzg2X2NwdV9mbGFncwogICAgICAgdW5zaWduZWQgaW50 IGNwdWNsemVybzoxOwogICAgICAgdW5zaWduZWQgaW50IGNwdTY0OjE7CiAg ICAgICB1bnNpZ25lZCBpbnQgY3B1bm82NDoxOworICAgICAgdW5zaWduZWQg aW50IGNwdWFtZDY0OjE7CisgICAgICB1bnNpZ25lZCBpbnQgY3B1aW50ZWw2 NDoxOwogI2lmZGVmIENwdVVudXNlZAogICAgICAgdW5zaWduZWQgaW50IHVu dXNlZDooQ3B1TnVtT2ZCaXRzIC0gQ3B1VW51c2VkKTsKICNlbmRpZgpkaWZm IC0tZ2l0IGEvb3Bjb2Rlcy9pMzg2LW9wYy50YmwgYi9vcGNvZGVzL2kzODYt b3BjLnRibAppbmRleCBjYTYyOWM0Li41NmVkZGJmIDEwMDY0NAotLS0gYS9v cGNvZGVzL2kzODYtb3BjLnRibAorKysgYi9vcGNvZGVzL2kzODYtb3BjLnRi bApAQCAtMzE5LDcgKzMxOSw4IEBAIHNocmQsIDIsIDB4ZmFkLCBOb25lLCAy LCBDcHUzODYsIE1vZHJtfENoZWNrUmVnU2l6ZXxOb19iU3VmfE5vX3NTdWZ8 Tm9fbGRTdWYsIHsKIAogLy8gQ29udHJvbCB0cmFuc2ZlciBpbnN0cnVjdGlv bnMuCiBjYWxsLCAxLCAweGU4LCBOb25lLCAxLCBDcHVObzY0LCBKdW1wRHdv cmR8RGVmYXVsdFNpemV8Tm9fYlN1ZnxOb19zU3VmfE5vX3FTdWZ8Tm9fbGRT dWZ8Qk5EUHJlZml4T2ssIHsgRGlzcDE2fERpc3AzMiB9Ci1jYWxsLCAxLCAw eGU4LCBOb25lLCAxLCBDcHU2NCwgSnVtcER3b3JkfERlZmF1bHRTaXplfE5v X2JTdWZ8Tm9fd1N1ZnxOb19sU3VmfE5vX3NTdWZ8Tm9fbGRTdWZ8Tm9SZXg2 NHxCTkRQcmVmaXhPaywgeyBEaXNwMzJTIH0KK2NhbGwsIDEsIDB4ZTgsIE5v bmUsIDEsIENwdTY0fENwdUFNRDY0LCBKdW1wRHdvcmR8RGVmYXVsdFNpemV8 Tm9fYlN1ZnxOb19sU3VmfE5vX3NTdWZ8Tm9fbGRTdWZ8Tm9SZXg2NHxCTkRQ cmVmaXhPaywgeyBEaXNwMTZ8RGlzcDMyfERpc3AzMlMgfQorY2FsbCwgMSwg MHhlOCwgTm9uZSwgMSwgQ3B1NjR8Q3B1SW50ZWw2NCwgSnVtcER3b3JkfERl ZmF1bHRTaXplfE5vX2JTdWZ8Tm9fd1N1ZnxOb19sU3VmfE5vX3NTdWZ8Tm9f bGRTdWZ8Tm9SZXg2NHxCTkRQcmVmaXhPaywgeyBEaXNwMzJTIH0KIGNhbGws IDEsIDB4ZmYsIDB4MiwgMSwgQ3B1Tm82NCwgTW9kcm18RGVmYXVsdFNpemV8 Tm9fYlN1ZnxOb19zU3VmfE5vX3FTdWZ8Tm9fbGRTdWZ8Qk5EUHJlZml4T2ss IHsgUmVnMTZ8UmVnMzJ8V29yZHxEd29yZHxVbnNwZWNpZmllZHxCYXNlSW5k ZXh8RGlzcDh8RGlzcDE2fERpc3AzMnxKdW1wQWJzb2x1dGUgfQogY2FsbCwg MSwgMHhmZiwgMHgyLCAxLCBDcHU2NCwgTW9kcm18RGVmYXVsdFNpemV8Tm9f YlN1ZnxOb19sU3VmfE5vX3NTdWZ8Tm9fbGRTdWZ8Tm9SZXg2NHxCTkRQcmVm aXhPaywgeyBSZWcxNnxSZWc2NHxXb3JkfFF3b3JkfFVuc3BlY2lmaWVkfEJh c2VJbmRleHxEaXNwOHxEaXNwMzJ8RGlzcDMyU3xKdW1wQWJzb2x1dGUgfQog Ly8gSW50ZWwgU3ludGF4CkBAIC0zMzAsNyArMzMxLDggQEAgbGNhbGwsIDIs IDB4OWEsIE5vbmUsIDEsIENwdU5vNjQsIEp1bXBJbnRlclNlZ21lbnR8RGVm YXVsdFNpemV8Tm9fYlN1ZnxOb19zU3VmfE4KIGxjYWxsLCAxLCAweGZmLCAw eDMsIDEsIDAsIE1vZHJtfERlZmF1bHRTaXplfE5vX2JTdWZ8Tm9fc1N1ZnxO b19xU3VmfE5vX2xkU3VmLCB7IFVuc3BlY2lmaWVkfEJhc2VJbmRleHxEaXNw OHxEaXNwMTZ8RGlzcDMyfERpc3AzMlN8SnVtcEFic29sdXRlIH0KIAogam1w LCAxLCAweGViLCBOb25lLCAxLCBDcHVObzY0LCBKdW1wfE5vX2JTdWZ8Tm9f d1N1ZnxOb19sU3VmfE5vX3NTdWZ8Tm9fcVN1ZnxOb19sZFN1ZnxCTkRQcmVm aXhPaywgeyBEaXNwOHxEaXNwMTZ8RGlzcDMyfERpc3AzMlMgfQotam1wLCAx LCAweGViLCBOb25lLCAxLCBDcHU2NCwgSnVtcHxOb19iU3VmfE5vX3dTdWZ8 Tm9fbFN1ZnxOb19zU3VmfE5vX3FTdWZ8Tm9fbGRTdWZ8Qk5EUHJlZml4T2ss IHsgRGlzcDh8RGlzcDMyUyB9CitqbXAsIDEsIDB4ZWIsIE5vbmUsIDEsIENw dTY0fENwdUFNRDY0LCBKdW1wfE5vX2JTdWZ8Tm9fd1N1ZnxOb19sU3VmfE5v X3NTdWZ8Tm9fcVN1ZnxOb19sZFN1ZnxCTkRQcmVmaXhPaywgeyBEaXNwOHxE aXNwMTZ8RGlzcDMyfERpc3AzMlMgfQoram1wLCAxLCAweGViLCBOb25lLCAx LCBDcHU2NHxDcHVJbnRlbDY0LCBKdW1wfE5vX2JTdWZ8Tm9fd1N1ZnxOb19s U3VmfE5vX3NTdWZ8Tm9fcVN1ZnxOb19sZFN1ZnxCTkRQcmVmaXhPaywgeyBE aXNwOHxEaXNwMzJTIH0KIGptcCwgMSwgMHhmZiwgMHg0LCAxLCBDcHVObzY0 LCBNb2RybXxOb19iU3VmfE5vX3NTdWZ8Tm9fcVN1ZnxOb19sZFN1ZnxCTkRQ cmVmaXhPaywgeyBSZWcxNnxSZWczMnxXb3JkfER3b3JkfFVuc3BlY2lmaWVk fEJhc2VJbmRleHxEaXNwOHxEaXNwMTZ8RGlzcDMyfEp1bXBBYnNvbHV0ZSB9 CiBqbXAsIDEsIDB4ZmYsIDB4NCwgMSwgQ3B1NjQsIE1vZHJtfE5vX2JTdWZ8 Tm9fbFN1ZnxOb19zU3VmfE5vX2xkU3VmfE5vUmV4NjR8Qk5EUHJlZml4T2ss IHsgUmVnMTZ8UmVnNjR8V29yZHxRd29yZHxVbnNwZWNpZmllZHxCYXNlSW5k ZXh8RGlzcDh8RGlzcDMyfERpc3AzMlN8SnVtcEFic29sdXRlIH0KIC8vIElu dGVsIFN5bnRheC4K --089e0149ce3821b7a5051621ab0e--