<?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>228962</bug_id>
          
          <creation_ts>2021-08-10 11:36:18 -0700</creation_ts>
          <short_desc>Update ARM64EHash</short_desc>
          <delta_ts>2021-08-27 12:53:21 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229054</see_also>
          <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>
          <dependson>229384</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1783233</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-10 11:36:18 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783234</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-10 11:36:54 -0700</bug_when>
    <thetext>&lt;rdar://79883337&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783641</commentid>
    <comment_count>2</comment_count>
      <attachid>435377</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-11 14:46:27 -0700</bug_when>
    <thetext>Created attachment 435377
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783743</commentid>
    <comment_count>3</comment_count>
      <attachid>435377</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-08-11 22:29:24 -0700</bug_when>
    <thetext>Comment on attachment 435377
patch

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

r=me with some comments.

&gt; Source/JavaScriptCore/assembler/AssemblerBuffer.h:213
&gt; +            return static_cast&lt;PtrTag&gt;((static_cast&lt;uint64_t&gt;(namespaceTag) &lt;&lt; 56) + ((index &amp; 0xFFFFFF) &lt;&lt; 32) + static_cast&lt;uint64_t&gt;(value));

I think the static_cast in `static_cast&lt;uint64_t&gt;(value)` is not needed.  It will automatically be promoted.

&gt; Source/JavaScriptCore/assembler/AssemblerBuffer.h:251
&gt; +        ARM64EHash(void* diversifier)
&gt; +        {
&gt; +            setUpdatedHash(0, 0, diversifier);
&gt; +        }

nit: can you put this at the top of the class?  Seems weird to have the constructor hidden in the middle of all the other methods.

Also, all the methods above this constructor can be moved into the private section below.  I think that makes it clearer that they are not part of the public interface.

&gt; Source/JavaScriptCore/assembler/AssemblerBuffer.h:432
&gt;              WTF::unalignedStore&lt;uint32_t&gt;(m_hashes.buffer() + m_index, hash);

Funny: this only works because IntegralType == uint32_t because m_index is incremented in sizeof(IntegralType), and this buffer is incremented in sizeof(uint32_t).  Anyway, it&apos;s not due to your patch, and in practice, IntegralType is always uint32_t here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783932</commentid>
    <comment_count>4</comment_count>
      <attachid>435377</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-08-12 13:23:21 -0700</bug_when>
    <thetext>Comment on attachment 435377
patch

I think this patch is good on its own.  Since Saam is away, I&apos;ll just land this as is and implement my nits as a follow up refactoring patch later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783943</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-12 13:45:09 -0700</bug_when>
    <thetext>Committed r280984 (240484@main): &lt;https://commits.webkit.org/240484@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435377.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783947</commentid>
    <comment_count>6</comment_count>
      <attachid>435377</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-08-12 14:04:29 -0700</bug_when>
    <thetext>Comment on attachment 435377
patch

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

&gt; Source/JavaScriptCore/assembler/AssemblerBuffer.h:220
&gt; +            return static_cast&lt;uint32_t&gt;((a &gt;&gt; 39) ^ (b &gt;&gt; 23));

I’m surprised the static_cast to uint32_t here needed and valuable. Does it silence a truncation warning?

&gt; Source/JavaScriptCore/assembler/AssemblerBuffer.h:225
&gt; +            return static_cast&lt;uint32_t&gt;(bitwise_cast&lt;uintptr_t&gt;(diversifier));

Ditto.

&gt; Source/JavaScriptCore/assembler/AssemblerBuffer.h:236
&gt; +            return static_cast&lt;uint32_t&gt;(result);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783952</commentid>
    <comment_count>7</comment_count>
      <attachid>435377</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-08-12 14:43:32 -0700</bug_when>
    <thetext>Comment on attachment 435377
patch

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

&gt;&gt; Source/JavaScriptCore/assembler/AssemblerBuffer.h:220
&gt;&gt; +            return static_cast&lt;uint32_t&gt;((a &gt;&gt; 39) ^ (b &gt;&gt; 23));
&gt; 
&gt; I’m surprised the static_cast to uint32_t here needed and valuable. Does it silence a truncation warning?

These static_casts appear to not be needed in my local build test i.e. Clang does not complain.  I&apos;ll remove them in my upcoming refactoring patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783959</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-08-12 15:20:26 -0700</bug_when>
    <thetext>Will do refactoring change in https://bugs.webkit.org/show_bug.cgi?id=229054.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786233</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-08-22 00:33:24 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 229384</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788095</commentid>
    <comment_count>10</comment_count>
      <attachid>436649</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-27 11:45:03 -0700</bug_when>
    <thetext>Created attachment 436649
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788098</commentid>
    <comment_count>11</comment_count>
      <attachid>436649</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-08-27 11:50:46 -0700</bug_when>
    <thetext>Comment on attachment 436649
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788126</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-27 12:53:19 -0700</bug_when>
    <thetext>Committed r281717 (241059@main): &lt;https://commits.webkit.org/241059@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436649.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435377</attachid>
            <date>2021-08-11 14:46:27 -0700</date>
            <delta_ts>2021-08-27 11:45:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>6401</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgwODU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDIxLTA4LTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFVwZGF0ZSBBUk02NEVIYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjg5NjIKKyAgICAgICAgPHJkYXI6Ly83OTg4MzMzNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFzc2VtYmxlci9Bc3NlbWJs
ZXJCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNNjRFSGFzaDo6bWFrZURpdmVyc2lmaWVyKToK
KyAgICAgICAgKEpTQzo6QVJNNjRFSGFzaDo6bmV4dFZhbHVlKToKKyAgICAgICAgKEpTQzo6QVJN
NjRFSGFzaDo6Yml0c0ZvckRpdmVyc2lmaWVyKToKKyAgICAgICAgKEpTQzo6QVJNNjRFSGFzaDo6
Y3VycmVudEhhc2gpOgorICAgICAgICAoSlNDOjpBUk02NEVIYXNoOjpzZXRVcGRhdGVkSGFzaCk6
CisgICAgICAgIChKU0M6OkFSTTY0RUhhc2g6OkFSTTY0RUhhc2gpOgorICAgICAgICAoSlNDOjpB
Uk02NEVIYXNoOjp1cGRhdGUpOgorICAgICAgICAoSlNDOjpBUk02NEVIYXNoOjpmaW5hbGl6ZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6QXNzZW1ibGVyQnVmZmVyKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibGVyQnVmZmVyOjpwdXRJbnRlZ3JhbFVuY2hlY2tlZCk6CisgICAgICAg
IChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6aGFzaCBjb25zdCk6CisgICAgICAgICogYXNzZW1ibGVy
L0xpbmtCdWZmZXIuY3BwOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpjb3B5Q29tcGFjdEFu
ZExpbmtDb2RlKToKKwogMjAyMS0wOC0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBDYWxsRnJhbWU6OnJldHVyblBDIHNob3VsZCB1bnRhZyB0aGUg
cmV0dXJuIGFkZHJlc3MgYmVmb3JlIHBhc3NpbmcgaXQgdG8gUmV0dXJuQWRkcmVzc1B0cgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZl
ci5oCShyZXZpc2lvbiAyODA3MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0Fzc2VtYmxlckJ1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDUsMjIgKzIwNSw2MiBAQCBu
YW1lc3BhY2UgSlNDIHsKICNpZiBDUFUoQVJNNjRFKQogICAgIGNsYXNzIEFSTTY0RUhhc2ggewog
ICAgIHB1YmxpYzoKLSAgICAgICAgQVJNNjRFSGFzaCh1aW50MzJfdCBpbml0aWFsSGFzaCkKLSAg
ICAgICAgICAgIDogbV9oYXNoKGluaXRpYWxIYXNoKQorICAgICAgICBzdGF0aWMgY29uc3RleHBy
IHVpbnQ4X3QgaW5pdGlhbGl6YXRpb25OYW1lc3BhY2UgPSAweDExOworCisgICAgICAgIHN0YXRp
YyBBTFdBWVNfSU5MSU5FIFB0clRhZyBtYWtlRGl2ZXJzaWZpZXIodWludDhfdCBuYW1lc3BhY2VU
YWcsIHVpbnQ2NF90IGluZGV4LCB1aW50MzJfdCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgLy8gPG5hbWVzcGFjZVRhZzo4PjxpbmRleDoyND48dmFsdWU6MzI+CisgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UHRyVGFnPigoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG5hbWVzcGFj
ZVRhZykgPDwgNTYpICsgKChpbmRleCAmIDB4RkZGRkZGKSA8PCAzMikgKyBzdGF0aWNfY2FzdDx1
aW50NjRfdD4odmFsdWUpKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBBTFdBWVNfSU5M
SU5FIHVpbnQzMl90IG5leHRWYWx1ZSh1aW50NjRfdCBpbnN0cnVjdGlvbiwgdWludDY0X3QgaW5k
ZXgsIHVpbnQzMl90IGN1cnJlbnRWYWx1ZSkKICAgICAgICAgeworICAgICAgICAgICAgdWludDY0
X3QgYSA9IHRhZ0ludChpbnN0cnVjdGlvbiwgbWFrZURpdmVyc2lmaWVyKDB4MTIsIGluZGV4LCBj
dXJyZW50VmFsdWUpKTsKKyAgICAgICAgICAgIHVpbnQ2NF90IGIgPSB0YWdJbnQoaW5zdHJ1Y3Rp
b24sIG1ha2VEaXZlcnNpZmllcigweDEzLCBpbmRleCwgY3VycmVudFZhbHVlKSk7CisgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KChhID4+IDM5KSBeIChiID4+IDIzKSk7
CiAgICAgICAgIH0KIAotICAgICAgICBBTFdBWVNfSU5MSU5FIHVpbnQzMl90IHVwZGF0ZSh1aW50
MzJfdCB2YWx1ZSkKKyAgICAgICAgc3RhdGljIEFMV0FZU19JTkxJTkUgdWludDMyX3QgYml0c0Zv
ckRpdmVyc2lmaWVyKHZvaWQqIGRpdmVyc2lmaWVyKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGRpdmVy
c2lmaWVyKSk7CisgICAgICAgIH0KKworICAgICAgICBBTFdBWVNfSU5MSU5FIHVpbnQzMl90IGN1
cnJlbnRIYXNoKHVpbnQzMl90IGluZGV4LCB2b2lkKiBkaXZlcnNpZmllcikKKyAgICAgICAgewor
ICAgICAgICAgICAgdWludDY0X3QgcmVzdWx0OworICAgICAgICAgICAgYm9vbCBoYXNoRmllbGRJ
c1RhZ2dlZCA9IGluZGV4ID09IDA7CisgICAgICAgICAgICBpZiAoaGFzaEZpZWxkSXNUYWdnZWQp
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdW50YWdJbnQobV9oYXNoLCBtYWtlRGl2ZXJzaWZp
ZXIoaW5pdGlhbGl6YXRpb25OYW1lc3BhY2UsIGluZGV4LCBiaXRzRm9yRGl2ZXJzaWZpZXIoZGl2
ZXJzaWZpZXIpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9oYXNoOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihyZXN1bHQp
OworICAgICAgICB9CisKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldFVwZGF0ZWRIYXNo
KHVpbnQzMl90IHZhbHVlLCB1aW50MzJfdCBpbmRleCwgdm9pZCogZGl2ZXJzaWZpZXIpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGJvb2wgc2hvdWxkVGFnSGFzaEZpZWxkID0gaW5kZXggPT0gMDsK
KyAgICAgICAgICAgIGlmIChzaG91bGRUYWdIYXNoRmllbGQpCisgICAgICAgICAgICAgICAgbV9o
YXNoID0gdGFnSW50KHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2YWx1ZSksIG1ha2VEaXZlcnNpZmll
cihpbml0aWFsaXphdGlvbk5hbWVzcGFjZSwgaW5kZXgsIGJpdHNGb3JEaXZlcnNpZmllcihkaXZl
cnNpZmllcikpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX2hhc2ggPSB2
YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIEFSTTY0RUhhc2godm9pZCogZGl2ZXJzaWZpZXIp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHNldFVwZGF0ZWRIYXNoKDAsIDAsIGRpdmVyc2lmaWVy
KTsKKyAgICAgICAgfQorIAorICAgICAgICBBTFdBWVNfSU5MSU5FIHVpbnQzMl90IHVwZGF0ZSh1
aW50MzJfdCBpbnN0cnVjdGlvbiwgdWludDMyX3QgaW5kZXgsIHZvaWQqIGRpdmVyc2lmaWVyKQog
ICAgICAgICB7Ci0gICAgICAgICAgICB1aW50NjRfdCBpbnB1dCA9IHZhbHVlIF4gbV9oYXNoOwot
ICAgICAgICAgICAgdWludDY0X3QgYSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pih0YWdJbnQoaW5w
dXQsIHN0YXRpY19jYXN0PFB0clRhZz4oMCkpID4+IDM5KTsKLSAgICAgICAgICAgIHVpbnQ2NF90
IGIgPSB0YWdJbnQoaW5wdXQsIHN0YXRpY19jYXN0PFB0clRhZz4oMHhiN2UxNTE2MjhhZWQyYTZh
KSkgPj4gMjM7Ci0gICAgICAgICAgICBtX2hhc2ggPSBhIF4gYjsKLSAgICAgICAgICAgIHJldHVy
biBtX2hhc2g7CisgICAgICAgICAgICB1aW50MzJfdCBjdXJyZW50SGFzaCA9IHRoaXMtPmN1cnJl
bnRIYXNoKGluZGV4LCBkaXZlcnNpZmllcik7CisgICAgICAgICAgICB1aW50NjRfdCBuZXh0SW5k
ZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXQgPSBuZXh0VmFsdWUo
aW5zdHJ1Y3Rpb24sIG5leHRJbmRleCwgY3VycmVudEhhc2gpOworICAgICAgICAgICAgc2V0VXBk
YXRlZEhhc2gob3V0cHV0LCBuZXh0SW5kZXgsIGRpdmVyc2lmaWVyKTsKKyAgICAgICAgICAgIHJl
dHVybiBvdXRwdXQ7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHVpbnQzMl90
IG1faGFzaDsKKyAgICAgICAgdWludDY0X3QgbV9oYXNoOwogICAgIH07CiAjZW5kaWYKIApAQCAt
MjMwLDcgKzI3MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgOiBtX3N0b3JhZ2Uo
KQogICAgICAgICAgICAgLCBtX2luZGV4KDApCiAjaWYgQ1BVKEFSTTY0RSkKLSAgICAgICAgICAg
ICwgbV9oYXNoKHN0YXRpY19jYXN0PHVpbnQzMl90PihiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHRo
aXMpKSkKKyAgICAgICAgICAgICwgbV9oYXNoKHRoaXMpCiAgICAgICAgICAgICAsIG1faGFzaGVz
KCkKICNlbmRpZgogICAgICAgICB7CkBAIC0zODgsNyArNDI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAjaWYgQ1BVKEFSTTY0KQogICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YodmFsdWUp
ID09IDQsICIiKTsKICNpZiBDUFUoQVJNNjRFKQotICAgICAgICAgICAgdWludDMyX3QgaGFzaCA9
IG1faGFzaC51cGRhdGUodmFsdWUpOworICAgICAgICAgICAgdWludDMyX3QgaGFzaCA9IG1faGFz
aC51cGRhdGUodmFsdWUsIG1faW5kZXggLyBzaXplb2YoSW50ZWdyYWxUeXBlKSwgdGhpcyk7CiAg
ICAgICAgICAgICBXVEY6OnVuYWxpZ25lZFN0b3JlPHVpbnQzMl90PihtX2hhc2hlcy5idWZmZXIo
KSArIG1faW5kZXgsIGhhc2gpOwogI2VuZGlmCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMjgwNzAzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ1LDcgKzI0NSw4IEBAIHZvaWQgTGlua0J1ZmZlcjo6Y29weUNvbXBhY3RB
bmRMaW5rQ29kZSgKICAgICBtX2Fzc2VtYmxlclN0b3JhZ2UgPSBtYWNyb0Fzc2VtYmxlci5tX2Fz
c2VtYmxlci5idWZmZXIoKS5yZWxlYXNlQXNzZW1ibGVyRGF0YSgpOwogICAgIHVpbnQ4X3QqIGlu
RGF0YSA9IGJpdHdpc2VfY2FzdDx1aW50OF90Kj4obV9hc3NlbWJsZXJTdG9yYWdlLmJ1ZmZlcigp
KTsKICNpZiBDUFUoQVJNNjRFKQotICAgIEFSTTY0RUhhc2ggdmVyaWZ5VW5jb21wYWN0ZWRIYXNo
IHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oJm1hY3JvQXNz
ZW1ibGVyLm1fYXNzZW1ibGVyLmJ1ZmZlcigpKSkgfTsKKyAgICB2b2lkKiBidWZmZXJQdHIgPSAm
bWFjcm9Bc3NlbWJsZXIubV9hc3NlbWJsZXIuYnVmZmVyKCk7CisgICAgQVJNNjRFSGFzaCB2ZXJp
ZnlVbmNvbXBhY3RlZEhhc2ggeyBidWZmZXJQdHIgfTsKICAgICBtX2Fzc2VtYmxlckhhc2hlc1N0
b3JhZ2UgPSBtYWNyb0Fzc2VtYmxlci5tX2Fzc2VtYmxlci5idWZmZXIoKS5yZWxlYXNlQXNzZW1i
bGVySGFzaGVzKCk7CiAgICAgdWludDMyX3QqIGluSGFzaGVzID0gYml0d2lzZV9jYXN0PHVpbnQz
Ml90Kj4obV9hc3NlbWJsZXJIYXNoZXNTdG9yYWdlLmJ1ZmZlcigpKTsKICNlbmRpZgpAQCAtMjY3
LDggKzI2OCw4IEBAIHZvaWQgTGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSgKICAg
ICBhdXRvIHJlYWQgPSBbJl0oY29uc3QgSW5zdHJ1Y3Rpb25UeXBlKiBwdHIpIC0+IEluc3RydWN0
aW9uVHlwZSB7CiAgICAgICAgIEluc3RydWN0aW9uVHlwZSB2YWx1ZSA9ICpwdHI7CiAjaWYgQ1BV
KEFSTTY0RSkKLSAgICAgICAgdWludDMyX3QgaGFzaCA9IHZlcmlmeVVuY29tcGFjdGVkSGFzaC51
cGRhdGUodmFsdWUpOwogICAgICAgICB1bnNpZ25lZCBpbmRleCA9IChiaXR3aXNlX2Nhc3Q8dWlu
dDhfdCo+KHB0cikgLSBpbkRhdGEpIC8gNDsKKyAgICAgICAgdWludDMyX3QgaGFzaCA9IHZlcmlm
eVVuY29tcGFjdGVkSGFzaC51cGRhdGUodmFsdWUsIGluZGV4LCBidWZmZXJQdHIpOwogICAgICAg
ICBSRUxFQVNFX0FTU0VSVChpbkhhc2hlc1tpbmRleF0gPT0gaGFzaCk7CiAjZW5kaWYKICAgICAg
ICAgcmV0dXJuIHZhbHVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436649</attachid>
            <date>2021-08-27 11:45:03 -0700</date>
            <delta_ts>2021-08-27 12:53:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>6719</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgxNzA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDIxLTA4LTI3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFVwZGF0ZSBBUk02NEVIYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjg5NjIKKyAgICAgICAgPHJkYXI6Ly83OTg4MzMzNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFzc2VtYmxlci9Bc3NlbWJs
ZXJCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNNjRFSGFzaDo6QVJNNjRFSGFzaCk6CisgICAg
ICAgIChKU0M6OkFSTTY0RUhhc2g6OnVwZGF0ZSk6CisgICAgICAgIChKU0M6OkFSTTY0RUhhc2g6
Om1ha2VEaXZlcnNpZmllcik6CisgICAgICAgIChKU0M6OkFSTTY0RUhhc2g6Om5leHRWYWx1ZSk6
CisgICAgICAgIChKU0M6OkFSTTY0RUhhc2g6OmJpdHNGb3JEaXZlcnNpZmllcik6CisgICAgICAg
IChKU0M6OkFSTTY0RUhhc2g6OmN1cnJlbnRIYXNoKToKKyAgICAgICAgKEpTQzo6QVJNNjRFSGFz
aDo6c2V0VXBkYXRlZEhhc2gpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OkFzc2Vt
YmxlckJ1ZmZlcik6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6cHV0SW50ZWdyYWxV
bmNoZWNrZWQpOgorICAgICAgICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoKKyAgICAgICAg
KEpTQzo6TGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSk6CisKIDIwMjEtMDgtMjcg
IE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdhbGlhLmNvbT4KIAogICAgICAgICBBdm9p
ZCBpbmNyZWFzaW5nIHJlcXVpcmVkIGFsaWdubWVudCBvZiB0YXJnZXQgdHlwZSB3YXJuaW5nIG9u
IEFSTSAzMiBiaXRzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2Vt
YmxlckJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQXNzZW1ibGVyQnVmZmVyLmgJKHJldmlzaW9uIDI4MTcwMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
MDMsMTQgKzIwMywxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB9OwogCiAjaWYgQ1BVKEFSTTY0
RSkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgY2xhc3MgQVJNNjRFSGFzaCB7CiAgICAgcHVibGlj
OgotICAgICAgICBBUk02NEVIYXNoKHVpbnQzMl90IGluaXRpYWxIYXNoKQotICAgICAgICAgICAg
OiBtX2hhc2goaW5pdGlhbEhhc2gpCisgICAgICAgIEFSTTY0RUhhc2godm9pZCogaW5pdGlhbEhh
c2gpCisgICAgICAgICAgICA6IG1faGFzaChzdGF0aWNfY2FzdDx1aW50MzJfdD4oYml0d2lzZV9j
YXN0PHVpbnRwdHJfdD4oaW5pdGlhbEhhc2gpKSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAg
ICAgICAgQUxXQVlTX0lOTElORSB1aW50MzJfdCB1cGRhdGUodWludDMyX3QgdmFsdWUpCisgICAg
ICAgIEFMV0FZU19JTkxJTkUgdWludDMyX3QgdXBkYXRlKHVpbnQzMl90IHZhbHVlLCB1aW50MzJf
dCwgdm9pZCopCiAgICAgICAgIHsKICAgICAgICAgICAgIHVpbnQ2NF90IGlucHV0ID0gdmFsdWUg
XiBtX2hhc2g7CiAgICAgICAgICAgICB1aW50NjRfdCBhID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHRhZ0ludChpbnB1dCwgc3RhdGljX2Nhc3Q8UHRyVGFnPigwKSkgPj4gMzkpOwpAQCAtMjIyLDcg
KzIyMyw2NSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICB1aW50MzJf
dCBtX2hhc2g7CiAgICAgfTsKLSNlbmRpZgorI2Vsc2UKKyAgICBjbGFzcyBBUk02NEVIYXNoIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIEFSTTY0RUhhc2godm9pZCogZGl2ZXJzaWZpZXIpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHNldFVwZGF0ZWRIYXNoKDAsIDAsIGRpdmVyc2lmaWVyKTsKKyAg
ICAgICAgfQorCisgICAgICAgIEFMV0FZU19JTkxJTkUgdWludDMyX3QgdXBkYXRlKHVpbnQzMl90
IGluc3RydWN0aW9uLCB1aW50MzJfdCBpbmRleCwgdm9pZCogZGl2ZXJzaWZpZXIpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGN1cnJlbnRIYXNoID0gdGhpcy0+Y3VycmVudEhhc2go
aW5kZXgsIGRpdmVyc2lmaWVyKTsKKyAgICAgICAgICAgIHVpbnQ2NF90IG5leHRJbmRleCA9IGlu
ZGV4ICsgMTsKKyAgICAgICAgICAgIHVpbnQzMl90IG91dHB1dCA9IG5leHRWYWx1ZShpbnN0cnVj
dGlvbiwgbmV4dEluZGV4LCBjdXJyZW50SGFzaCk7CisgICAgICAgICAgICBzZXRVcGRhdGVkSGFz
aChvdXRwdXQsIG5leHRJbmRleCwgZGl2ZXJzaWZpZXIpOworICAgICAgICAgICAgcmV0dXJuIG91
dHB1dDsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50OF90IGluaXRpYWxpemF0aW9uTmFtZXNwYWNlID0gMHgxMTsKKworICAgICAgICBzdGF0
aWMgQUxXQVlTX0lOTElORSBQdHJUYWcgbWFrZURpdmVyc2lmaWVyKHVpbnQ4X3QgbmFtZXNwYWNl
VGFnLCB1aW50NjRfdCBpbmRleCwgdWludDMyX3QgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIC8vIDxuYW1lc3BhY2VUYWc6OD48aW5kZXg6MjQ+PHZhbHVlOjMyPgorICAgICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFB0clRhZz4oKHN0YXRpY19jYXN0PHVpbnQ2NF90PihuYW1lc3Bh
Y2VUYWcpIDw8IDU2KSArICgoaW5kZXggJiAweEZGRkZGRikgPDwgMzIpICsgdmFsdWUpOworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIEFMV0FZU19JTkxJTkUgdWludDMyX3QgbmV4dFZhbHVl
KHVpbnQ2NF90IGluc3RydWN0aW9uLCB1aW50NjRfdCBpbmRleCwgdWludDMyX3QgY3VycmVudFZh
bHVlKQorICAgICAgICB7CisgICAgICAgICAgICB1aW50NjRfdCBhID0gdGFnSW50KGluc3RydWN0
aW9uLCBtYWtlRGl2ZXJzaWZpZXIoMHgxMiwgaW5kZXgsIGN1cnJlbnRWYWx1ZSkpOworICAgICAg
ICAgICAgdWludDY0X3QgYiA9IHRhZ0ludChpbnN0cnVjdGlvbiwgbWFrZURpdmVyc2lmaWVyKDB4
MTMsIGluZGV4LCBjdXJyZW50VmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiAoYSA+PiAzOSkg
XiAoYiA+PiAyMyk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgQUxXQVlTX0lOTElORSB1
aW50MzJfdCBiaXRzRm9yRGl2ZXJzaWZpZXIodm9pZCogZGl2ZXJzaWZpZXIpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihkaXZlcnNpZmllcik7
CisgICAgICAgIH0KKworICAgICAgICBBTFdBWVNfSU5MSU5FIHVpbnQzMl90IGN1cnJlbnRIYXNo
KHVpbnQzMl90IGluZGV4LCB2b2lkKiBkaXZlcnNpZmllcikKKyAgICAgICAgeworICAgICAgICAg
ICAgYm9vbCBoYXNoRmllbGRJc1RhZ2dlZCA9IGluZGV4ID09IDA7CisgICAgICAgICAgICBpZiAo
aGFzaEZpZWxkSXNUYWdnZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHVudGFnSW50KG1faGFz
aCwgbWFrZURpdmVyc2lmaWVyKGluaXRpYWxpemF0aW9uTmFtZXNwYWNlLCBpbmRleCwgYml0c0Zv
ckRpdmVyc2lmaWVyKGRpdmVyc2lmaWVyKSkpOworICAgICAgICAgICAgcmV0dXJuIG1faGFzaDsK
KyAgICAgICAgfQorCisgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRVcGRhdGVkSGFzaCh1
aW50MzJfdCB2YWx1ZSwgdWludDMyX3QgaW5kZXgsIHZvaWQqIGRpdmVyc2lmaWVyKQorICAgICAg
ICB7CisgICAgICAgICAgICBib29sIHNob3VsZFRhZ0hhc2hGaWVsZCA9IGluZGV4ID09IDA7Cisg
ICAgICAgICAgICBpZiAoc2hvdWxkVGFnSGFzaEZpZWxkKQorICAgICAgICAgICAgICAgIG1faGFz
aCA9IHRhZ0ludChzdGF0aWNfY2FzdDx1aW50NjRfdD4odmFsdWUpLCBtYWtlRGl2ZXJzaWZpZXIo
aW5pdGlhbGl6YXRpb25OYW1lc3BhY2UsIGluZGV4LCBiaXRzRm9yRGl2ZXJzaWZpZXIoZGl2ZXJz
aWZpZXIpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9oYXNoID0gdmFs
dWU7CisgICAgICAgIH0KKworICAgICAgICB1aW50NjRfdCBtX2hhc2g7CisgICAgfTsKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCisjZW5kaWYgLy8gQ1BVKEFSTTY0RSkKIAogICAgIGNsYXNzIEFz
c2VtYmxlckJ1ZmZlciB7CiAgICAgcHVibGljOgpAQCAtMjMwLDcgKzI4OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgOiBtX3N0b3JhZ2UoKQogICAgICAgICAgICAgLCBtX2luZGV4
KDApCiAjaWYgQ1BVKEFSTTY0RSkKLSAgICAgICAgICAgICwgbV9oYXNoKHN0YXRpY19jYXN0PHVp
bnQzMl90PihiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHRoaXMpKSkKKyAgICAgICAgICAgICwgbV9o
YXNoKHRoaXMpCiAgICAgICAgICAgICAsIG1faGFzaGVzKCkKICNlbmRpZgogICAgICAgICB7CkBA
IC0zODgsNyArNDQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgQ1BVKEFSTTY0KQogICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YodmFsdWUpID09IDQsICIiKTsKICNpZiBDUFUoQVJN
NjRFKQotICAgICAgICAgICAgdWludDMyX3QgaGFzaCA9IG1faGFzaC51cGRhdGUodmFsdWUpOwor
ICAgICAgICAgICAgdWludDMyX3QgaGFzaCA9IG1faGFzaC51cGRhdGUodmFsdWUsIG1faW5kZXgg
LyBzaXplb2YoSW50ZWdyYWxUeXBlKSwgdGhpcyk7CiAgICAgICAgICAgICBXVEY6OnVuYWxpZ25l
ZFN0b3JlPHVpbnQzMl90PihtX2hhc2hlcy5idWZmZXIoKSArIG1faW5kZXgsIGhhc2gpOwogI2Vu
ZGlmCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1
ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9M
aW5rQnVmZmVyLmNwcAkocmV2aXNpb24gMjgxNzAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDcgKzI0NSw4
IEBAIHZvaWQgTGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSgKICAgICBtX2Fzc2Vt
YmxlclN0b3JhZ2UgPSBtYWNyb0Fzc2VtYmxlci5tX2Fzc2VtYmxlci5idWZmZXIoKS5yZWxlYXNl
QXNzZW1ibGVyRGF0YSgpOwogICAgIHVpbnQ4X3QqIGluRGF0YSA9IGJpdHdpc2VfY2FzdDx1aW50
OF90Kj4obV9hc3NlbWJsZXJTdG9yYWdlLmJ1ZmZlcigpKTsKICNpZiBDUFUoQVJNNjRFKQotICAg
IEFSTTY0RUhhc2ggdmVyaWZ5VW5jb21wYWN0ZWRIYXNoIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oJm1hY3JvQXNzZW1ibGVyLm1fYXNzZW1ibGVyLmJ1ZmZl
cigpKSkgfTsKKyAgICB2b2lkKiBidWZmZXJQdHIgPSAmbWFjcm9Bc3NlbWJsZXIubV9hc3NlbWJs
ZXIuYnVmZmVyKCk7CisgICAgQVJNNjRFSGFzaCB2ZXJpZnlVbmNvbXBhY3RlZEhhc2ggeyBidWZm
ZXJQdHIgfTsKICAgICBtX2Fzc2VtYmxlckhhc2hlc1N0b3JhZ2UgPSBtYWNyb0Fzc2VtYmxlci5t
X2Fzc2VtYmxlci5idWZmZXIoKS5yZWxlYXNlQXNzZW1ibGVySGFzaGVzKCk7CiAgICAgdWludDMy
X3QqIGluSGFzaGVzID0gYml0d2lzZV9jYXN0PHVpbnQzMl90Kj4obV9hc3NlbWJsZXJIYXNoZXNT
dG9yYWdlLmJ1ZmZlcigpKTsKICNlbmRpZgpAQCAtMjY3LDggKzI2OCw4IEBAIHZvaWQgTGlua0J1
ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSgKICAgICBhdXRvIHJlYWQgPSBbJl0oY29uc3Qg
SW5zdHJ1Y3Rpb25UeXBlKiBwdHIpIC0+IEluc3RydWN0aW9uVHlwZSB7CiAgICAgICAgIEluc3Ry
dWN0aW9uVHlwZSB2YWx1ZSA9ICpwdHI7CiAjaWYgQ1BVKEFSTTY0RSkKLSAgICAgICAgdWludDMy
X3QgaGFzaCA9IHZlcmlmeVVuY29tcGFjdGVkSGFzaC51cGRhdGUodmFsdWUpOwogICAgICAgICB1
bnNpZ25lZCBpbmRleCA9IChiaXR3aXNlX2Nhc3Q8dWludDhfdCo+KHB0cikgLSBpbkRhdGEpIC8g
NDsKKyAgICAgICAgdWludDMyX3QgaGFzaCA9IHZlcmlmeVVuY29tcGFjdGVkSGFzaC51cGRhdGUo
dmFsdWUsIGluZGV4LCBidWZmZXJQdHIpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChpbkhhc2hl
c1tpbmRleF0gPT0gaGFzaCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHZhbHVlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>