<?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>223495</bug_id>
          
          <creation_ts>2021-03-18 19:03:55 -0700</creation_ts>
          <short_desc>BrandedStructure should keep its members alive.</short_desc>
          <delta_ts>2021-03-19 11:48:42 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741555</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-18 19:03:55 -0700</bug_when>
    <thetext>rdar://75565765</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741556</commentid>
    <comment_count>1</comment_count>
      <attachid>423682</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-18 19:10:01 -0700</bug_when>
    <thetext>Created attachment 423682
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741562</commentid>
    <comment_count>2</comment_count>
      <attachid>423684</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-18 19:42:37 -0700</bug_when>
    <thetext>Created attachment 423684
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741584</commentid>
    <comment_count>3</comment_count>
      <attachid>423684</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-03-18 21:26:31 -0700</bug_when>
    <thetext>Comment on attachment 423684
proposed patch.

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

&gt; Source/JavaScriptCore/runtime/BrandedStructure.cpp:59
&gt; +void BrandedStructure::destruct()

Can we put this in the header and inline it? It’s so trivial</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741585</commentid>
    <comment_count>4</comment_count>
      <attachid>423684</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-18 21:27:48 -0700</bug_when>
    <thetext>Comment on attachment 423684
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/runtime/BrandedStructure.cpp:59
&gt;&gt; +void BrandedStructure::destruct()
&gt; 
&gt; Can we put this in the header and inline it? It’s so trivial

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741588</commentid>
    <comment_count>5</comment_count>
      <attachid>423689</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-18 21:44:19 -0700</bug_when>
    <thetext>Created attachment 423689
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741664</commentid>
    <comment_count>6</comment_count>
      <attachid>423689</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2021-03-19 05:04:07 -0700</bug_when>
    <thetext>Comment on attachment 423689
patch for landing.

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

&gt; Source/JavaScriptCore/ChangeLog:27
&gt; +        1. m_parentBrand was not visited by visitChildren().

I&apos;m curious to know why this is necessary. I introduced it at first, but then I removed based on the reasoning that `m_parentBrand` will always point backwards to a structure from the transition chain. Given that, when `m_previous` is visited, it will eventually visit its `m_parentBrand`. Did you find a case where this is not true?

I took it a bit further and figured out that is possible to implement the brand check without `m_parentBrand`,  but decided to keep it there as a shortcut to avoid traverse the entire chain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741745</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-19 09:45:50 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 423689 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741780</commentid>
    <comment_count>8</comment_count>
      <attachid>423689</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-19 10:44:50 -0700</bug_when>
    <thetext>Comment on attachment 423689
patch for landing.

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:27
&gt;&gt; +        1. m_parentBrand was not visited by visitChildren().
&gt; 
&gt; I&apos;m curious to know why this is necessary. I introduced it at first, but then I removed based on the reasoning that `m_parentBrand` will always point backwards to a structure from the transition chain. Given that, when `m_previous` is visited, it will eventually visit its `m_parentBrand`. Did you find a case where this is not true?
&gt; 
&gt; I took it a bit further and figured out that is possible to implement the brand check without `m_parentBrand`,  but decided to keep it there as a shortcut to avoid traverse the entire chain.

See Structure::setBrandTransition(), specifically this scenario:

```
    if (structure-&gt;isDictionary()) {
        PropertyTable* table = transition-&gt;ensurePropertyTable(vm);
        transition-&gt;pin(holdLock(transition-&gt;m_lock), vm, table);
```

pin() does the following:
```
void Structure::pin(const AbstractLocker&amp;, VM&amp; vm, PropertyTable* table)
{
    setIsPinnedPropertyTable(true);
    setPropertyTable(vm, table);
    clearPreviousID();
    m_transitionPropertyName = nullptr;
}
```

clearPreviousID() clears the structure chain link, which leaves m_parentBrand vulnerable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741785</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-19 10:49:55 -0700</bug_when>
    <thetext>Landed in r274727: &lt;http://trac.webkit.org/r274727&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741819</commentid>
    <comment_count>10</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2021-03-19 11:48:42 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #8)
&gt; Comment on attachment 423689 [details]
&gt; patch for landing.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423689&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/ChangeLog:27
&gt; &gt;&gt; +        1. m_parentBrand was not visited by visitChildren().
&gt; &gt; 
&gt; &gt; I&apos;m curious to know why this is necessary. I introduced it at first, but then I removed based on the reasoning that `m_parentBrand` will always point backwards to a structure from the transition chain. Given that, when `m_previous` is visited, it will eventually visit its `m_parentBrand`. Did you find a case where this is not true?
&gt; &gt; 
&gt; &gt; I took it a bit further and figured out that is possible to implement the brand check without `m_parentBrand`,  but decided to keep it there as a shortcut to avoid traverse the entire chain.
&gt; 
&gt; See Structure::setBrandTransition(), specifically this scenario:
&gt; 
&gt; ```
&gt;     if (structure-&gt;isDictionary()) {
&gt;         PropertyTable* table = transition-&gt;ensurePropertyTable(vm);
&gt;         transition-&gt;pin(holdLock(transition-&gt;m_lock), vm, table);
&gt; ```
&gt; 
&gt; pin() does the following:
&gt; ```
&gt; void Structure::pin(const AbstractLocker&amp;, VM&amp; vm, PropertyTable* table)
&gt; {
&gt;     setIsPinnedPropertyTable(true);
&gt;     setPropertyTable(vm, table);
&gt;     clearPreviousID();
&gt;     m_transitionPropertyName = nullptr;
&gt; }
&gt; ```
&gt; 
&gt; clearPreviousID() clears the structure chain link, which leaves
&gt; m_parentBrand vulnerable.

Oh, I totally missed that. Thanks for explaining and for the fix as well.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423682</attachid>
            <date>2021-03-18 19:10:01 -0700</date>
            <delta_ts>2021-03-18 19:29:36 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-223495.patch</filename>
            <type>text/plain</type>
            <size>4504</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzQ2OTUpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTAzLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBCcmFuZGVkU3RydWN0dXJlIHNob3VsZCBrZWVwIGl0cyBtZW1iZXJzIGFs
aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIz
NDk1CisgICAgICAgIHJkYXI6Ly83NTU2NTc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL0JyYW5kZWRTdHJ1Y3R1cmUtc2hvdWxkLWtl
ZXAtaXRzLW1lbWJlcnMtYWxpdmUuanM6IEFkZGVkLgorCiAyMDIxLTAzLTE3ICBSb3NzIEtpcnNs
aW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBFcnJvciNjYXVz
ZSBzaG91bGQgYXBwbHkgdG8gV2ViQXNzZW1ibHkgZXJyb3IgY29uc3RydWN0b3JzIHRvbwpJbmRl
eDogSlNUZXN0cy9zdHJlc3MvQnJhbmRlZFN0cnVjdHVyZS1zaG91bGQta2VlcC1pdHMtbWVtYmVy
cy1hbGl2ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9CcmFuZGVkU3RydWN0dXJl
LXNob3VsZC1rZWVwLWl0cy1tZW1iZXJzLWFsaXZlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVz
dHMvc3RyZXNzL0JyYW5kZWRTdHJ1Y3R1cmUtc2hvdWxkLWtlZXAtaXRzLW1lbWJlcnMtYWxpdmUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorY2xhc3MgVSB7CisgICAgY29uc3Ry
dWN0b3IoKSB7CisgICAgICAgIHJldHVybiBPYmplY3Q7CisgICAgfQorfQorCitmb3IgKGxldCBp
ID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgIGRlYnVnKGkpOworICAgIGNsYXNzIEMgZXh0ZW5k
cyBVIHsKKyAgICAgICAgI3g7CisgICAgICAgICN5KCkge30KKyAgICAgICAgY29uc3RydWN0b3Io
KSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICB9CisgICAgfQorICAgIG5ldyBDKCk7
CisgICAgZ2MoKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc0
NjE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDIxLTAzLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBCcmFuZGVkU3RydWN0dXJlIHNob3VsZCBrZWVwIGl0cyBtZW1iZXJzIGFs
aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIz
NDk1CisgICAgICAgIHJkYXI6Ly83NTU2NTc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmNwcDoKKyAg
ICAgICAgKEpTQzo6QnJhbmRlZFN0cnVjdHVyZTo6ZGVzdHJ1Y3QpOgorICAgICAgICAqIHJ1bnRp
bWUvQnJhbmRlZFN0cnVjdHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjp+U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlOjp2aXNpdENoaWxkcmVuSW1wbCk6CisKIDIwMjEtMDMtMTcgIFJvc3MgS2lyc2xpbmcg
IDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIEVycm9yI2NhdXNlIHNo
b3VsZCBhcHBseSB0byBXZWJBc3NlbWJseSBlcnJvciBjb25zdHJ1Y3RvcnMgdG9vCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmNw
cAkocmV2aXNpb24gMjc0NjE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnJh
bmRlZFN0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDQgKzU2LDkgQEAgU3RydWN0
dXJlKiBCcmFuZGVkU3RydWN0dXJlOjpjcmVhdGUoVk0mIAogICAgIHJldHVybiBuZXdTdHJ1Y3R1
cmU7CiB9CiAKK3ZvaWQgQnJhbmRlZFN0cnVjdHVyZTo6ZGVzdHJ1Y3QoKQoreworICAgIG1fYnJh
bmQgPSBudWxscHRyOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0JyYW5kZWRTdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmgJKHJldmlzaW9uIDI3
NDYxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JyYW5kZWRTdHJ1Y3R1cmUu
aAkod29ya2luZyBjb3B5KQpAQCAtNjAsMTMgKzYwLDIyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotcHJpdmF0ZTogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlz
aXRvcj4KKyAgICBzdGF0aWMgdm9pZCB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0NlbGwqIGNl
bGwsIFZpc2l0b3ImIHZpc2l0b3IpCisgICAgeworICAgICAgICBCcmFuZGVkU3RydWN0dXJlKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEJyYW5kZWRTdHJ1Y3R1cmUqPihjZWxsKTsKKyAgICAgICAgdmlz
aXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wYXJlbnRCcmFuZCk7CisgICAgfQorCitwcml2YXRl
OgogICAgIEJyYW5kZWRTdHJ1Y3R1cmUoVk0mLCBTdHJ1Y3R1cmUqLCBVbmlxdWVkU3RyaW5nSW1w
bCogYnJhbmQsIERlZmVycmVkU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnRGaXJlKik7CiAg
ICAgQnJhbmRlZFN0cnVjdHVyZShWTSYsIEJyYW5kZWRTdHJ1Y3R1cmUqLCBEZWZlcnJlZFN0cnVj
dHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSopOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgVW5pcXVlZFN0cmluZ0ltcGwqIGJyYW5kLCBEZWZlcnJl
ZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSogPSBudWxscHRyKTsKIAotICAgIFVu
aXF1ZWRTdHJpbmdJbXBsKiBtX2JyYW5kOworICAgIHZvaWQgZGVzdHJ1Y3QoKTsKKworICAgIFJl
ZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9icmFuZDsKICAgICBXcml0ZUJhcnJpZXI8QnJhbmRl
ZFN0cnVjdHVyZT4gbV9wYXJlbnRCcmFuZDsKIAogICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJl
dmlzaW9uIDI3NDYxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw2ICszNDIsOSBAQCBTdHJ1Y3R1cmU6On5TdHJ1
Y3R1cmUoKQogewogICAgIGlmICh0eXBlSW5mbygpLnN0cnVjdHVyZUlzSW1tb3J0YWwoKSkKICAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGlzQnJhbmRlZFN0cnVjdHVyZSgpKQorICAgICAgICBq
c0Nhc3Q8QnJhbmRlZFN0cnVjdHVyZSo+KHN0cnVjdHVyZSktPmRlc3RydWN0KCk7CiAgICAgSGVh
cDo6aGVhcCh0aGlzKS0+c3RydWN0dXJlSURUYWJsZSgpLmRlYWxsb2NhdGVJRCh0aGlzLCBtX2Js
b2Iuc3RydWN0dXJlSUQoKSk7CiB9CiAKQEAgLTEyOTUsNiArMTI5OCw5IEBAIHZvaWQgU3RydWN0
dXJlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwKICAgICAgICAgdmlzaXRvci5hcHBlbmQodGhp
c09iamVjdC0+bV9wcm9wZXJ0eVRhYmxlVW5zYWZlKTsKICAgICBlbHNlIGlmICh0aGlzT2JqZWN0
LT5tX3Byb3BlcnR5VGFibGVVbnNhZmUpCiAgICAgICAgIHRoaXNPYmplY3QtPm1fcHJvcGVydHlU
YWJsZVVuc2FmZS5jbGVhcigpOworCisgICAgaWYgKHRoaXNPYmplY3QtPmlzQnJhbmRlZFN0cnVj
dHVyZSgpKQorICAgICAgICBCcmFuZGVkU3RydWN0dXJlOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJl
bihjZWxsLCB2aXNpdG9yKTsKIH0KIAogREVGSU5FX1ZJU0lUX0NISUxEUkVOKFN0cnVjdHVyZSk7
Cg==
</data>
<flag name="commit-queue"
          id="443139"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423684</attachid>
            <date>2021-03-18 19:42:37 -0700</date>
            <delta_ts>2021-03-19 00:26:20 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-223495.patch</filename>
            <type>text/plain</type>
            <size>6271</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzQ2OTUpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTAzLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBCcmFuZGVkU3RydWN0dXJlIHNob3VsZCBrZWVwIGl0cyBtZW1iZXJzIGFs
aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIz
NDk1CisgICAgICAgIHJkYXI6Ly83NTU2NTc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL0JyYW5kZWRTdHJ1Y3R1cmUtc2hvdWxkLWtl
ZXAtaXRzLW1lbWJlcnMtYWxpdmUuanM6IEFkZGVkLgorCiAyMDIxLTAzLTE3ICBSb3NzIEtpcnNs
aW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBFcnJvciNjYXVz
ZSBzaG91bGQgYXBwbHkgdG8gV2ViQXNzZW1ibHkgZXJyb3IgY29uc3RydWN0b3JzIHRvbwpJbmRl
eDogSlNUZXN0cy9zdHJlc3MvQnJhbmRlZFN0cnVjdHVyZS1zaG91bGQta2VlcC1pdHMtbWVtYmVy
cy1hbGl2ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9CcmFuZGVkU3RydWN0dXJl
LXNob3VsZC1rZWVwLWl0cy1tZW1iZXJzLWFsaXZlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVz
dHMvc3RyZXNzL0JyYW5kZWRTdHJ1Y3R1cmUtc2hvdWxkLWtlZXAtaXRzLW1lbWJlcnMtYWxpdmUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorY2xhc3MgVSB7CisgICAgY29uc3Ry
dWN0b3IoKSB7CisgICAgICAgIHJldHVybiBPYmplY3Q7CisgICAgfQorfQorCitmb3IgKGxldCBp
ID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgIGNsYXNzIEMgZXh0ZW5kcyBVIHsKKyAgICAgICAg
I3g7CisgICAgICAgICN5KCkge30KKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAg
ICBzdXBlcigpOworICAgICAgICB9CisgICAgfQorICAgIG5ldyBDKCk7CisgICAgZ2MoKTsKK30K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc0NjE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDIxLTAzLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBC
cmFuZGVkU3RydWN0dXJlIHNob3VsZCBrZWVwIGl0cyBtZW1iZXJzIGFsaXZlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNDk1CisgICAgICAgIHJk
YXI6Ly83NTU2NTc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vcm1hbGx5LCBlYWNoIHR5cGUgb2YgSlNDZWxsIHdvdWxkIGhhdmUgaXRzIG93biBz
dHJ1Y3R1cmUgKGFuZCB0aGVyZWZvcmUsIGl0cyBvd24KKyAgICAgICAgQ2xhc3NJbmZvLCBNZXRo
b2RUYWJsZSwgZXRjKSwgd2hpY2ggd291bGQgaGF2ZSBoYW5kbGVkIHZpc2l0aW5nIG1fcGFyZW50
QnJhbmQuCisgICAgICAgIFNpbWlsYXJseSwgaXQgd291bGQgaGF2ZSBpdHMgb3duIGRlc3RydWN0
b3IsIHdoaWNoIHdvdWxkIGRlcmVmIG1fYnJhbmQuCisKKyAgICAgICAgSG93ZXZlciwgdGhlIGRl
c2lnbiBvZiBCcmFuZGVkU3RydWN0dXJlIGlzIG5vdCBsaWtlIG90aGVyIEpTQ2VsbHMuICBBcyBw
cmVzZW50LAorICAgICAgICB3ZSBoYXZlIGNob3NlbiB0byBnbyB3aXRoIGhhdmluZyBCcmFuZGVk
U3RydWN0dXJlIGxvb2sgZXhhY3RseSBsaWtlIGEgcmVndWxhcgorICAgICAgICBTdHJ1Y3R1cmUs
IGV4Y2VwdCB0aGF0IGl0cyBpc0JyYW5kZWRTdHJ1Y3R1cmUgZmxhZyBpcyBzZXQgdG8gdHJ1ZS4K
KworICAgICAgICBUaGlzIGRlc2lnbiBoYXMgYWR2YW50YWdlcyBiZWNhdXNlIHdlIGRvIGNoZWNr
cyBhbGwgb3ZlciB0aGUgc3lzdGVtIGZvciB3aGV0aGVyCisgICAgICAgIGEgY2VsbCBpcyBhIFN0
cnVjdHVyZSBieSBzaW1wbHkgY29tcGFyaW5nIGl0cyBzdHJ1Y3R1cmVJRCB0byBzdHJ1Y3R1cmVT
dHJ1Y3R1cmUncworICAgICAgICBzdHJ1Y3R1cmVJRC4gIEJ5IHZpcnR1ZSBvZiBCcmFuZGVkU3Ry
dWN0dXJlIGhhdmluZyB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgU3RydWN0dXJlLAorICAgICAgICBu
b25lIG9mIHRoaXMgY29kZSBuZWVkIHRvIGNoYW5nZS4KKworICAgICAgICBUaGUgZG93bnNpZGUg
aXMgdGhhdCB3ZSBuZWVkIHRvIGVuaGFuY2UgU3RydWN0dXJlJ3MgbWV0aG9kcyB0byBjaGVjayBp
ZiBpdCBpcworICAgICAgICBhY3R1YWxseSB3b3JraW5nIG9uIGFuIGluc3RhbmNlIG9mIEJyYW5k
ZWRTdHJ1Y3R1cmUsIGFuZCBkbyBzb21lIGFkZGl0aW9uYWwgd29yay4KKworICAgICAgICBUaGlz
IHBhdGNoIGZpeGVzIDIgYnVnczoKKworICAgICAgICAxLiBtX3BhcmVudEJyYW5kIHdhcyBub3Qg
dmlzaXRlZCBieSB2aXNpdENoaWxkcmVuKCkuCisKKyAgICAgICAgICAgU3RydWN0dXJlOjp2aXNp
dENoaWxkcmVuSW1wbCgpIG5vdyBjYWxscyBCcmFuZGVkU3RydWN0dXJlOjp2aXNpdEFkZGl0aW9u
YWxDaGlsZHJlbigpCisgICAgICAgICAgIHRvIGhhbmRsZSB0aGlzLgorCisgICAgICAgIDIuIG1f
YnJhbmQgbmVlZHMgdG8gYmUgcmVmJ2VkLgorCisgICAgICAgICAgIEluIFN0cnVjdHVyZTo6c2V0
QnJhbmRUcmFuc2l0aW9uKCksIGlmIHRoZSBCcmFuZGVkU3RydWN0dXJlIGlzIGEgZGljdGlvbmFy
eSwKKyAgICAgICAgICAgdGhlbiBpdHMgbV90cmFuc2l0aW9uUHJvcGVydHlOYW1lIHdpbGwgYmUg
Y2xlYXJlZC4gIG1fdHJhbnNpdGlvblByb3BlcnR5TmFtZQorICAgICAgICAgICB3YXMgdGhlIG9u
bHkgbWVhbnMgYnkgd2hpY2ggdGhlIFVuaXF1ZVN0cmluZ0ltcGwgcG9pbnRlZCB0byBieSBtX2Jy
YW5kIHdhcworICAgICAgICAgICByZWYnZWQuICBUaGUgZml4IGlzIHRvIG1ha2UgbV9icmFuZCBh
IFJlZlB0ci4KKworICAgICAgICAgICBIZW5jZSwgaXQgZm9sbG93cyB0aGF0IHdlIGFsc28gbmVl
ZCB0byBkZXJlZiBtX2JyYW5kIG9uIGRlc3RydWN0aW9uLgorICAgICAgICAgICBTdHJ1Y3R1cmUn
cyBkZXN0cnVjdG9yIG5vdyBjYWxscyBCcmFuZGVkU3RydWN0dXJlOjpkZXN0cnVjdCgpIHRvIGhh
bmRsZSB0aGlzLgorCisgICAgICAgICogcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmNwcDoKKyAg
ICAgICAgKEpTQzo6QnJhbmRlZFN0cnVjdHVyZTo6ZGVzdHJ1Y3QpOgorICAgICAgICAqIHJ1bnRp
bWUvQnJhbmRlZFN0cnVjdHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjp+U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlOjp2aXNpdENoaWxkcmVuSW1wbCk6CisKIDIwMjEtMDMtMTcgIFJvc3MgS2lyc2xpbmcg
IDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIEVycm9yI2NhdXNlIHNo
b3VsZCBhcHBseSB0byBXZWJBc3NlbWJseSBlcnJvciBjb25zdHJ1Y3RvcnMgdG9vCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmNw
cAkocmV2aXNpb24gMjc0NjE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnJh
bmRlZFN0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDQgKzU2LDkgQEAgU3RydWN0
dXJlKiBCcmFuZGVkU3RydWN0dXJlOjpjcmVhdGUoVk0mIAogICAgIHJldHVybiBuZXdTdHJ1Y3R1
cmU7CiB9CiAKK3ZvaWQgQnJhbmRlZFN0cnVjdHVyZTo6ZGVzdHJ1Y3QoKQoreworICAgIG1fYnJh
bmQgPSBudWxscHRyOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0JyYW5kZWRTdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CcmFuZGVkU3RydWN0dXJlLmgJKHJldmlzaW9uIDI3
NDYxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JyYW5kZWRTdHJ1Y3R1cmUu
aAkod29ya2luZyBjb3B5KQpAQCAtNjAsMTMgKzYwLDIyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotcHJpdmF0ZTogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlz
aXRvcj4KKyAgICBzdGF0aWMgdm9pZCB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0NlbGwqIGNl
bGwsIFZpc2l0b3ImIHZpc2l0b3IpCisgICAgeworICAgICAgICBCcmFuZGVkU3RydWN0dXJlKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEJyYW5kZWRTdHJ1Y3R1cmUqPihjZWxsKTsKKyAgICAgICAgdmlz
aXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wYXJlbnRCcmFuZCk7CisgICAgfQorCitwcml2YXRl
OgogICAgIEJyYW5kZWRTdHJ1Y3R1cmUoVk0mLCBTdHJ1Y3R1cmUqLCBVbmlxdWVkU3RyaW5nSW1w
bCogYnJhbmQsIERlZmVycmVkU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnRGaXJlKik7CiAg
ICAgQnJhbmRlZFN0cnVjdHVyZShWTSYsIEJyYW5kZWRTdHJ1Y3R1cmUqLCBEZWZlcnJlZFN0cnVj
dHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSopOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgVW5pcXVlZFN0cmluZ0ltcGwqIGJyYW5kLCBEZWZlcnJl
ZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSogPSBudWxscHRyKTsKIAotICAgIFVu
aXF1ZWRTdHJpbmdJbXBsKiBtX2JyYW5kOworICAgIHZvaWQgZGVzdHJ1Y3QoKTsKKworICAgIFJl
ZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9icmFuZDsKICAgICBXcml0ZUJhcnJpZXI8QnJhbmRl
ZFN0cnVjdHVyZT4gbV9wYXJlbnRCcmFuZDsKIAogICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJl
dmlzaW9uIDI3NDYxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw2ICszNDIsOSBAQCBTdHJ1Y3R1cmU6On5TdHJ1
Y3R1cmUoKQogewogICAgIGlmICh0eXBlSW5mbygpLnN0cnVjdHVyZUlzSW1tb3J0YWwoKSkKICAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGlzQnJhbmRlZFN0cnVjdHVyZSgpKQorICAgICAgICBz
dGF0aWNfY2FzdDxCcmFuZGVkU3RydWN0dXJlKj4odGhpcyktPmRlc3RydWN0KCk7CiAgICAgSGVh
cDo6aGVhcCh0aGlzKS0+c3RydWN0dXJlSURUYWJsZSgpLmRlYWxsb2NhdGVJRCh0aGlzLCBtX2Js
b2Iuc3RydWN0dXJlSUQoKSk7CiB9CiAKQEAgLTEyOTUsNiArMTI5OCw5IEBAIHZvaWQgU3RydWN0
dXJlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwKICAgICAgICAgdmlzaXRvci5hcHBlbmQodGhp
c09iamVjdC0+bV9wcm9wZXJ0eVRhYmxlVW5zYWZlKTsKICAgICBlbHNlIGlmICh0aGlzT2JqZWN0
LT5tX3Byb3BlcnR5VGFibGVVbnNhZmUpCiAgICAgICAgIHRoaXNPYmplY3QtPm1fcHJvcGVydHlU
YWJsZVVuc2FmZS5jbGVhcigpOworCisgICAgaWYgKHRoaXNPYmplY3QtPmlzQnJhbmRlZFN0cnVj
dHVyZSgpKQorICAgICAgICBCcmFuZGVkU3RydWN0dXJlOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJl
bihjZWxsLCB2aXNpdG9yKTsKIH0KIAogREVGSU5FX1ZJU0lUX0NISUxEUkVOKFN0cnVjdHVyZSk7
Cg==
</data>
<flag name="review"
          id="443141"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="443159"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423689</attachid>
            <date>2021-03-18 21:44:19 -0700</date>
            <delta_ts>2021-03-19 09:45:51 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-223495.patch</filename>
            <type>text/plain</type>
            <size>5835</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzQ3MDApCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTAzLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBCcmFuZGVkU3RydWN0dXJlIHNob3VsZCBrZWVwIGl0cyBtZW1iZXJzIGFs
aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIz
NDk1CisgICAgICAgIHJkYXI6Ly83NTU2NTc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0g
QmFyYXRpLgorCisgICAgICAgICogc3RyZXNzL0JyYW5kZWRTdHJ1Y3R1cmUtc2hvdWxkLWtlZXAt
aXRzLW1lbWJlcnMtYWxpdmUuanM6IEFkZGVkLgorCiAyMDIxLTAzLTE4ICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEpTLT5XYXNtIElDIG11c3Qgc2F2ZSB0aGUg
dGFnIHJlZ2lzdGVycyBpZiBpdCB1c2VzIHRoZW0KSW5kZXg6IEpTVGVzdHMvc3RyZXNzL0JyYW5k
ZWRTdHJ1Y3R1cmUtc2hvdWxkLWtlZXAtaXRzLW1lbWJlcnMtYWxpdmUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy9zdHJlc3MvQnJhbmRlZFN0cnVjdHVyZS1zaG91bGQta2VlcC1pdHMtbWVtYmVy
cy1hbGl2ZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9CcmFuZGVkU3RydWN0
dXJlLXNob3VsZC1rZWVwLWl0cy1tZW1iZXJzLWFsaXZlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTcgQEAKK2NsYXNzIFUgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICByZXR1
cm4gT2JqZWN0OworICAgIH0KK30KKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsK
KyAgICBjbGFzcyBDIGV4dGVuZHMgVSB7CisgICAgICAgICN4OworICAgICAgICAjeSgpIHt9Cisg
ICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBuZXcgQygpOworICAgIGdjKCk7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI3NDcwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw1MCBAQAotMjAyMS0wMy0xOCAgU2FhbSBCYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKzIwMjEtMDMtMTggIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgorCisgICAgICAgIEJyYW5kZWRTdHJ1Y3R1cmUgc2hvdWxkIGtlZXAgaXRzIG1l
bWJlcnMgYWxpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjM0OTUKKyAgICAgICAgcmRhcjovLzc1NTY1NzY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgTm9ybWFsbHksIGVhY2ggdHlwZSBvZiBKU0NlbGwg
d291bGQgaGF2ZSBpdHMgb3duIHN0cnVjdHVyZSAoYW5kIHRoZXJlZm9yZSwgaXRzIG93bgorICAg
ICAgICBDbGFzc0luZm8sIE1ldGhvZFRhYmxlLCBldGMpLCB3aGljaCB3b3VsZCBoYXZlIGhhbmRs
ZWQgdmlzaXRpbmcgbV9wYXJlbnRCcmFuZC4KKyAgICAgICAgU2ltaWxhcmx5LCBpdCB3b3VsZCBo
YXZlIGl0cyBvd24gZGVzdHJ1Y3Rvciwgd2hpY2ggd291bGQgZGVyZWYgbV9icmFuZC4KKworICAg
ICAgICBIb3dldmVyLCB0aGUgZGVzaWduIG9mIEJyYW5kZWRTdHJ1Y3R1cmUgaXMgbm90IGxpa2Ug
b3RoZXIgSlNDZWxscy4gIEFzIHByZXNlbnQsCisgICAgICAgIHdlIGhhdmUgY2hvc2VuIHRvIGdv
IHdpdGggaGF2aW5nIEJyYW5kZWRTdHJ1Y3R1cmUgbG9vayBleGFjdGx5IGxpa2UgYSByZWd1bGFy
CisgICAgICAgIFN0cnVjdHVyZSwgZXhjZXB0IHRoYXQgaXRzIGlzQnJhbmRlZFN0cnVjdHVyZSBm
bGFnIGlzIHNldCB0byB0cnVlLgorCisgICAgICAgIFRoaXMgZGVzaWduIGhhcyBhZHZhbnRhZ2Vz
IGJlY2F1c2Ugd2UgZG8gY2hlY2tzIGFsbCBvdmVyIHRoZSBzeXN0ZW0gZm9yIHdoZXRoZXIKKyAg
ICAgICAgYSBjZWxsIGlzIGEgU3RydWN0dXJlIGJ5IHNpbXBseSBjb21wYXJpbmcgaXRzIHN0cnVj
dHVyZUlEIHRvIHN0cnVjdHVyZVN0cnVjdHVyZSdzCisgICAgICAgIHN0cnVjdHVyZUlELiAgQnkg
dmlydHVlIG9mIEJyYW5kZWRTdHJ1Y3R1cmUgaGF2aW5nIHRoZSBzYW1lIHN0cnVjdHVyZSBhcyBT
dHJ1Y3R1cmUsCisgICAgICAgIG5vbmUgb2YgdGhpcyBjb2RlIG5lZWQgdG8gY2hhbmdlLgorCisg
ICAgICAgIFRoZSBkb3duc2lkZSBpcyB0aGF0IHdlIG5lZWQgdG8gZW5oYW5jZSBTdHJ1Y3R1cmUn
cyBtZXRob2RzIHRvIGNoZWNrIGlmIGl0IGlzCisgICAgICAgIGFjdHVhbGx5IHdvcmtpbmcgb24g
YW4gaW5zdGFuY2Ugb2YgQnJhbmRlZFN0cnVjdHVyZSwgYW5kIGRvIHNvbWUgYWRkaXRpb25hbCB3
b3JrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgMiBidWdzOgorCisgICAgICAgIDEuIG1f
cGFyZW50QnJhbmQgd2FzIG5vdCB2aXNpdGVkIGJ5IHZpc2l0Q2hpbGRyZW4oKS4KKworICAgICAg
ICAgICBTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW5JbXBsKCkgbm93IGNhbGxzIEJyYW5kZWRTdHJ1
Y3R1cmU6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKCkKKyAgICAgICAgICAgdG8gaGFuZGxlIHRo
aXMuCisKKyAgICAgICAgMi4gbV9icmFuZCBuZWVkcyB0byBiZSByZWYnZWQuCisKKyAgICAgICAg
ICAgSW4gU3RydWN0dXJlOjpzZXRCcmFuZFRyYW5zaXRpb24oKSwgaWYgdGhlIEJyYW5kZWRTdHJ1
Y3R1cmUgaXMgYSBkaWN0aW9uYXJ5LAorICAgICAgICAgICB0aGVuIGl0cyBtX3RyYW5zaXRpb25Q
cm9wZXJ0eU5hbWUgd2lsbCBiZSBjbGVhcmVkLiAgbV90cmFuc2l0aW9uUHJvcGVydHlOYW1lCisg
ICAgICAgICAgIHdhcyB0aGUgb25seSBtZWFucyBieSB3aGljaCB0aGUgVW5pcXVlU3RyaW5nSW1w
bCBwb2ludGVkIHRvIGJ5IG1fYnJhbmQgd2FzCisgICAgICAgICAgIHJlZidlZC4gIFRoZSBmaXgg
aXMgdG8gbWFrZSBtX2JyYW5kIGEgUmVmUHRyLgorCisgICAgICAgICAgIEhlbmNlLCBpdCBmb2xs
b3dzIHRoYXQgd2UgYWxzbyBuZWVkIHRvIGRlcmVmIG1fYnJhbmQgb24gZGVzdHJ1Y3Rpb24uCisg
ICAgICAgICAgIFN0cnVjdHVyZSdzIGRlc3RydWN0b3Igbm93IGNhbGxzIEJyYW5kZWRTdHJ1Y3R1
cmU6OmRlc3RydWN0KCkgdG8gaGFuZGxlIHRoaXMuCisKKyAgICAgICAgKiBydW50aW1lL0JyYW5k
ZWRTdHJ1Y3R1cmUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6flN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
dmlzaXRDaGlsZHJlbkltcGwpOgorCisyMS0wMy0xOCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBKUy0+V2FzbSBJQyBtdXN0IHNhdmUgdGhlIHRhZyByZWdpc3Rl
cnMgaWYgaXQgdXNlcyB0aGVtCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjM0OTEKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jy
YW5kZWRTdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9CcmFuZGVkU3RydWN0dXJlLmgJKHJldmlzaW9uIDI3NDcwMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0JyYW5kZWRTdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAt
NjAsMTMgKzYwLDI1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAot
cHJpdmF0ZTogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KKyAgICBzdGF0aWMgdm9p
ZCB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3Ip
CisgICAgeworICAgICAgICBCcmFuZGVkU3RydWN0dXJlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEJy
YW5kZWRTdHJ1Y3R1cmUqPihjZWxsKTsKKyAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVj
dC0+bV9wYXJlbnRCcmFuZCk7CisgICAgfQorCitwcml2YXRlOgogICAgIEJyYW5kZWRTdHJ1Y3R1
cmUoVk0mLCBTdHJ1Y3R1cmUqLCBVbmlxdWVkU3RyaW5nSW1wbCogYnJhbmQsIERlZmVycmVkU3Ry
dWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnRGaXJlKik7CiAgICAgQnJhbmRlZFN0cnVjdHVyZShW
TSYsIEJyYW5kZWRTdHJ1Y3R1cmUqLCBEZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBv
aW50RmlyZSopOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlKFZNJiwgU3RydWN0dXJl
KiwgVW5pcXVlZFN0cmluZ0ltcGwqIGJyYW5kLCBEZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25X
YXRjaHBvaW50RmlyZSogPSBudWxscHRyKTsKIAotICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtX2Jy
YW5kOworICAgIHZvaWQgZGVzdHJ1Y3QoKQorICAgIHsKKyAgICAgICAgbV9icmFuZCA9IG51bGxw
dHI7CisgICAgfQorCisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiBtX2JyYW5kOwogICAg
IFdyaXRlQmFycmllcjxCcmFuZGVkU3RydWN0dXJlPiBtX3BhcmVudEJyYW5kOwogCiAgICAgZnJp
ZW5kIGNsYXNzIFN0cnVjdHVyZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmNwcAkocmV2aXNpb24gMjc0NzAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDYgKzM0Miw5
IEBAIFN0cnVjdHVyZTo6flN0cnVjdHVyZSgpCiB7CiAgICAgaWYgKHR5cGVJbmZvKCkuc3RydWN0
dXJlSXNJbW1vcnRhbCgpKQogICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaXNCcmFuZGVkU3Ry
dWN0dXJlKCkpCisgICAgICAgIHN0YXRpY19jYXN0PEJyYW5kZWRTdHJ1Y3R1cmUqPih0aGlzKS0+
ZGVzdHJ1Y3QoKTsKICAgICBIZWFwOjpoZWFwKHRoaXMpLT5zdHJ1Y3R1cmVJRFRhYmxlKCkuZGVh
bGxvY2F0ZUlEKHRoaXMsIG1fYmxvYi5zdHJ1Y3R1cmVJRCgpKTsKIH0KIApAQCAtMTI5NSw2ICsx
Mjk4LDkgQEAgdm9pZCBTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbAogICAgICAg
ICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3BlcnR5VGFibGVVbnNhZmUpOwogICAg
IGVsc2UgaWYgKHRoaXNPYmplY3QtPm1fcHJvcGVydHlUYWJsZVVuc2FmZSkKICAgICAgICAgdGhp
c09iamVjdC0+bV9wcm9wZXJ0eVRhYmxlVW5zYWZlLmNsZWFyKCk7CisKKyAgICBpZiAodGhpc09i
amVjdC0+aXNCcmFuZGVkU3RydWN0dXJlKCkpCisgICAgICAgIEJyYW5kZWRTdHJ1Y3R1cmU6OnZp
c2l0QWRkaXRpb25hbENoaWxkcmVuKGNlbGwsIHZpc2l0b3IpOwogfQogCiBERUZJTkVfVklTSVRf
Q0hJTERSRU4oU3RydWN0dXJlKTsK
</data>
<flag name="commit-queue"
          id="443208"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>