<?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>213037</bug_id>
          
          <creation_ts>2020-06-10 11:35:28 -0700</creation_ts>
          <short_desc>Stop to use ActiveDOMObject::setPendingActivity() for WebCore/Modules/fetch</short_desc>
          <delta_ts>2020-06-12 13:37:17 -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>WebCore Misc.</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="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1661251</commentid>
    <comment_count>0</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-10 11:35:28 -0700</bug_when>
    <thetext>This is just refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661256</commentid>
    <comment_count>1</comment_count>
      <attachid>401560</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-10 11:40:47 -0700</bug_when>
    <thetext>Created attachment 401560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661269</commentid>
    <comment_count>2</comment_count>
      <attachid>401560</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-10 12:03:04 -0700</bug_when>
    <thetext>Comment on attachment 401560
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:46
&gt; +    , m_pendingActivity(nullptr)

Please remove. Not needed. RefPtr is initialized to nullptr without explicit initialization.

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.h:73
&gt; +    void setPendingActivity()

Is there a reason these function bodies need to be entirely inlined in the header? That seems like premature optimization. Let’s put them into the .cpp file instead.

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.h:85
&gt; +    void unsetPendingActivity()
&gt; +    {
&gt; +        if (m_pendingActivity)
&gt; +            m_pendingActivity-&gt;deref();
&gt; +    }

This seems like it needs to ASSERT(m_pendingActivity), not just silently do nothing.

This is wrong and will over-release. If you call setPendingActivity(), then unsetPendingActivity(), and then delete the FetchBodyOwner, m_pendingActivity will be ref&apos;d once, but deref&apos;d twice.

Explicit calls to ref/deref are almost never correct, and this shows one example of why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661589</commentid>
    <comment_count>3</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-11 08:19:44 -0700</bug_when>
    <thetext>I&apos;ll rethink this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661604</commentid>
    <comment_count>4</comment_count>
      <attachid>401652</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-11 09:15:46 -0700</bug_when>
    <thetext>Created attachment 401652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661613</commentid>
    <comment_count>5</comment_count>
      <attachid>401652</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-11 09:21:31 -0700</bug_when>
    <thetext>Comment on attachment 401652
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.h:138
&gt; +    unsigned m_pendingInstanceCount { 0 };

I seem that it might be good to provide a way to increment/decrement ActiveDOMObject::m_pendingActivityInstanceCount instead of holding and manipulate this member.

Why did we obsolete ActiveDOMObject::setPendingActivity() in bug 209754?
I could not find the reason for its change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661726</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-11 13:46:52 -0700</bug_when>
    <thetext>Chris, maybe you can help?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661730</commentid>
    <comment_count>7</comment_count>
      <attachid>401652</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-11 13:56:54 -0700</bug_when>
    <thetext>Comment on attachment 401652
Patch

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

&gt;&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.h:138
&gt;&gt; +    unsigned m_pendingInstanceCount { 0 };
&gt; 
&gt; I seem that it might be good to provide a way to increment/decrement ActiveDOMObject::m_pendingActivityInstanceCount instead of holding and manipulate this member.
&gt; 
&gt; Why did we obsolete ActiveDOMObject::setPendingActivity() in bug 209754?
&gt; I could not find the reason for its change.

mismatched setPendingActivity() / unsetPendingActivity() calls was a frequent source of leaks. The modern way to keep the JS wrapper alive is to call makePendingActivity() and store the returned object, as documented in the code. This makes it a bit harder to make mistakes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661732</commentid>
    <comment_count>8</comment_count>
      <attachid>401652</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-11 13:58:36 -0700</bug_when>
    <thetext>Comment on attachment 401652
Patch

I don&apos;t think the new code is any better than the old one. You just moved the problem from ActiveDOMObject to FetchBodyOwner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661735</commentid>
    <comment_count>9</comment_count>
      <attachid>401652</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-11 14:04:32 -0700</bug_when>
    <thetext>Comment on attachment 401652
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:260
&gt; +    setPendingActivity();

This one..

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:269
&gt; +    unsetPendingActivity();

... and this one are easily avoidable by..

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:391
&gt; +    return m_pendingInstanceCount &gt; 0;

... doing this:
return !!m_blobLoader;

This way, the wrapper will be kept alive as long as we have blob loader.

&gt; Source/WebCore/Modules/fetch/FetchBodySource.cpp:45
&gt; +        m_bodyOwner-&gt;setPendingActivity();

For these, maybe the caller should call makePendingActivity() instead and store the pending activity here.

&gt; Source/WebCore/Modules/fetch/FetchBodySource.cpp:52
&gt; +        m_bodyOwner-&gt;unsetPendingActivity();

Then clear the pending activity they stored, here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661910</commentid>
    <comment_count>10</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-12 06:03:21 -0700</bug_when>
    <thetext>Thank you, Chris.

I&apos;ll address the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661911</commentid>
    <comment_count>11</comment_count>
      <attachid>401722</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-12 06:08:23 -0700</bug_when>
    <thetext>Created attachment 401722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661939</commentid>
    <comment_count>12</comment_count>
      <attachid>401722</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-12 07:38:50 -0700</bug_when>
    <thetext>Comment on attachment 401722
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:-259
&gt; -    setPendingActivity(*this);

We are no longer refing the FetchBodyOwner while loading the blo.
This is a potential behavioural change if we do not have a JSFetchRequest/JSFetchResponse to keep the FetchBodyOwner alive.
Looking at the call sites, this should be fine.

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.h:106
&gt; +    bool virtualHasPendingActivity() const override;

Could probably be final.

&gt; Source/WebCore/Modules/fetch/FetchBodySource.cpp:53
&gt;      if (m_bodyOwner)

No need for this if check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661986</commentid>
    <comment_count>13</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-12 09:38:15 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #12)
&gt; Comment on attachment 401722 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401722&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:-259
&gt; &gt; -    setPendingActivity(*this);
&gt; 
&gt; We are no longer refing the FetchBodyOwner while loading the blo.
&gt; This is a potential behavioural change if we do not have a
&gt; JSFetchRequest/JSFetchResponse to keep the FetchBodyOwner alive.
&gt; Looking at the call sites, this should be fine.

I confirmed that JSFetchRequest/JSFetchResponse (as derived class of JSDOMWrapper) hold FetchRequest/FetchResponse, they have FetchBodyOwner as a base class and keep alive it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661991</commentid>
    <comment_count>14</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-12 09:49:23 -0700</bug_when>
    <thetext>This is just a question.

FetchBodyOwner holds FetchBodySource, and FetchBodySource holds FetchBodyOwner as a raw pointer because of cutting the reference cycle. Is my recognization right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661992</commentid>
    <comment_count>15</comment_count>
      <attachid>401740</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-12 09:51:48 -0700</bug_when>
    <thetext>Created attachment 401740
Patch

I addressed youenn&apos;s review and updated changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662123</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-12 13:36:30 -0700</bug_when>
    <thetext>Committed r262972: &lt;https://trac.webkit.org/changeset/262972&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401740.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662126</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-12 13:37:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64310110&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401560</attachid>
            <date>2020-06-10 11:40:47 -0700</date>
            <delta_ts>2020-06-11 09:15:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213037-20200611034045.patch</filename>
            <type>text/plain</type>
            <size>4237</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNhYjhmNTgyZmNlZjNk
MDgwYTI5ZDI0ZWNlOTUwMjQ4N2MzY2U0ZS4uYmNhY2JkMjdiYzdjNmJlOGNhNzUyM2M3YWQ0NGNj
ODhjYTFlODFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA2LTEwICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgU3Rv
cCB0byB1c2UgQWN0aXZlRE9NT2JqZWN0OjpzZXRQZW5kaW5nQWN0aXZpdHkoKSBmb3IgTW9kdWxl
cy9mZXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEzMDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnkgQWN0aXZlRE9NT2JqZWN0cycgY29tbWVudHMsCisgICAgICAgIHRoZXNlIG1ldGhvZHMgc2hv
dWxkIGJlIHJlcGxhY2VkIHdpdGggdXNpbmcgbWFrZVBlbmRpbmdBY3Rpdml0eSgpCisgICAgICAg
IG9yIG92ZXJyaWRpbmcgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGluc3RlYWQuCisKKyAg
ICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoQm9keU93bmVyOjpGZXRjaEJvZHlPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpG
ZXRjaEJvZHlPd25lcjo6bG9hZEJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3du
ZXI6OmZpbmlzaEJsb2JMb2FkaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eU93bmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6c2V0UGVuZGluZ0Fj
dGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjp1bnNldFBlbmRpbmdB
Y3Rpdml0eSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpzZXRBY3RpdmUpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpzZXRJbmFjdGl2ZSk6CisKIDIwMjAtMDYtMTAgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEJhc2VBdWRpb1NoYXJl
ZFVuaXQgZG9lcyBub3QgbmVlZCB0byByZXN0YXJ0IGl0cyBhdWRpbyB1bml0IGF0IHJlc3VtZSB0
aW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlP
d25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNw
cAppbmRleCAyNWVjYmU5YTM4NjhkYjJiMjhlZTU2NzFlNjAwMGEzMzRkNDhkY2FiLi5lNmRjYjFm
YWM3ZTU5ZTdjNTM3YmY4MTBkODA1ZWJlYTFlMjIyYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcApAQCAtNDMsNiArNDMsNyBAQCBGZXRj
aEJvZHlPd25lcjo6RmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgT3B0aW9uYWw8RmV0Y2hCbwogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAg
ICwgbV9ib2R5KFdURk1vdmUoYm9keSkpCiAgICAgLCBtX2hlYWRlcnMoV1RGTW92ZShoZWFkZXJz
KSkKKyAgICAsIG1fcGVuZGluZ0FjdGl2aXR5KG51bGxwdHIpCiB7CiAgICAgc3VzcGVuZElmTmVl
ZGVkKCk7CiB9CkBAIC0yNTYsNyArMjU3LDcgQEAgdm9pZCBGZXRjaEJvZHlPd25lcjo6bG9hZEJs
b2IoY29uc3QgQmxvYiYgYmxvYiwgRmV0Y2hCb2R5Q29uc3VtZXIqIGNvbnN1bWVyKQogICAgICAg
ICBtX2Jsb2JMb2FkZXIgPSBXVEY6Om51bGxvcHQ7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKKyAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKTsK
IH0KIAogdm9pZCBGZXRjaEJvZHlPd25lcjo6ZmluaXNoQmxvYkxvYWRpbmcoKQpAQCAtMjY0LDcg
KzI2NSw3IEBAIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmZpbmlzaEJsb2JMb2FkaW5nKCkKICAgICBB
U1NFUlQobV9ibG9iTG9hZGVyKTsKIAogICAgIG1fYmxvYkxvYWRlciA9IFdURjo6bnVsbG9wdDsK
LSAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CisgICAgdW5zZXRQZW5kaW5nQWN0aXZp
dHkoKTsKIH0KIAogdm9pZCBGZXRjaEJvZHlPd25lcjo6YmxvYkxvYWRpbmdTdWNjZWVkZWQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCmluZGV4IGRk
MjFlNTU2NmNhNDgwN2Y4MzMxOGYzMjM3OTYwZWVmYzY4NDk1MmUuLjYxYTdmNGIyZTg5NjY2OTM2
MGVjMTBkMzBmNGRhNjdjOTE4NGMxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keU93bmVyLmgKQEAgLTcwLDYgKzcwLDIwIEBAIHB1YmxpYzoKICAgICBSZXNv
dXJjZUVycm9yIGxvYWRpbmdFcnJvcigpIGNvbnN0OwogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbj4g
bG9hZGluZ0V4Y2VwdGlvbigpIGNvbnN0OwogCisgICAgdm9pZCBzZXRQZW5kaW5nQWN0aXZpdHko
KQorICAgIHsKKyAgICAgICAgaWYgKG1fcGVuZGluZ0FjdGl2aXR5KQorICAgICAgICAgICAgbV9w
ZW5kaW5nQWN0aXZpdHktPnJlZigpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3BlbmRp
bmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOworICAgIH0KKworICAgIHZv
aWQgdW5zZXRQZW5kaW5nQWN0aXZpdHkoKQorICAgIHsKKyAgICAgICAgaWYgKG1fcGVuZGluZ0Fj
dGl2aXR5KQorICAgICAgICAgICAgbV9wZW5kaW5nQWN0aXZpdHktPmRlcmVmKCk7CisgICAgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgRmV0Y2hCb2R5JiBib2R5KCkgY29uc3QgeyByZXR1cm4g
Km1fYm9keTsgfQogICAgIEZldGNoQm9keSYgYm9keSgpIHsgcmV0dXJuICptX2JvZHk7IH0KQEAg
LTEyOSw2ICsxNDMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0JvZHlPcGFxdWUgeyBmYWxz
ZSB9OwogCiAgICAgVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgRXhjZXB0aW9uLCBSZXNvdXJjZUVy
cm9yPiBtX2xvYWRpbmdFcnJvcjsKKyAgICBSZWZQdHI8UGVuZGluZ0FjdGl2aXR5PEZldGNoQm9k
eU93bmVyPj4gbV9wZW5kaW5nQWN0aXZpdHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAK
aW5kZXggOTQxZGE2YjhkMjg3ZjIwYWM3NThkMzQyNmZkNzJmN2E0MzY0OTQ1NS4uNTAzZmQ0ZTI0
NzdjN2ZjODlkOTU2ZmE2OTE1NmM3NjZiZTI4NDY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNwcApAQCAtNDIsMTQgKzQyLDE0IEBAIHZv
aWQgRmV0Y2hCb2R5U291cmNlOjpzZXRBY3RpdmUoKQogewogICAgIEFTU0VSVChtX2JvZHlPd25l
cik7CiAgICAgaWYgKG1fYm9keU93bmVyKQotICAgICAgICBtX2JvZHlPd25lci0+c2V0UGVuZGlu
Z0FjdGl2aXR5KCptX2JvZHlPd25lcik7CisgICAgICAgIG1fYm9keU93bmVyLT5zZXRQZW5kaW5n
QWN0aXZpdHkoKTsKIH0KIAogdm9pZCBGZXRjaEJvZHlTb3VyY2U6OnNldEluYWN0aXZlKCkKIHsK
ICAgICBBU1NFUlQobV9ib2R5T3duZXIpOwogICAgIGlmIChtX2JvZHlPd25lcikKLSAgICAgICAg
bV9ib2R5T3duZXItPnVuc2V0UGVuZGluZ0FjdGl2aXR5KCptX2JvZHlPd25lcik7CisgICAgICAg
IG1fYm9keU93bmVyLT51bnNldFBlbmRpbmdBY3Rpdml0eSgpOwogfQogCiB2b2lkIEZldGNoQm9k
eVNvdXJjZTo6ZG9TdGFydCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401652</attachid>
            <date>2020-06-11 09:15:46 -0700</date>
            <delta_ts>2020-06-12 06:08:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213037-20200612011545.patch</filename>
            <type>text/plain</type>
            <size>4774</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNhYjhmNTgyZmNlZjNk
MDgwYTI5ZDI0ZWNlOTUwMjQ4N2MzY2U0ZS4uOTc4YjEwN2M4MjJlZTRiZTI4OTkyMDc3ZjFiMTQx
MjZmYTliNDdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTExICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisgICAgICAgIFN0b3Ag
dG8gdXNlIEFjdGl2ZURPTU9iamVjdDo6c2V0UGVuZGluZ0FjdGl2aXR5KCkgZm9yIE1vZHVsZXMv
ZmV0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MzAzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5
IEFjdGl2ZURPTU9iamVjdCdzIGNvbW1lbnRzLAorICAgICAgICB0aGVzZSBtZXRob2RzIHNob3Vs
ZCBiZSByZXBsYWNlZCB3aXRoIHVzaW5nIG1ha2VQZW5kaW5nQWN0aXZpdHkoKQorICAgICAgICBv
ciBvdmVycmlkaW5nIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBpbnN0ZWFkLgorCisgICAg
ICAgIEFjdGl2ZURPTU9iamVjdDo6c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXNPYmplY3QpL3Vuc2V0
UGVuZGluZ0FjdGl2aXR5KHRoaXNPYmplY3QpCisgICAgICAgIGRvIGluY3JlbWVudC9kZWNyZW1l
bnQgZm9yIGB0aGlzT2JqZWN0YCdzIHJlZmNvdW50LgorICAgICAgICBUaHVzIEZldGNoQm9keU93
bmVyOjpzZXRQZW5kaW5nQWN0aXZpdHkoKS91bnNldFBlbmRpbmdBY3Rpdml0eSgpIGFsc28KKyAg
ICAgICAgaW5jcmVtZW50L2RlY3JlbWVudCByZWZjb3VudCBieSBpdHNlbGYuCisKKyAgICAgICAg
KiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoQm9keU93bmVyOjpsb2FkQmxvYik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25l
cjo6ZmluaXNoQmxvYkxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hCb2R5T3duZXI6OnNldFBlbmRpbmdBY3Rpdml0eSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aEJvZHlPd25lcjo6dW5zZXRQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5T3duZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlTb3VyY2U6OnNldEFjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlTb3VyY2U6OnNldEluYWN0aXZlKToKKworCiAy
MDIwLTA2LTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBC
YXNlQXVkaW9TaGFyZWRVbml0IGRvZXMgbm90IG5lZWQgdG8gcmVzdGFydCBpdHMgYXVkaW8gdW5p
dCBhdCByZXN1bWUgdGltZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5T3duZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aEJvZHlPd25lci5jcHAKaW5kZXggMjVlY2JlOWEzODY4ZGIyYjI4ZWU1NjcxZTYwMDBhMzM0ZDQ4
ZGNhYi4uN2EwNmM2OWVmZTZiZjhhOWYzZGM1OTg1YzQzN2Q0ZDRlNDNmYTgxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKQEAgLTI1Niwx
NSArMjU2LDE3IEBAIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmxvYWRCbG9iKGNvbnN0IEJsb2ImIGJs
b2IsIEZldGNoQm9keUNvbnN1bWVyKiBjb25zdW1lcikKICAgICAgICAgbV9ibG9iTG9hZGVyID0g
V1RGOjpudWxsb3B0OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNldFBlbmRpbmdBY3Rp
dml0eSgqdGhpcyk7CisKKyAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAorCiB2b2lkIEZl
dGNoQm9keU93bmVyOjpmaW5pc2hCbG9iTG9hZGluZygpCiB7CiAgICAgQVNTRVJUKG1fYmxvYkxv
YWRlcik7CiAKICAgICBtX2Jsb2JMb2FkZXIgPSBXVEY6Om51bGxvcHQ7Ci0gICAgdW5zZXRQZW5k
aW5nQWN0aXZpdHkoKnRoaXMpOworICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KCk7CiB9CiAKIHZv
aWQgRmV0Y2hCb2R5T3duZXI6OmJsb2JMb2FkaW5nU3VjY2VlZGVkKCkKQEAgLTM4NCw2ICszODYs
MjQgQEAgT3B0aW9uYWw8RXhjZXB0aW9uPiBGZXRjaEJvZHlPd25lcjo6bG9hZGluZ0V4Y2VwdGlv
bigpIGNvbnN0CiAgICAgfSk7CiB9CiAKK2Jvb2wgRmV0Y2hCb2R5T3duZXI6OnZpcnR1YWxIYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiBtX3BlbmRpbmdJbnN0YW5jZUNv
dW50ID4gMDsKK30KKwordm9pZCBGZXRjaEJvZHlPd25lcjo6c2V0UGVuZGluZ0FjdGl2aXR5KCkK
K3sKKyAgICArK21fcGVuZGluZ0luc3RhbmNlQ291bnQ7CisgICAgcmVmKCk7Cit9CisKK3ZvaWQg
RmV0Y2hCb2R5T3duZXI6OnVuc2V0UGVuZGluZ0FjdGl2aXR5KCkKK3sKKyAgICBBU1NFUlQobV9w
ZW5kaW5nSW5zdGFuY2VDb3VudCA+IDApOworICAgIC0tbV9wZW5kaW5nSW5zdGFuY2VDb3VudDsK
KyAgICBkZXJlZigpOworfQorCiBib29sIEZldGNoQm9keU93bmVyOjpoYXNMb2FkaW5nRXJyb3Io
KSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fbG9hZGluZ0Vycm9yLCBbXShj
b25zdCBSZXNvdXJjZUVycm9yJikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlPd25lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaEJvZHlPd25lci5oCmluZGV4IGRkMjFlNTU2NmNhNDgwN2Y4MzMxOGYzMjM3OTYwZWVmYzY4
NDk1MmUuLjdkZWRmYzY5OWYwMGNmYzk0OWE5ZWFmN2NlM2Y3YWI0YjhhYTFmOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgKQEAgLTcwLDYgKzcw
LDkgQEAgcHVibGljOgogICAgIFJlc291cmNlRXJyb3IgbG9hZGluZ0Vycm9yKCkgY29uc3Q7CiAg
ICAgT3B0aW9uYWw8RXhjZXB0aW9uPiBsb2FkaW5nRXhjZXB0aW9uKCkgY29uc3Q7CiAKKyAgICB2
b2lkIHNldFBlbmRpbmdBY3Rpdml0eSgpOworICAgIHZvaWQgdW5zZXRQZW5kaW5nQWN0aXZpdHko
KTsKKwogcHJvdGVjdGVkOgogICAgIGNvbnN0IEZldGNoQm9keSYgYm9keSgpIGNvbnN0IHsgcmV0
dXJuICptX2JvZHk7IH0KICAgICBGZXRjaEJvZHkmIGJvZHkoKSB7IHJldHVybiAqbV9ib2R5OyB9
CkBAIC0xMDIsNiArMTA1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJsb2JMb2FkaW5nRmFpbGVk
KCk7CiAgICAgdm9pZCBmaW5pc2hCbG9iTG9hZGluZygpOwogCisgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0IEFQSQorICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJy
aWRlOworCiAgICAgc3RydWN0IEJsb2JMb2FkZXIgZmluYWwgOiBGZXRjaExvYWRlckNsaWVudCB7
CiAgICAgICAgIEJsb2JMb2FkZXIoRmV0Y2hCb2R5T3duZXImKTsKIApAQCAtMTI5LDYgKzEzNSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQm9keU9wYXF1ZSB7IGZhbHNlIH07CiAKICAgICBW
YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBFeGNlcHRpb24sIFJlc291cmNlRXJyb3I+IG1fbG9hZGlu
Z0Vycm9yOworICAgIHVuc2lnbmVkIG1fcGVuZGluZ0luc3RhbmNlQ291bnQgeyAwIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keVNvdXJjZS5jcHAKaW5kZXggOTQxZGE2YjhkMjg3ZjIwYWM3NThkMzQyNmZk
NzJmN2E0MzY0OTQ1NS4uNTAzZmQ0ZTI0NzdjN2ZjODlkOTU2ZmE2OTE1NmM3NjZiZTI4NDY3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNw
cApAQCAtNDIsMTQgKzQyLDE0IEBAIHZvaWQgRmV0Y2hCb2R5U291cmNlOjpzZXRBY3RpdmUoKQog
ewogICAgIEFTU0VSVChtX2JvZHlPd25lcik7CiAgICAgaWYgKG1fYm9keU93bmVyKQotICAgICAg
ICBtX2JvZHlPd25lci0+c2V0UGVuZGluZ0FjdGl2aXR5KCptX2JvZHlPd25lcik7CisgICAgICAg
IG1fYm9keU93bmVyLT5zZXRQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogdm9pZCBGZXRjaEJvZHlT
b3VyY2U6OnNldEluYWN0aXZlKCkKIHsKICAgICBBU1NFUlQobV9ib2R5T3duZXIpOwogICAgIGlm
IChtX2JvZHlPd25lcikKLSAgICAgICAgbV9ib2R5T3duZXItPnVuc2V0UGVuZGluZ0FjdGl2aXR5
KCptX2JvZHlPd25lcik7CisgICAgICAgIG1fYm9keU93bmVyLT51bnNldFBlbmRpbmdBY3Rpdml0
eSgpOwogfQogCiB2b2lkIEZldGNoQm9keVNvdXJjZTo6ZG9TdGFydCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401722</attachid>
            <date>2020-06-12 06:08:23 -0700</date>
            <delta_ts>2020-06-12 09:51:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213037-20200612220821.patch</filename>
            <type>text/plain</type>
            <size>4358</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxNGQwY2VlZTg2ZTM4
Nzc4NTZkM2JlMTkxYzdjMjBhMjFhNTcxOC4uOTU3NzMyNGQ5YWEwYjk3YWNmNmJlMTE5ZjdiODZm
OWE0NTJjZGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA2LTEyICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgU3Rv
cCB0byB1c2UgQWN0aXZlRE9NT2JqZWN0OjpzZXRQZW5kaW5nQWN0aXZpdHkoKSBmb3IgTW9kdWxl
cy9mZXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEzMDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnkgQWN0aXZlRE9NT2JqZWN0J3MgY29tbWVudHMsCisgICAgICAgIHRoZXNlIG1ldGhvZHMgc2hv
dWxkIGJlIHJlcGxhY2VkIHdpdGggdXNpbmcgbWFrZVBlbmRpbmdBY3Rpdml0eSgpLgorCisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGZXRjaEJvZHlPd25lcjo6bG9hZEJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5
T3duZXI6OmZpbmlzaEJsb2JMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93
bmVyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2ZldGNoL0ZldGNoQm9keU93bmVyLmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpzZXRBY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpzZXRJbmFjdGl2ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaDoKKworCiAyMDIwLTA2LTEy
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLNF0gTWFrZSBXZWJEcml2ZXIgd29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keU93bmVyLmNwcAppbmRleCAyNWVjYmU5YTM4NjhkYjJiMjhlZTU2NzFlNjAw
MGEzMzRkNDhkY2FiLi42OThiOTE0YjE1MjEwYjFhMWJhOTE0MTFkNjE4OGUxYzg4ZThmYTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcApA
QCAtMjU2LDcgKzI1Niw2IEBAIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmxvYWRCbG9iKGNvbnN0IEJs
b2ImIGJsb2IsIEZldGNoQm9keUNvbnN1bWVyKiBjb25zdW1lcikKICAgICAgICAgbV9ibG9iTG9h
ZGVyID0gV1RGOjpudWxsb3B0OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNldFBlbmRp
bmdBY3Rpdml0eSgqdGhpcyk7CiB9CiAKIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmZpbmlzaEJsb2JM
b2FkaW5nKCkKQEAgLTI2NCw3ICsyNjMsNiBAQCB2b2lkIEZldGNoQm9keU93bmVyOjpmaW5pc2hC
bG9iTG9hZGluZygpCiAgICAgQVNTRVJUKG1fYmxvYkxvYWRlcik7CiAKICAgICBtX2Jsb2JMb2Fk
ZXIgPSBXVEY6Om51bGxvcHQ7Ci0gICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogfQog
CiB2b2lkIEZldGNoQm9keU93bmVyOjpibG9iTG9hZGluZ1N1Y2NlZWRlZCgpCkBAIC0zODQsNiAr
MzgyLDExIEBAIE9wdGlvbmFsPEV4Y2VwdGlvbj4gRmV0Y2hCb2R5T3duZXI6OmxvYWRpbmdFeGNl
cHRpb24oKSBjb25zdAogICAgIH0pOwogfQogCitib29sIEZldGNoQm9keU93bmVyOjp2aXJ0dWFs
SGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gISFtX2Jsb2JMb2FkZXI7
Cit9CisKIGJvb2wgRmV0Y2hCb2R5T3duZXI6Omhhc0xvYWRpbmdFcnJvcigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9sb2FkaW5nRXJyb3IsIFtdKGNvbnN0IFJlc291cmNl
RXJyb3ImKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keU93bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVy
LmgKaW5kZXggZGQyMWU1NTY2Y2E0ODA3ZjgzMzE4ZjMyMzc5NjBlZWZjNjg0OTUyZS4uODNhOTg1
OWNkMzljNGNiMzlmZDVlZjBkNDg0MzNkOWM5YmFmNjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaApAQCAtMTAyLDYgKzEwMiw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBibG9iTG9hZGluZ0ZhaWxlZCgpOwogICAgIHZvaWQgZmluaXNoQmxvYkxv
YWRpbmcoKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkKKyAgICBib29sIHZpcnR1YWxI
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIHN0cnVjdCBCbG9iTG9h
ZGVyIGZpbmFsIDogRmV0Y2hMb2FkZXJDbGllbnQgewogICAgICAgICBCbG9iTG9hZGVyKEZldGNo
Qm9keU93bmVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5U291cmNlLmNwcAppbmRleCA5NDFkYTZiOGQyODdmMjBhYzc1OGQzNDI2ZmQ3MmY3YTQzNjQ5
NDU1Li5jNTRjM2I2MmFkODJmZWUzMGY2MTQxMTc5NTMwY2JjMzVmZjRiZjg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwCkBAIC00MSwx
NSArNDEsMTcgQEAgRmV0Y2hCb2R5U291cmNlOjpGZXRjaEJvZHlTb3VyY2UoRmV0Y2hCb2R5T3du
ZXImIGJvZHlPd25lcikKIHZvaWQgRmV0Y2hCb2R5U291cmNlOjpzZXRBY3RpdmUoKQogewogICAg
IEFTU0VSVChtX2JvZHlPd25lcik7CisgICAgQVNTRVJUKCFtX3BlbmRpbmdBY3Rpdml0eSk7CiAg
ICAgaWYgKG1fYm9keU93bmVyKQotICAgICAgICBtX2JvZHlPd25lci0+c2V0UGVuZGluZ0FjdGl2
aXR5KCptX2JvZHlPd25lcik7CisgICAgICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbV9ib2R5T3du
ZXItPm1ha2VQZW5kaW5nQWN0aXZpdHkoKm1fYm9keU93bmVyKTsKIH0KIAogdm9pZCBGZXRjaEJv
ZHlTb3VyY2U6OnNldEluYWN0aXZlKCkKIHsKICAgICBBU1NFUlQobV9ib2R5T3duZXIpOworICAg
IEFTU0VSVChtX3BlbmRpbmdBY3Rpdml0eSk7CiAgICAgaWYgKG1fYm9keU93bmVyKQotICAgICAg
ICBtX2JvZHlPd25lci0+dW5zZXRQZW5kaW5nQWN0aXZpdHkoKm1fYm9keU93bmVyKTsKKyAgICAg
ICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBudWxscHRyOwogfQogCiB2b2lkIEZldGNoQm9keVNvdXJj
ZTo6ZG9TdGFydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlT
b3VyY2UuaAppbmRleCA3OWM1MjVjYzJiNzFlNTA1ZTc2MmYyMThiMWMyMTczODE2NTU0MDVhLi5h
MDE1MGRkOTVmNGQ1MTY0YmFhZWM4NzA0ZDYxMDU1Y2FhNzkxNWJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtNjMsNiArNjQsNyBAQCBwcml2YXRlOgogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCBt
X2lzQ2xvc2VkIHsgZmFsc2UgfTsKICNlbmRpZgorICAgIFJlZlB0cjxBY3RpdmVET01PYmplY3Q6
OlBlbmRpbmdBY3Rpdml0eTxGZXRjaEJvZHlPd25lcj4+IG1fcGVuZGluZ0FjdGl2aXR5OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401740</attachid>
            <date>2020-06-12 09:51:48 -0700</date>
            <delta_ts>2020-06-12 13:36:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213037-20200613015147.patch</filename>
            <type>text/plain</type>
            <size>4633</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxNGQwY2VlZTg2ZTM4
Nzc4NTZkM2JlMTkxYzdjMjBhMjFhNTcxOC4uZTZiNzQ1ZTQ5NWViNWM5ZTU4YTRkMmVlNDU5ODY2
MDVhNjMwNDFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA2LTEyICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgU3Rv
cCB0byB1c2UgQWN0aXZlRE9NT2JqZWN0OjpzZXRQZW5kaW5nQWN0aXZpdHkoKSBmb3IgTW9kdWxl
cy9mZXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEzMDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QnkgQWN0aXZlRE9NT2JqZWN0J3MgY29tbWVudHMsCisgICAgICAgIHRoZXNlIG1ldGhvZHMgc2hv
dWxkIGJlIHJlcGxhY2VkIHdpdGggdXNpbmcgbWFrZVBlbmRpbmdBY3Rpdml0eSgpLgorCisgICAg
ICAgIGBKU0ZldGNoUmVxdWVzdGAvYEpTRmV0Y2hSZXNwb25zZWAgKGFzIGRlcml2ZWQgY2xhc3Mg
b2YgYEpTRE9NV3JhcHBlcmApIGhvbGQKKyAgICAgICAgYEZldGNoUmVxdWVzdGAvYEZldGNoUmVz
cG9uc2VgLCBhbmQgdGhleSBoYXZlIGBGZXRjaEJvZHlPd25lcmAKKyAgICAgICAgYXMgYSBiYXNl
IGNsYXNzIGFuZCBrZWVwIGFsaXZlIGl0LiBXZSBjYW4gcmVwbGFjZQorICAgICAgICBgc2V0UGVu
ZGluZ0FjdGl2aXR5KClgIGNhbGxpbmcgZnJvbSBgRmV0Y2hCb2R5T3duZXJgLgorCisgICAgICAg
ICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
ZXRjaEJvZHlPd25lcjo6bG9hZEJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3du
ZXI6OmZpbmlzaEJsb2JMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVy
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keU93bmVyLmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpzZXRBY3RpdmUp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpzZXRJbmFjdGl2ZSk6CisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaDoKKworCiAyMDIwLTA2LTEyICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
NF0gTWFrZSBXZWJEcml2ZXIgd29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keU93bmVyLmNwcAppbmRleCAyNWVjYmU5YTM4NjhkYjJiMjhlZTU2NzFlNjAwMGEz
MzRkNDhkY2FiLi42OThiOTE0YjE1MjEwYjFhMWJhOTE0MTFkNjE4OGUxYzg4ZThmYTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcApAQCAt
MjU2LDcgKzI1Niw2IEBAIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmxvYWRCbG9iKGNvbnN0IEJsb2Im
IGJsb2IsIEZldGNoQm9keUNvbnN1bWVyKiBjb25zdW1lcikKICAgICAgICAgbV9ibG9iTG9hZGVy
ID0gV1RGOjpudWxsb3B0OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNldFBlbmRpbmdB
Y3Rpdml0eSgqdGhpcyk7CiB9CiAKIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmZpbmlzaEJsb2JMb2Fk
aW5nKCkKQEAgLTI2NCw3ICsyNjMsNiBAQCB2b2lkIEZldGNoQm9keU93bmVyOjpmaW5pc2hCbG9i
TG9hZGluZygpCiAgICAgQVNTRVJUKG1fYmxvYkxvYWRlcik7CiAKICAgICBtX2Jsb2JMb2FkZXIg
PSBXVEY6Om51bGxvcHQ7Ci0gICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogfQogCiB2
b2lkIEZldGNoQm9keU93bmVyOjpibG9iTG9hZGluZ1N1Y2NlZWRlZCgpCkBAIC0zODQsNiArMzgy
LDExIEBAIE9wdGlvbmFsPEV4Y2VwdGlvbj4gRmV0Y2hCb2R5T3duZXI6OmxvYWRpbmdFeGNlcHRp
b24oKSBjb25zdAogICAgIH0pOwogfQogCitib29sIEZldGNoQm9keU93bmVyOjp2aXJ0dWFsSGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gISFtX2Jsb2JMb2FkZXI7Cit9
CisKIGJvb2wgRmV0Y2hCb2R5T3duZXI6Omhhc0xvYWRpbmdFcnJvcigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIFdURjo6c3dpdGNoT24obV9sb2FkaW5nRXJyb3IsIFtdKGNvbnN0IFJlc291cmNlRXJy
b3ImKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eU93bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgK
aW5kZXggZGQyMWU1NTY2Y2E0ODA3ZjgzMzE4ZjMyMzc5NjBlZWZjNjg0OTUyZS4uMjM5YjNiMjc3
OWNlYTA4NmZkOTExZmU0MGEwMDJhYjY3YmRhMWJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaApAQCAtMTAyLDYgKzEwMiw5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBibG9iTG9hZGluZ0ZhaWxlZCgpOwogICAgIHZvaWQgZmluaXNoQmxvYkxvYWRp
bmcoKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkKKyAgICBib29sIHZpcnR1YWxIYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKKwogICAgIHN0cnVjdCBCbG9iTG9hZGVyIGZp
bmFsIDogRmV0Y2hMb2FkZXJDbGllbnQgewogICAgICAgICBCbG9iTG9hZGVyKEZldGNoQm9keU93
bmVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291
cmNlLmNwcAppbmRleCA5NDFkYTZiOGQyODdmMjBhYzc1OGQzNDI2ZmQ3MmY3YTQzNjQ5NDU1Li45
MmUwZDBjMTQzZDE2ZjdkMGEzYzlmNGIxOWYxNTc5MzAyMGU2MjIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwCkBAIC00MSwxNSArNDEs
MTYgQEAgRmV0Y2hCb2R5U291cmNlOjpGZXRjaEJvZHlTb3VyY2UoRmV0Y2hCb2R5T3duZXImIGJv
ZHlPd25lcikKIHZvaWQgRmV0Y2hCb2R5U291cmNlOjpzZXRBY3RpdmUoKQogewogICAgIEFTU0VS
VChtX2JvZHlPd25lcik7CisgICAgQVNTRVJUKCFtX3BlbmRpbmdBY3Rpdml0eSk7CiAgICAgaWYg
KG1fYm9keU93bmVyKQotICAgICAgICBtX2JvZHlPd25lci0+c2V0UGVuZGluZ0FjdGl2aXR5KCpt
X2JvZHlPd25lcik7CisgICAgICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbV9ib2R5T3duZXItPm1h
a2VQZW5kaW5nQWN0aXZpdHkoKm1fYm9keU93bmVyKTsKIH0KIAogdm9pZCBGZXRjaEJvZHlTb3Vy
Y2U6OnNldEluYWN0aXZlKCkKIHsKICAgICBBU1NFUlQobV9ib2R5T3duZXIpOwotICAgIGlmICht
X2JvZHlPd25lcikKLSAgICAgICAgbV9ib2R5T3duZXItPnVuc2V0UGVuZGluZ0FjdGl2aXR5KCpt
X2JvZHlPd25lcik7CisgICAgQVNTRVJUKG1fcGVuZGluZ0FjdGl2aXR5KTsKKyAgICBtX3BlbmRp
bmdBY3Rpdml0eSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRmV0Y2hCb2R5U291cmNlOjpkb1N0YXJ0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCmlu
ZGV4IDc5YzUyNWNjMmI3MWU1MDVlNzYyZjIxOGIxYzIxNzM4MTY1NTQwNWEuLmEwMTUwZGQ5NWY0
ZDUxNjRiYWFlYzg3MDRkNjEwNTVjYWE3OTE1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5B
QkxFKFNUUkVBTVNfQVBJKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC02Myw2ICs2
NCw3IEBAIHByaXZhdGU6CiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBib29sIG1faXNDbG9zZWQg
eyBmYWxzZSB9OwogI2VuZGlmCisgICAgUmVmUHRyPEFjdGl2ZURPTU9iamVjdDo6UGVuZGluZ0Fj
dGl2aXR5PEZldGNoQm9keU93bmVyPj4gbV9wZW5kaW5nQWN0aXZpdHk7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>