<?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>69734</bug_id>
          
          <creation_ts>2011-10-09 18:54:32 -0700</creation_ts>
          <short_desc>Improve Null or Undefined test in 32_64 DFG</short_desc>
          <delta_ts>2019-05-02 16:23:14 -0700</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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Yuqiang Xian">yuqiang.xian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>nagar28496</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480774</commentid>
    <comment_count>0</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-10-09 18:54:32 -0700</bug_when>
    <thetext>Currently Null or Undefined value test in 32_64 DFG will check Null and Undefined tag separately and introduce one more branch. It can be improved in the way how the baseline JIT is doing - by relying on the fact that &quot;UndefinedTag + 1 == NullTag and NullTag &amp; 1&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480776</commentid>
    <comment_count>1</comment_count>
      <attachid>110315</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-10-09 18:58:53 -0700</bug_when>
    <thetext>Created attachment 110315
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480782</commentid>
    <comment_count>2</comment_count>
      <attachid>110315</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-09 19:27:25 -0700</bug_when>
    <thetext>Comment on attachment 110315
the patch

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

&gt; Source/JavaScriptCore/dfg/DFGJITCodeGenerator32_64.cpp:1178
&gt; +        ASSERT((JSValue::UndefinedTag + 1 == JSValue::NullTag) &amp;&amp; (JSValue::NullTag &amp; 0x1));

This assertion is written in an oblique way and could instead be written to directly mirror what the code relies on:

    COMPILE_ASSERT((JSValue::UndefinedTag | 1) == JSValue::NullTag);

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:460
&gt; +    ASSERT((JSValue::UndefinedTag + 1 == JSValue::NullTag) &amp;&amp; (JSValue::NullTag &amp; 0x1));

Ditto.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:560
&gt; +    ASSERT((JSValue::UndefinedTag + 1 == JSValue::NullTag) &amp;&amp; (JSValue::NullTag &amp; 0x1));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480787</commentid>
    <comment_count>3</comment_count>
      <attachid>110315</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-10-09 19:35:15 -0700</bug_when>
    <thetext>Comment on attachment 110315
the patch

Agree with Darin&apos;s comments, r=me otherwise. I&apos;ll be happy to cq+ if you can just fix that assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480792</commentid>
    <comment_count>4</comment_count>
      <attachid>110319</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-10-09 19:43:02 -0700</bug_when>
    <thetext>Created attachment 110319
patch addressing Darin&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480809</commentid>
    <comment_count>5</comment_count>
      <attachid>110319</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-09 21:04:34 -0700</bug_when>
    <thetext>Comment on attachment 110319
patch addressing Darin&apos;s comments

Clearing flags on attachment: 110319

Committed r97039: &lt;http://trac.webkit.org/changeset/97039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480810</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-09 21:04:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110315</attachid>
            <date>2011-10-09 18:58:53 -0700</date>
            <delta_ts>2011-10-09 19:43:02 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>69734.patch</filename>
            <type>text/plain</type>
            <size>5220</size>
            <attacher name="Yuqiang Xian">yuqiang.xian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTcwMzUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMTAtMDkgIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRlbC5jb20+CisKKyAg
ICAgICAgSW1wcm92ZSBOdWxsIG9yIFVuZGVmaW5lZCB0ZXN0IGluIDMyXzY0IERGRworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgTnVsbCBv
ciBVbmRlZmluZWQgdmFsdWUgdGVzdCBpbiAzMl82NCBERkcgd2lsbCBjaGVjaworICAgICAgICBO
dWxsIGFuZCBVbmRlZmluZWQgdGFnIHNlcGFyYXRlbHkgYW5kIGludHJvZHVjZSBvbmUgbW9yZSBi
cmFuY2guCisgICAgICAgIEl0IGNhbiBiZSBpbXByb3ZlZCBpbiB0aGUgd2F5IGhvdyB0aGUgYmFz
ZWxpbmUgSklUIGlzIGRvaW5nIC0gYnkKKyAgICAgICAgcmVseWluZyBvbiB0aGUgZmFjdCB0aGF0
ICJVbmRlZmluZWRUYWcgKyAxID09IE51bGxUYWcgYW5kIE51bGxUYWcgJiAxIi4KKworICAgICAg
ICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxOb3QpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0T2JqZWN0T3JPdGhlckJyYW5j
aCk6CisKIDIwMTEtMTAtMDkgIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRlbC5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBjYWxsT3BlcmF0aW9uIGNvZGUgb2YgREZHIEpJVCBv
biBYODYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRv
cjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvZGVHZW5lcmF0b3IzMl82NC5jcHAJKHJldmlzaW9uIDk3MDM0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTcxLDE3ICsxMTcxLDE0IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3Vs
YXRpdmVOb24KICAgICBtX2ppdC50ZXN0OChpbnZlcnQgPyBKSVRDb21waWxlcjo6WmVybyA6IEpJ
VENvbXBpbGVyOjpOb25aZXJvLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRQYXlsb2FkR1BS
LCBTdHJ1Y3R1cmU6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIEpJVENvbXBpbGVyOjpUcnVzdGVk
SW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCksIHJlc3VsdFBheWxvYWRHUFIpOwogICAgIAog
ICAgIGlmICghaXNLbm93bkNlbGwob3BlcmFuZCkpIHsKLSAgICAgICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IGRvbmU7Ci0gICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAg
IEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7CiAgICAgICAgIAogICAgICAg
ICBub3RDZWxsLmxpbmsoJm1faml0KTsKICAgICAgICAgLy8gbnVsbCBvciB1bmRlZmluZWQ/Ci0g
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoZWNrVW5kZWZpbmVkID0gbV9qaXQuYnJhbmNoMzIo
aW52ZXJ0ID8gSklUQ29tcGlsZXI6OkVxdWFsOiBKSVRDb21waWxlcjo6Tm90RXF1YWwsIGFyZ1Rh
Z0dQUiwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpOdWxsVGFnKSk7Ci0gICAg
ICAgIG1faml0Lm1vdmUoSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMigxKSwgcmVzdWx0UGF5bG9h
ZEdQUik7Ci0gICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0KLSAgICAgICAgY2hl
Y2tVbmRlZmluZWQubGluaygmbV9qaXQpOwotICAgICAgICBtX2ppdC5jb21wYXJlMzIoaW52ZXJ0
ID8gSklUQ29tcGlsZXI6Ok5vdEVxdWFsOiBKSVRDb21waWxlcjo6RXF1YWwsIGFyZ1RhZ0dQUiwg
SklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRUYWcpLCByZXN1bHRQ
YXlsb2FkR1BSKTsKKyAgICAgICAgQVNTRVJUKChKU1ZhbHVlOjpVbmRlZmluZWRUYWcgKyAxID09
IEpTVmFsdWU6Ok51bGxUYWcpICYmIChKU1ZhbHVlOjpOdWxsVGFnICYgMHgxKSk7CisgICAgICAg
IG1faml0Lm1vdmUoYXJnVGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKTsKKyAgICAgICAgbV9qaXQu
b3IzMihUcnVzdGVkSW1tMzIoMSksIHJlc3VsdFBheWxvYWRHUFIpOworICAgICAgICBtX2ppdC5j
b21wYXJlMzIoaW52ZXJ0ID8gSklUQ29tcGlsZXI6Ok5vdEVxdWFsIDogSklUQ29tcGlsZXI6OkVx
dWFsLCByZXN1bHRQYXlsb2FkR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TnVsbFRhZyksIHJl
c3VsdFBheWxvYWRHUFIpOwogCiAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgIH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAkocmV2aXNpb24gOTcwMzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTcsMTEgKzQ1
NywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlCiAgICAgCiAg
ICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7CiAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNO
dWxsID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZVRhZ0dQUiwg
VHJ1c3RlZEltbTMyKEpTVmFsdWU6Ok51bGxUYWcpKTsKLSAgICBzcGVjdWxhdGlvbkNoZWNrKG1f
aml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgdmFsdWVUYWdHUFIsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRUYWcpKSk7Ci0KLSAgICBpc051bGwubGluaygmbV9q
aXQpOwotCisgICAgQVNTRVJUKChKU1ZhbHVlOjpVbmRlZmluZWRUYWcgKyAxID09IEpTVmFsdWU6
Ok51bGxUYWcpICYmIChKU1ZhbHVlOjpOdWxsVGFnICYgMHgxKSk7CisgICAgbV9qaXQubW92ZSh2
YWx1ZVRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7CisgICAgbV9qaXQub3IzMihUcnVzdGVkSW1t
MzIoMSksIHJlc3VsdFBheWxvYWRHUFIpOworICAgIHNwZWN1bGF0aW9uQ2hlY2sobV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCByZXN1bHRQYXlsb2FkR1BSLCBUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6TnVsbFRhZykpKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMigx
KSwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgCiAgICAgZG9uZS5saW5rKCZtX2ppdCk7CkBAIC01
NDcsOCArNTQ2LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90KE4K
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRPYmplY3RPck90aGVyQnJhbmNoKE5vZGVJbmRleCBu
b2RlSW5kZXgsIEJsb2NrSW5kZXggdGFrZW4sIEJsb2NrSW5kZXggbm90VGFrZW4sIHZvaWQgKnZw
dHIpCiB7CiAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZUluZGV4KTsKKyAgICBH
UFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzLCB2YWx1ZSk7CiAgICAgR1BSUmVnIHZhbHVlVGFnR1BS
ID0gdmFsdWUudGFnR1BSKCk7CiAgICAgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiA9IHZhbHVlLnBh
eWxvYWRHUFIoKTsKKyAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAg
CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgdmFsdWVUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSk7CiAgICAgc3BlY3VsYXRpb25DaGVjayhtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3Nl
bWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cih2cHRyKSkpOwpAQCAtNTU2LDEwICs1NTcs
MTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdE9iamVjdE9yT3RoZXJCcgogICAgIAogICAg
IG5vdENlbGwubGluaygmbV9qaXQpOwogICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGlz
TnVsbCA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFsdWVUYWdHUFIs
IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpOdWxsVGFnKSk7Ci0gICAgc3BlY3VsYXRpb25DaGVjayht
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSkpOwotCi0gICAgaXNOdWxsLmxpbmsoJm1f
aml0KTsKKyAgICBBU1NFUlQoKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyArIDEgPT0gSlNWYWx1ZTo6
TnVsbFRhZykgJiYgKEpTVmFsdWU6Ok51bGxUYWcgJiAweDEpKTsKKyAgICBtX2ppdC5tb3ZlKHZh
bHVlVGFnR1BSLCBzY3JhdGNoR1BSKTsKKyAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMigxKSwg
c2NyYXRjaEdQUik7CisgICAgc3BlY3VsYXRpb25DaGVjayhtX2ppdC5icmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpOdWxs
VGFnKSkpOwogCiAgICAgaWYgKG5vdFRha2VuICE9IChtX2Jsb2NrICsgMSkpCiAgICAgICAgIGFk
ZEJyYW5jaChtX2ppdC5qdW1wKCksIG5vdFRha2VuKTsK
</data>
<flag name="review"
          id="107799"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="107800"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110319</attachid>
            <date>2011-10-09 19:43:02 -0700</date>
            <delta_ts>2011-10-09 21:04:34 -0700</delta_ts>
            <desc>patch addressing Darin&apos;s comments</desc>
            <filename>69734.1.patch</filename>
            <type>text/plain</type>
            <size>5262</size>
            <attacher name="Yuqiang Xian">yuqiang.xian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTcwMzUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMTAtMDkgIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRlbC5jb20+CisKKyAg
ICAgICAgSW1wcm92ZSBOdWxsIG9yIFVuZGVmaW5lZCB0ZXN0IGluIDMyXzY0IERGRworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgTnVsbCBv
ciBVbmRlZmluZWQgdmFsdWUgdGVzdCBpbiAzMl82NCBERkcgd2lsbCBjaGVjaworICAgICAgICBO
dWxsIGFuZCBVbmRlZmluZWQgdGFnIHNlcGFyYXRlbHkgYW5kIGludHJvZHVjZSBvbmUgbW9yZSBi
cmFuY2guCisgICAgICAgIEl0IGNhbiBiZSBpbXByb3ZlZCBpbiB0aGUgd2F5IGhvdyB0aGUgYmFz
ZWxpbmUgSklUIGlzIGRvaW5nIC0gYnkKKyAgICAgICAgcmVseWluZyBvbiB0aGUgZmFjdCB0aGF0
ICJVbmRlZmluZWRUYWcgKyAxID09IE51bGxUYWcgYW5kIE51bGxUYWcgJiAxIi4KKworICAgICAg
ICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxOb3QpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0T2JqZWN0T3JPdGhlckJyYW5j
aCk6CisKIDIwMTEtMTAtMDkgIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRlbC5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBjYWxsT3BlcmF0aW9uIGNvZGUgb2YgREZHIEpJVCBv
biBYODYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRv
cjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvZGVHZW5lcmF0b3IzMl82NC5jcHAJKHJldmlzaW9uIDk3MDM0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTcxLDE3ICsxMTcxLDE0IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3Vs
YXRpdmVOb24KICAgICBtX2ppdC50ZXN0OChpbnZlcnQgPyBKSVRDb21waWxlcjo6WmVybyA6IEpJ
VENvbXBpbGVyOjpOb25aZXJvLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRQYXlsb2FkR1BS
LCBTdHJ1Y3R1cmU6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIEpJVENvbXBpbGVyOjpUcnVzdGVk
SW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCksIHJlc3VsdFBheWxvYWRHUFIpOwogICAgIAog
ICAgIGlmICghaXNLbm93bkNlbGwob3BlcmFuZCkpIHsKLSAgICAgICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IGRvbmU7Ci0gICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAg
IEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7CiAgICAgICAgIAogICAgICAg
ICBub3RDZWxsLmxpbmsoJm1faml0KTsKICAgICAgICAgLy8gbnVsbCBvciB1bmRlZmluZWQ/Ci0g
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoZWNrVW5kZWZpbmVkID0gbV9qaXQuYnJhbmNoMzIo
aW52ZXJ0ID8gSklUQ29tcGlsZXI6OkVxdWFsOiBKSVRDb21waWxlcjo6Tm90RXF1YWwsIGFyZ1Rh
Z0dQUiwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpOdWxsVGFnKSk7Ci0gICAg
ICAgIG1faml0Lm1vdmUoSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMigxKSwgcmVzdWx0UGF5bG9h
ZEdQUik7Ci0gICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0KLSAgICAgICAgY2hl
Y2tVbmRlZmluZWQubGluaygmbV9qaXQpOwotICAgICAgICBtX2ppdC5jb21wYXJlMzIoaW52ZXJ0
ID8gSklUQ29tcGlsZXI6Ok5vdEVxdWFsOiBKSVRDb21waWxlcjo6RXF1YWwsIGFyZ1RhZ0dQUiwg
SklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRUYWcpLCByZXN1bHRQ
YXlsb2FkR1BSKTsKKyAgICAgICAgQ09NUElMRV9BU1NFUlQoKEpTVmFsdWU6OlVuZGVmaW5lZFRh
ZyB8IDEpID09IEpTVmFsdWU6Ok51bGxUYWcsIFVuZGVmaW5lZFRhZ19PUl8xX0VRVUFMU19OdWxs
VGFnKTsKKyAgICAgICAgbV9qaXQubW92ZShhcmdUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwor
ICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0UGF5bG9hZEdQUik7Cisg
ICAgICAgIG1faml0LmNvbXBhcmUzMihpbnZlcnQgPyBKSVRDb21waWxlcjo6Tm90RXF1YWwgOiBK
SVRDb21waWxlcjo6RXF1YWwsIHJlc3VsdFBheWxvYWRHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpOdWxsVGFnKSwgcmVzdWx0UGF5bG9hZEdQUik7CiAKICAgICAgICAgZG9uZS5saW5rKCZtX2pp
dCk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiA5NzAzNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ1NywxMSArNDU3LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RP
ck90aGUKICAgICAKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKICAKLSAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBpc051bGwgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWws
IHZhbHVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TnVsbFRhZykpOwotICAgIHNwZWN1
bGF0aW9uQ2hlY2sobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCB2YWx1
ZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRhZykpKTsKLQotICAgIGlz
TnVsbC5saW5rKCZtX2ppdCk7Ci0KKyAgICBDT01QSUxFX0FTU0VSVCgoSlNWYWx1ZTo6VW5kZWZp
bmVkVGFnIHwgMSkgPT0gSlNWYWx1ZTo6TnVsbFRhZywgVW5kZWZpbmVkVGFnX09SXzFfRVFVQUxT
X051bGxUYWcpOworICAgIG1faml0Lm1vdmUodmFsdWVUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIp
OworICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKDEpLCByZXN1bHRQYXlsb2FkR1BSKTsKKyAg
ICBzcGVjdWxhdGlvbkNoZWNrKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVh
bCwgcmVzdWx0UGF5bG9hZEdQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Ok51bGxUYWcpKSk7CiAg
ICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoMSksIHJlc3VsdFBheWxvYWRHUFIpOwogICAgIAog
ICAgIGRvbmUubGluaygmbV9qaXQpOwpAQCAtNTQ3LDggKzU0NiwxMCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlTG9naWNhbE5vdChOCiB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0T2Jq
ZWN0T3JPdGhlckJyYW5jaChOb2RlSW5kZXggbm9kZUluZGV4LCBCbG9ja0luZGV4IHRha2VuLCBC
bG9ja0luZGV4IG5vdFRha2VuLCB2b2lkICp2cHRyKQogewogICAgIEpTVmFsdWVPcGVyYW5kIHZh
bHVlKHRoaXMsIG5vZGVJbmRleCk7CisgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcywgdmFs
dWUpOwogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgIEdQUlJl
ZyB2YWx1ZVBheWxvYWRHUFIgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7CisgICAgR1BSUmVnIHNjcmF0
Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5v
dENlbGwgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHZhbHVlVGFn
R1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwogICAgIHNwZWN1bGF0aW9uQ2hl
Y2sobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3ModmFsdWVQYXlsb2FkR1BSKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIodnB0cikpKTsKQEAgLTU1NiwxMCArNTU3LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVt
aXRPYmplY3RPck90aGVyQnIKICAgICAKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKICAgICAK
LSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpc051bGwgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TnVsbFRh
ZykpOwotICAgIHNwZWN1bGF0aW9uQ2hlY2sobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
Ok5vdEVxdWFsLCB2YWx1ZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRh
ZykpKTsKLQotICAgIGlzTnVsbC5saW5rKCZtX2ppdCk7CisgICAgQ09NUElMRV9BU1NFUlQoKEpT
VmFsdWU6OlVuZGVmaW5lZFRhZyB8IDEpID09IEpTVmFsdWU6Ok51bGxUYWcsIFVuZGVmaW5lZFRh
Z19PUl8xX0VRVUFMU19OdWxsVGFnKTsKKyAgICBtX2ppdC5tb3ZlKHZhbHVlVGFnR1BSLCBzY3Jh
dGNoR1BSKTsKKyAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMigxKSwgc2NyYXRjaEdQUik7Cisg
ICAgc3BlY3VsYXRpb25DaGVjayhtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIHNjcmF0Y2hHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpOdWxsVGFnKSkpOwogCiAgICAg
aWYgKG5vdFRha2VuICE9IChtX2Jsb2NrICsgMSkpCiAgICAgICAgIGFkZEJyYW5jaChtX2ppdC5q
dW1wKCksIG5vdFRha2VuKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>