<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>123717</bug_id>
          
          <creation_ts>2013-11-03 18:24:27 -0800</creation_ts>
          <short_desc>Lacking support on a arm-traditional disassembler.</short_desc>
          <delta_ts>2016-12-10 00:04:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>108645</blocked>
    
    <blocked>159408</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="sloanyang">sloanyang</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
    
    <cc>yangqi3</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946523</commentid>
    <comment_count>0</comment_count>
    <who name="sloanyang">sloanyang</who>
    <bug_when>2013-11-03 18:24:27 -0800</bug_when>
    <thetext>The arm-traditional assembler generate codes, but it is hard to debug without a dissassembler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946525</commentid>
    <comment_count>1</comment_count>
    <who name="yangqi3">yangqi3</who>
    <bug_when>2013-11-03 18:48:23 -0800</bug_when>
    <thetext>This might be a problem. We could try to use the arm objdump code to generate dissambler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067787</commentid>
    <comment_count>2</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-02-09 03:16:53 -0800</bug_when>
    <thetext>It would be great to have a working disassembler for 
ARM traditional too to be able debug bug141193 easily.

I&apos;m trying to make the LLVM based disassembler work on ARM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165998</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-02-18 04:32:52 -0800</bug_when>
    <thetext>LLVM dependency was removed from the trunk, now it is a 
bigger task and won&apos;t have time for it in the near future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210962</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-14 05:50:50 -0700</bug_when>
    <thetext>It would be great to have ARM traditional disassembler to
debug bug159408 easily. 

I managed to implement an LLVM based disassembler,
but it is a little bit hacky now. I&apos;m going upstream
it when I finished cleanups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215538</commentid>
    <comment_count>5</comment_count>
      <attachid>284859</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-29 05:28:57 -0700</bug_when>
    <thetext>Created attachment 284859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215568</commentid>
    <comment_count>6</comment_count>
      <attachid>284859</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-29 09:43:04 -0700</bug_when>
    <thetext>Comment on attachment 284859
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=284859&amp;action=review

&gt; Source/JavaScriptCore/disassembler/ARMLLVMDisassembler.cpp:66
&gt; +        out.printf(&quot;%s%16s: [0x%08lx] %s\n&quot;, prefix, pcString, *(static_cast&lt;unsigned long*&gt;(pc)), instructionString);

I meant reinterpret_cast here, will update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215614</commentid>
    <comment_count>7</comment_count>
      <attachid>284876</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-29 11:13:25 -0700</bug_when>
    <thetext>Created attachment 284876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216085</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-08-01 04:32:13 -0700</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216122</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-01 09:05:42 -0700</bug_when>
    <thetext>I&apos;m the wrong person to review, but it seems OK. I&apos;ll let others comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216137</commentid>
    <comment_count>10</comment_count>
      <attachid>284876</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-01 10:08:47 -0700</bug_when>
    <thetext>Comment on attachment 284876
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=284876&amp;action=review

I&apos;m also not the best person to review this, but have a few comments and questions below.

Another question: why can&apos;t ARM traditional use the ARMv7 disassembler (which we do have implemented)?  Are the differences that great?

&gt; Source/JavaScriptCore/CMakeLists.txt:897
&gt; +    ${LLVM_LIBRARIES}

If it&apos;s not too much trouble, is it possible to make this be conditional on the port?  If we want to move towards using the CMake build system for all ports eventually, this seems like a burden on all ports that don&apos;t use LLVM.

&gt; Source/JavaScriptCore/disassembler/ARMLLVMDisassembler.cpp:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

I think this should be 2016, not 2013.

&gt; Source/cmake/FindLLVM.cmake:21
&gt; +foreach (_program_name llvm-config llvm-config-3.7 llvm-config-3.6 llvm-config-3.5)
&gt; +    find_program(LLVM_CONFIG_EXE NAMES ${_program_name})
&gt; +    if (LLVM_CONFIG_EXE)
&gt; +        execute_process(COMMAND ${LLVM_CONFIG_EXE} --version OUTPUT_VARIABLE LLVM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
&gt; +        if (&quot;${LLVM_VERSION}&quot; VERSION_LESS &quot;${LLVM_FIND_VERSION}&quot;)
&gt; +            unset(LLVM_CONFIG_EXE CACHE)
&gt; +        else ()
&gt; +            break ()
&gt; +        endif ()
&gt; +    endif ()
&gt; +endforeach ()

Naive question: would this work for a cross disassembler?  The llvm library that we want to link to for the disassembler needs to be the one that is for the target arm device.  Presumably, we would be running this makefile on an x86/x86_64 host.  How does find_program knows to find that version here?  It also seem strange to me that we would run the found LLVM_CONFIG_EXE to get its --version info.  What am I not seeing here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216444</commentid>
    <comment_count>11</comment_count>
      <attachid>284876</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-08-02 03:18:26 -0700</bug_when>
    <thetext>Comment on attachment 284876
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=284876&amp;action=review

&gt;&gt; Source/JavaScriptCore/CMakeLists.txt:897
&gt;&gt; +    ${LLVM_LIBRARIES}
&gt; 
&gt; If it&apos;s not too much trouble, is it possible to make this be conditional on the port?  If we want to move towards using the CMake build system for all ports eventually, this seems like a burden on all ports that don&apos;t use LLVM.

There is no need to add conditional here. LLVMDisassembler is optional and
disabled by default an can be enabled with setting USE_ARM_LLVM_DISASSEMBLER
in the cmake buildsystem (eg. build-jsc --cmakears=-DUSE_ARM_LLVM_DISASSEMBLER=ON)

If we don&apos;t set it, cmake won&apos;t call find_package(LLVM REQUIRED)
and this variable is an empty string.

&gt;&gt; Source/JavaScriptCore/disassembler/ARMLLVMDisassembler.cpp:2
&gt;&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.
&gt; 
&gt; I think this should be 2016, not 2013.

I added back the pre-r196729 LLVMDisassembler.cpp which has 2013 copyright.
I removed many lines and changed some lines to make it ARM traditional
only and dump all instructions in hexadecimal format too.

If we update the copyright, I think we should keep the original 
one and add 2016 with our company, not Apple.

&gt;&gt; Source/cmake/FindLLVM.cmake:21
&gt;&gt; +endforeach ()
&gt; 
&gt; Naive question: would this work for a cross disassembler?  The llvm library that we want to link to for the disassembler needs to be the one that is for the target arm device.  Presumably, we would be running this makefile on an x86/x86_64 host.  How does find_program knows to find that version here?  It also seem strange to me that we would run the found LLVM_CONFIG_EXE to get its --version info.  What am I not seeing here?

No, it won&apos;t work because of what you noticed. But cross building of JSC/WebKit
on Linux wasn&apos;t officially supported ever. Now we can build for ARM target 
on an ARM hardware or on an X86(_64) hardware inside a complete ARM rootFS
emulating almost everything (perl, python, ruby, llvm-config, ...).

As I mentioned in the changelog, I added back exactly the r196749 state 
of this file without a bit modification. It worked fine for years for
LLVM-based FTL JIT, I don&apos;t plan to refactor it in the near futere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216464</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-08-02 05:38:17 -0700</bug_when>
    <thetext>Based on comments https://bugs.webkit.org/show_bug.cgi?id=154323#c20
and https://bugs.webkit.org/show_bug.cgi?id=154323#c26 , could 
you guys r+ this patch to add the ARM traditional disassembler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216875</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-08-03 04:01:25 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; Another question: why can&apos;t ARM traditional use the ARMv7 disassembler
&gt; (which we do have implemented)?  Are the differences that great?

I missed this question, sorry. 

ARMv7Disassembler is to disassemble Thumb2 instructions generated by
ARMv7Assembler. But ARMAssembler (traditional) generates ARM instructions 
(fixed 32-bit sized), not Thumb2 instructions. They are two different
instruction set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216961</commentid>
    <comment_count>14</comment_count>
      <attachid>284876</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-03 09:53:25 -0700</bug_when>
    <thetext>Comment on attachment 284876
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216979</commentid>
    <comment_count>15</comment_count>
      <attachid>284876</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-03 10:14:16 -0700</bug_when>
    <thetext>Comment on attachment 284876
Patch

Clearing flags on attachment: 284876

Committed r204084: &lt;http://trac.webkit.org/changeset/204084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216980</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-03 10:14:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258343</commentid>
    <comment_count>17</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-09 14:33:48 -0800</bug_when>
    <thetext>&gt;But cross building of JSC/WebKit on Linux wasn&apos;t officially supported ever. Now we can build for ARM target on an ARM hardware or on an X86(_64) hardware inside a complete ARM rootFS emulating almost everything (perl, python, ruby, llvm-config, ...).

FWIW, I&apos;m routinely cross-compile Qt port for MIPS and never thought about going through such insanity as you described :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258617</commentid>
    <comment_count>18</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-12-09 23:54:44 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt;But cross building of JSC/WebKit on Linux wasn&apos;t officially supported ever. Now we can build for ARM target on an ARM hardware or on an X86(_64) hardware inside a complete ARM rootFS emulating almost everything (perl, python, ruby, llvm-config, ...).
&gt; 
&gt; FWIW, I&apos;m routinely cross-compile Qt port for MIPS and never thought about
&gt; going through such insanity as you described :)

I don&apos;t understand why do think building in a rootfs (emulating with qemu) is an insanity. I would be very curios how do you would like to run update-webkit&lt;efl|gtk&gt;libs, build-webkit, run-javascriptcore-tests (perl and ruby) in the _same_ X86_64 environment to build for a non X86_64 target. It&apos;s not as simple as you need a cross compiler, not at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258620</commentid>
    <comment_count>19</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-12-09 23:59:51 -0800</bug_when>
    <thetext>Ah, if you do not run tests on real hardware it makes sense indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258621</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-12-10 00:04:45 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Ah, if you do not run tests on real hardware it makes sense indeed.

We don run tests on real hardware with --remote-config-file option of run-javascriptcore-tests. But it calls ldd to collect the dependecies
of the jsc binary. x86-ldd can&apos;t do anything with an ARM binary JSC.

Not to mention how complex or impossible to build 20-30 jhbuild dependencies
without qemu.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284859</attachid>
            <date>2016-07-29 05:28:57 -0700</date>
            <delta_ts>2016-07-29 11:13:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123717-20160729052742.patch</filename>
            <type>text/plain</type>
            <size>10336</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzODk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTgzNmMzYzQ2MTllMGZlN2I4ZDVhNDIwMTExNzM4OTAzZDdlZmQyLi42NjgzNjhmMDY4ZjMxZDg5
MmQyZjRiY2VmODQxN2U3Y2VlMzY3MDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0wNy0yOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorCisgICAgICAgIExhY2tpbmcgc3VwcG9ydCBvbiBhIGFybS10cmFkaXRpb25hbCBkaXNh
c3NlbWJsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjM3MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGRpc2Fzc2VtYmxlci9BUk1MTFZNRGlzYXNz
ZW1ibGVyLmNwcDogQWRkZWQsIGJhc2VkIG9uIHByZSByMTk2NzI5IExMVk1EaXNhc3NlbWJsZXIs
IGJ1dCBpdCBpcyBBUk0gdHJhZGl0aW9uYWwgb25seSBub3cuCisgICAgICAgIChKU0M6OnRyeVRv
RGlzYXNzZW1ibGUpOgorCiAyMDE2LTA3LTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIEJ5VmFsSW5mbyBpcyBvbmx5IHVzZWQg
aW4gSklUIGVuYWJsZWQgZW52aXJvbm1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM4NTk4MGUwOWYzOWIwMGQ2YTVlNjM3
YTY3OTNjNmUwZWI0ODFjODUuLjkzMThjMTQ4ZmE2NThiMzcxNTljNDI0NzYzZjA3MjAxNmYxZmQ0
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDctMjkgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KKworICAgICAgICBMYWNraW5nIHN1cHBvcnQgb24gYSBhcm0tdHJh
ZGl0aW9uYWwgZGlzYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzNzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxNi0wNy0yOCAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nVmlldyBzaG91bGQgaGF2ZSBh
biBleHBsaWNpdCBtX2lzOEJpdCBmaWVsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBlMjY3Zjc0ZjBjZGVlZjA3MTFjZGQzMmYzY2Q1MzM0NzRmNWY4ZjMzLi42NWM2Njkw
MzkyNDA2Mzk3MTFlY2VkNGYyZDViZTAxOWI3OGM0ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0zODMsNiArMzgzLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHV29ya2xpc3QuY3BwCiAKICAgICBkaXNhc3NlbWJsZXIvQVJNNjREaXNh
c3NlbWJsZXIuY3BwCisgICAgZGlzYXNzZW1ibGVyL0FSTUxMVk1EaXNhc3NlbWJsZXIuY3BwCiAg
ICAgZGlzYXNzZW1ibGVyL0FSTXY3RGlzYXNzZW1ibGVyLmNwcAogICAgIGRpc2Fzc2VtYmxlci9E
aXNhc3NlbWJsZXIuY3BwCiAgICAgZGlzYXNzZW1ibGVyL1VEaXM4NkRpc2Fzc2VtYmxlci5jcHAK
QEAgLTg5Myw2ICs4OTQsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfT0JKRUNUX0xVVF9TT1VSQ0VT
CiBzZXQoSmF2YVNjcmlwdENvcmVfTElCUkFSSUVTCiAgICAgV1RGJHtERUJVR19TVUZGSVh9CiAg
ICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9CisgICAgJHtMTFZNX0xJQlJBUklFU30KICkKIAogc2V0
KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfU09VUkNFU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9TY3JpcHRzIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJs
ZXIvQVJNTExWTURpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNz
ZW1ibGVyL0FSTUxMVk1EaXNhc3NlbWJsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5MTViMTQxYTg3Yjk0
OThiZTc1ZTNhZDJkNWE4ZDA2NWM4ZTUzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTUxMVk1EaXNhc3NlbWJsZXIuY3BwCkBAIC0wLDAg
KzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCisKKyNpZiBVU0Uo
QVJNX0xMVk1fRElTQVNTRU1CTEVSKQorCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
LmgiCisjaW5jbHVkZSA8bGx2bS1jL0Rpc2Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPGxsdm0tYy9U
YXJnZXQuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2Jvb2wgdHJ5VG9EaXNhc3NlbWJsZShjb25z
dCBNYWNyb0Fzc2VtYmxlckNvZGVQdHImIGNvZGVQdHIsIHNpemVfdCBzaXplLCBjb25zdCBjaGFy
KiBwcmVmaXgsIFByaW50U3RyZWFtJiBvdXQpCit7CisgICAgTExWTUluaXRpYWxpemVBbGxUYXJn
ZXRJbmZvcygpOworICAgIExMVk1Jbml0aWFsaXplQWxsVGFyZ2V0TUNzKCk7CisgICAgTExWTUlu
aXRpYWxpemVBbGxEaXNhc3NlbWJsZXJzKCk7CisKKyAgICBjb25zdCBjaGFyKiB0cmlwbGUgPSAi
YXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYiOworICAgIExMVk1EaXNhc21Db250ZXh0UmVm
IGRpc2Fzc2VtYmx5Q29udGV4dCA9IExMVk1DcmVhdGVEaXNhc20odHJpcGxlLCAwLCAwLCAwLCAw
KTsKKworICAgIFJFTEVBU0VfQVNTRVJUKGRpc2Fzc2VtYmx5Q29udGV4dCk7CisKKyAgICBjaGFy
IHBjU3RyaW5nWzIwXTsKKyAgICBjaGFyIGluc3RydWN0aW9uU3RyaW5nWzEwMF07CisKKyAgICB1
aW50OF90KiBwYyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjb2RlUHRyLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpOworICAgIHVpbnQ4X3QqIGVuZCA9IHBjICsgc2l6ZTsKKworICAgIHdoaWxlIChwYyA8
IGVuZCkgeworICAgICAgICBzbnByaW50ZigKKyAgICAgICAgICAgIHBjU3RyaW5nLCBzaXplb2Yo
cGNTdHJpbmcpLCAiMHglbHgiLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9u
Zz4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocGMpKSk7CisKKyAgICAgICAgc2l6ZV90IGluc3Ry
dWN0aW9uU2l6ZSA9IExMVk1EaXNhc21JbnN0cnVjdGlvbigKKyAgICAgICAgICAgIGRpc2Fzc2Vt
Ymx5Q29udGV4dCwgcGMsIGVuZCAtIHBjLCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihwYyksCisg
ICAgICAgICAgICBpbnN0cnVjdGlvblN0cmluZywgc2l6ZW9mKGluc3RydWN0aW9uU3RyaW5nKSk7
CisKKyAgICAgICAgaWYgKCFpbnN0cnVjdGlvblNpemUpCisgICAgICAgICAgICBzbnByaW50Zihp
bnN0cnVjdGlvblN0cmluZywgc2l6ZW9mKGluc3RydWN0aW9uU3RyaW5nKSwgInVua25vd24gaW5z
dHJ1Y3Rpb24iKTsKKworICAgICAgICBvdXQucHJpbnRmKCIlcyUxNnM6IFsweCUwOGx4XSAlc1xu
IiwgcHJlZml4LCBwY1N0cmluZywgKihzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nKj4ocGMpKSwg
aW5zdHJ1Y3Rpb25TdHJpbmcpOworICAgICAgICBwYyArPSA0OworICAgIH0KKworICAgIExMVk1E
aXNhc21EaXNwb3NlKGRpc2Fzc2VtYmx5Q29udGV4dCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gVVNFKEFSTV9MTFZNX0RJU0FTU0VNQkxF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybS5oCmluZGV4IDgyNjZmMGJhYmM0OTJjNzQ3NGRlYmI0ZDUzZTMyMmFkOTczZGY5
NTcuLmUyMTNlNGFjMTM5M2QxMDEzOWUwMGI2MzEzODVlMTFhNzk0NmM3MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aApAQCAtNzQzLDcgKzc0MywxMSBAQAogI2RlZmluZSBVU0VfQVJNVjdfRElTQVNTRU1CTEVSIDEK
ICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FTU0VNQkxFUikgJiYgKFVTRShVRElT
ODYpIHx8IFVTRShBUk1WN19ESVNBU1NFTUJMRVIpIHx8IFVTRShBUk02NF9ESVNBU1NFTUJMRVIp
KQorI2lmICFkZWZpbmVkKFVTRV9BUk1fTExWTV9ESVNBU1NFTUJMRVIpICYmIEVOQUJMRShKSVQp
ICYmIENQVShBUk1fVFJBRElUSU9OQUwpICYmIEhBVkUoTExWTSkKKyNkZWZpbmUgVVNFX0FSTV9M
TFZNX0RJU0FTU0VNQkxFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ESVNBU1NF
TUJMRVIpICYmIChVU0UoVURJUzg2KSB8fCBVU0UoQVJNVjdfRElTQVNTRU1CTEVSKSB8fCBVU0Uo
QVJNNjRfRElTQVNTRU1CTEVSKSB8fCBVU0UoQVJNX0xMVk1fRElTQVNTRU1CTEVSKSkKICNkZWZp
bmUgRU5BQkxFX0RJU0FTU0VNQkxFUiAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL0ZpbmRMTFZNLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRMTFZNLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhhMWFjMjA0OTcxNmFkZmYyYjkzNGIwYzFkZDc2NjA3NTE1MDg2ODgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvY21ha2UvRmluZExMVk0uY21ha2UKQEAgLTAsMCArMSw0OSBAQAorIwor
IyBDaGVjayBpZiB0aGUgbGx2bS1jb25maWcgZ2l2ZXMgdXMgdGhlIHBhdGggZm9yIHRoZSBsbHZt
IGxpYnMuCisjCisjIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBzZXQ6CisjICBMTFZNX0NP
TkZJR19FWEUKKyMgIExMVk1fVkVSU0lPTgorIyAgTExWTV9JTkNMVURFX0RJUlMgLSBpbmNsdWRl
IGRpcmVjdG9yaWVzIGZvciB0aGUgbGx2bSBoZWFkZXJzLgorIyAgTExWTV9TVEFUSUNfTElCUkFS
SUVTIC0gbGlzdCBvZiBwYXRocyBmb3IgdGhlIHN0YXRpYyBsbHZtIGxpYnJhcmllcy4KKworCitm
b3JlYWNoIChfcHJvZ3JhbV9uYW1lIGxsdm0tY29uZmlnIGxsdm0tY29uZmlnLTMuNyBsbHZtLWNv
bmZpZy0zLjYgbGx2bS1jb25maWctMy41KQorICAgIGZpbmRfcHJvZ3JhbShMTFZNX0NPTkZJR19F
WEUgTkFNRVMgJHtfcHJvZ3JhbV9uYW1lfSkKKyAgICBpZiAoTExWTV9DT05GSUdfRVhFKQorICAg
ICAgICBleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0xMVk1fQ09ORklHX0VYRX0gLS12ZXJzaW9u
IE9VVFBVVF9WQVJJQUJMRSBMTFZNX1ZFUlNJT04gT1VUUFVUX1NUUklQX1RSQUlMSU5HX1dISVRF
U1BBQ0UpCisgICAgICAgIGlmICgiJHtMTFZNX1ZFUlNJT059IiBWRVJTSU9OX0xFU1MgIiR7TExW
TV9GSU5EX1ZFUlNJT059IikKKyAgICAgICAgICAgIHVuc2V0KExMVk1fQ09ORklHX0VYRSBDQUNI
RSkKKyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgYnJlYWsgKCkKKyAgICAgICAgZW5kaWYg
KCkKKyAgICBlbmRpZiAoKQorZW5kZm9yZWFjaCAoKQorCitleGVjdXRlX3Byb2Nlc3MoQ09NTUFO
RCAke0xMVk1fQ09ORklHX0VYRX0gLS1pbmNsdWRlZGlyIE9VVFBVVF9WQVJJQUJMRSBMTFZNX0lO
Q0xVREVfRElSUyBPVVRQVVRfU1RSSVBfVFJBSUxJTkdfV0hJVEVTUEFDRSkKK2V4ZWN1dGVfcHJv
Y2VzcyhDT01NQU5EICR7TExWTV9DT05GSUdfRVhFfSAtLWxpYmZpbGVzIE9VVFBVVF9WQVJJQUJM
RSBMTFZNX1NUQVRJQ19MSUJSQVJJRVMgT1VUUFVUX1NUUklQX1RSQUlMSU5HX1dISVRFU1BBQ0Up
CitleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0xMVk1fQ09ORklHX0VYRX0gLS1zeXN0ZW0tbGli
cyBPVVRQVVRfVkFSSUFCTEUgTExWTV9TWVNURU1fTElCUkFSSUVTIE9VVFBVVF9TVFJJUF9UUkFJ
TElOR19XSElURVNQQUNFKQorZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtMTFZNX0NPTkZJR19F
WEV9IC0tbGliZGlyIE9VVFBVVF9WQVJJQUJMRSBMTFZNX0xJQlNfRElSRUNUT1JZIE9VVFBVVF9T
VFJJUF9UUkFJTElOR19XSElURVNQQUNFKQorZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtMTFZN
X0NPTkZJR19FWEV9IC0tbGlicyBPVVRQVVRfVkFSSUFCTEUgTExWTV9MSUJTIE9VVFBVVF9TVFJJ
UF9UUkFJTElOR19XSElURVNQQUNFKQorZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtMTFZNX0NP
TkZJR19FWEV9IC0tbGRmbGFncyBPVVRQVVRfVkFSSUFCTEUgTExWTV9MREZMQUdTIE9VVFBVVF9T
VFJJUF9UUkFJTElOR19XSElURVNQQUNFKQorCisjIERlcGVuZGluZyBvbiBob3cgbGx2bSB3YXMg
YnVpbHQsIHdlIGNvdWxkIGhhdmUgZWl0aGVyIGEgZ2xvYmFsIC5zbyBmaWxlIHdoZW4gYnVpbHQg
dXNpbmcgYXV0b3Rvb2xzLAorIyBvciBtdWx0aXBsZSAuc28gZmlsZXMgZm9yIGVhY2ggc3RhdGlj
IGxpYnJhcnkgd2hlbiBidWlsdCB1c2luZyBDTWFrZS4gU28sIHdlIHNldCB0aGUgTExWTV9MSUJT
X0RJUkVDVE9SWQorIyB2YXJpYWJsZSBoZXJlIGFjY29yZGluZ2x5IGZvciBlYWNoIGNhc2UuCisj
IFdlIG5lZWQgdG8gYnVpbGQgdGhlIHNvbmFtZSBtYW51YWxseSBpbiBhbnkgY2FzZSwgc2luY2Ug
dGhlcmUncyBjdXJyZW50bHkgbm8gd2F5IHRvIGdldCBpdCBmcm9tIGxsdm0tY29uZmlnLgorc2V0
KExMVk1fU09OQU1FICJMTFZNLSR7TExWTV9WRVJTSU9OfSIpCitpZiAoRVhJU1RTICIke0xMVk1f
TElCU19ESVJFQ1RPUll9L2xpYiR7TExWTV9TT05BTUV9LnNvIikKKyAgICBzZXQoTExWTV9MSUJS
QVJJRVMgIiR7TExWTV9MREZMQUdTfSAtbCR7TExWTV9TT05BTUV9IikKK2Vsc2UgKCkKKyAgICBz
ZXQoTExWTV9MSUJSQVJJRVMgIiR7TExWTV9MREZMQUdTfSAke0xMVk1fTElCU30iKQorZW5kaWYg
KCkKKworIyBjb252ZXJ0IHRoZSBsaXN0IG9mIHBhdGhzIGludG8gYSBjbWFrZSBsaXN0CitzZXBh
cmF0ZV9hcmd1bWVudHMoTExWTV9TVEFUSUNfTElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNr
YWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdz
KExMVk0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVFVSVJFRF9WQVJTIExM
Vk1fVkVSU0lPTiBMTFZNX0lOQ0xVREVfRElSUyBMTFZNX0xJQlJBUklFUyBMTFZNX1NUQVRJQ19M
SUJSQVJJRVMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX1ZBUiBM
TFZNX1ZFUlNJT04pCisKK21hcmtfYXNfYWR2YW5jZWQoTExWTV9WRVJTSU9OIExMVk1fSU5DTFVE
RV9ESVJTIExMVk1fTElCUkFSSUVTIExMVk1fU1RBVElDX0xJQlJBUklFUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnND
b21tb24uY21ha2UKaW5kZXggZWEwNjBkYjYyYzQ0NjUwNjkyYTI3MWFhMTA0ZTkwMGIxYmIyMzNh
YS4uNTNlYWIzNjdkYzdlYzc5ODYwYWZmY2Q3NTg2MTQ2NmUyMjkxNjllNSAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNDb21tb24uY21ha2UKQEAgLTE0NCw2ICsxNDQsMTEgQEAgaWYgKFVOSVggQU5EIE5PVCBBUFBM
RSBBTkQgTk9UIEVOQUJMRURfQ09NUElMRVJfU0FOSVRJWkVSUykKICAgICBzZXQoQ01BS0VfU0hB
UkVEX0xJTktFUl9GTEFHUyAiLVdsLC0tbm8tdW5kZWZpbmVkICR7Q01BS0VfU0hBUkVEX0xJTktF
Ul9GTEFHU30iKQogZW5kaWYgKCkKIAoraWYgKFVTRV9BUk1fTExWTV9ESVNBU1NFTUJMRVIpCisg
ICAgZmluZF9wYWNrYWdlKExMVk0gUkVRVUlSRUQpCisgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoSEFWRV9MTFZNIFRSVUUpCitlbmRpZiAoKQorCiAjIEVuYWJsZSB0aGUgdXNhZ2Ugb2YgT3Bl
bk1QLgogIyAgLSBBdCB0aGlzIG1vbWVudCwgT3Blbk1QIGlzIG9ubHkgdXNlZCBhcyBhbiBhbHRl
cm5hdGl2ZSBpbXBsZW1lbnRhdGlvbgogIyAgICB0byBuYXRpdmUgdGhyZWFkcyBmb3IgdGhlIHBh
cmFsbGVsaXphdGlvbiBvZiB0aGUgU1ZHIGZpbHRlcnMuCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggY2FkOWExMGZmOTVmNmE2ZGY1NWExYzgyZjRjOGIxNjhjM2Y3Yzk1
ZC4uMTM2ZmRmNmNiZGRiOGUzNzM4OTNjYzg3NmE4MDk5YjMwMzk2YjlmNCAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA3LTI5ICBD
c2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGFja2luZyBz
dXBwb3J0IG9uIGEgYXJtLXRyYWRpdGlvbmFsIGRpc2Fzc2VtYmxlci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzcxNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRMTFZN
LmNtYWtlOiBBZGRlZCBiYWNrIHRoZSByMTk2NzQ5IHN0YXRlLgorICAgICAgICAqIFNvdXJjZS9j
bWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlOiBBZGRlZCBiYWNrIHRoZSByMTk2NzQ5IHN0YXRlLgor
CiAyMDE2LTA3LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgT3B0aW9uc0dUSy5jbWFrZSBhbmQgTkVXUyBm
b3IgMi4xMy40IHJlbGVhc2UuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284876</attachid>
            <date>2016-07-29 11:13:25 -0700</date>
            <delta_ts>2016-08-03 10:14:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123717-20160729111210.patch</filename>
            <type>text/plain</type>
            <size>10341</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzOTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTgzNmMzYzQ2MTllMGZlN2I4ZDVhNDIwMTExNzM4OTAzZDdlZmQyLi42NjgzNjhmMDY4ZjMxZDg5
MmQyZjRiY2VmODQxN2U3Y2VlMzY3MDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0wNy0yOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorCisgICAgICAgIExhY2tpbmcgc3VwcG9ydCBvbiBhIGFybS10cmFkaXRpb25hbCBkaXNh
c3NlbWJsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjM3MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGRpc2Fzc2VtYmxlci9BUk1MTFZNRGlzYXNz
ZW1ibGVyLmNwcDogQWRkZWQsIGJhc2VkIG9uIHByZSByMTk2NzI5IExMVk1EaXNhc3NlbWJsZXIs
IGJ1dCBpdCBpcyBBUk0gdHJhZGl0aW9uYWwgb25seSBub3cuCisgICAgICAgIChKU0M6OnRyeVRv
RGlzYXNzZW1ibGUpOgorCiAyMDE2LTA3LTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIEJ5VmFsSW5mbyBpcyBvbmx5IHVzZWQg
aW4gSklUIGVuYWJsZWQgZW52aXJvbm1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM4NTk4MGUwOWYzOWIwMGQ2YTVlNjM3
YTY3OTNjNmUwZWI0ODFjODUuLjkzMThjMTQ4ZmE2NThiMzcxNTljNDI0NzYzZjA3MjAxNmYxZmQ0
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDctMjkgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KKworICAgICAgICBMYWNraW5nIHN1cHBvcnQgb24gYSBhcm0tdHJh
ZGl0aW9uYWwgZGlzYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzNzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxNi0wNy0yOCAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nVmlldyBzaG91bGQgaGF2ZSBh
biBleHBsaWNpdCBtX2lzOEJpdCBmaWVsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBlMjY3Zjc0ZjBjZGVlZjA3MTFjZGQzMmYzY2Q1MzM0NzRmNWY4ZjMzLi42NWM2Njkw
MzkyNDA2Mzk3MTFlY2VkNGYyZDViZTAxOWI3OGM0ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0zODMsNiArMzgzLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICAgICBkZmcvREZHV29ya2xpc3QuY3BwCiAKICAgICBkaXNhc3NlbWJsZXIvQVJNNjREaXNh
c3NlbWJsZXIuY3BwCisgICAgZGlzYXNzZW1ibGVyL0FSTUxMVk1EaXNhc3NlbWJsZXIuY3BwCiAg
ICAgZGlzYXNzZW1ibGVyL0FSTXY3RGlzYXNzZW1ibGVyLmNwcAogICAgIGRpc2Fzc2VtYmxlci9E
aXNhc3NlbWJsZXIuY3BwCiAgICAgZGlzYXNzZW1ibGVyL1VEaXM4NkRpc2Fzc2VtYmxlci5jcHAK
QEAgLTg5Myw2ICs4OTQsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfT0JKRUNUX0xVVF9TT1VSQ0VT
CiBzZXQoSmF2YVNjcmlwdENvcmVfTElCUkFSSUVTCiAgICAgV1RGJHtERUJVR19TVUZGSVh9CiAg
ICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9CisgICAgJHtMTFZNX0xJQlJBUklFU30KICkKIAogc2V0
KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfU09VUkNFU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9TY3JpcHRzIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJs
ZXIvQVJNTExWTURpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNz
ZW1ibGVyL0FSTUxMVk1EaXNhc3NlbWJsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNDlhYmJjNjc0MjRk
YTVlMzA1NDQzNzU5Yjc1ODRjZDJmNTFmYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTUxMVk1EaXNhc3NlbWJsZXIuY3BwCkBAIC0wLDAg
KzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCisKKyNpZiBVU0Uo
QVJNX0xMVk1fRElTQVNTRU1CTEVSKQorCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
LmgiCisjaW5jbHVkZSA8bGx2bS1jL0Rpc2Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPGxsdm0tYy9U
YXJnZXQuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2Jvb2wgdHJ5VG9EaXNhc3NlbWJsZShjb25z
dCBNYWNyb0Fzc2VtYmxlckNvZGVQdHImIGNvZGVQdHIsIHNpemVfdCBzaXplLCBjb25zdCBjaGFy
KiBwcmVmaXgsIFByaW50U3RyZWFtJiBvdXQpCit7CisgICAgTExWTUluaXRpYWxpemVBbGxUYXJn
ZXRJbmZvcygpOworICAgIExMVk1Jbml0aWFsaXplQWxsVGFyZ2V0TUNzKCk7CisgICAgTExWTUlu
aXRpYWxpemVBbGxEaXNhc3NlbWJsZXJzKCk7CisKKyAgICBjb25zdCBjaGFyKiB0cmlwbGUgPSAi
YXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYiOworICAgIExMVk1EaXNhc21Db250ZXh0UmVm
IGRpc2Fzc2VtYmx5Q29udGV4dCA9IExMVk1DcmVhdGVEaXNhc20odHJpcGxlLCAwLCAwLCAwLCAw
KTsKKworICAgIFJFTEVBU0VfQVNTRVJUKGRpc2Fzc2VtYmx5Q29udGV4dCk7CisKKyAgICBjaGFy
IHBjU3RyaW5nWzIwXTsKKyAgICBjaGFyIGluc3RydWN0aW9uU3RyaW5nWzEwMF07CisKKyAgICB1
aW50OF90KiBwYyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjb2RlUHRyLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpOworICAgIHVpbnQ4X3QqIGVuZCA9IHBjICsgc2l6ZTsKKworICAgIHdoaWxlIChwYyA8
IGVuZCkgeworICAgICAgICBzbnByaW50ZigKKyAgICAgICAgICAgIHBjU3RyaW5nLCBzaXplb2Yo
cGNTdHJpbmcpLCAiMHglbHgiLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9u
Zz4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocGMpKSk7CisKKyAgICAgICAgc2l6ZV90IGluc3Ry
dWN0aW9uU2l6ZSA9IExMVk1EaXNhc21JbnN0cnVjdGlvbigKKyAgICAgICAgICAgIGRpc2Fzc2Vt
Ymx5Q29udGV4dCwgcGMsIGVuZCAtIHBjLCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihwYyksCisg
ICAgICAgICAgICBpbnN0cnVjdGlvblN0cmluZywgc2l6ZW9mKGluc3RydWN0aW9uU3RyaW5nKSk7
CisKKyAgICAgICAgaWYgKCFpbnN0cnVjdGlvblNpemUpCisgICAgICAgICAgICBzbnByaW50Zihp
bnN0cnVjdGlvblN0cmluZywgc2l6ZW9mKGluc3RydWN0aW9uU3RyaW5nKSwgInVua25vd24gaW5z
dHJ1Y3Rpb24iKTsKKworICAgICAgICBvdXQucHJpbnRmKCIlcyUxNnM6IFsweCUwOGx4XSAlc1xu
IiwgcHJlZml4LCBwY1N0cmluZywgKihyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcqPihw
YykpLCBpbnN0cnVjdGlvblN0cmluZyk7CisgICAgICAgIHBjICs9IDQ7CisgICAgfQorCisgICAg
TExWTURpc2FzbURpc3Bvc2UoZGlzYXNzZW1ibHlDb250ZXh0KTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBVU0UoQVJNX0xMVk1fRElTQVNT
RU1CTEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggODI2NmYwYmFiYzQ5MmM3NDc0ZGViYjRkNTNlMzIyYWQ5
NzNkZjk1Ny4uZTIxM2U0YWMxMzkzZDEwMTM5ZTAwYjYzMTM4NWUxMWE3OTQ2YzczMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCkBAIC03NDMsNyArNzQzLDExIEBACiAjZGVmaW5lIFVTRV9BUk1WN19ESVNBU1NFTUJM
RVIgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1CTEVSKSAmJiAoVVNF
KFVESVM4NikgfHwgVVNFKEFSTVY3X0RJU0FTU0VNQkxFUikgfHwgVVNFKEFSTTY0X0RJU0FTU0VN
QkxFUikpCisjaWYgIWRlZmluZWQoVVNFX0FSTV9MTFZNX0RJU0FTU0VNQkxFUikgJiYgRU5BQkxF
KEpJVCkgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkgJiYgSEFWRShMTFZNKQorI2RlZmluZSBVU0Vf
QVJNX0xMVk1fRElTQVNTRU1CTEVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RJ
U0FTU0VNQkxFUikgJiYgKFVTRShVRElTODYpIHx8IFVTRShBUk1WN19ESVNBU1NFTUJMRVIpIHx8
IFVTRShBUk02NF9ESVNBU1NFTUJMRVIpIHx8IFVTRShBUk1fTExWTV9ESVNBU1NFTUJMRVIpKQog
I2RlZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2UvRmluZExMVk0uY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZExMVk0uY21ha2UKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGExYWMyMDQ5NzE2YWRmZjJiOTM0YjBjMWRkNzY2MDc1MTUwODY4OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kTExWTS5jbWFrZQpAQCAtMCwwICsxLDQ5IEBA
CisjCisjIENoZWNrIGlmIHRoZSBsbHZtLWNvbmZpZyBnaXZlcyB1cyB0aGUgcGF0aCBmb3IgdGhl
IGxsdm0gbGlicy4KKyMKKyMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNldDoKKyMgIExM
Vk1fQ09ORklHX0VYRQorIyAgTExWTV9WRVJTSU9OCisjICBMTFZNX0lOQ0xVREVfRElSUyAtIGlu
Y2x1ZGUgZGlyZWN0b3JpZXMgZm9yIHRoZSBsbHZtIGhlYWRlcnMuCisjICBMTFZNX1NUQVRJQ19M
SUJSQVJJRVMgLSBsaXN0IG9mIHBhdGhzIGZvciB0aGUgc3RhdGljIGxsdm0gbGlicmFyaWVzLgor
CisKK2ZvcmVhY2ggKF9wcm9ncmFtX25hbWUgbGx2bS1jb25maWcgbGx2bS1jb25maWctMy43IGxs
dm0tY29uZmlnLTMuNiBsbHZtLWNvbmZpZy0zLjUpCisgICAgZmluZF9wcm9ncmFtKExMVk1fQ09O
RklHX0VYRSBOQU1FUyAke19wcm9ncmFtX25hbWV9KQorICAgIGlmIChMTFZNX0NPTkZJR19FWEUp
CisgICAgICAgIGV4ZWN1dGVfcHJvY2VzcyhDT01NQU5EICR7TExWTV9DT05GSUdfRVhFfSAtLXZl
cnNpb24gT1VUUFVUX1ZBUklBQkxFIExMVk1fVkVSU0lPTiBPVVRQVVRfU1RSSVBfVFJBSUxJTkdf
V0hJVEVTUEFDRSkKKyAgICAgICAgaWYgKCIke0xMVk1fVkVSU0lPTn0iIFZFUlNJT05fTEVTUyAi
JHtMTFZNX0ZJTkRfVkVSU0lPTn0iKQorICAgICAgICAgICAgdW5zZXQoTExWTV9DT05GSUdfRVhF
IENBQ0hFKQorICAgICAgICBlbHNlICgpCisgICAgICAgICAgICBicmVhayAoKQorICAgICAgICBl
bmRpZiAoKQorICAgIGVuZGlmICgpCitlbmRmb3JlYWNoICgpCisKK2V4ZWN1dGVfcHJvY2VzcyhD
T01NQU5EICR7TExWTV9DT05GSUdfRVhFfSAtLWluY2x1ZGVkaXIgT1VUUFVUX1ZBUklBQkxFIExM
Vk1fSU5DTFVERV9ESVJTIE9VVFBVVF9TVFJJUF9UUkFJTElOR19XSElURVNQQUNFKQorZXhlY3V0
ZV9wcm9jZXNzKENPTU1BTkQgJHtMTFZNX0NPTkZJR19FWEV9IC0tbGliZmlsZXMgT1VUUFVUX1ZB
UklBQkxFIExMVk1fU1RBVElDX0xJQlJBUklFUyBPVVRQVVRfU1RSSVBfVFJBSUxJTkdfV0hJVEVT
UEFDRSkKK2V4ZWN1dGVfcHJvY2VzcyhDT01NQU5EICR7TExWTV9DT05GSUdfRVhFfSAtLXN5c3Rl
bS1saWJzIE9VVFBVVF9WQVJJQUJMRSBMTFZNX1NZU1RFTV9MSUJSQVJJRVMgT1VUUFVUX1NUUklQ
X1RSQUlMSU5HX1dISVRFU1BBQ0UpCitleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0xMVk1fQ09O
RklHX0VYRX0gLS1saWJkaXIgT1VUUFVUX1ZBUklBQkxFIExMVk1fTElCU19ESVJFQ1RPUlkgT1VU
UFVUX1NUUklQX1RSQUlMSU5HX1dISVRFU1BBQ0UpCitleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAk
e0xMVk1fQ09ORklHX0VYRX0gLS1saWJzIE9VVFBVVF9WQVJJQUJMRSBMTFZNX0xJQlMgT1VUUFVU
X1NUUklQX1RSQUlMSU5HX1dISVRFU1BBQ0UpCitleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0xM
Vk1fQ09ORklHX0VYRX0gLS1sZGZsYWdzIE9VVFBVVF9WQVJJQUJMRSBMTFZNX0xERkxBR1MgT1VU
UFVUX1NUUklQX1RSQUlMSU5HX1dISVRFU1BBQ0UpCisKKyMgRGVwZW5kaW5nIG9uIGhvdyBsbHZt
IHdhcyBidWlsdCwgd2UgY291bGQgaGF2ZSBlaXRoZXIgYSBnbG9iYWwgLnNvIGZpbGUgd2hlbiBi
dWlsdCB1c2luZyBhdXRvdG9vbHMsCisjIG9yIG11bHRpcGxlIC5zbyBmaWxlcyBmb3IgZWFjaCBz
dGF0aWMgbGlicmFyeSB3aGVuIGJ1aWx0IHVzaW5nIENNYWtlLiBTbywgd2Ugc2V0IHRoZSBMTFZN
X0xJQlNfRElSRUNUT1JZCisjIHZhcmlhYmxlIGhlcmUgYWNjb3JkaW5nbHkgZm9yIGVhY2ggY2Fz
ZS4KKyMgV2UgbmVlZCB0byBidWlsZCB0aGUgc29uYW1lIG1hbnVhbGx5IGluIGFueSBjYXNlLCBz
aW5jZSB0aGVyZSdzIGN1cnJlbnRseSBubyB3YXkgdG8gZ2V0IGl0IGZyb20gbGx2bS1jb25maWcu
CitzZXQoTExWTV9TT05BTUUgIkxMVk0tJHtMTFZNX1ZFUlNJT059IikKK2lmIChFWElTVFMgIiR7
TExWTV9MSUJTX0RJUkVDVE9SWX0vbGliJHtMTFZNX1NPTkFNRX0uc28iKQorICAgIHNldChMTFZN
X0xJQlJBUklFUyAiJHtMTFZNX0xERkxBR1N9IC1sJHtMTFZNX1NPTkFNRX0iKQorZWxzZSAoKQor
ICAgIHNldChMTFZNX0xJQlJBUklFUyAiJHtMTFZNX0xERkxBR1N9ICR7TExWTV9MSUJTfSIpCitl
bmRpZiAoKQorCisjIGNvbnZlcnQgdGhlIGxpc3Qgb2YgcGF0aHMgaW50byBhIGNtYWtlIGxpc3QK
K3NlcGFyYXRlX2FyZ3VtZW50cyhMTFZNX1NUQVRJQ19MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmlu
ZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJk
X2FyZ3MoTExWTQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVJUkVEX1ZB
UlMgTExWTV9WRVJTSU9OIExMVk1fSU5DTFVERV9ESVJTIExMVk1fTElCUkFSSUVTIExMVk1fU1RB
VElDX0xJQlJBUklFUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05f
VkFSIExMVk1fVkVSU0lPTikKKworbWFya19hc19hZHZhbmNlZChMTFZNX1ZFUlNJT04gTExWTV9J
TkNMVURFX0RJUlMgTExWTV9MSUJSQVJJRVMgTExWTV9TVEFUSUNfTElCUkFSSUVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0
aW9uc0NvbW1vbi5jbWFrZQppbmRleCBlYTA2MGRiNjJjNDQ2NTA2OTJhMjcxYWExMDRlOTAwYjFi
YjIzM2FhLi41M2VhYjM2N2RjN2VjNzk4NjBhZmZjZDc1ODYxNDY2ZTIyOTE2OWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0NvbW1vbi5jbWFrZQpAQCAtMTQ0LDYgKzE0NCwxMSBAQCBpZiAoVU5JWCBBTkQgTk9U
IEFQUExFIEFORCBOT1QgRU5BQkxFRF9DT01QSUxFUl9TQU5JVElaRVJTKQogICAgIHNldChDTUFL
RV9TSEFSRURfTElOS0VSX0ZMQUdTICItV2wsLS1uby11bmRlZmluZWQgJHtDTUFLRV9TSEFSRURf
TElOS0VSX0ZMQUdTfSIpCiBlbmRpZiAoKQogCitpZiAoVVNFX0FSTV9MTFZNX0RJU0FTU0VNQkxF
UikKKyAgICBmaW5kX3BhY2thZ2UoTExWTSBSRVFVSVJFRCkKKyAgICBTRVRfQU5EX0VYUE9TRV9U
T19CVUlMRChIQVZFX0xMVk0gVFJVRSkKK2VuZGlmICgpCisKICMgRW5hYmxlIHRoZSB1c2FnZSBv
ZiBPcGVuTVAuCiAjICAtIEF0IHRoaXMgbW9tZW50LCBPcGVuTVAgaXMgb25seSB1c2VkIGFzIGFu
IGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uCiAjICAgIHRvIG5hdGl2ZSB0aHJlYWRzIGZvciB0
aGUgcGFyYWxsZWxpemF0aW9uIG9mIHRoZSBTVkcgZmlsdGVycy4KZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjYWQ5YTEwZmY5NWY2YTZkZjU1YTFjODJmNGM4YjE2OGMz
ZjdjOTVkLi4xMzZmZGY2Y2JkZGI4ZTM3Mzg5M2NjODc2YTgwOTliMzAzOTZiOWY0IDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMDct
MjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKworICAgICAgICBMYWNr
aW5nIHN1cHBvcnQgb24gYSBhcm0tdHJhZGl0aW9uYWwgZGlzYXNzZW1ibGVyLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNzE3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmlu
ZExMVk0uY21ha2U6IEFkZGVkIGJhY2sgdGhlIHIxOTY3NDkgc3RhdGUuCisgICAgICAgICogU291
cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2U6IEFkZGVkIGJhY2sgdGhlIHIxOTY3NDkgc3Rh
dGUuCisKIDIwMTYtMDctMjcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBO
RVdTIGZvciAyLjEzLjQgcmVsZWFzZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>