<?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>22482</bug_id>
          
          <creation_ts>2008-11-25 01:31:25 -0800</creation_ts>
          <short_desc>REGRESSION (r37991): Occasionally see &quot;Scene rendered incorrectly&quot; message when running the V8 Raytrace benchmark</short_desc>
          <delta_ts>2008-12-02 13:52:40 -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>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100185</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-25 01:31:25 -0800</bug_when>
    <thetext>When running the V8 Raytrace benchmark, many of us have seen the &quot;Scene rendered incorrectly&quot; message. It doesn&apos;t always occur, so I have always suspected that it is a GC issue. If I hack up the V8 test harness, it always occurs with the JIT and COLLECT_ON_EVERY_ALLOCATION. It does not occur with the bytecode interpreter, even with COLLECT_ON_EVERY_ALLOCATION.

I will try to reduce and fix this. I suspect that it is caused by some bad interaction between inline caching and GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100189</commentid>
    <comment_count>1</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-25 03:20:49 -0800</bug_when>
    <thetext>Here is a reduction for the jsc shell, only with COLLECT_ON_EVERY_ALLOCATION:

var o = {
    x: 0.2,

    normalize: function() {
        return this.x / 5.0039984012787215;
    }
};

print(-o.normalize());

This prints 0, but it should print something nonzero. I believe that it happens because a number cell is being collected. I can&apos;t trigger it by putting explicit gc() calls anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100191</commentid>
    <comment_count>2</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-25 04:05:08 -0800</bug_when>
    <thetext>The problem seems to be caused by the negation, as it goes away if I remove it. The GC caused by the call to allocateNumber() emitted by

                if (!resultType.isReusableNumber())
                    emitAllocateNumber(m_globalData, i);

must not be marking the operand to op_negate.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100192</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-25 04:10:18 -0800</bug_when>
    <thetext>Here is a simpler reduction:

function f()
{
    return 0.1;
}

print(-f());
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100196</commentid>
    <comment_count>4</comment_count>
      <attachid>25478</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-25 04:49:24 -0800</bug_when>
    <thetext>Created attachment 25478
in-browser test case

Same as the above, but doesn&apos;t need COLLECT_ON_EVERY_ALLOCATION.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100287</commentid>
    <comment_count>5</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-25 14:09:00 -0800</bug_when>
    <thetext>This is likely caused by r37991:

http://trac.webkit.org/changeset/37991

Oliver says that he probably has a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100299</commentid>
    <comment_count>6</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-25 14:43:05 -0800</bug_when>
    <thetext>I have verified that this is caused by r37991.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100303</commentid>
    <comment_count>7</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-25 14:48:59 -0800</bug_when>
    <thetext>Oliver indeed has a fix for this, but it is part of other work. The problem is that xmm0 is not callee-save, so eventually some function (like memcpy()) will get called and smash its value. I am assigning this to Oliver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100775</commentid>
    <comment_count>8</comment_count>
      <attachid>25614</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-11-30 08:45:06 -0800</bug_when>
    <thetext>Created attachment 25614
Patch to fix problem

This patch simply reverts r37991. I can&apos;t accurately test its performance. It seems to be a regression, but my loaner machine has insane variance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101066</commentid>
    <comment_count>9</comment_count>
      <attachid>25614</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-02 13:52:32 -0800</bug_when>
    <thetext>Comment on attachment 25614
Patch to fix problem

r=me

Performance seems OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101067</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-02 13:52:40 -0800</bug_when>
    <thetext>Committed revision 38917.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25478</attachid>
            <date>2008-11-25 04:49:24 -0800</date>
            <delta_ts>2008-11-25 04:49:24 -0800</delta_ts>
            <desc>in-browser test case</desc>
            <filename>negate.html</filename>
            <type>text/html</type>
            <size>222</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KZnVuY3Rpb24gZigpCnsKICAgIHJldHVybiAwLjE7Cn0KCnZhciBpOwp2YXIgZmFp
bGVkID0gZmFsc2U7CmZvciAoaSA9IDA7IGkgPCA1MDAwMDsgKytpKSB7CiAgICBpZiAoLTAuMSAh
PSAtZigpKSB7CiAgICAgICAgZmFpbGVkID0gdHJ1ZTsKICAgICAgICBicmVhazsKICAgIH0KfQpk
b2N1bWVudC53cml0ZShmYWlsZWQgPyAiRkFJTCIgOiAiUEFTUyIpOwoKPC9zY3JpcHQ+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25614</attachid>
            <date>2008-11-30 08:45:06 -0800</date>
            <delta_ts>2008-12-02 13:52:32 -0800</delta_ts>
            <desc>Patch to fix problem</desc>
            <filename>negate.diff</filename>
            <type>text/plain</type>
            <size>16300</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IHJ1bnRpbWUvSlNOdW1iZXJDZWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcnVudGltZS9KU051
bWJlckNlbGwuaAkocmV2aXNpb24gMzg4NTApCisrKyBydW50aW1lL0pTTnVtYmVyQ2VsbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwxMSArODQsNiBAQAogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUqIHByb3RvKSB7IHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oTnVtYmVyVHlwZSwgTmVlZHNUaGlzQ29u
dmVyc2lvbikpOyB9CiAKLSAgICAgICAgSlNOdW1iZXJDZWxsKEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSkKLSAgICAgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YS0+bnVtYmVyU3RydWN0dXJlLmdldCgp
KQotICAgICAgICB7Ci0gICAgICAgIH0KLQogICAgIHByaXZhdGU6CiAgICAgICAgIEpTTnVtYmVy
Q2VsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGRvdWJsZSB2YWx1ZSkKICAgICAgICAgICAg
IDogSlNDZWxsKGdsb2JhbERhdGEtPm51bWJlclN0cnVjdHVyZS5nZXQoKSkKSW5kZXg6IGJ5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMzg4NTApCisrKyBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDksMTMgKzc0OSwxMSBA
QAogICAgIHJldHVybiBkc3Q7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0VW5hcnlPcChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBzcmMsIFJlc3VsdFR5cGUgdHlwZSkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0VW5hcnlPcChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBzcmMpCiB7CiAgICAgZW1pdE9wY29kZShvcGNvZGVJRCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKGRzdC0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNyYy0+aW5k
ZXgoKSk7Ci0gICAgaWYgKG9wY29kZUlEID09IG9wX25lZ2F0ZSkKLSAgICAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKHR5cGUudG9JbnQoKSk7CiAgICAgcmV0dXJuIGRzdDsKIH0KIApJbmRleDog
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDM4ODUwKQorKysgYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw3ICsyMzEsNyBAQAog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0VW5leHBlY3RlZExvYWQoUmVnaXN0ZXJJRCogZHN0LCBi
b29sKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFVuZXhwZWN0ZWRMb2FkKFJlZ2lzdGVySUQq
IGRzdCwgZG91YmxlKTsKIAotICAgICAgICBSZWdpc3RlcklEKiBlbWl0VW5hcnlPcChPcGNvZGVJ
RCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMsIFJlc3VsdFR5cGUpOworICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0VW5hcnlPcChPcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBzcmMpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0QmluYXJ5T3AoT3Bjb2RlSUQs
IFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjMSwgUmVnaXN0ZXJJRCogc3JjMiwgT3Bl
cmFuZFR5cGVzKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEVxdWFsaXR5T3AoT3Bjb2RlSUQs
IFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjMSwgUmVnaXN0ZXJJRCogc3JjMik7CiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRVbmFyeU5vRHN0T3AoT3Bjb2RlSUQsIFJlZ2lzdGVySUQq
IHNyYyk7CkBAIC0yNDUsMTQgKzI0NSwxNCBAQAogCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRN
b3ZlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKIAotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0VG9KU051bWJlcihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyBy
ZXR1cm4gZW1pdFVuYXJ5T3Aob3BfdG9fanNudW1iZXIsIGRzdCwgc3JjLCBSZXN1bHRUeXBlOjp1
bmtub3duKCkpOyB9CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUb0pTTnVtYmVyKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlPcChvcF90b19qc251
bWJlciwgZHN0LCBzcmMpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQcmVJbmMoUmVnaXN0
ZXJJRCogc3JjRHN0KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFByZURlYyhSZWdpc3RlcklE
KiBzcmNEc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0UG9zdEluYyhSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQb3N0RGVj
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjRHN0KTsKIAogICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0SW5zdGFuY2VPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBS
ZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBiYXNlUHJvdG90eXBlKTsKLSAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdFR5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyBy
ZXR1cm4gZW1pdFVuYXJ5T3Aob3BfdHlwZW9mLCBkc3QsIHNyYywgUmVzdWx0VHlwZTo6dW5rbm93
bigpKTsgfQorICAgICAgICBSZWdpc3RlcklEKiBlbWl0VHlwZU9mKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlPcChvcF90eXBlb2YsIGRzdCwgc3Jj
KTsgfQogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW4oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogYmFzZSkgeyByZXR1cm4gZW1pdEJpbmFyeU9wKG9w
X2luLCBkc3QsIHByb3BlcnR5LCBiYXNlLCBPcGVyYW5kVHlwZXMoKSk7IH0KIAogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0UmVzb2x2ZShSZWdpc3RlcklEKiBkc3QsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5KTsKQEAgLTI5MCw3ICsyOTAsNyBAQAogICAgICAgICBQYXNzUmVmUHRyPExhYmVs
PiBlbWl0SnVtcFN1YnJvdXRpbmUoUmVnaXN0ZXJJRCogcmV0QWRkckRzdCwgTGFiZWwqKTsKICAg
ICAgICAgdm9pZCBlbWl0U3Vicm91dGluZVJldHVybihSZWdpc3RlcklEKiByZXRBZGRyU3JjKTsK
IAotICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0UHJvcGVydHlOYW1lcyhSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIGJhc2UpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX2dldF9wbmFtZXMs
IGRzdCwgYmFzZSwgUmVzdWx0VHlwZTo6dW5rbm93bigpKTsgfQorICAgICAgICBSZWdpc3RlcklE
KiBlbWl0R2V0UHJvcGVydHlOYW1lcyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2Up
IHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX2dldF9wbmFtZXMsIGRzdCwgYmFzZSk7IH0KICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdE5leHRQcm9wZXJ0eU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBpdGVyLCBMYWJlbCogdGFyZ2V0KTsKIAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Q2F0Y2goUmVnaXN0ZXJJRCosIExhYmVsKiBzdGFydCwgTGFiZWwqIGVuZCk7CkluZGV4OiBpbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCShyZXZpc2lvbiAzODg1MCkKKysrIGludGVycHJldGVyL0ludGVycHJldGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTg3Myw3ICsxODczLDYgQEAKICAgICAgICAgICAgIGNhbGxG
cmFtZVtkc3RdID0gcmVzdWx0OwogICAgICAgICB9CiAKLSAgICAgICAgKyt2UEM7CiAgICAgICAg
IE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CiAgICAgREVGSU5FX09QQ09ERShvcF9hZGQpIHsK
SW5kZXg6IGludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gMzg4NTApCisrKyBpbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzIsOCArMjcyLDYgQEAKICAgICAgICAgc3RhdGlj
IEpTT2JqZWN0KiBTRlhfQ0FMTCBjdGlfb3BfbmV3X2Vycm9yKENUSV9BUkdTKTsKICAgICAgICAg
c3RhdGljIHZvaWQgU0ZYX0NBTEwgY3RpX29wX2RlYnVnKENUSV9BUkdTKTsKIAotICAgICAgICBz
dGF0aWMgSlNWYWx1ZSogU0ZYX0NBTEwgY3RpX2FsbG9jYXRlX251bWJlcihDVElfQVJHUyk7Ci0K
ICAgICAgICAgc3RhdGljIEpTVmFsdWUqIFNGWF9DQUxMIGN0aV92bV90aHJvdyhDVElfQVJHUyk7
CiAgICAgICAgIHN0YXRpYyB2b2lkKiBTRlhfQ0FMTCBjdGlfdm1fZG9udExhenlMaW5rQ2FsbChD
VElfQVJHUyk7CiAgICAgICAgIHN0YXRpYyB2b2lkKiBTRlhfQ0FMTCBjdGlfdm1fbGF6eUxpbmtD
YWxsKENUSV9BUkdTKTsKSW5kZXg6IGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDM4ODUwKQorKysgYXNzZW1i
bGVyL1g4NkFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNyArMTIyLDYgQEAKICAg
ICAgICAgT1AyX0NWVFNJMlNEX1ZzZEVkICA9IDB4MkEsCiAgICAgICAgIE9QMl9DVlRUU0QyU0lf
R2RXc2QgPSAweDJDLAogICAgICAgICBPUDJfVUNPTUlTRF9Wc2RXc2QgID0gMHgyRSwKLSAgICAg
ICAgT1AyX1hPUlBEX1ZzZFdzZCAgICA9IDB4NTcsCiAgICAgICAgIE9QMl9BRERTRF9Wc2RXc2Qg
ICAgPSAweDU4LAogICAgICAgICBPUDJfTVVMU0RfVnNkV3NkICAgID0gMHg1OSwKICAgICAgICAg
T1AyX1NVQlNEX1ZzZFdzZCAgICA9IDB4NUMsCkBAIC0xNTgsNyArMTU3LDYgQEAKICAgICAgICAg
R1JPVVAyX09QX1NBUiA9IDcsCiAKICAgICAgICAgR1JPVVAzX09QX1RFU1QgPSAwLAotICAgICAg
ICBHUk9VUDNfT1BfTkVHICA9IDMsCiAgICAgICAgIEdST1VQM19PUF9JRElWID0gNywKIAogICAg
ICAgICBHUk9VUDVfT1BfQ0FMTE4gPSAyLApAQCAtNTQ0LDEyICs1NDIsNiBAQAogICAgICAgICBt
b2RSbV9vcHIoR1JPVVAzX09QX0lESVYsIGRzdCk7CiAgICAgfQogCi0gICAgdm9pZCBuZWdsX3Io
UmVnaXN0ZXJJRCBkc3QpCi0gICAgewotICAgICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShPUF9HUk9V
UDNfRXYpOwotICAgICAgICBtb2RSbV9vcHIoR1JPVVAzX09QX05FRywgZHN0KTsKLSAgICB9Ci0K
ICAgICB2b2lkIGNkcSgpCiAgICAgewogICAgICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShPUF9DRFEp
OwpAQCAtNjg2LDE0ICs2NzgsNiBAQAogICAgICAgICBtb2RSbV9ybSgoUmVnaXN0ZXJJRClkc3Qs
IGJhc2UsIG9mZnNldCk7CiAgICAgfQogCi0gICAgdm9pZCB4b3JwZF9tcih2b2lkKiBhZGRyLCBY
TU1SZWdpc3RlcklEIGRzdCkKLSAgICB7Ci0gICAgICAgIG1fYnVmZmVyLT5wdXRCeXRlKFBSRV9T
U0VfNjYpOwotICAgICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShPUF8yQllURV9FU0NBUEUpOwotICAg
ICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShPUDJfWE9SUERfVnNkV3NkKTsKLSAgICAgICAgbW9kUm1f
cm0oKFJlZ2lzdGVySUQpZHN0LCBhZGRyKTsKLSAgICB9Ci0KICAgICB2b2lkIG1vdnNkX3JtKFhN
TVJlZ2lzdGVySUQgc3JjLCBpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UpCiAgICAgewogICAg
ICAgICBtX2J1ZmZlci0+cHV0Qnl0ZShQUkVfU1NFX0YyKTsKSW5kZXg6IGppdC9KSVQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGppdC9KSVQuY3BwCShyZXZpc2lvbiAzODg1MCkKKysrIGppdC9KSVQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsMjAgKzM2MSw2IEBACiAKICNlbmRpZgogCi1leHRlcm4g
IkMiIHsKLSAgICBzdGF0aWMgSlNWYWx1ZSogRkFTVENBTEwgYWxsb2NhdGVOdW1iZXIoSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhKSB7Ci0gICAgICAgIEpTVmFsdWUqIHJlc3VsdCA9IG5ldyAoZ2xv
YmFsRGF0YSkgSlNOdW1iZXJDZWxsKGdsb2JhbERhdGEpOwotICAgICAgICBBU1NFUlQocmVzdWx0
KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19Ci0KLUFMV0FZU19JTkxJTkUgdm9p
ZCBKSVQ6OmVtaXRBbGxvY2F0ZU51bWJlcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgpCi17Ci0gICAgX18gbW92bF9pMzJyKHJlaW50ZXJwcmV0X2Nhc3Q8
aW50cHRyX3Q+KGdsb2JhbERhdGEpLCBYODY6OmVjeCk7Ci0gICAgZW1pdE5ha2VkRmFzdENhbGwo
Ynl0ZWNvZGVJbmRleCwgKHZvaWQqKWFsbG9jYXRlTnVtYmVyKTsKLX0KLQogQUxXQVlTX0lOTElO
RSBKbXBTcmMgSklUOjplbWl0TmFrZWRDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFg4Njo6
UmVnaXN0ZXJJRCByKQogewogICAgIEptcFNyYyBjYWxsID0gX18gY2FsbChyKTsKQEAgLTM5MCwx
MyArMzc2LDYgQEAKICAgICByZXR1cm4gY2FsbDsKIH0KIAotQUxXQVlTX0lOTElORSAgSm1wU3Jj
IEpJVDo6ZW1pdE5ha2VkRmFzdENhbGwodW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgdm9pZCogZnVu
Y3Rpb24pCi17Ci0gICAgSm1wU3JjIGNhbGwgPSBfXyBjYWxsKCk7Ci0gICAgbV9jYWxscy5hcHBl
bmQoQ2FsbFJlY29yZChjYWxsLCByZWludGVycHJldF9jYXN0PENUSUhlbHBlcl92PihmdW5jdGlv
biksIGJ5dGVjb2RlSW5kZXgpKTsKLSAgICByZXR1cm4gY2FsbDsKLX0KLQogQUxXQVlTX0lOTElO
RSBKbXBTcmMgSklUOjplbWl0Q1RJQ2FsbChJbnN0cnVjdGlvbiogdlBDLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBDVElIZWxwZXJfaiBoZWxwZXIpCiB7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1Q
TElORykKQEAgLTYxNywxNCArNTk2LDYgQEAKICAgICBlbWl0RmFzdEFyaXRoUmVUYWdJbW1lZGlh
dGUocmVnKTsKIH0KIAotQUxXQVlTX0lOTElORSBKbXBTcmMgSklUOjplbWl0QXJpdGhJbnRUb0lt
bVdpdGhKdW1wKFJlZ2lzdGVySUQgcmVnKQotewotICAgIF9fIGFkZGxfcnIocmVnLCByZWcpOwot
ICAgIEptcFNyYyBqbXAgPSBfXyBqbygpOwotICAgIGVtaXRGYXN0QXJpdGhSZVRhZ0ltbWVkaWF0
ZShyZWcpOwotICAgIHJldHVybiBqbXA7Ci19Ci0KIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVt
aXRUYWdBc0Jvb2xJbW1lZGlhdGUoUmVnaXN0ZXJJRCByZWcpCiB7CiAgICAgX18gc2hsX2k4cihK
U0ltbWVkaWF0ZTo6RXh0ZW5kZWRQYXlsb2FkU2hpZnQsIHJlZyk7CkBAIC0xNjEwLDUzICsxNTgx
LDEwIEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25l
Z2F0ZTogewotICAgICAgICAgICAgaW50IHNyY1ZSZWcgPSBpbnN0cnVjdGlvbltpICsgMl0udS5v
cGVyYW5kOwotICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihzcmNWUmVnLCBYODY6
OmVheCwgaSk7Ci0KLSAgICAgICAgICAgIF9fIHRlc3RsX2kzMnIoSlNJbW1lZGlhdGU6OlRhZ0Jp
dFR5cGVJbnRlZ2VyLCBYODY6OmVheCk7Ci0gICAgICAgICAgICBKbXBTcmMgbm90SW1tZWRpYXRl
ID0gX18gamUoKTsKLQotICAgICAgICAgICAgX18gY21wbF9pMzJyKEpTSW1tZWRpYXRlOjpUYWdC
aXRUeXBlSW50ZWdlciwgWDg2OjplYXgpOwotICAgICAgICAgICAgSm1wU3JjIHplcm9JbW1lZGlh
dGUgPSBfXyBqZSgpOwotICAgICAgICAgICAgZW1pdEZhc3RBcml0aEltbVRvSW50KFg4Njo6ZWF4
KTsKLSAgICAgICAgICAgIF9fIG5lZ2xfcihYODY6OmVheCk7IC8vIFRoaXMgY2FuJ3Qgb3ZlcmZs
b3cgYXMgd2Ugb25seSBoYXZlIGEgMzFiaXQgaW50IGF0IHRoaXMgcG9pbnQKLSAgICAgICAgICAg
IEptcFNyYyBvdmVyZmxvdyA9IGVtaXRBcml0aEludFRvSW1tV2l0aEp1bXAoWDg2OjplYXgpOwor
ICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25b
aSArIDJdLnUub3BlcmFuZCwgMCwgWDg2OjplY3gpOworICAgICAgICAgICAgZW1pdENUSUNhbGwo
aW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25lZ2F0ZSk7CiAgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQp
OwotICAgICAgICAgICAgSm1wU3JjIGltbWVkaWF0ZU5lZ2F0ZVN1Y2Nlc3MgPSBfXyBqbXAoKTsK
LQotICAgICAgICAgICAgaWYgKCFpc1NTRTJQcmVzZW50KCkpIHsKLSAgICAgICAgICAgICAgICBf
XyBsaW5rKHplcm9JbW1lZGlhdGUsIF9fIGxhYmVsKCkpOwotICAgICAgICAgICAgICAgIF9fIGxp
bmsob3ZlcmZsb3csIF9fIGxhYmVsKCkpOwotICAgICAgICAgICAgICAgIF9fIGxpbmsobm90SW1t
ZWRpYXRlLCBfXyBsYWJlbCgpKTsKLSAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZp
cnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kLCAwLCBYODY6OmVjeCk7
Ci0gICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnBy
ZXRlcjo6Y3RpX29wX25lZ2F0ZSk7Ci0gICAgICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgLy8gU2xvdyBjYXNlIGltbWVkaWF0ZXMKLSAgICAgICAgICAgICAg
ICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VFbnRyeSh6ZXJvSW1tZWRpYXRlLCBpKSk7Ci0g
ICAgICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNsb3dDYXNlRW50cnkob3ZlcmZsb3cs
IGkpKTsKLSAgICAgICAgICAgICAgICBfXyBsaW5rKG5vdEltbWVkaWF0ZSwgX18gbGFiZWwoKSk7
Ci0gICAgICAgICAgICAgICAgUmVzdWx0VHlwZSByZXN1bHRUeXBlKGluc3RydWN0aW9uW2kgKyAz
XS51LnJlc3VsdFR5cGUpOwotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0VHlwZS5kZWZpbml0
ZWx5SXNOdW1iZXIoKSkgewotICAgICAgICAgICAgICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZO
b3RKU0NlbGwoWDg2OjplYXgsIGksIHNyY1ZSZWcpOwotICAgICAgICAgICAgICAgICAgICBTdHJ1
Y3R1cmUqIG51bWJlclN0cnVjdHVyZSA9IG1fZ2xvYmFsRGF0YS0+bnVtYmVyU3RydWN0dXJlLmdl
dCgpOwotICAgICAgICAgICAgICAgICAgICBfXyBjbXBsX2kzMm0ocmVpbnRlcnByZXRfY2FzdDx1
bnNpZ25lZD4obnVtYmVyU3RydWN0dXJlKSwgRklFTERfT0ZGU0VUKEpTQ2VsbCwgbV9zdHJ1Y3R1
cmUpLCBYODY6OmVheCk7Ci0gICAgICAgICAgICAgICAgICAgIG1fc2xvd0Nhc2VzLmFwcGVuZChT
bG93Q2FzZUVudHJ5KF9fIGpuZSgpLCBpKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIF9fIG1vdnNkX21yKEZJRUxEX09GRlNFVChKU051bWJlckNlbGwsIG1fdmFsdWUpLCBY
ODY6OmVheCwgWDg2Ojp4bW0wKTsKLSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIDMgY29waWVz
IG9mIHRoZSBzaWduIGJpdCBtYXNrIHNvIHdlIGNhbiBhc3N1cmUgYWxpZ25tZW50IGFuZCBwYWQg
Zm9yIHRoZSAxMjhiaXQgbG9hZAotICAgICAgICAgICAgICAgIHN0YXRpYyBkb3VibGUgZG91Ymxl
U2lnbkJpdFtdID0geyAtMC4wLCAtMC4wLCAtMC4wIH07Ci0gICAgICAgICAgICAgICAgX18geG9y
cGRfbXIoKHZvaWQqKSgoKCh1aW50cHRyX3QpZG91YmxlU2lnbkJpdCkrMTUpJn4xNSksIFg4Njo6
eG1tMCk7Ci0gICAgICAgICAgICAgICAgSm1wU3JjIHdhc0NlbGw7Ci0gICAgICAgICAgICAgICAg
aWYgKCFyZXN1bHRUeXBlLmlzUmV1c2FibGVOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICAgICAg
ZW1pdEFsbG9jYXRlTnVtYmVyKG1fZ2xvYmFsRGF0YSwgaSk7Ci0KLSAgICAgICAgICAgICAgICBw
dXREb3VibGVSZXN1bHRUb0pTTnVtYmVyQ2VsbE9ySlNJbW1lZGlhdGUoWDg2Ojp4bW0wLCBYODY6
OmVheCwgaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgJndhc0NlbGwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFg4Njo6eG1t
MSwgWDg2OjplY3gsIFg4Njo6ZWR4KTsKLSAgICAgICAgICAgICAgICBfXyBsaW5rKHdhc0NlbGws
IF9fIGxhYmVsKCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgX18gbGluayhpbW1lZGlh
dGVOZWdhdGVTdWNjZXNzLCBfXyBsYWJlbCgpKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAg
ICAgICAgIGkgKz0gMzsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfcmVzb2x2ZV9za2lwOiB7CkBAIC0yNDk5LDIyICsyNDI3LDYgQEAKICAgICAgICAgICAg
IGkgKz0gNTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2Ugb3Bf
bmVnYXRlOiB7Ci0gICAgICAgICAgICBfXyBsaW5rKGl0ZXItPmZyb20sIF9fIGxhYmVsKCkpOwot
ICAgICAgICAgICAgX18gbGluaygoKytpdGVyKS0+ZnJvbSwgX18gbGFiZWwoKSk7Ci0gICAgICAg
ICAgICBSZXN1bHRUeXBlIHJlc3VsdFR5cGUoaW5zdHJ1Y3Rpb25baSArIDNdLnUucmVzdWx0VHlw
ZSk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdFR5cGUuZGVmaW5pdGVseUlzTnVtYmVyKCkpIHsK
LSAgICAgICAgICAgICAgICBpZiAobGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoKytpdGVyLCBpbnN0
cnVjdGlvbltpICsgMl0udS5vcGVyYW5kKSkKLSAgICAgICAgICAgICAgICAgICAgKytpdGVyOwot
ICAgICAgICAgICAgICAgIF9fIGxpbmsoaXRlci0+ZnJvbSwgX18gbGFiZWwoKSk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGlu
c3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIDAsIFg4Njo6ZWN4KTsKLSAgICAgICAgICAgIGVt
aXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZWdhdGUp
OwotICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0u
dS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcnNoaWZ0OiB7CiAgICAgICAgICAgICBfXyBsaW5rKGl0
ZXItPmZyb20sIF9fIGxhYmVsKCkpOwogICAgICAgICAgICAgX18gbGluaygoKytpdGVyKS0+ZnJv
bSwgX18gbGFiZWwoKSk7CkluZGV4OiBqaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaml0L0pJVC5o
CShyZXZpc2lvbiAzODg1MCkKKysrIGppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtODYsMTQg
Kzg2LDYgQEAKIAogI2RlZmluZSBDVElfUkVUVVJOX0FERFJFU1NfU0xPVCAoQVJHU1stMV0pCiAK
LSNpZiBDT01QSUxFUihNU1ZDKQotI2RlZmluZSBGQVNUQ0FMTCBfX2Zhc3RjYWxsCi0jZWxpZiBD
T01QSUxFUihHQ0MpCi0jZGVmaW5lIEZBU1RDQUxMICBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwp
KQotI2Vsc2UKLSNlcnJvciBOZWVkIHRvIHN1cHBvcnQgZmFzdGNhbGwgY2FsbGluZyBjb252ZW50
aW9uIGluIHRoaXMgY29tcGlsZXIKLSNlbmRpZgotCiBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNs
YXNzIENvZGVCbG9jazsKQEAgLTQ0OCwxNSArNDQwLDExIEBACiAgICAgICAgIHZvaWQgZW1pdEZh
c3RBcml0aEltbVRvSW50KFJlZ2lzdGVySUQpOwogICAgICAgICB2b2lkIGVtaXRGYXN0QXJpdGhJ
bnRUb0ltbU9yU2xvd0Nhc2UoUmVnaXN0ZXJJRCwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAg
ICAgICAgIHZvaWQgZW1pdEZhc3RBcml0aEludFRvSW1tTm9DaGVjayhSZWdpc3RlcklEKTsKLSAg
ICAgICAgSm1wU3JjIGVtaXRBcml0aEludFRvSW1tV2l0aEp1bXAoUmVnaXN0ZXJJRCByZWcpOwog
CiAgICAgICAgIHZvaWQgZW1pdFRhZ0FzQm9vbEltbWVkaWF0ZShSZWdpc3RlcklEIHJlZyk7CiAK
LSAgICAgICAgdm9pZCBlbWl0QWxsb2NhdGVOdW1iZXIoSlNHbG9iYWxEYXRhKiwgdW5zaWduZWQp
OwotCiAgICAgICAgIEptcFNyYyBlbWl0TmFrZWRDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgs
IFJlZ2lzdGVySUQpOwogICAgICAgICBKbXBTcmMgZW1pdE5ha2VkQ2FsbCh1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCB2b2lkKiBmdW5jdGlvbik7Ci0gICAgICAgIEptcFNyYyBlbWl0TmFrZWRGYXN0
Q2FsbCh1bnNpZ25lZCBieXRlY29kZUluZGV4LCB2b2lkKik7CiAgICAgICAgIEptcFNyYyBlbWl0
Q1RJQ2FsbChJbnN0cnVjdGlvbiosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9q
KTsKICAgICAgICAgSm1wU3JjIGVtaXRDVElDYWxsKEluc3RydWN0aW9uKiwgdW5zaWduZWQgYnl0
ZWNvZGVJbmRleCwgQ1RJSGVscGVyX28pOwogICAgICAgICBKbXBTcmMgZW1pdENUSUNhbGwoSW5z
dHJ1Y3Rpb24qLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDVElIZWxwZXJfcCk7CkluZGV4OiBw
YXJzZXIvUmVzdWx0VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhcnNlci9SZXN1bHRUeXBlLmgJKHJl
dmlzaW9uIDM4ODUwKQorKysgcGFyc2VyL1Jlc3VsdFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTIsMTEgKzUyLDYgQEAKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIChtX3R5cGUgJiBU
eXBlUmV1c2FibGUpOwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIGlzUmV1c2Fi
bGVOdW1iZXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaXNSZXVzYWJsZSgpICYm
IGRlZmluaXRlbHlJc051bWJlcigpOwotICAgICAgICB9CiAKICAgICAgICAgYm9vbCBkZWZpbml0
ZWx5SXNOdW1iZXIoKQogICAgICAgICB7CkBAIC03MiwxMSArNjcsNiBAQAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gIWlzTm90TnVtYmVyKCk7CiAgICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGludCB0b0ludCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxpbnQ+KG1fdHlwZSk7Ci0gICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgUmVzdWx0VHlw
ZSBudWxsVHlwZSgpCiAgICAgICAgIHsKSW5kZXg6IHBhcnNlci9Ob2Rlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcGFyc2VyL05vZGVzLmNwcAkocmV2aXNpb24gMzg4NTApCisrKyBwYXJzZXIvTm9kZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkzLDcgKzEwOTMsNyBAQAogUmVnaXN0ZXJJRCogVW5h
cnlPcE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCiB7CiAgICAgUmVnaXN0ZXJJRCogc3JjID0gZ2VuZXJhdG9yLmVtaXROb2Rl
KG1fZXhwci5nZXQoKSk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0VW5hcnlPcChvcGNvZGVJ
RCgpLCBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBzcmMsIG1fZXhwci0+cmVzdWx0
RGVzY3JpcHRvcigpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRVbmFyeU9wKG9wY29kZUlE
KCksIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHNyYyk7CiB9CiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCaW5hcnkgT3BlcmF0aW9uIE5vZGVzIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTE1LDcgKzExMTUsNyBAQAogICAgIGlm
IChvcGNvZGVJRCA9PSBvcF9uZXEpIHsKICAgICAgICAgaWYgKG1fZXhwcjEtPmlzTnVsbCgpIHx8
IG1fZXhwcjItPmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3Jj
ID0gZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9leHByMS0+aXNOdWxsKCkgPyBtX2V4cHIyLmdl
dCgpIDogbV9leHByMS5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRV
bmFyeU9wKG9wX25lcV9udWxsLCBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHNyYy5n
ZXQoKSksIHNyYy5nZXQoKSwgUmVzdWx0VHlwZTo6dW5rbm93bigpKTsKKyAgICAgICAgICAgIHJl
dHVybiBnZW5lcmF0b3IuZW1pdFVuYXJ5T3Aob3BfbmVxX251bGwsIGdlbmVyYXRvci5maW5hbERl
c3RpbmF0aW9uKGRzdCwgc3JjLmdldCgpKSwgc3JjLmdldCgpKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTEyOCw3ICsxMTI4LDcgQEAKIHsKICAgICBpZiAobV9leHByMS0+aXNOdWxsKCkgfHwg
bV9leHByMi0+aXNOdWxsKCkpIHsKICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYyA9IGdl
bmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fZXhwcjEtPmlzTnVsbCgpID8gbV9leHByMi5nZXQoKSA6
IG1fZXhwcjEuZ2V0KCkpOwotICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRVbmFyeU9wKG9w
X2VxX251bGwsIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgc3JjLmdldCgpKSwgc3Jj
LmdldCgpLCBSZXN1bHRUeXBlOjp1bmtub3duKCkpOworICAgICAgICByZXR1cm4gZ2VuZXJhdG9y
LmVtaXRVbmFyeU9wKG9wX2VxX251bGwsIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwg
c3JjLmdldCgpKSwgc3JjLmdldCgpKTsKICAgICB9CiAKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
c3JjMSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLmdldCgpLCBt
X3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsKSW5kZXg6
IGJ5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcAkocmV2aXNpb24gMzg4NTApCisrKyBieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NjgsNyArNDY4LDYgQEAKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25l
Z2F0ZTogewogICAgICAgICAgICAgcHJpbnRVbmFyeU9wKGxvY2F0aW9uLCBpdCwgIm5lZ2F0ZSIp
OwotICAgICAgICAgICAgKytpdDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfYWRkOiB7CkluZGV4OiBieXRlY29kZS9JbnN0cnVjdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGJ5dGVjb2RlL0luc3RydWN0aW9uLmgJKHJldmlzaW9uIDM4ODUwKQorKysgYnl0ZWNv
ZGUvSW5zdHJ1Y3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2RlZmlu
ZSBJbnN0cnVjdGlvbl9oCiAKICNpbmNsdWRlICJPcGNvZGUuaCIKLSNpbmNsdWRlICJSZXN1bHRU
eXBlLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3RvclRyYWl0cy5oPgogCiAjZGVmaW5lIFBPTFlNT1JQ
SElDX0xJU1RfQ0FDSEVfU0laRSA0CkBAIC0xMzgsNyArMTM3LDYgQEAKICAgICAgICAgICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlOwogICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIHN0cnVjdHVy
ZUNoYWluOwogICAgICAgICAgICAgSlNDZWxsKiBqc0NlbGw7Ci0gICAgICAgICAgICBSZXN1bHRU
eXBlOjpUeXBlIHJlc3VsdFR5cGU7CiAgICAgICAgICAgICBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVj
dHVyZUxpc3QqIHBvbHltb3JwaGljU3RydWN0dXJlczsKICAgICAgICAgfSB1OwogICAgIH07Cg==
</data>
<flag name="review"
          id="11987"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>