<?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>250017</bug_id>
          
          <creation_ts>2023-01-02 23:31:26 -0800</creation_ts>
          <short_desc>Improve StringTypeAdapter templates and handling</short_desc>
          <delta_ts>2023-02-09 03:40:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>251317</dependson>
    
    <dependson>251385</dependson>
    
    <dependson>251422</dependson>
    
    <dependson>251981</dependson>
    
    <dependson>251982</dependson>
    
    <dependson>251985</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1922584</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-01-02 23:31:26 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1922585</commentid>
    <comment_count>1</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-01-02 23:32:26 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/8141</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1924300</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-01-09 23:32:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/104063262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925232</commentid>
    <comment_count>3</comment_count>
      <attachid>464477</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-01-12 21:38:08 -0800</bug_when>
    <thetext>Created attachment 464477
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925233</commentid>
    <comment_count>4</comment_count>
      <attachid>464478</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-01-12 21:39:39 -0800</bug_when>
    <thetext>Created attachment 464478
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925773</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-01-16 03:31:03 -0800</bug_when>
    <thetext>Committed 258946@main (46f1a9702080): &lt;https://commits.webkit.org/258946@main&gt;

Reviewed commits have been landed. Closing PR #8141 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925831</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-01-16 09:18:44 -0800</bug_when>
    <thetext>Reverted by https://github.com/WebKit/WebKit/pull/8698</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925838</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-01-16 09:48:03 -0800</bug_when>
    <thetext>Committed 258958@main (d087dce13aca): &lt;https://commits.webkit.org/258958@main&gt;

Reviewed commits have been landed. Closing PR #8698 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925929</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-01-16 22:21:44 -0800</bug_when>
    <thetext>Reopening for the next iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925930</commentid>
    <comment_count>9</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-01-16 22:59:57 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/8712</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1928552</commentid>
    <comment_count>10</comment_count>
      <attachid>464666</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-01-26 01:25:29 -0800</bug_when>
    <thetext>Created attachment 464666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929596</commentid>
    <comment_count>11</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-01-30 16:13:38 -0800</bug_when>
    <thetext>I came up with a good idea. I&apos;m going to split Zan&apos;s patch into three.
* Making StringTypeAdapter ctor take const reference
* Using parameter packs and fold expressions
* Using more StringView internally to simplify</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929598</commentid>
    <comment_count>12</comment_count>
      <attachid>464770</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-01-30 16:23:49 -0800</bug_when>
    <thetext>Created attachment 464770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929627</commentid>
    <comment_count>13</comment_count>
      <attachid>464771</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-01-30 18:07:22 -0800</bug_when>
    <thetext>Created attachment 464771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929966</commentid>
    <comment_count>14</comment_count>
      <attachid>464787</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-01-31 19:53:42 -0800</bug_when>
    <thetext>Created attachment 464787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930017</commentid>
    <comment_count>15</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-02-01 00:47:50 -0800</bug_when>
    <thetext>Are you just splitting the patch, or is there something else that you propose changing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930120</commentid>
    <comment_count>16</comment_count>
      <attachid>464787</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2023-02-01 08:19:28 -0800</bug_when>
    <thetext>Comment on attachment 464787
Patch

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

&gt; COMMIT_MESSAGE:7
&gt; +makeString family unnecessary copied objects passed as arguments. They
&gt; +should take references and pass them to StringTypeAdapter.

Why? Will this be more efficient? Can we make a test showing the benefit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930139</commentid>
    <comment_count>17</comment_count>
      <attachid>464787</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2023-02-01 09:31:48 -0800</bug_when>
    <thetext>Comment on attachment 464787
Patch

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

&gt;&gt; COMMIT_MESSAGE:7
&gt;&gt; +should take references and pass them to StringTypeAdapter.
&gt; 
&gt; Why? Will this be more efficient? Can we make a test showing the benefit?

One reason I am asking this is that many types are more efficient to pass by value than by reference, unless things are inlined. For example, a StringView is almost certainly more efficient to pass by value, same for scalars and various types of pointers. An exception might be reference counted objects like String where passing by reference might avoid reference count churn.

I am concerned that this change could make performance worse rather than making it better. I would like some evidence one way or the other.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930257</commentid>
    <comment_count>18</comment_count>
      <attachid>464787</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-01 13:52:48 -0800</bug_when>
    <thetext>Comment on attachment 464787
Patch

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

&gt;&gt;&gt; COMMIT_MESSAGE:7
&gt;&gt;&gt; +should take references and pass them to StringTypeAdapter.
&gt;&gt; 
&gt;&gt; Why? Will this be more efficient? Can we make a test showing the benefit?
&gt; 
&gt; One reason I am asking this is that many types are more efficient to pass by value than by reference, unless things are inlined. For example, a StringView is almost certainly more efficient to pass by value, same for scalars and various types of pointers. An exception might be reference counted objects like String where passing by reference might avoid reference count churn.
&gt; 
&gt; I am concerned that this change could make performance worse rather than making it better. I would like some evidence one way or the other.

We will be able to use makeString for non-copyable types.
I will revise the patch to use pass-by-value for simple values and add a testcase of non-copyable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930317</commentid>
    <comment_count>19</comment_count>
      <attachid>464806</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-01 16:12:13 -0800</bug_when>
    <thetext>Created attachment 464806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930337</commentid>
    <comment_count>20</comment_count>
      <attachid>464808</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-01 18:21:17 -0800</bug_when>
    <thetext>Created attachment 464808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931633</commentid>
    <comment_count>21</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-06 23:39:27 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/9740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931655</commentid>
    <comment_count>22</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-02-07 01:12:28 -0800</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #15)
&gt; Are you just splitting the patch, or is there something else that you
&gt; propose changing?

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931665</commentid>
    <comment_count>23</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-02-07 01:58:18 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #18)
&gt; Comment on attachment 464787 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=464787&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; COMMIT_MESSAGE:7
&gt; &gt;&gt;&gt; +should take references and pass them to StringTypeAdapter.
&gt; &gt;&gt; 
&gt; &gt;&gt; Why? Will this be more efficient? Can we make a test showing the benefit?
&gt; &gt; 
&gt; &gt; One reason I am asking this is that many types are more efficient to pass by value than by reference, unless things are inlined. For example, a StringView is almost certainly more efficient to pass by value, same for scalars and various types of pointers. An exception might be reference counted objects like String where passing by reference might avoid reference count churn.
&gt; &gt; 
&gt; &gt; I am concerned that this change could make performance worse rather than making it better. I would like some evidence one way or the other.
&gt; 
&gt; We will be able to use makeString for non-copyable types.

Enabling use of non-copyable types isn&apos;t an end-goal here, and it&apos;s not a problem today. Idea is to avoid unnecessary copies of objects that are somewhat expensive to copy, e.g. Strings, Vectors, tuples.

I don&apos;t see passing by reference in general as having an impact on performance. Passing by reference specifically for some trivial types can be hindering under certain conditions (i.e. lack of inlining), but I don&apos;t think this will outweigh the benefits. I&apos;ll argue all this separately, later.

&gt; I will revise the patch to use pass-by-value for simple values and add a
&gt; testcase of non-copyable.

You ended up using forwarding references, which is still passing by reference and not by value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931907</commentid>
    <comment_count>24</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-07 19:29:56 -0800</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #15)
&gt; Are you just splitting the patch, or is there something else that you
&gt; propose changing?

Fixes the problem. https://github.com/WebKit/WebKit/pull/8712#discussion_r1090303757</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932259</commentid>
    <comment_count>25</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-02-08 23:59:22 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #24)
&gt; (In reply to Zan Dobersek from comment #15)
&gt; &gt; Are you just splitting the patch, or is there something else that you
&gt; &gt; propose changing?
&gt; 
&gt; Fixes the problem.
&gt; https://github.com/WebKit/WebKit/pull/8712#discussion_r1090303757

Forwarding references do fix that, but that problem is trivial and avoidable if a Span-taking named constructor for wchar_t is adopted, as being discussed for other types in https://github.com/WebKit/WebKit/pull/9339.

I can handle these changes on my own, along with other ideas beyond these, but I&apos;ll probably be splitting them up considerably, evaluating and quantifying the changes (especially the more delicate ones). Just please review them when you have a chance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932275</commentid>
    <comment_count>26</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-02-09 00:57:38 -0800</bug_when>
    <thetext>I like your three ideas in comment 11, but your patch looks unaccepable to me. I did review, but you dont fix the problem. That&apos;s the reason i fixes the problem. If you think your patch is acceptable, lets start a discussion in webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932297</commentid>
    <comment_count>27</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2023-02-09 02:55:44 -0800</bug_when>
    <thetext>I don&apos;t think my patch is acceptable. I split off the relevant problems into separate bugs or pull requests, of which bug #251385 (PR 9339) still remains, and is mostly stuck on agreeing the range and names of Span-based named constructors.

Your patch takes a part of my work, without any attribution, and extends it to use rvalue references, which is one way of avoiding the problem of unintentionally constructing Strings and StringViews from native string literals and fixed-length C arrays, but it also doesn&apos;t address the pass-by-value concerns.

If you want to work with me on this, then please work with me, but let&apos;s coordinate around problems, ideas and possible solutions on it, and avoid stepping on each other&apos;s toes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464477</attachid>
            <date>2023-01-12 21:38:08 -0800</date>
            <delta_ts>2023-01-12 21:39:39 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>15090</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAppbmRleCAwMGE5Njc2ZDE1Yjgu
LjEwNWViM2JmYjFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaApA
QCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIGxl
bmd0aCgpIHsgcmV0dXJuIDE7IH0KLSAgICBib29sIGlzOEJpdCgpIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiAxOyB9CisgICAgYm9vbCBpczhC
aXQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFj
dGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBjb25zdCB7
ICpkZXN0aW5hdGlvbiA9IG1fY2hhcmFjdGVyOyB9CiAKIHByaXZhdGU6CkBAIC0xNDgsMTA0ICsx
NDgsMjYgQEAgcHVibGljOgogICAgIH0KIH07CiAKLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlw
ZUFkYXB0ZXI8QVNDSUlMaXRlcmFsLCB2b2lkPiA6IHB1YmxpYyBTdHJpbmdUeXBlQWRhcHRlcjxj
b25zdCBjaGFyKiwgdm9pZD4gewotcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKEFTQ0lJ
TGl0ZXJhbCBjaGFyYWN0ZXJzKQotICAgICAgICA6IFN0cmluZ1R5cGVBZGFwdGVyPGNvbnN0IGNo
YXIqLCB2b2lkPiB7IGNoYXJhY3RlcnMgfQotICAgIHsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyVHlwZSwgc2l6ZV90IE4+Ci1jbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxWZWN0
b3I8Q2hhclR5cGUsIE4+LCB2b2lkPiB7Cit0ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFw
dGVyPFN0cmluZ1ZpZXcsIHZvaWQ+IHsKIHB1YmxpYzoKLSAgICB1c2luZyBDaGFyVHlwZUZvclN0
cmluZyA9IHN0ZDo6Y29uZGl0aW9uYWxfdDxzaXplb2YoQ2hhclR5cGUpID09IHNpemVvZihMQ2hh
ciksIExDaGFyLCBVQ2hhcj47Ci0gICAgc3RhdGljX2Fzc2VydChzaXplb2YoQ2hhclR5cGVGb3JT
dHJpbmcpID09IHNpemVvZihDaGFyVHlwZSkpOwotCi0gICAgU3RyaW5nVHlwZUFkYXB0ZXIoY29u
c3QgVmVjdG9yPENoYXJUeXBlLCBOPiYgdmVjdG9yKQotICAgICAgICA6IG1fdmVjdG9yIHsgdmVj
dG9yIH0KLSAgICB7Ci0gICAgfQotCi0gICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fdmVjdG9yLnNpemUoKTsgfQotICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gc2l6
ZW9mKENoYXJUeXBlKSA9PSAxOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBjb25zdCB7IFN0cmlu
Z0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGRlc3RpbmF0aW9uLCBjaGFyYWN0ZXJzKCksIGxlbmd0aCgp
KTsgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IENoYXJUeXBlRm9yU3RyaW5nKiBjaGFyYWN0ZXJz
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IENo
YXJUeXBlRm9yU3RyaW5nKj4obV92ZWN0b3IuZGF0YSgpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBW
ZWN0b3I8Q2hhclR5cGUsIE4+JiBtX3ZlY3RvcjsKLX07Ci0KLXRlbXBsYXRlPD4gY2xhc3MgU3Ry
aW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCosIHZvaWQ+IHsKLXB1YmxpYzoKLSAgICBTdHJpbmdU
eXBlQWRhcHRlcihTdHJpbmdJbXBsKiBzdHJpbmcpCi0gICAgICAgIDogbV9zdHJpbmcgeyBzdHJp
bmcgfQotICAgIHsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX3N0cmluZyA/IG1fc3RyaW5nLT5sZW5ndGgoKSA6IDA7IH0KLSAgICBib29sIGlzOEJpdCgp
IGNvbnN0IHsgcmV0dXJuICFtX3N0cmluZyB8fCBtX3N0cmluZy0+aXM4Qml0KCk7IH0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlw
ZSogZGVzdGluYXRpb24pIGNvbnN0Ci0gICAgewotICAgICAgICBTdHJpbmdWaWV3IHsgbV9zdHJp
bmcgfS5nZXRDaGFyYWN0ZXJzKGRlc3RpbmF0aW9uKTsKLSAgICAgICAgV1RGX1NUUklOR1RZUEVB
REFQVEVSX0NPUElFRF9XVEZfU1RSSU5HKCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFN0cmlu
Z0ltcGwqIGNvbnN0IG1fc3RyaW5nOwotfTsKLQotdGVtcGxhdGU8PiBjbGFzcyBTdHJpbmdUeXBl
QWRhcHRlcjxBdG9tU3RyaW5nSW1wbCosIHZvaWQ+IDogcHVibGljIFN0cmluZ1R5cGVBZGFwdGVy
PFN0cmluZ0ltcGwqLCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIoQXRv
bVN0cmluZ0ltcGwqIHN0cmluZykKLSAgICAgICAgOiBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdJ
bXBsKiwgdm9pZD4geyBzdGF0aWNfY2FzdDxTdHJpbmdJbXBsKj4oc3RyaW5nKSB9Ci0gICAgewot
ICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nLCB2
b2lkPiA6IHB1YmxpYyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdJbXBsKiwgdm9pZD4gewotcHVi
bGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotICAgICAg
ICA6IFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ0ltcGwqLCB2b2lkPiB7IHN0cmluZy5pbXBsKCkg
fQotICAgIHsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVy
PEF0b21TdHJpbmcsIHZvaWQ+IDogcHVibGljIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZywgdm9p
ZD4gewotcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKGNvbnN0IEF0b21TdHJpbmcmIHN0
cmluZykKLSAgICAgICAgOiBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmcsIHZvaWQ+IHsgc3RyaW5n
LnN0cmluZygpIH0KLSAgICB7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBjbGFzcyBTdHJpbmdU
eXBlQWRhcHRlcjxTdHJpbmdJbXBsJiwgdm9pZD4gewotcHVibGljOgotICAgIFN0cmluZ1R5cGVB
ZGFwdGVyKFN0cmluZ0ltcGwmIHN0cmluZykKKyAgICBTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBT
dHJpbmdWaWV3JiBzdHJpbmcpCiAgICAgICAgIDogbV9zdHJpbmcgeyBzdHJpbmcgfQogICAgIHsK
ICAgICB9CiAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5s
ZW5ndGgoKTsgfQogICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmcuaXM4
Qml0KCk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRl
VG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pIGNvbnN0Ci0gICAgewotICAgICAgICBTdHJp
bmdWaWV3IHsgbV9zdHJpbmcgfS5nZXRDaGFyYWN0ZXJzKGRlc3RpbmF0aW9uKTsKLSAgICAgICAg
V1RGX1NUUklOR1RZUEVBREFQVEVSX0NPUElFRF9XVEZfU1RSSU5HKCk7Ci0gICAgfQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBl
KiBkZXN0aW5hdGlvbikgY29uc3QgeyBtX3N0cmluZy5nZXRDaGFyYWN0ZXJzKGRlc3RpbmF0aW9u
KTsgfQogCiBwcml2YXRlOgotICAgIFN0cmluZ0ltcGwmIG1fc3RyaW5nOworICAgIFN0cmluZ1Zp
ZXcgbV9zdHJpbmc7CiB9OwogCi10ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPEF0
b21TdHJpbmdJbXBsJiwgdm9pZD4gOiBwdWJsaWMgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1w
bCYsIHZvaWQ+IHsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBTdHJpbmdUeXBlQWRhcHRl
cjxULCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfY29uc3RydWN0aWJsZV92PFN0cmluZ1ZpZXcs
IGNvbnN0IFQmPj4+IDogcHVibGljIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1ZpZXcsIHZvaWQ+
IHsKIHB1YmxpYzoKLSAgICBTdHJpbmdUeXBlQWRhcHRlcihTdHJpbmdJbXBsJiBzdHJpbmcpCi0g
ICAgICAgIDogU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCYsIHZvaWQ+IHsgc3RyaW5nIH0K
KyAgICBTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBUJiBzdHJpbmcpCisgICAgICAgIDogU3RyaW5n
VHlwZUFkYXB0ZXI8U3RyaW5nVmlldywgdm9pZD4geyBTdHJpbmdWaWV3IHsgc3RyaW5nIH0gfQog
ICAgIHsKICAgICB9CiB9OwpAQCAtMzU4LDE3ICsyODAsMTcgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgoKQorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gbV9pbmRlbnRhdGlvbi52YWx1ZSAqIE47CiAgICAgfQog
Ci0gICAgYm9vbCBpczhCaXQoKQorICAgIGJvb2wgaXM4Qml0KCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSog
ZGVzdGluYXRpb24pIGNvbnN0CiAgICAgewogICAgICAgICBzdGQ6OmZpbGxfbihkZXN0aW5hdGlv
biwgbV9pbmRlbnRhdGlvbi52YWx1ZSAqIE4sICcgJyk7CiAgICAgfQpAQCAtNDEwLDMzICszMzIs
MjQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBBU0NJSUNhc2VDb252ZXJ0ZXImIG1fY29udmVydGVy
OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRlcj4KLWlubGluZSBib29sIGFyZThCaXQo
QWRhcHRlciBhZGFwdGVyKQotewotICAgIHJldHVybiBhZGFwdGVyLmlzOEJpdCgpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdGVyLCB0eXBlbmFtZS4uLiBBZGFwdGVycz4KLWlubGluZSBi
b29sIGFyZThCaXQoQWRhcHRlciBhZGFwdGVyLCBBZGFwdGVycyAuLi5hZGFwdGVycykKLXsKLSAg
ICByZXR1cm4gYWRhcHRlci5pczhCaXQoKSAmJiBhcmU4Qml0KGFkYXB0ZXJzLi4uKTsKLX0KLQot
dGVtcGxhdGU8dHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlwZW5hbWUgQWRhcHRlcj4KLWlubGluZSB2
b2lkIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoUmVzdWx0VHlwZSogcmVzdWx0LCBBZGFw
dGVyIGFkYXB0ZXIpCit0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBZGFwdGVycz4KK2lubGluZSBib29s
IGFyZThCaXQoY29uc3QgQWRhcHRlcnMmLi4uIGFkYXB0ZXJzKQogewotICAgIGFkYXB0ZXIud3Jp
dGVUbyhyZXN1bHQpOworICAgIHJldHVybiAoLi4uICYmIGFkYXB0ZXJzLmlzOEJpdCgpKTsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlwZW5hbWUgQWRhcHRlciwgdHlwZW5h
bWUuLi4gQWRhcHRlcnM+Ci1pbmxpbmUgdm9pZCBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9y
KFJlc3VsdFR5cGUqIHJlc3VsdCwgQWRhcHRlciBhZGFwdGVyLCBBZGFwdGVycyAuLi5hZGFwdGVy
cykKK3RlbXBsYXRlPHR5cGVuYW1lIFJlc3VsdFR5cGUsIHR5cGVuYW1lLi4uIEFkYXB0ZXJzPgor
aW5saW5lIHZvaWQgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihSZXN1bHRUeXBlKiByZXN1
bHQsIGNvbnN0IEFkYXB0ZXJzJi4uLiBhZGFwdGVycykKIHsKLSAgICBhZGFwdGVyLndyaXRlVG8o
cmVzdWx0KTsKLSAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKHJlc3VsdCArIGFkYXB0
ZXIubGVuZ3RoKCksIGFkYXB0ZXJzLi4uKTsKKyAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOworICAg
ICguLi4sIFsmXSB7CisgICAgICAgIGFkYXB0ZXJzLndyaXRlVG8ocmVzdWx0ICsgb2Zmc2V0KTsK
KyAgICAgICAgb2Zmc2V0ICs9IGFkYXB0ZXJzLmxlbmd0aCgpOworICAgIH0oKSk7CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBlbmFtZS4uLiBTdHJpbmdUeXBl
QWRhcHRlcnM+Ci1SZWZQdHI8U3RyaW5nSW1wbD4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRl
cnNJbnRlcm5hbCh1bnNpZ25lZCBsZW5ndGgsIGJvb2wgYXJlQWxsQWRhcHRlcnM4Qml0LCBTdHJp
bmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWRhcHRlcnMgLi4uYWRhcHRlcnMpCitS
ZWZQdHI8U3RyaW5nSW1wbD4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbCh1
bnNpZ25lZCBsZW5ndGgsIGJvb2wgYXJlQWxsQWRhcHRlcnM4Qml0LCBjb25zdCBTdHJpbmdUeXBl
QWRhcHRlciYgYWRhcHRlciwgY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXJzJi4uLiBhZGFwdGVycykK
IHsKICAgICBBU1NFUlQobGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKICAgICBpZiAoYXJl
QWxsQWRhcHRlcnM4Qml0KSB7CkBAIC00NjMsMTMgKzM3NiwxMyBAQCBSZWZQdHI8U3RyaW5nSW1w
bD4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbCh1bnNpZ25lZCBsZW5ndGgs
IGJvb2wgYQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jLCB0eXBlbmFtZS4uLiBTdHJpbmdU
eXBlcz4KLWF1dG8gaGFuZGxlV2l0aEFkYXB0ZXJzKEZ1bmMmJiBmdW5jLCBTdHJpbmdUeXBlcyYm
IC4uLnN0cmluZ3MpIC0+IGRlY2x0eXBlKGF1dG8pCithdXRvIGhhbmRsZVdpdGhBZGFwdGVycyhG
dW5jJiYgZnVuYywgY29uc3QgU3RyaW5nVHlwZXMmLi4uIHN0cmluZ3MpIC0+IGRlY2x0eXBlKGF1
dG8pCiB7Ci0gICAgcmV0dXJuIGZ1bmMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+KHN0
ZDo6Zm9yd2FyZDxTdHJpbmdUeXBlcz4oc3RyaW5ncykpLi4uKTsKKyAgICByZXR1cm4gZnVuYyhT
dHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlcz4oc3RyaW5ncykuLi4pOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlwZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0
ZXJzPgotU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIg
YWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQorU3RyaW5nIHRyeU1ha2VT
dHJpbmdGcm9tQWRhcHRlcnMoY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXImIGFkYXB0ZXIsIGNvbnN0
IFN0cmluZ1R5cGVBZGFwdGVycyYuLi4gYWRhcHRlcnMpCiB7CiAgICAgc3RhdGljX2Fzc2VydChT
dHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7
CiAgICAgYXV0byBzdW0gPSBjaGVja2VkU3VtPGludDMyX3Q+KGFkYXB0ZXIubGVuZ3RoKCksIGFk
YXB0ZXJzLmxlbmd0aCgpLi4uKTsKQEAgLTQ4MSwxMyArMzk0LDEzIEBAIFN0cmluZyB0cnlNYWtl
U3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVB
ZGFwdGVycyAuCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgotU3RyaW5n
IHRyeU1ha2VTdHJpbmcoU3RyaW5nVHlwZXMgLi4uc3RyaW5ncykKK1N0cmluZyB0cnlNYWtlU3Ry
aW5nKGNvbnN0IFN0cmluZ1R5cGVzJi4uLiBzdHJpbmdzKQogewogICAgIHJldHVybiB0cnlNYWtl
U3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdz
KS4uLik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgotU3RyaW5nIG1h
a2VTdHJpbmcoU3RyaW5nVHlwZXMuLi4gc3RyaW5ncykKK1N0cmluZyBtYWtlU3RyaW5nKGNvbnN0
IFN0cmluZ1R5cGVzJi4uLiBzdHJpbmdzKQogewogICAgIFN0cmluZyByZXN1bHQgPSB0cnlNYWtl
U3RyaW5nKHN0cmluZ3MuLi4pOwogICAgIGlmICghcmVzdWx0KQpAQCAtNDk2LDcgKzQwOSw3IEBA
IFN0cmluZyBtYWtlU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBlbmFtZS4uLiBTdHJpbmdUeXBlQWRhcHRl
cnM+Ci1BdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVB
ZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuLi5hZGFwdGVycykKK0F0b21TdHJp
bmcgdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXIm
IGFkYXB0ZXIsIGNvbnN0IFN0cmluZ1R5cGVBZGFwdGVycyYuLi4gYWRhcHRlcnMpCiB7CiAgICAg
c3RhdGljX2Fzc2VydChTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDMyX3Q+OjptYXgoKSk7CiAgICAgYXV0byBzdW0gPSBjaGVja2VkU3VtPGludDMyX3Q+KGFkYXB0
ZXIubGVuZ3RoKCksIGFkYXB0ZXJzLmxlbmd0aCgpLi4uKTsKQEAgLTUyMiwxMyArNDM1LDEzIEBA
IEF0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0
ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmlu
Z1R5cGVzPgotQXRvbVN0cmluZyB0cnlNYWtlQXRvbVN0cmluZyhTdHJpbmdUeXBlcyAuLi5zdHJp
bmdzKQorQXRvbVN0cmluZyB0cnlNYWtlQXRvbVN0cmluZyhjb25zdCBTdHJpbmdUeXBlcyYuLi4g
c3RyaW5ncykKIHsKICAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3Ry
aW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1BdG9tU3RyaW5nIG1ha2VBdG9tU3RyaW5nKFN0cmlu
Z1R5cGVzLi4uIHN0cmluZ3MpCitBdG9tU3RyaW5nIG1ha2VBdG9tU3RyaW5nKGNvbnN0IFN0cmlu
Z1R5cGVzJi4uLiBzdHJpbmdzKQogewogICAgIEF0b21TdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZUF0
b21TdHJpbmcoc3RyaW5ncy4uLik7CiAgICAgaWYgKHJlc3VsdC5pc051bGwoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCmluZGV4IDRmNTNjMjRlNjIzNC4uYTVmYjAwZDMyYjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmgKQEAgLTQ2LDE0ICs0NiwxNCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBdG9tU3RyaW5nKG9wZXJhdG9yIFN0cmluZygpKTsK
ICAgICB9CiAKLSAgICBib29sIGlzOEJpdCgpCisgICAgYm9vbCBpczhCaXQoKSBjb25zdAogICAg
IHsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3Ry
aW5nMSk7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMiht
X3N0cmluZzIpOwogICAgICAgICByZXR1cm4gYWRhcHRlcjEuaXM4Qml0KCkgJiYgYWRhcHRlcjIu
aXM4Qml0KCk7CiAgICAgfQogCi0gICAgdm9pZCB3cml0ZVRvKExDaGFyKiBkZXN0aW5hdGlvbikK
KyAgICB2b2lkIHdyaXRlVG8oTENoYXIqIGRlc3RpbmF0aW9uKSBjb25zdAogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzOEJpdCgpKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlw
ZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgYWRhcHRlcjIud3JpdGVUbyhkZXN0aW5hdGlvbiArIGFkYXB0ZXIxLmxlbmd0aCgpKTsKICAg
ICB9CiAKLSAgICB2b2lkIHdyaXRlVG8oVUNoYXIqIGRlc3RpbmF0aW9uKQorICAgIHZvaWQgd3Jp
dGVUbyhVQ2hhciogZGVzdGluYXRpb24pIGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBl
QWRhcHRlcjxTdHJpbmdUeXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5n
VHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTI+IGFkYXB0ZXIyKG1fc3RyaW5nMik7CkBAIC03MCw3ICs3
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgYWRhcHRlcjIud3JpdGVUbyhkZXN0aW5hdGlvbiArIGFk
YXB0ZXIxLmxlbmd0aCgpKTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgoKQorICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxT
dHJpbmdUeXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVHlwZTI+IGFkYXB0ZXIyKG1fc3RyaW5nMik7CkBAIC04NSw3ICs4NSw3IEBAIHBy
aXZhdGU6CiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlMSwgdHlwZW5hbWUgU3RyaW5nVHlw
ZTI+CiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdBcHBlbmQ8U3RyaW5nVHlwZTEsIFN0
cmluZ1R5cGUyPj4gewogcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKFN0cmluZ0FwcGVu
ZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+JiBidWZmZXIpCisgICAgU3RyaW5nVHlwZUFkYXB0
ZXIoY29uc3QgU3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIGJ1ZmZlcikK
ICAgICAgICAgOiBtX2J1ZmZlciB7IGJ1ZmZlciB9CiAgICAgewogICAgIH0KQEAgLTk1LDcgKzk1
LDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQg
d3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyBtX2J1ZmZlci53cml0
ZVRvKGRlc3RpbmF0aW9uKTsgfQogCiBwcml2YXRlOgotICAgIFN0cmluZ0FwcGVuZDxTdHJpbmdU
eXBlMSwgU3RyaW5nVHlwZTI+JiBtX2J1ZmZlcjsKKyAgICBjb25zdCBTdHJpbmdBcHBlbmQ8U3Ry
aW5nVHlwZTEsIFN0cmluZ1R5cGUyPiYgbV9idWZmZXI7CiB9OwogCiBpbmxpbmUgU3RyaW5nQXBw
ZW5kPGNvbnN0IGNoYXIqLCBTdHJpbmc+IG9wZXJhdG9yKyhjb25zdCBjaGFyKiBzdHJpbmcxLCBj
b25zdCBTdHJpbmcmIHN0cmluZzIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1ZpZXcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCmluZGV4IDVjMDBk
N2M4OTMyMy4uMjE4ZjQ4MTNlODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1ZpZXcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaApAQCAtNjcs
MTEgKzY3LDIxIEBAIHB1YmxpYzoKICAgICBTdHJpbmdWaWV3KGNvbnN0IExDaGFyKiwgdW5zaWdu
ZWQgbGVuZ3RoKTsKICAgICBTdHJpbmdWaWV3KGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3Ro
KTsKICAgICBTdHJpbmdWaWV3KGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwotICAgIFN0
cmluZ1ZpZXcoQVNDSUlMaXRlcmFsKTsKLSAgICBBTFdBWVNfSU5MSU5FIFN0cmluZ1ZpZXcoU3Bh
bjxjb25zdCBMQ2hhcj4gY2hhcmFjdGVycykgOiBTdHJpbmdWaWV3KGNoYXJhY3RlcnMuZGF0YSgp
LCBjaGFyYWN0ZXJzLnNpemUoKSkgeyB9Ci0gICAgQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3KFNw
YW48Y29uc3QgVUNoYXI+IGNoYXJhY3RlcnMpIDogU3RyaW5nVmlldyhjaGFyYWN0ZXJzLmRhdGEo
KSwgY2hhcmFjdGVycy5zaXplKCkpIHsgfQorICAgIFN0cmluZ1ZpZXcoY29uc3QgQVNDSUlMaXRl
cmFsJik7CisgICAgQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3KGNvbnN0IFNwYW48Y29uc3QgTENo
YXI+JiBjaGFyYWN0ZXJzKSA6IFN0cmluZ1ZpZXcoY2hhcmFjdGVycy5kYXRhKCksIGNoYXJhY3Rl
cnMuc2l6ZSgpKSB7IH0KKyAgICBBTFdBWVNfSU5MSU5FIFN0cmluZ1ZpZXcoY29uc3QgU3Bhbjxj
b25zdCBVQ2hhcj4mIGNoYXJhY3RlcnMpIDogU3RyaW5nVmlldyhjaGFyYWN0ZXJzLmRhdGEoKSwg
Y2hhcmFjdGVycy5zaXplKCkpIHsgfQogCi0gICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5n
VmlldyBmcm9tTGF0aW4xKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZ1Zp
ZXcgeyBjaGFyYWN0ZXJzIH07IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZSwgc2l6
ZV90IE4+CisgICAgU3RyaW5nVmlldyhjb25zdCBDaGFyVHlwZSgmY2hhcmFjdGVycylbTl0pCisg
ICAgICAgIDogU3RyaW5nVmlldyB7IGNoYXJhY3RlcnMsIE4gLSAxIH0KKyAgICB7CisgICAgICAg
IEFTU0VSVCghY2hhcmFjdGVyc1tOIC0gMV0pOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUg
c3RhdGljIFN0cmluZ1ZpZXcgZnJvbUxhdGluMShjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHsgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNo
YXJhY3RlcnMgPyBzdHJsZW4oY2hhcmFjdGVycykgOiAwKSB9OworICAgIH0KIAogICAgIHN0YXRp
YyBTdHJpbmdWaWV3IGVtcHR5KCk7CiAKQEAgLTE5Niw5ICsyMDYsNiBAQCBwdWJsaWM6CiAgICAg
c3RydWN0IFVuZGVybHlpbmdTdHJpbmc7CiAKIHByaXZhdGU6Ci0gICAgLy8gQ2xpZW50cyBzaG91
bGQgdXNlIFN0cmluZ1ZpZXcoQVNDSUlMaXRlcmFsKSBvciBTdHJpbmdWaWV3Ojpmcm9tTGF0aW4x
KCkgaW5zdGVhZC4KLSAgICBleHBsaWNpdCBTdHJpbmdWaWV3KGNvbnN0IGNoYXIqKTsKLQogICAg
IGZyaWVuZCBib29sIGVxdWFsKFN0cmluZ1ZpZXcsIFN0cmluZ1ZpZXcpOwogICAgIGZyaWVuZCBi
b29sIGVxdWFsKFN0cmluZ1ZpZXcsIFN0cmluZ1ZpZXcsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAg
ZnJpZW5kIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGVxdWFsUmVzcGVjdGluZ051bGxpdHkoU3Ry
aW5nVmlldywgU3RyaW5nVmlldyk7CkBAIC0zNzIsMTcgKzM3OSwxMiBAQCBpbmxpbmUgU3RyaW5n
Vmlldzo6U3RyaW5nVmlldyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3Ro
KQogICAgIGluaXRpYWxpemUoY2hhcmFjdGVycywgbGVuZ3RoKTsKIH0KIAotaW5saW5lIFN0cmlu
Z1ZpZXc6OlN0cmluZ1ZpZXcoY29uc3QgY2hhciogY2hhcmFjdGVycykKLXsKLSAgICBpbml0aWFs
aXplKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJzKSwgY2hhcmFjdGVy
cyA/IHN0cmxlbihjaGFyYWN0ZXJzKSA6IDApOwotfQotCiBpbmxpbmUgU3RyaW5nVmlldzo6U3Ry
aW5nVmlldyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAg
aW5pdGlhbGl6ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxl
bmd0aCk7CiB9CiAKLWlubGluZSBTdHJpbmdWaWV3OjpTdHJpbmdWaWV3KEFTQ0lJTGl0ZXJhbCBz
dHJpbmcpCitpbmxpbmUgU3RyaW5nVmlldzo6U3RyaW5nVmlldyhjb25zdCBBU0NJSUxpdGVyYWwm
IHN0cmluZykKIHsKICAgICBpbml0aWFsaXplKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcu
bGVuZ3RoKCkpOwogfQpAQCAtNjc0LDIxICs2NzYsNiBAQCBpbmxpbmUgdm9pZCBTdHJpbmdWaWV3
OjppbnZhbGlkYXRlKGNvbnN0IFN0cmluZ0ltcGwmKQogCiAjZW5kaWYKIAotdGVtcGxhdGU8PiBj
bGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdWaWV3LCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAg
U3RyaW5nVHlwZUFkYXB0ZXIoU3RyaW5nVmlldyBzdHJpbmcpCi0gICAgICAgIDogbV9zdHJpbmcg
eyBzdHJpbmcgfQotICAgIHsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVy
biBtX3N0cmluZy5sZW5ndGgoKTsgfQotICAgIGJvb2wgaXM4Qml0KCkgeyByZXR1cm4gbV9zdHJp
bmcuaXM4Qml0KCk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lk
IHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pIHsgbV9zdHJpbmcuZ2V0Q2hhcmFj
dGVycyhkZXN0aW5hdGlvbik7IH0KLQotcHJpdmF0ZToKLSAgICBTdHJpbmdWaWV3IG1fc3RyaW5n
OwotfTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZSwgc2l6ZV90IGlubGluZUNh
cGFjaXR5PiB2b2lkIGFwcGVuZChWZWN0b3I8Q2hhcmFjdGVyVHlwZSwgaW5saW5lQ2FwYWNpdHk+
JiBidWZmZXIsIFN0cmluZ1ZpZXcgc3RyaW5nKQogewogICAgIHVuc2lnbmVkIG9sZFNpemUgPSBi
dWZmZXIuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IGU1ZDY0MDMwMWQzNS4u
Mzk5MjYyOTRkMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC0zODcsNyArMzg3LDcg
QEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlUHJvcGVydGllc0ZvclNlbGZBbmREZXNjZW5k
YW50cyhBWENvcmVPYmplY3QmIGF4T2JqZWMKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGVQcm9wZXJ0aWVzKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIGNvbnN0IFZlY3RvcjxBWFByb3Bl
cnR5TmFtZT4mIHByb3BlcnRpZXMpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGVQcm9wZXJ0aWVzIl9zKTsKLSAgICBBWExPRyhtYWtlU3RyaW5nKCJVcGRhdGluZyBw
cm9wZXJ0aWVzICIsIHByb3BlcnRpZXMsICIgZm9yIG9iamVjdElEICIsIGF4T2JqZWN0Lm9iamVj
dElEKCkubG9nZ2luZ1N0cmluZygpKSk7CisgICAgQVhMT0cobWFrZVN0cmluZygiVXBkYXRpbmcg
cHJvcGVydGllcyAiLCBTcGFuIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KHByb3Bl
cnRpZXMuZGF0YSgpKSwgcHJvcGVydGllcy5zaXplKCkgfSwgIiBmb3Igb2JqZWN0SUQgIiwgYXhP
YmplY3Qub2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCiAgICAgQVhQcm9wZXJ0eU1hcCBwcm9wZXJ0eU1hcDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464478</attachid>
            <date>2023-01-12 21:39:39 -0800</date>
            <delta_ts>2023-01-13 12:39:16 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>18467</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaCBiL1NvdXJjZS9XVEYvd3Rm
L0pTT05WYWx1ZXMuaAppbmRleCBkNjNkY2IxODU5MGQuLjgyNGVhODM0ODhmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0pTT05W
YWx1ZXMuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBPYmplY3Q7CiBjbGFzcyBPYmplY3RCYXNl
OwogCiAvLyBGSVhNRTogdW5pZnkgdGhpcyBKU09OIHBhcnNlciB3aXRoIEpTT05QYXJzZSBpbiBK
YXZhU2NyaXB0Q29yZS4KLWNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBWYWx1ZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFZhbHVlPiB7CitjbGFzcyBWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFZhbHVl
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4RGVwdGggPSAxMDAwOwog
CkBAIC03MiwxMSArNzIsMTEgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgc3Rh
dGljIFJlZjxWYWx1ZT4gbnVsbCgpOwotICAgIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShib29s
KTsKLSAgICBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoaW50KTsKLSAgICBzdGF0aWMgUmVmPFZh
bHVlPiBjcmVhdGUoZG91YmxlKTsKLSAgICBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8VmFsdWU+IG51bGwo
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGJvb2wp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoaW50KTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGRvdWJsZSk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShjb25zdCBT
dHJpbmcmKTsKICAgICB0ZW1wbGF0ZTxjbGFzcyBUPgogICAgIHN0YXRpYyBSZWY8VmFsdWU+IGNy
ZWF0ZShUKSA9IGRlbGV0ZTsKIApAQCAtOTMsMjcgKzkzLDI3IEBAIHB1YmxpYzoKICAgICBUeXBl
IHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICBib29sIGlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpOdWxsOyB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGFzQm9vbGVhbigpIGNvbnN0OwotICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBhc0ludGVnZXIo
KSBjb25zdDsKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gYXNEb3VibGUoKSBjb25zdDsKLSAg
ICBTdHJpbmcgYXNTdHJpbmcoKSBjb25zdDsKLSAgICBSZWZQdHI8VmFsdWU+IGFzVmFsdWUoKTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxPYmplY3Q+IGFzT2JqZWN0KCk7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8Y29uc3QgT2JqZWN0PiBhc09iamVjdCgpIGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFzQm9vbGVhbigpIGNvbnN0OworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGQ6Om9wdGlvbmFsPGludD4gYXNJbnRlZ2VyKCkgY29uc3Q7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBhc0RvdWJsZSgpIGNvbnN0OworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgYXNTdHJpbmcoKSBjb25zdDsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgUmVmUHRyPFZhbHVlPiBhc1ZhbHVlKCk7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZpcnR1YWwgUmVmUHRyPE9iamVjdD4gYXNPYmplY3QoKTsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdmlydHVhbCBSZWZQdHI8Y29uc3QgT2JqZWN0PiBhc09iamVjdCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgUmVmUHRyPEFycmF5PiBhc0FycmF5KCk7CiAKLSAgICBzdGF0aWMgUmVmUHRyPFZh
bHVlPiBwYXJzZUpTT04oU3RyaW5nVmlldyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBSZWZQdHI8VmFsdWU+IHBhcnNlSlNPTihTdHJpbmdWaWV3KTsKICAgICBzdGF0aWMgdm9pZCBl
c2NhcGVTdHJpbmcoU3RyaW5nQnVpbGRlciYsIFN0cmluZ1ZpZXcpOwogCi0gICAgU3RyaW5nIHRv
SlNPTlN0cmluZygpIGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgdG9KU09O
U3RyaW5nKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlSlNPTihTdHJpbmdCdWlsZGVy
JiBvdXRwdXQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBzaXplX3QgbWVtb3J5Q29zdCgpIGNvbnN0
OwogCiAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzE3OTg0Nz4gcmVtb3ZlIHRo
ZXNlIGZ1bmN0aW9ucyB3aGVuIGxlZ2FjeSBJbnNwZWN0b3JPYmplY3Qgc3ltYm9scyBhcmUgbm8g
bG9uZ2VyIG5lZWRlZC4KLSAgICBib29sIGFzRG91YmxlKGRvdWJsZSYpIGNvbnN0OwotICAgIGJv
b2wgYXNJbnRlZ2VyKGludCYpIGNvbnN0OwotICAgIGJvb2wgYXNTdHJpbmcoU3RyaW5nJikgY29u
c3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYXNEb3VibGUoZG91YmxlJikgY29uc3Q7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYXNJbnRlZ2VyKGludCYpIGNvbnN0OworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBib29sIGFzU3RyaW5nKFN0cmluZyYpIGNvbnN0OwogCiBwcm90
ZWN0ZWQ6CiAgICAgVmFsdWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5o
CmluZGV4IDAwYTk2NzZkMTViOC4uMTA1ZWIzYmZiMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZS5oCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
fQogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkgeyByZXR1cm4gMTsgfQotICAgIGJvb2wgaXM4Qml0
KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IDE7IH0KKyAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSog
ZGVzdGluYXRpb24pIGNvbnN0IHsgKmRlc3RpbmF0aW9uID0gbV9jaGFyYWN0ZXI7IH0KIAogcHJp
dmF0ZToKQEAgLTE0OCwxMDQgKzE0OCwyNiBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAotdGVtcGxh
dGU8PiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxBU0NJSUxpdGVyYWwsIHZvaWQ+IDogcHVibGlj
IFN0cmluZ1R5cGVBZGFwdGVyPGNvbnN0IGNoYXIqLCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAgU3Ry
aW5nVHlwZUFkYXB0ZXIoQVNDSUlMaXRlcmFsIGNoYXJhY3RlcnMpCi0gICAgICAgIDogU3RyaW5n
VHlwZUFkYXB0ZXI8Y29uc3QgY2hhciosIHZvaWQ+IHsgY2hhcmFjdGVycyB9Ci0gICAgewotICAg
IH0KLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlLCBzaXplX3QgTj4KLWNsYXNzIFN0
cmluZ1R5cGVBZGFwdGVyPFZlY3RvcjxDaGFyVHlwZSwgTj4sIHZvaWQ+IHsKK3RlbXBsYXRlPD4g
Y2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVmlldywgdm9pZD4gewogcHVibGljOgotICAg
IHVzaW5nIENoYXJUeXBlRm9yU3RyaW5nID0gc3RkOjpjb25kaXRpb25hbF90PHNpemVvZihDaGFy
VHlwZSkgPT0gc2l6ZW9mKExDaGFyKSwgTENoYXIsIFVDaGFyPjsKLSAgICBzdGF0aWNfYXNzZXJ0
KHNpemVvZihDaGFyVHlwZUZvclN0cmluZykgPT0gc2l6ZW9mKENoYXJUeXBlKSk7Ci0KLSAgICBT
dHJpbmdUeXBlQWRhcHRlcihjb25zdCBWZWN0b3I8Q2hhclR5cGUsIE4+JiB2ZWN0b3IpCi0gICAg
ICAgIDogbV92ZWN0b3IgeyB2ZWN0b3IgfQotICAgIHsKLSAgICB9Ci0KLSAgICBzaXplX3QgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOyB9Ci0gICAgYm9vbCBpczhCaXQo
KSBjb25zdCB7IHJldHVybiBzaXplb2YoQ2hhclR5cGUpID09IDE7IH0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSogZGVzdGlu
YXRpb24pIGNvbnN0IHsgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoZGVzdGluYXRpb24sIGNo
YXJhY3RlcnMoKSwgbGVuZ3RoKCkpOyB9Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgQ2hhclR5cGVG
b3JTdHJpbmcqIGNoYXJhY3RlcnMoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgQ2hhclR5cGVGb3JTdHJpbmcqPihtX3ZlY3Rvci5kYXRhKCkpOwot
ICAgIH0KLQotICAgIGNvbnN0IFZlY3RvcjxDaGFyVHlwZSwgTj4mIG1fdmVjdG9yOwotfTsKLQot
dGVtcGxhdGU8PiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdJbXBsKiwgdm9pZD4gewot
cHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKFN0cmluZ0ltcGwqIHN0cmluZykKLSAgICAg
ICAgOiBtX3N0cmluZyB7IHN0cmluZyB9Ci0gICAgewotICAgIH0KLQotICAgIHVuc2lnbmVkIGxl
bmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nID8gbV9zdHJpbmctPmxlbmd0aCgpIDogMDsg
fQotICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gIW1fc3RyaW5nIHx8IG1fc3RyaW5n
LT5pczhCaXQoKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQg
d3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QKLSAgICB7Ci0gICAgICAg
IFN0cmluZ1ZpZXcgeyBtX3N0cmluZyB9LmdldENoYXJhY3RlcnMoZGVzdGluYXRpb24pOwotICAg
ICAgICBXVEZfU1RSSU5HVFlQRUFEQVBURVJfQ09QSUVEX1dURl9TVFJJTkcoKTsKLSAgICB9Ci0K
LXByaXZhdGU6Ci0gICAgU3RyaW5nSW1wbCogY29uc3QgbV9zdHJpbmc7Ci19OwotCi10ZW1wbGF0
ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPEF0b21TdHJpbmdJbXBsKiwgdm9pZD4gOiBwdWJs
aWMgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCosIHZvaWQ+IHsKLXB1YmxpYzoKLSAgICBT
dHJpbmdUeXBlQWRhcHRlcihBdG9tU3RyaW5nSW1wbCogc3RyaW5nKQotICAgICAgICA6IFN0cmlu
Z1R5cGVBZGFwdGVyPFN0cmluZ0ltcGwqLCB2b2lkPiB7IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwq
PihzdHJpbmcpIH0KLSAgICB7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBjbGFzcyBTdHJpbmdU
eXBlQWRhcHRlcjxTdHJpbmcsIHZvaWQ+IDogcHVibGljIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmlu
Z0ltcGwqLCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCi0gICAgICAgIDogU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCosIHZv
aWQ+IHsgc3RyaW5nLmltcGwoKSB9Ci0gICAgewotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gY2xh
c3MgU3RyaW5nVHlwZUFkYXB0ZXI8QXRvbVN0cmluZywgdm9pZD4gOiBwdWJsaWMgU3RyaW5nVHlw
ZUFkYXB0ZXI8U3RyaW5nLCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIo
Y29uc3QgQXRvbVN0cmluZyYgc3RyaW5nKQotICAgICAgICA6IFN0cmluZ1R5cGVBZGFwdGVyPFN0
cmluZywgdm9pZD4geyBzdHJpbmcuc3RyaW5nKCkgfQotICAgIHsKLSAgICB9Ci19OwotCi10ZW1w
bGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ0ltcGwmLCB2b2lkPiB7Ci1wdWJs
aWM6Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIoU3RyaW5nSW1wbCYgc3RyaW5nKQorICAgIFN0cmlu
Z1R5cGVBZGFwdGVyKGNvbnN0IFN0cmluZ1ZpZXcmIHN0cmluZykKICAgICAgICAgOiBtX3N0cmlu
ZyB7IHN0cmluZyB9CiAgICAgewogICAgIH0KIAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RyaW5nLmxlbmd0aCgpOyB9CiAgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7
IHJldHVybiBtX3N0cmluZy5pczhCaXQoKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJh
Y3RlclR5cGU+IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QK
LSAgICB7Ci0gICAgICAgIFN0cmluZ1ZpZXcgeyBtX3N0cmluZyB9LmdldENoYXJhY3RlcnMoZGVz
dGluYXRpb24pOwotICAgICAgICBXVEZfU1RSSU5HVFlQRUFEQVBURVJfQ09QSUVEX1dURl9TVFJJ
TkcoKTsKLSAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCB3
cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBjb25zdCB7IG1fc3RyaW5nLmdldENo
YXJhY3RlcnMoZGVzdGluYXRpb24pOyB9CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nSW1wbCYgbV9z
dHJpbmc7CisgICAgU3RyaW5nVmlldyBtX3N0cmluZzsKIH07CiAKLXRlbXBsYXRlPD4gY2xhc3Mg
U3RyaW5nVHlwZUFkYXB0ZXI8QXRvbVN0cmluZ0ltcGwmLCB2b2lkPiA6IHB1YmxpYyBTdHJpbmdU
eXBlQWRhcHRlcjxTdHJpbmdJbXBsJiwgdm9pZD4gewordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2Ns
YXNzIFN0cmluZ1R5cGVBZGFwdGVyPFQsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19jb25zdHJ1
Y3RpYmxlX3Y8U3RyaW5nVmlldywgY29uc3QgVCY+Pj4gOiBwdWJsaWMgU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVmlldywgdm9pZD4gewogcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKFN0
cmluZ0ltcGwmIHN0cmluZykKLSAgICAgICAgOiBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdJbXBs
Jiwgdm9pZD4geyBzdHJpbmcgfQorICAgIFN0cmluZ1R5cGVBZGFwdGVyKGNvbnN0IFQmIHN0cmlu
ZykKKyAgICAgICAgOiBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdWaWV3LCB2b2lkPiB7IFN0cmlu
Z1ZpZXcgeyBzdHJpbmcgfSB9CiAgICAgewogICAgIH0KIH07CkBAIC0zNTgsMTcgKzI4MCwxNyBA
QCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpCisgICAgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2luZGVudGF0aW9u
LnZhbHVlICogTjsKICAgICB9CiAKLSAgICBib29sIGlzOEJpdCgpCisgICAgYm9vbCBpczhCaXQo
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRl
c3RpbmF0aW9uKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgd3Jp
dGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QKICAgICB7CiAgICAgICAgIHN0
ZDo6ZmlsbF9uKGRlc3RpbmF0aW9uLCBtX2luZGVudGF0aW9uLnZhbHVlICogTiwgJyAnKTsKICAg
ICB9CkBAIC00MTAsMzMgKzMzMiwyNCBAQCBwcml2YXRlOgogICAgIGNvbnN0IEFTQ0lJQ2FzZUNv
bnZlcnRlciYgbV9jb252ZXJ0ZXI7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdGVyPgot
aW5saW5lIGJvb2wgYXJlOEJpdChBZGFwdGVyIGFkYXB0ZXIpCi17Ci0gICAgcmV0dXJuIGFkYXB0
ZXIuaXM4Qml0KCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0ZXIsIHR5cGVuYW1lLi4u
IEFkYXB0ZXJzPgotaW5saW5lIGJvb2wgYXJlOEJpdChBZGFwdGVyIGFkYXB0ZXIsIEFkYXB0ZXJz
IC4uLmFkYXB0ZXJzKQotewotICAgIHJldHVybiBhZGFwdGVyLmlzOEJpdCgpICYmIGFyZThCaXQo
YWRhcHRlcnMuLi4pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBSZXN1bHRUeXBlLCB0eXBlbmFt
ZSBBZGFwdGVyPgotaW5saW5lIHZvaWQgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihSZXN1
bHRUeXBlKiByZXN1bHQsIEFkYXB0ZXIgYWRhcHRlcikKK3RlbXBsYXRlPHR5cGVuYW1lLi4uIEFk
YXB0ZXJzPgoraW5saW5lIGJvb2wgYXJlOEJpdChjb25zdCBBZGFwdGVycyYuLi4gYWRhcHRlcnMp
CiB7Ci0gICAgYWRhcHRlci53cml0ZVRvKHJlc3VsdCk7CisgICAgcmV0dXJuICguLi4gJiYgYWRh
cHRlcnMuaXM4Qml0KCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBSZXN1bHRUeXBlLCB0eXBl
bmFtZSBBZGFwdGVyLCB0eXBlbmFtZS4uLiBBZGFwdGVycz4KLWlubGluZSB2b2lkIHN0cmluZ1R5
cGVBZGFwdGVyQWNjdW11bGF0b3IoUmVzdWx0VHlwZSogcmVzdWx0LCBBZGFwdGVyIGFkYXB0ZXIs
IEFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQordGVtcGxhdGU8dHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlw
ZW5hbWUuLi4gQWRhcHRlcnM+CitpbmxpbmUgdm9pZCBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxh
dG9yKFJlc3VsdFR5cGUqIHJlc3VsdCwgY29uc3QgQWRhcHRlcnMmLi4uIGFkYXB0ZXJzKQogewot
ICAgIGFkYXB0ZXIud3JpdGVUbyhyZXN1bHQpOwotICAgIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11
bGF0b3IocmVzdWx0ICsgYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMuLi4pOworICAgIHVuc2ln
bmVkIG9mZnNldCA9IDA7CisgICAgKC4uLiwgWyZdIHsKKyAgICAgICAgYWRhcHRlcnMud3JpdGVU
byhyZXN1bHQgKyBvZmZzZXQpOworICAgICAgICBvZmZzZXQgKz0gYWRhcHRlcnMubGVuZ3RoKCk7
CisgICAgfSgpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZUFkYXB0ZXIsIHR5
cGVuYW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVycz4KLVJlZlB0cjxTdHJpbmdJbXBsPiB0cnlNYWtl
U3RyaW5nSW1wbEZyb21BZGFwdGVyc0ludGVybmFsKHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBhcmVB
bGxBZGFwdGVyczhCaXQsIFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFw
dGVycyAuLi5hZGFwdGVycykKK1JlZlB0cjxTdHJpbmdJbXBsPiB0cnlNYWtlU3RyaW5nSW1wbEZy
b21BZGFwdGVyc0ludGVybmFsKHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBhcmVBbGxBZGFwdGVyczhC
aXQsIGNvbnN0IFN0cmluZ1R5cGVBZGFwdGVyJiBhZGFwdGVyLCBjb25zdCBTdHJpbmdUeXBlQWRh
cHRlcnMmLi4uIGFkYXB0ZXJzKQogewogICAgIEFTU0VSVChsZW5ndGggPD0gU3RyaW5nOjpNYXhM
ZW5ndGgpOwogICAgIGlmIChhcmVBbGxBZGFwdGVyczhCaXQpIHsKQEAgLTQ2MywxMyArMzc2LDEz
IEBAIFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlNYWtlU3RyaW5nSW1wbEZyb21BZGFwdGVyc0ludGVy
bmFsKHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBhCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmMs
IHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgotYXV0byBoYW5kbGVXaXRoQWRhcHRlcnMoRnVuYyYm
IGZ1bmMsIFN0cmluZ1R5cGVzJiYgLi4uc3RyaW5ncykgLT4gZGVjbHR5cGUoYXV0bykKK2F1dG8g
aGFuZGxlV2l0aEFkYXB0ZXJzKEZ1bmMmJiBmdW5jLCBjb25zdCBTdHJpbmdUeXBlcyYuLi4gc3Ry
aW5ncykgLT4gZGVjbHR5cGUoYXV0bykKIHsKLSAgICByZXR1cm4gZnVuYyhTdHJpbmdUeXBlQWRh
cHRlcjxTdHJpbmdUeXBlcz4oc3RkOjpmb3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKSkuLi4p
OworICAgIHJldHVybiBmdW5jKFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdz
KS4uLik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBlbmFt
ZS4uLiBTdHJpbmdUeXBlQWRhcHRlcnM+Ci1TdHJpbmcgdHJ5TWFrZVN0cmluZ0Zyb21BZGFwdGVy
cyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWRhcHRlcnMgLi4uYWRhcHRl
cnMpCitTdHJpbmcgdHJ5TWFrZVN0cmluZ0Zyb21BZGFwdGVycyhjb25zdCBTdHJpbmdUeXBlQWRh
cHRlciYgYWRhcHRlciwgY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXJzJi4uLiBhZGFwdGVycykKIHsK
ICAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1heCgpKTsKICAgICBhdXRvIHN1bSA9IGNoZWNrZWRTdW08aW50MzJfdD4o
YWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMubGVuZ3RoKCkuLi4pOwpAQCAtNDgxLDEzICszOTQs
MTMgQEAgU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIg
YWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4g
U3RyaW5nVHlwZXM+Ci1TdHJpbmcgdHJ5TWFrZVN0cmluZyhTdHJpbmdUeXBlcyAuLi5zdHJpbmdz
KQorU3RyaW5nIHRyeU1ha2VTdHJpbmcoY29uc3QgU3RyaW5nVHlwZXMmLi4uIHN0cmluZ3MpCiB7
CiAgICAgcmV0dXJuIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8
U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gU3Ry
aW5nVHlwZXM+Ci1TdHJpbmcgbWFrZVN0cmluZyhTdHJpbmdUeXBlcy4uLiBzdHJpbmdzKQorU3Ry
aW5nIG1ha2VTdHJpbmcoY29uc3QgU3RyaW5nVHlwZXMmLi4uIHN0cmluZ3MpCiB7CiAgICAgU3Ry
aW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmcoc3RyaW5ncy4uLik7CiAgICAgaWYgKCFyZXN1bHQp
CkBAIC00OTYsNyArNDA5LDcgQEAgU3RyaW5nIG1ha2VTdHJpbmcoU3RyaW5nVHlwZXMuLi4gc3Ry
aW5ncykKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZUFkYXB0ZXIsIHR5cGVuYW1l
Li4uIFN0cmluZ1R5cGVBZGFwdGVycz4KLUF0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmdGcm9t
QWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4u
LmFkYXB0ZXJzKQorQXRvbVN0cmluZyB0cnlNYWtlQXRvbVN0cmluZ0Zyb21BZGFwdGVycyhjb25z
dCBTdHJpbmdUeXBlQWRhcHRlciYgYWRhcHRlciwgY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXJzJi4u
LiBhZGFwdGVycykKIHsKICAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6TWF4TGVuZ3RoID09IHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKICAgICBhdXRvIHN1bSA9IGNoZWNr
ZWRTdW08aW50MzJfdD4oYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMubGVuZ3RoKCkuLi4pOwpA
QCAtNTIyLDEzICs0MzUsMTMgQEAgQXRvbVN0cmluZyB0cnlNYWtlQXRvbVN0cmluZ0Zyb21BZGFw
dGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWQKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1BdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5n
KFN0cmluZ1R5cGVzIC4uLnN0cmluZ3MpCitBdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5nKGNv
bnN0IFN0cmluZ1R5cGVzJi4uLiBzdHJpbmdzKQogewogICAgIHJldHVybiB0cnlNYWtlQXRvbVN0
cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlcz4oc3RyaW5ncyku
Li4pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLUF0b21TdHJpbmcg
bWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMuLi4gc3RyaW5ncykKK0F0b21TdHJpbmcgbWFrZUF0
b21TdHJpbmcoY29uc3QgU3RyaW5nVHlwZXMmLi4uIHN0cmluZ3MpCiB7CiAgICAgQXRvbVN0cmlu
ZyByZXN1bHQgPSB0cnlNYWtlQXRvbVN0cmluZyhzdHJpbmdzLi4uKTsKICAgICBpZiAocmVzdWx0
LmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRv
cnMuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmgKaW5kZXggNGY1M2My
NGU2MjM0Li5hNWZiMDBkMzJiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nT3BlcmF0b3JzLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMu
aApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEF0b21TdHJpbmco
b3BlcmF0b3IgU3RyaW5nKCkpOwogICAgIH0KIAotICAgIGJvb2wgaXM4Qml0KCkKKyAgICBib29s
IGlzOEJpdCgpIGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdU
eXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3Ry
aW5nVHlwZTI+IGFkYXB0ZXIyKG1fc3RyaW5nMik7CiAgICAgICAgIHJldHVybiBhZGFwdGVyMS5p
czhCaXQoKSAmJiBhZGFwdGVyMi5pczhCaXQoKTsKICAgICB9CiAKLSAgICB2b2lkIHdyaXRlVG8o
TENoYXIqIGRlc3RpbmF0aW9uKQorICAgIHZvaWQgd3JpdGVUbyhMQ2hhciogZGVzdGluYXRpb24p
IGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXM4Qml0KCkpOwogICAgICAgICBTdHJpbmdU
eXBlQWRhcHRlcjxTdHJpbmdUeXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKQEAgLTYyLDcgKzYy
LDcgQEAgcHVibGljOgogICAgICAgICBhZGFwdGVyMi53cml0ZVRvKGRlc3RpbmF0aW9uICsgYWRh
cHRlcjEubGVuZ3RoKCkpOwogICAgIH0KIAotICAgIHZvaWQgd3JpdGVUbyhVQ2hhciogZGVzdGlu
YXRpb24pCisgICAgdm9pZCB3cml0ZVRvKFVDaGFyKiBkZXN0aW5hdGlvbikgY29uc3QKICAgICB7
CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBhZGFwdGVyMShtX3N0cmlu
ZzEpOwogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMj4gYWRhcHRlcjIobV9z
dHJpbmcyKTsKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgICAgICBhZGFwdGVyMi53cml0
ZVRvKGRlc3RpbmF0aW9uICsgYWRhcHRlcjEubGVuZ3RoKCkpOwogICAgIH0KIAotICAgIHVuc2ln
bmVkIGxlbmd0aCgpCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QKICAgICB7CiAgICAgICAg
IFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBhZGFwdGVyMShtX3N0cmluZzEpOwogICAg
ICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMj4gYWRhcHRlcjIobV9zdHJpbmcyKTsK
QEAgLTg1LDcgKzg1LDcgQEAgcHJpdmF0ZToKIHRlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGUx
LCB0eXBlbmFtZSBTdHJpbmdUeXBlMj4KIGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ0Fw
cGVuZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+PiB7CiBwdWJsaWM6Ci0gICAgU3RyaW5nVHlw
ZUFkYXB0ZXIoU3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIGJ1ZmZlcikK
KyAgICBTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBTdHJpbmdBcHBlbmQ8U3RyaW5nVHlwZTEsIFN0
cmluZ1R5cGUyPiYgYnVmZmVyKQogICAgICAgICA6IG1fYnVmZmVyIHsgYnVmZmVyIH0KICAgICB7
CiAgICAgfQpAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBj
b25zdCB7IG1fYnVmZmVyLndyaXRlVG8oZGVzdGluYXRpb24pOyB9CiAKIHByaXZhdGU6Ci0gICAg
U3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIG1fYnVmZmVyOworICAgIGNv
bnN0IFN0cmluZ0FwcGVuZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+JiBtX2J1ZmZlcjsKIH07
CiAKIGlubGluZSBTdHJpbmdBcHBlbmQ8Y29uc3QgY2hhciosIFN0cmluZz4gb3BlcmF0b3IrKGNv
bnN0IGNoYXIqIHN0cmluZzEsIGNvbnN0IFN0cmluZyYgc3RyaW5nMikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdWaWV3LmgKaW5kZXggNWMwMGQ3Yzg5MzIzLi4yMThmNDgxM2U4NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nVmlldy5oCkBAIC02NywxMSArNjcsMjEgQEAgcHVibGljOgogICAgIFN0cmluZ1ZpZXco
Y29uc3QgTENoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFN0cmluZ1ZpZXcoY29uc3QgVUNo
YXIqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFN0cmluZ1ZpZXcoY29uc3QgY2hhciosIHVuc2ln
bmVkIGxlbmd0aCk7Ci0gICAgU3RyaW5nVmlldyhBU0NJSUxpdGVyYWwpOwotICAgIEFMV0FZU19J
TkxJTkUgU3RyaW5nVmlldyhTcGFuPGNvbnN0IExDaGFyPiBjaGFyYWN0ZXJzKSA6IFN0cmluZ1Zp
ZXcoY2hhcmFjdGVycy5kYXRhKCksIGNoYXJhY3RlcnMuc2l6ZSgpKSB7IH0KLSAgICBBTFdBWVNf
SU5MSU5FIFN0cmluZ1ZpZXcoU3Bhbjxjb25zdCBVQ2hhcj4gY2hhcmFjdGVycykgOiBTdHJpbmdW
aWV3KGNoYXJhY3RlcnMuZGF0YSgpLCBjaGFyYWN0ZXJzLnNpemUoKSkgeyB9CisgICAgU3RyaW5n
Vmlldyhjb25zdCBBU0NJSUxpdGVyYWwmKTsKKyAgICBBTFdBWVNfSU5MSU5FIFN0cmluZ1ZpZXco
Y29uc3QgU3Bhbjxjb25zdCBMQ2hhcj4mIGNoYXJhY3RlcnMpIDogU3RyaW5nVmlldyhjaGFyYWN0
ZXJzLmRhdGEoKSwgY2hhcmFjdGVycy5zaXplKCkpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgU3Ry
aW5nVmlldyhjb25zdCBTcGFuPGNvbnN0IFVDaGFyPiYgY2hhcmFjdGVycykgOiBTdHJpbmdWaWV3
KGNoYXJhY3RlcnMuZGF0YSgpLCBjaGFyYWN0ZXJzLnNpemUoKSkgeyB9CiAKLSAgICBBTFdBWVNf
SU5MSU5FIHN0YXRpYyBTdHJpbmdWaWV3IGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVy
cykgeyByZXR1cm4gU3RyaW5nVmlldyB7IGNoYXJhY3RlcnMgfTsgfQorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENoYXJUeXBlLCBzaXplX3QgTj4KKyAgICBTdHJpbmdWaWV3KGNvbnN0IENoYXJUeXBl
KCZjaGFyYWN0ZXJzKVtOXSkKKyAgICAgICAgOiBTdHJpbmdWaWV3IHsgY2hhcmFjdGVycywgTiAt
IDEgfQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFjaGFyYWN0ZXJzW04gLSAxXSk7CisgICAgfQor
CisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nVmlldyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpCisgICAgeworICAgICAgICByZXR1cm4geyBjaGFyYWN0ZXJzLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oY2hhcmFjdGVycyA/IHN0cmxlbihjaGFyYWN0ZXJzKSA6IDApIH07
CisgICAgfQogCiAgICAgc3RhdGljIFN0cmluZ1ZpZXcgZW1wdHkoKTsKIApAQCAtMTk2LDkgKzIw
Niw2IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgVW5kZXJseWluZ1N0cmluZzsKIAogcHJpdmF0ZToK
LSAgICAvLyBDbGllbnRzIHNob3VsZCB1c2UgU3RyaW5nVmlldyhBU0NJSUxpdGVyYWwpIG9yIFN0
cmluZ1ZpZXc6OmZyb21MYXRpbjEoKSBpbnN0ZWFkLgotICAgIGV4cGxpY2l0IFN0cmluZ1ZpZXco
Y29uc3QgY2hhciopOwotCiAgICAgZnJpZW5kIGJvb2wgZXF1YWwoU3RyaW5nVmlldywgU3RyaW5n
Vmlldyk7CiAgICAgZnJpZW5kIGJvb2wgZXF1YWwoU3RyaW5nVmlldywgU3RyaW5nVmlldywgdW5z
aWduZWQgbGVuZ3RoKTsKICAgICBmcmllbmQgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZXF1YWxS
ZXNwZWN0aW5nTnVsbGl0eShTdHJpbmdWaWV3LCBTdHJpbmdWaWV3KTsKQEAgLTM3MiwxNyArMzc5
LDEyIEBAIGlubGluZSBTdHJpbmdWaWV3OjpTdHJpbmdWaWV3KGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgaW5pdGlhbGl6ZShjaGFyYWN0ZXJzLCBsZW5ndGgp
OwogfQogCi1pbmxpbmUgU3RyaW5nVmlldzo6U3RyaW5nVmlldyhjb25zdCBjaGFyKiBjaGFyYWN0
ZXJzKQotewotICAgIGluaXRpYWxpemUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNo
YXJhY3RlcnMpLCBjaGFyYWN0ZXJzID8gc3RybGVuKGNoYXJhY3RlcnMpIDogMCk7Ci19Ci0KIGlu
bGluZSBTdHJpbmdWaWV3OjpTdHJpbmdWaWV3KGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCkKIHsKICAgICBpbml0aWFsaXplKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPihjaGFyYWN0ZXJzKSwgbGVuZ3RoKTsKIH0KIAotaW5saW5lIFN0cmluZ1ZpZXc6OlN0cmlu
Z1ZpZXcoQVNDSUlMaXRlcmFsIHN0cmluZykKK2lubGluZSBTdHJpbmdWaWV3OjpTdHJpbmdWaWV3
KGNvbnN0IEFTQ0lJTGl0ZXJhbCYgc3RyaW5nKQogewogICAgIGluaXRpYWxpemUoc3RyaW5nLmNo
YXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgoKSk7CiB9CkBAIC02NzQsMjEgKzY3Niw2IEBAIGlu
bGluZSB2b2lkIFN0cmluZ1ZpZXc6OmludmFsaWRhdGUoY29uc3QgU3RyaW5nSW1wbCYpCiAKICNl
bmRpZgogCi10ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1ZpZXcsIHZv
aWQ+IHsKLXB1YmxpYzoKLSAgICBTdHJpbmdUeXBlQWRhcHRlcihTdHJpbmdWaWV3IHN0cmluZykK
LSAgICAgICAgOiBtX3N0cmluZyB7IHN0cmluZyB9Ci0gICAgewotICAgIH0KLQotICAgIHVuc2ln
bmVkIGxlbmd0aCgpIHsgcmV0dXJuIG1fc3RyaW5nLmxlbmd0aCgpOyB9Ci0gICAgYm9vbCBpczhC
aXQoKSB7IHJldHVybiBtX3N0cmluZy5pczhCaXQoKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IENoYXJhY3RlclR5cGU+IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikg
eyBtX3N0cmluZy5nZXRDaGFyYWN0ZXJzKGRlc3RpbmF0aW9uKTsgfQotCi1wcml2YXRlOgotICAg
IFN0cmluZ1ZpZXcgbV9zdHJpbmc7Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlLCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHZvaWQgYXBwZW5kKFZlY3RvcjxDaGFyYWN0ZXJU
eXBlLCBpbmxpbmVDYXBhY2l0eT4mIGJ1ZmZlciwgU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAgICAg
dW5zaWduZWQgb2xkU2l6ZSA9IGJ1ZmZlci5zaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAK
aW5kZXggZTVkNjQwMzAxZDM1Li4zOTkyNjI5NGQwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5j
cHAKQEAgLTM4Nyw3ICszODcsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVQcm9wZXJ0
aWVzRm9yU2VsZkFuZERlc2NlbmRhbnRzKEFYQ29yZU9iamVjdCYgYXhPYmplYwogdm9pZCBBWElz
b2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnRpZXMoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwg
Y29uc3QgVmVjdG9yPEFYUHJvcGVydHlOYW1lPiYgcHJvcGVydGllcykKIHsKICAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnRpZXMiX3MpOwotICAgIEFYTE9HKG1h
a2VTdHJpbmcoIlVwZGF0aW5nIHByb3BlcnRpZXMgIiwgcHJvcGVydGllcywgIiBmb3Igb2JqZWN0
SUQgIiwgYXhPYmplY3Qub2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCkpKTsKKyAgICBBWExPRyht
YWtlU3RyaW5nKCJVcGRhdGluZyBwcm9wZXJ0aWVzICIsIFNwYW4geyByZWludGVycHJldF9jYXN0
PGNvbnN0IFVDaGFyKj4ocHJvcGVydGllcy5kYXRhKCkpLCBwcm9wZXJ0aWVzLnNpemUoKSB9LCAi
IGZvciBvYmplY3RJRCAiLCBheE9iamVjdC5vYmplY3RJRCgpLmxvZ2dpbmdTdHJpbmcoKSkpOwog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnR5
TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0b3JhZ2UuaAppbmRleCAxMTU2MzQxMzRiZDYuLjc4OTMwNDVhYTNkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dG9yYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTdG9yYWdlLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBJbmNy
ZW1lbnRpbmcgdGhpcyBudW1iZXIgd2lsbCBkZWxldGUgYWxsIGV4aXN0aW5nIGNhY2hlIGNvbnRl
bnQgZm9yIGV2ZXJ5b25lLiBEbyB5b3UgcmVhbGx5IG5lZWQgdG8gZG8gaXQ/CiAgICAgLy8gRklY
TUU6IFdoZW4gdGhpcyBpcyBpbmNyZW1lbnRlZCwgcmVtb3ZlIExlZ2FjeUNlcnRpZmljYXRlSW5m
b1R5cGUuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZlcnNpb24gPSAxNjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIHZlcnNpb24gPSAxNjsKIAogICAgIFN0cmluZyBiYXNlUGF0
aElzb2xhdGVkQ29weSgpIGNvbnN0OwogICAgIFN0cmluZyB2ZXJzaW9uUGF0aCgpIGNvbnN0Owo=
</data>
<flag name="commit-queue"
          id="492754"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464666</attachid>
            <date>2023-01-26 01:25:29 -0800</date>
            <delta_ts>2023-01-27 13:17:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-250017-20230126182528.patch</filename>
            <type>text/plain</type>
            <size>24078</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSA0Y2MxYTk0OTU5NmNlYTViMmRjMDBiODBiOTc1NWZmZDdjZDRkZTBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM1PUJEYW49MjBEb2Jlcj1DNT1BMWVrPz0g
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgpEYXRlOiBXZWQsIDE4IEphbiAyMDIzIDA4OjI5OjQ5ICsw
MTAwClN1YmplY3Q6IFtQQVRDSF0gSW1wcm92ZSBTdHJpbmdUeXBlQWRhcHRlciB0ZW1wbGF0ZXMg
YW5kIGhhbmRsaW5nCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUw
MDE3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClN0cmluZ0NvbmNhdGVuYXRlJ3MgbWFr
ZVN0cmluZygpIGFuZCBtYWtlQXRvbVN0cmluZygpIGFyZSBhZGp1c3RlZCB0byBhY2NlcHQKYXJn
dW1lbnRzIGFzIGNvbnN0IGx2YWx1ZSByZWZlcmVuY2VzLCBwcm9wYWdhdGluZyB0aGVtIGRvd24g
dG8gZWFjaApTdHJpbmdUeXBlQWRhcHRlciBvYmplY3Qgd2l0aG91dCB1bm5lY2Vzc2FyeSBjb3Bp
ZXMuIFNpbWlsYXJseSwgdGhlIGFkYXB0ZXIKb2JqZWN0cyB0b28gYXJlIGhhbmRsZWQgdGhyb3Vn
aCBjb25zdCBsdmFsdWUgcmVmZXJlbmNlcyBvbmNlIGNvbnN0cnVjdGVkIGFuZApwYXNzZWQgb24u
CgpOZXdseS1pbXBvc2VkIGNvbnN0bmVzcyByZXF1aXJlcyBhZGRpdGlvbmFsIGNvbnN0IHF1YWxp
ZmllcnMgb24gY29tbW9uIG1ldGhvZHMKYWNyb3NzIGRpZmZlcmVudCBTdHJpbmdUeXBlQWRhcHRl
ciBzcGVjaWFsaXphdGlvbnMuCgpUaGUgYXJlOEJpdCgpIGFuZCBzdHJpbmdUeXBlQWRhcHRlckFj
Y3VtdWxhdG9yKCkgaGVscGVyIGZ1bmN0aW9ucyBhcmUgc2ltcGxpZmllZAp0aHJvdWdoIHVzaW5n
IHBhcmFtZXRlciBwYWNrcyBhbmQgZm9sZCBleHByZXNzaW9ucyB0byBwZXJmb3JtIHRoZSBuZWNl
c3NhcnkKb3BlcmF0aW9ucyBhY3Jvc3MgYSByYW5nZSBvZiBhZGFwdGVyIG9iamVjdHMuCgpTdHJp
bmdUeXBlQWRhcHRlciBzcGVjaWFsaXphdGlvbiBmb3IgU3RyaW5nVmlldyBpcyBtb3ZlZCBmcm9t
IHRoZSBTdHJpbmdWaWV3CmhlYWRlciBpbnRvIHRoZSBTdHJpbmdDb25jYXRlbmF0ZSBoZWFkZXIu
IEEgbmV3IHBhcnRpYWwgc3BlY2lhbGl6YXRpb24gZm9yIHRoZQpTdHJpbmdUeXBlQWRhcHRlciB0
ZW1wbGF0ZSBpcyBhZGRlZCwgY29uZGl0aW9uYWxseSBlbmFibGVkIGlmIGEgY29uc3QgcmVmZXJl
bmNlCm9mIHRoZSBzcGVjaWZpZWQgdHlwZSBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgYSBTdHJp
bmdWaWV3IG9iamVjdC4gVGhpcwpzcGVjaWFsaXphdGlvbiBpbmhlcml0cyBmcm9tIHRoZSBTdHJp
bmdWaWV3IHNwZWNpYWxpemF0aW9uLCBoZW5jZSBhIFN0cmluZ1ZpZXcKaXMgY29uc3RydWN0ZWQg
Zm9yIHN1Y2ggb2JqZWN0cy4KCkFuIGV4Y2VwdGlvbiBmb3IgdGhpcyBwYXJ0aWFsIHNwZWNpYWxp
emF0aW9uIGFyZSBjaGFyYWN0ZXIgc3RyaW5nIGxpdGVyYWxzIHdob3NlCnR5cGUgaXMgcmVkdWNl
ZCB0byBhIGZpeGVkLWxlbmd0aCBDIGFycmF5LiBUaGVzZSBmb3IgdGhlIG1vbWVudCByZXF1aXJl
IGEKc2VwYXJhdGUgc3BlY2lhbGl6YXRpb24gaW4gb3JkZXIgdG8gYXZvaWQgaW1wbGljaXRseSBj
cmVhdGluZyBhIFN0cmluZyBvYmplY3QKdGhhdCdzIHRoZW4gdXNlZCBmb3IgdGhlIFN0cmluZ1Zp
ZXcuIFRoZSBmaXhlZC1sZW5ndGggYXJyYXkgZGF0YSBpcyBpbnN0ZWFkCnBhc3NlZCB0byB0aGUg
cGFydGlhbCBzcGVjaWFsaXphdGlvbnMgaGFuZGxpbmcgc3RyaW5nIHBvaW50ZXJzLCBpbiBvcmRl
ciB0bwpwYXNzIHRoZSBkYXRhIHRocm91Z2ggc3RyaW5nLWxlbmd0aCBjb21wdXRhdGlvbiBhbmQg
Z2V0dGluZyB0aGUgY29ycmVjdCBsZW5ndGguClRoaXMgYXZvaWRzIHBvdGVudGlhbCBwcm9ibGVt
cyB3aXRoIGZpeGVkLWxlbmd0aCBhcnJheXMgd2l0aCBpbmZsYXRlZCBzaXplIHRoYXQKYXJlIHVz
ZWQgYXMgYnVmZmVycyBmb3Igc3RyaW5nIGRhdGEgdGhhdCdzIG90aGVyd2lzZSBudWxsLXRlcm1p
bmF0ZWQgYXQgc29tZQpwcmV2aW91cyBwb3NpdGlvbi4gVW5pdCB0ZXN0cyBhcmUgcHJvdmlkZWQg
dG8gY292ZXIgdGhpcyBkZXRhaWwuCgpUaGlzIGVuYWJsZXMgcmVtb3ZpbmcgYSBidW5jaCBvZiBv
dGhlciBTdHJpbmdUeXBlQWRhcHRlciBzcGVjaWFsaXphdGlvbnMuCkRpZmZlcmVudCBXVEYgc3Ry
aW5nIGFuZCBpbXBsIHR5cGVzIGNhbiBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgU3RyaW5nVmll
dywKYXMgd2VsbCBhcyBBU0NJSUxpdGVyYWwuIEZvciBWZWN0b3JzIG9mIGNoYXJhY3RlciB2YWx1
ZXMsIGEgY29ycmVzcG9uZGluZyBTcGFuCmNhbiBiZSBpbXBsaWNpdGx5IGNvbnN0cnVjdGVkIGFu
ZCBpcyB0aGVuIHVzZWQgZm9yIFN0cmluZ1ZpZXcgY29uc3RydWN0aW9uLgoKSW4gU3RyaW5nVmll
dywgY29uc3RydWN0b3JzIHRha2luZyBpbiBBU0NJSUxpdGVyYWwgb3IgU3BhbiBhcmUgYWRqdXN0
ZWQgdG8KaGFuZGxlIGNvbnN0IGx2YWx1ZSByZWZlcmVuY2VzIG9mIHRob3NlIG9iamVjdHMuCgpE
aWZmZXJlbnQgc3RhdGljIGludGVnZXIgdmFsdWVzIGNhbiBub3cgZW5kIHVwIGdlbmVyYXRpbmcg
dW5kZXNpcmVkIHN5bWJvbHMgd2hlbgpoYW5kbGVkIHRocm91Z2ggcmVmZXJlbmNlcyBpbiBjYWxs
cyB0byBtYWtlU3RyaW5nKCkgYW5kIG1ha2VBdG9tU3RyaW5nKCkuIFRoaXMKY2FuIGJlIGF2b2lk
ZWQgYnkgZXhwbGljaXRseSBjb3B5aW5nIHRoZSBwYXNzZWQtaW4gdmFsdWUuCgoqIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcDoKKEluc3BlY3Rv
cjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQ2FsbCk6CihJbnNwZWN0b3I6OkluamVjdGVkU2Ny
aXB0QmFzZTo6bWFrZUFzeW5jQ2FsbCk6CiogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZS5oOgooV1RGOjphcmU4Qml0KToKKFdURjo6c3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVs
YXRvcik6CihXVEY6OnRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJzSW50ZXJuYWwpOgooV1RG
OjpoYW5kbGVXaXRoQWRhcHRlcnMpOgooV1RGOjp0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKToK
KFdURjo6dHJ5TWFrZVN0cmluZyk6CihXVEY6Om1ha2VTdHJpbmcpOgooV1RGOjp0cnlNYWtlQXRv
bVN0cmluZ0Zyb21BZGFwdGVycyk6CihXVEY6OnRyeU1ha2VBdG9tU3RyaW5nKToKKFdURjo6bWFr
ZUF0b21TdHJpbmcpOgoqIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmg6CihX
VEY6OlN0cmluZ0FwcGVuZDo6aXM4Qml0IGNvbnN0KToKKFdURjo6U3RyaW5nQXBwZW5kOjp3cml0
ZVRvIGNvbnN0KToKKFdURjo6U3RyaW5nQXBwZW5kOjpsZW5ndGggY29uc3QpOgooV1RGOjpTdHJp
bmdBcHBlbmQ6OmlzOEJpdCk6IERlbGV0ZWQuCihXVEY6OlN0cmluZ0FwcGVuZDo6d3JpdGVUbyk6
IERlbGV0ZWQuCihXVEY6OlN0cmluZ0FwcGVuZDo6bGVuZ3RoKTogRGVsZXRlZC4KKiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaDoKKFdURjo6U3RyaW5nVmlldzo6U3RyaW5nVmlldyk6
CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0aWVzKToK
KiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2Uu
aDoKKiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdDb25jYXRlbmF0ZS5jcHA6
CihUZXN0V2ViS2l0QVBJOjpURVNUKToKLS0tCiAuLi4vaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
QmFzZS5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGUuaCAgICAgICB8IDE3NiArKysrKy0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nT3BlcmF0b3JzLmggICAgICAgICB8ICAxMiArLQogU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdWaWV3LmggICAgICAgICAgICAgIHwgIDIzICstLQogLi4uL2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAgIHwgICAyICstCiAuLi4vY2FjaGUvTmV0d29y
a0NhY2hlU3RvcmFnZS5oICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9UZXN0cy9XVEYvU3Ry
aW5nQ29uY2F0ZW5hdGUuY3BwICAgICAgICAgICB8ICAyMCArKwogNyBmaWxlcyBjaGFuZ2VkLCA4
MyBpbnNlcnRpb25zKCspLCAxNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCmluZGV4IGRhN2Uw
OWNkNzkxOS4uNzQyNzA4YTUxYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCkBAIC05NSw3ICs5NSw3IEBAIFJl
ZjxKU09OOjpWYWx1ZT4gSW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQ2FsbChEZXByZWNhdGVkOjpT
Y3JpcHRGdW5jdGlvbkNhbGwmIGZ1CiAKICAgICBhdXRvIHJlc3VsdEpTT05WYWx1ZSA9IHRvSW5z
cGVjdG9yVmFsdWUoZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgaWYgKCFyZXN1bHRKU09OVmFs
dWUpCi0gICAgICAgIHJldHVybiBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1ha2VTdHJpbmcoIk9iamVj
dCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluIChtdXN0IG5vdCBiZSBsb25nZXIgdGhhbiAi
LCBKU09OOjpWYWx1ZTo6bWF4RGVwdGgsICcpJykpOworICAgICAgICByZXR1cm4gSlNPTjo6VmFs
dWU6OmNyZWF0ZShtYWtlU3RyaW5nKCJPYmplY3QgaGFzIHRvbyBsb25nIHJlZmVyZW5jZSBjaGFp
biAobXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gIiwgdW5zaWduZWQoSlNPTjo6VmFsdWU6Om1heERl
cHRoKSwgJyknKSk7CiAKICAgICByZXR1cm4gcmVzdWx0SlNPTlZhbHVlLnJlbGVhc2VOb25OdWxs
KCk7CiB9CkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBJbmplY3RlZFNjcmlwdEJhc2U6Om1ha2VB
c3luY0NhbGwoRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlvbiwKICAgICAg
ICAgICAgIGVsc2UgaWYgKGF1dG8gcmVzdWx0SlNPTlZhbHVlID0gdG9JbnNwZWN0b3JWYWx1ZShn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKQogICAgICAgICAgICAgICAgIGNo
ZWNrQXN5bmNDYWxsUmVzdWx0KHJlc3VsdEpTT05WYWx1ZSwgY2FsbGJhY2spOwogICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIGNoZWNrQXN5bmNDYWxsUmVzdWx0KEpTT046OlZhbHVl
OjpjcmVhdGUobWFrZVN0cmluZygiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVuY2UgY2hhaW4g
KG11c3Qgbm90IGJlIGxvbmdlciB0aGFuICIsIEpTT046OlZhbHVlOjptYXhEZXB0aCwgJyknKSks
IGNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICBjaGVja0FzeW5jQ2FsbFJlc3VsdChKU09OOjpW
YWx1ZTo6Y3JlYXRlKG1ha2VTdHJpbmcoIk9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNo
YWluIChtdXN0IG5vdCBiZSBsb25nZXIgdGhhbiAiLCB1bnNpZ25lZChKU09OOjpWYWx1ZTo6bWF4
RGVwdGgpLCAnKScpKSwgY2FsbGJhY2spOwogICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNWYWx1
ZTo6ZW5jb2RlKEpTQzo6anNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAppbmRleCAwMGE5Njc2ZDE1YjguLmUyY2E2
OWQ4OTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0
ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAtNTEs
OCArNTEsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIGxlbmd0aCgp
IHsgcmV0dXJuIDE7IH0KLSAgICBib29sIGlzOEJpdCgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiAxOyB9CisgICAgYm9vbCBpczhCaXQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBjb25zdCB7ICpkZXN0
aW5hdGlvbiA9IG1fY2hhcmFjdGVyOyB9CiAKIHByaXZhdGU6CkBAIC0xNDgsMTA0ICsxNDgsMzUg
QEAgcHVibGljOgogICAgIH0KIH07CiAKLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0
ZXI8QVNDSUlMaXRlcmFsLCB2b2lkPiA6IHB1YmxpYyBTdHJpbmdUeXBlQWRhcHRlcjxjb25zdCBj
aGFyKiwgdm9pZD4gewotcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKEFTQ0lJTGl0ZXJh
bCBjaGFyYWN0ZXJzKQotICAgICAgICA6IFN0cmluZ1R5cGVBZGFwdGVyPGNvbnN0IGNoYXIqLCB2
b2lkPiB7IGNoYXJhY3RlcnMgfQotICAgIHsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyVHlwZSwgc2l6ZV90IE4+Ci1jbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxWZWN0b3I8Q2hh
clR5cGUsIE4+LCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQ2hhclR5cGVGb3JTdHJpbmcg
PSBzdGQ6OmNvbmRpdGlvbmFsX3Q8c2l6ZW9mKENoYXJUeXBlKSA9PSBzaXplb2YoTENoYXIpLCBM
Q2hhciwgVUNoYXI+OwotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKENoYXJUeXBlRm9yU3RyaW5n
KSA9PSBzaXplb2YoQ2hhclR5cGUpKTsKLQotICAgIFN0cmluZ1R5cGVBZGFwdGVyKGNvbnN0IFZl
Y3RvcjxDaGFyVHlwZSwgTj4mIHZlY3RvcikKLSAgICAgICAgOiBtX3ZlY3RvciB7IHZlY3RvciB9
Ci0gICAgewotICAgIH0KLQotICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Zl
Y3Rvci5zaXplKCk7IH0KLSAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIHNpemVvZihD
aGFyVHlwZSkgPT0gMTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZv
aWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyBTdHJpbmdJbXBs
Ojpjb3B5Q2hhcmFjdGVycyhkZXN0aW5hdGlvbiwgY2hhcmFjdGVycygpLCBsZW5ndGgoKSk7IH0K
LQotcHJpdmF0ZToKLSAgICBjb25zdCBDaGFyVHlwZUZvclN0cmluZyogY2hhcmFjdGVycygpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBDaGFyVHlw
ZUZvclN0cmluZyo+KG1fdmVjdG9yLmRhdGEoKSk7Ci0gICAgfQotCi0gICAgY29uc3QgVmVjdG9y
PENoYXJUeXBlLCBOPiYgbV92ZWN0b3I7Ci19OwotCi10ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5
cGVBZGFwdGVyPFN0cmluZ0ltcGwqLCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nVHlwZUFk
YXB0ZXIoU3RyaW5nSW1wbCogc3RyaW5nKQotICAgICAgICA6IG1fc3RyaW5nIHsgc3RyaW5nIH0K
LSAgICB7Ci0gICAgfQotCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9z
dHJpbmcgPyBtX3N0cmluZy0+bGVuZ3RoKCkgOiAwOyB9Ci0gICAgYm9vbCBpczhCaXQoKSBjb25z
dCB7IHJldHVybiAhbV9zdHJpbmcgfHwgbV9zdHJpbmctPmlzOEJpdCgpOyB9Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRl
c3RpbmF0aW9uKSBjb25zdAotICAgIHsKLSAgICAgICAgU3RyaW5nVmlldyB7IG1fc3RyaW5nIH0u
Z2V0Q2hhcmFjdGVycyhkZXN0aW5hdGlvbik7Ci0gICAgICAgIFdURl9TVFJJTkdUWVBFQURBUFRF
Ul9DT1BJRURfV1RGX1NUUklORygpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBTdHJpbmdJbXBs
KiBjb25zdCBtX3N0cmluZzsKLX07Ci0KLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0
ZXI8QXRvbVN0cmluZ0ltcGwqLCB2b2lkPiA6IHB1YmxpYyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJp
bmdJbXBsKiwgdm9pZD4gewotcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKEF0b21TdHJp
bmdJbXBsKiBzdHJpbmcpCi0gICAgICAgIDogU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCos
IHZvaWQ+IHsgc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHN0cmluZykgfQotICAgIHsKLSAgICB9
Ci19OwotCi10ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZywgdm9pZD4g
OiBwdWJsaWMgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCosIHZvaWQ+IHsKLXB1YmxpYzoK
LSAgICBTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBTdHJpbmcmIHN0cmluZykKLSAgICAgICAgOiBT
dHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdJbXBsKiwgdm9pZD4geyBzdHJpbmcuaW1wbCgpIH0KLSAg
ICB7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxBdG9t
U3RyaW5nLCB2b2lkPiA6IHB1YmxpYyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmcsIHZvaWQ+IHsK
K3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIHNpemVfdCBOPgorY2xhc3MgU3RyaW5n
VHlwZUFkYXB0ZXI8Q2hhcmFjdGVyVHlwZVtOXSwgdm9pZD4gOiBwdWJsaWMgU3RyaW5nVHlwZUFk
YXB0ZXI8Y29uc3QgQ2hhcmFjdGVyVHlwZSosIHZvaWQ+IHsKIHB1YmxpYzoKLSAgICBTdHJpbmdU
eXBlQWRhcHRlcihjb25zdCBBdG9tU3RyaW5nJiBzdHJpbmcpCi0gICAgICAgIDogU3RyaW5nVHlw
ZUFkYXB0ZXI8U3RyaW5nLCB2b2lkPiB7IHN0cmluZy5zdHJpbmcoKSB9CisgICAgU3RyaW5nVHlw
ZUFkYXB0ZXIoY29uc3QgQ2hhcmFjdGVyVHlwZSgmY2hhcmFjdGVycylbTl0pCisgICAgICAgIDog
U3RyaW5nVHlwZUFkYXB0ZXI8Y29uc3QgQ2hhcmFjdGVyVHlwZSosIHZvaWQ+IHsgY2hhcmFjdGVy
cyB9CiAgICAgewogICAgIH0KIH07CiAKLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nSW1wbCYsIHZvaWQ+IHsKK3RlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVmlldywgdm9pZD4gewogcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKFN0
cmluZ0ltcGwmIHN0cmluZykKKyAgICBTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBTdHJpbmdWaWV3
JiBzdHJpbmcpCiAgICAgICAgIDogbV9zdHJpbmcgeyBzdHJpbmcgfQogICAgIHsKICAgICB9CiAK
ICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5sZW5ndGgoKTsg
fQogICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmcuaXM4Qml0KCk7IH0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFj
dGVyVHlwZSogZGVzdGluYXRpb24pIGNvbnN0Ci0gICAgewotICAgICAgICBTdHJpbmdWaWV3IHsg
bV9zdHJpbmcgfS5nZXRDaGFyYWN0ZXJzKGRlc3RpbmF0aW9uKTsKLSAgICAgICAgV1RGX1NUUklO
R1RZUEVBREFQVEVSX0NPUElFRF9XVEZfU1RSSU5HKCk7Ci0gICAgfQorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5h
dGlvbikgY29uc3QgeyBtX3N0cmluZy5nZXRDaGFyYWN0ZXJzKGRlc3RpbmF0aW9uKTsgfQogCiBw
cml2YXRlOgotICAgIFN0cmluZ0ltcGwmIG1fc3RyaW5nOworICAgIFN0cmluZ1ZpZXcgbV9zdHJp
bmc7CiB9OwogCi10ZW1wbGF0ZTw+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPEF0b21TdHJpbmdJ
bXBsJiwgdm9pZD4gOiBwdWJsaWMgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nSW1wbCYsIHZvaWQ+
IHsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxULCBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfY29uc3RydWN0aWJsZV92PFN0cmluZ1ZpZXcsIHN0ZDo6ZGVj
YXlfdDxUPj4+PiA6IHB1YmxpYyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdWaWV3LCB2b2lkPiB7
CiBwdWJsaWM6Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIoU3RyaW5nSW1wbCYgc3RyaW5nKQotICAg
ICAgICA6IFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ0ltcGwmLCB2b2lkPiB7IHN0cmluZyB9Cisg
ICAgU3RyaW5nVHlwZUFkYXB0ZXIoY29uc3QgVCYgc3RyaW5nKQorICAgICAgICA6IFN0cmluZ1R5
cGVBZGFwdGVyPFN0cmluZ1ZpZXcsIHZvaWQ+IHsgU3RyaW5nVmlldyB7IHN0cmluZyB9IH0KICAg
ICB7CiAgICAgfQogfTsKQEAgLTM1OCwxNyArMjg5LDE3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
fQogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1faW5kZW50YXRpb24udmFsdWUgKiBOOwogICAgIH0KIAot
ICAgIGJvb2wgaXM4Qml0KCkKKyAgICBib29sIGlzOEJpdCgpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRl
c3RpbmF0aW9uKSBjb25zdAogICAgIHsKICAgICAgICAgc3RkOjpmaWxsX24oZGVzdGluYXRpb24s
IG1faW5kZW50YXRpb24udmFsdWUgKiBOLCAnICcpOwogICAgIH0KQEAgLTQxMCwzMyArMzQxLDI0
IEBAIHByaXZhdGU6CiAgICAgY29uc3QgQVNDSUlDYXNlQ29udmVydGVyJiBtX2NvbnZlcnRlcjsK
IH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0ZXI+Ci1pbmxpbmUgYm9vbCBhcmU4Qml0KEFk
YXB0ZXIgYWRhcHRlcikKLXsKLSAgICByZXR1cm4gYWRhcHRlci5pczhCaXQoKTsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgQWRhcHRlciwgdHlwZW5hbWUuLi4gQWRhcHRlcnM+Ci1pbmxpbmUgYm9v
bCBhcmU4Qml0KEFkYXB0ZXIgYWRhcHRlciwgQWRhcHRlcnMgLi4uYWRhcHRlcnMpCi17Ci0gICAg
cmV0dXJuIGFkYXB0ZXIuaXM4Qml0KCkgJiYgYXJlOEJpdChhZGFwdGVycy4uLik7Ci19Ci0KLXRl
bXBsYXRlPHR5cGVuYW1lIFJlc3VsdFR5cGUsIHR5cGVuYW1lIEFkYXB0ZXI+Ci1pbmxpbmUgdm9p
ZCBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKFJlc3VsdFR5cGUqIHJlc3VsdCwgQWRhcHRl
ciBhZGFwdGVyKQordGVtcGxhdGU8dHlwZW5hbWUuLi4gQWRhcHRlcnM+CitpbmxpbmUgYm9vbCBh
cmU4Qml0KGNvbnN0IEFkYXB0ZXJzJi4uLiBhZGFwdGVycykKIHsKLSAgICBhZGFwdGVyLndyaXRl
VG8ocmVzdWx0KTsKKyAgICByZXR1cm4gKC4uLiAmJiBhZGFwdGVycy5pczhCaXQoKSk7CiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIFJlc3VsdFR5cGUsIHR5cGVuYW1lIEFkYXB0ZXIsIHR5cGVuYW1l
Li4uIEFkYXB0ZXJzPgotaW5saW5lIHZvaWQgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihS
ZXN1bHRUeXBlKiByZXN1bHQsIEFkYXB0ZXIgYWRhcHRlciwgQWRhcHRlcnMgLi4uYWRhcHRlcnMp
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXN1bHRUeXBlLCB0eXBlbmFtZS4uLiBBZGFwdGVycz4KK2lu
bGluZSB2b2lkIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoUmVzdWx0VHlwZSogcmVzdWx0
LCBjb25zdCBBZGFwdGVycyYuLi4gYWRhcHRlcnMpCiB7Ci0gICAgYWRhcHRlci53cml0ZVRvKHJl
c3VsdCk7Ci0gICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihyZXN1bHQgKyBhZGFwdGVy
Lmxlbmd0aCgpLCBhZGFwdGVycy4uLik7CisgICAgdW5zaWduZWQgb2Zmc2V0ID0gMDsKKyAgICAo
Li4uLCBbJl0geworICAgICAgICBhZGFwdGVycy53cml0ZVRvKHJlc3VsdCArIG9mZnNldCk7Cisg
ICAgICAgIG9mZnNldCArPSBhZGFwdGVycy5sZW5ndGgoKTsKKyAgICB9KCkpOwogfQogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlwZW5hbWUuLi4gU3RyaW5nVHlwZUFk
YXB0ZXJzPgotUmVmUHRyPFN0cmluZ0ltcGw+IHRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJz
SW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBib29sIGFyZUFsbEFkYXB0ZXJzOEJpdCwgU3RyaW5n
VHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQordGVt
cGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgorUmVmUHRyPFN0cmluZ0ltcGw+
IHRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJzSW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBi
b29sIGFyZUFsbEFkYXB0ZXJzOEJpdCwgY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXJzJi4uLiBhZGFw
dGVycykKIHsKICAgICBBU1NFUlQobGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKICAgICBp
ZiAoYXJlQWxsQWRhcHRlcnM4Qml0KSB7CkBAIC00NDYsNyArMzY4LDcgQEAgUmVmUHRyPFN0cmlu
Z0ltcGw+IHRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJzSW50ZXJuYWwodW5zaWduZWQgbGVu
Z3RoLCBib29sIGEKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGlmIChi
dWZmZXIpCi0gICAgICAgICAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZlciwg
YWRhcHRlciwgYWRhcHRlcnMuLi4pOworICAgICAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1
bXVsYXRvcihidWZmZXIsIGFkYXB0ZXJzLi4uKTsKIAogICAgICAgICByZXR1cm4gcmVzdWx0SW1w
bDsKICAgICB9CkBAIC00NTcsMzcgKzM3OSwzNyBAQCBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5TWFr
ZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbCh1bnNpZ25lZCBsZW5ndGgsIGJvb2wgYQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChidWZmZXIpCi0gICAgICAgIHN0cmlu
Z1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4uLik7Cisg
ICAgICAgIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVycy4uLik7
CiAKICAgICByZXR1cm4gcmVzdWx0SW1wbDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYywg
dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1hdXRvIGhhbmRsZVdpdGhBZGFwdGVycyhGdW5jJiYg
ZnVuYywgU3RyaW5nVHlwZXMmJiAuLi5zdHJpbmdzKSAtPiBkZWNsdHlwZShhdXRvKQorYXV0byBo
YW5kbGVXaXRoQWRhcHRlcnMoRnVuYyYmIGZ1bmMsIGNvbnN0IFN0cmluZ1R5cGVzJi4uLiBzdHJp
bmdzKSAtPiBkZWNsdHlwZShhdXRvKQogewotICAgIHJldHVybiBmdW5jKFN0cmluZ1R5cGVBZGFw
dGVyPFN0cmluZ1R5cGVzPihzdGQ6OmZvcndhcmQ8U3RyaW5nVHlwZXM+KHN0cmluZ3MpKS4uLik7
CisgICAgcmV0dXJuIGZ1bmMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+KHN0cmluZ3Mp
Li4uKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZUFkYXB0ZXIsIHR5cGVuYW1l
Li4uIFN0cmluZ1R5cGVBZGFwdGVycz4KLVN0cmluZyB0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJz
KFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuLi5hZGFwdGVy
cykKK3RlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVycz4KK1N0cmluZyB0cnlN
YWtlU3RyaW5nRnJvbUFkYXB0ZXJzKGNvbnN0IFN0cmluZ1R5cGVBZGFwdGVycyYuLi4gYWRhcHRl
cnMpCiB7CiAgICAgc3RhdGljX2Fzc2VydChTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVy
aWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7Ci0gICAgYXV0byBzdW0gPSBjaGVja2VkU3VtPGlu
dDMyX3Q+KGFkYXB0ZXIubGVuZ3RoKCksIGFkYXB0ZXJzLmxlbmd0aCgpLi4uKTsKKyAgICBhdXRv
IHN1bSA9IGNoZWNrZWRTdW08aW50MzJfdD4oYWRhcHRlcnMubGVuZ3RoKCkuLi4pOwogICAgIGlm
IChzdW0uaGFzT3ZlcmZsb3dlZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBi
b29sIGFyZUFsbEFkYXB0ZXJzOEJpdCA9IGFyZThCaXQoYWRhcHRlciwgYWRhcHRlcnMuLi4pOwot
ICAgIHJldHVybiB0cnlNYWtlU3RyaW5nSW1wbEZyb21BZGFwdGVyc0ludGVybmFsKHN1bSwgYXJl
QWxsQWRhcHRlcnM4Qml0LCBhZGFwdGVyLCBhZGFwdGVycy4uLik7CisgICAgYm9vbCBhcmVBbGxB
ZGFwdGVyczhCaXQgPSBhcmU4Qml0KGFkYXB0ZXJzLi4uKTsKKyAgICByZXR1cm4gdHJ5TWFrZVN0
cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbChzdW0sIGFyZUFsbEFkYXB0ZXJzOEJpdCwgYWRh
cHRlcnMuLi4pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLVN0cmlu
ZyB0cnlNYWtlU3RyaW5nKFN0cmluZ1R5cGVzIC4uLnN0cmluZ3MpCitTdHJpbmcgdHJ5TWFrZVN0
cmluZyhjb25zdCBTdHJpbmdUeXBlcyYuLi4gc3RyaW5ncykKIHsKICAgICByZXR1cm4gdHJ5TWFr
ZVN0cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlcz4oc3RyaW5n
cykuLi4pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLVN0cmluZyBt
YWtlU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCitTdHJpbmcgbWFrZVN0cmluZyhjb25z
dCBTdHJpbmdUeXBlcyYuLi4gc3RyaW5ncykKIHsKICAgICBTdHJpbmcgcmVzdWx0ID0gdHJ5TWFr
ZVN0cmluZyhzdHJpbmdzLi4uKTsKICAgICBpZiAoIXJlc3VsdCkKQEAgLTQ5NSw0MCArNDE3LDQw
IEBAIFN0cmluZyBtYWtlU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZUFkYXB0ZXIsIHR5cGVu
YW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVycz4KLUF0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmdG
cm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJz
IC4uLmFkYXB0ZXJzKQordGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgor
QXRvbVN0cmluZyB0cnlNYWtlQXRvbVN0cmluZ0Zyb21BZGFwdGVycyhjb25zdCBTdHJpbmdUeXBl
QWRhcHRlcnMmLi4uIGFkYXB0ZXJzKQogewogICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhM
ZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOwotICAgIGF1dG8g
c3VtID0gY2hlY2tlZFN1bTxpbnQzMl90PihhZGFwdGVyLmxlbmd0aCgpLCBhZGFwdGVycy5sZW5n
dGgoKS4uLik7CisgICAgYXV0byBzdW0gPSBjaGVja2VkU3VtPGludDMyX3Q+KGFkYXB0ZXJzLmxl
bmd0aCgpLi4uKTsKICAgICBpZiAoc3VtLmhhc092ZXJmbG93ZWQoKSkKICAgICAgICAgcmV0dXJu
IEF0b21TdHJpbmcoKTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN1bTsKICAgICBBU1NFUlQo
bGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKIAotICAgIGJvb2wgYXJlQWxsQWRhcHRlcnM4
Qml0ID0gYXJlOEJpdChhZGFwdGVyLCBhZGFwdGVycy4uLik7CisgICAgYm9vbCBhcmVBbGxBZGFw
dGVyczhCaXQgPSBhcmU4Qml0KGFkYXB0ZXJzLi4uKTsKICAgICBjb25zdGV4cHIgc2l6ZV90IG1h
eExlbmd0aFRvVXNlU3RhY2tWYXJpYWJsZSA9IDY0OwogICAgIGlmIChsZW5ndGggPCBtYXhMZW5n
dGhUb1VzZVN0YWNrVmFyaWFibGUpIHsKICAgICAgICAgaWYgKGFyZUFsbEFkYXB0ZXJzOEJpdCkg
ewogICAgICAgICAgICAgTENoYXIgYnVmZmVyW21heExlbmd0aFRvVXNlU3RhY2tWYXJpYWJsZV07
Ci0gICAgICAgICAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZlciwgYWRhcHRl
ciwgYWRhcHRlcnMuLi4pOworICAgICAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRv
cihidWZmZXIsIGFkYXB0ZXJzLi4uKTsKICAgICAgICAgICAgIHJldHVybiBBdG9tU3RyaW5nIHsg
YnVmZmVyLCBsZW5ndGggfTsKICAgICAgICAgfQogICAgICAgICBVQ2hhciBidWZmZXJbbWF4TGVu
Z3RoVG9Vc2VTdGFja1ZhcmlhYmxlXTsKLSAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVs
YXRvcihidWZmZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKyAgICAgICAgc3RyaW5nVHlwZUFk
YXB0ZXJBY2N1bXVsYXRvcihidWZmZXIsIGFkYXB0ZXJzLi4uKTsKICAgICAgICAgcmV0dXJuIEF0
b21TdHJpbmcgeyBidWZmZXIsIGxlbmd0aCB9OwogICAgIH0KLSAgICByZXR1cm4gdHJ5TWFrZVN0
cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbChsZW5ndGgsIGFyZUFsbEFkYXB0ZXJzOEJpdCwg
YWRhcHRlciwgYWRhcHRlcnMuLi4pLmdldCgpOworICAgIHJldHVybiB0cnlNYWtlU3RyaW5nSW1w
bEZyb21BZGFwdGVyc0ludGVybmFsKGxlbmd0aCwgYXJlQWxsQWRhcHRlcnM4Qml0LCBhZGFwdGVy
cy4uLikuZ2V0KCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgotQXRv
bVN0cmluZyB0cnlNYWtlQXRvbVN0cmluZyhTdHJpbmdUeXBlcyAuLi5zdHJpbmdzKQorQXRvbVN0
cmluZyB0cnlNYWtlQXRvbVN0cmluZyhjb25zdCBTdHJpbmdUeXBlcyYuLi4gc3RyaW5ncykKIHsK
ICAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4g
U3RyaW5nVHlwZXM+Ci1BdG9tU3RyaW5nIG1ha2VBdG9tU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0
cmluZ3MpCitBdG9tU3RyaW5nIG1ha2VBdG9tU3RyaW5nKGNvbnN0IFN0cmluZ1R5cGVzJi4uLiBz
dHJpbmdzKQogewogICAgIEF0b21TdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZUF0b21TdHJpbmcoc3Ry
aW5ncy4uLik7CiAgICAgaWYgKHJlc3VsdC5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z09wZXJhdG9ycy5oCmluZGV4IDRmNTNjMjRlNjIzNC4uYTVmYjAwZDMyYjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmgKQEAgLTQ2LDE0ICs0NiwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBBdG9tU3RyaW5nKG9wZXJhdG9yIFN0cmluZygpKTsKICAgICB9CiAKLSAg
ICBib29sIGlzOEJpdCgpCisgICAgYm9vbCBpczhCaXQoKSBjb25zdAogICAgIHsKICAgICAgICAg
U3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CiAgICAg
ICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMihtX3N0cmluZzIpOwog
ICAgICAgICByZXR1cm4gYWRhcHRlcjEuaXM4Qml0KCkgJiYgYWRhcHRlcjIuaXM4Qml0KCk7CiAg
ICAgfQogCi0gICAgdm9pZCB3cml0ZVRvKExDaGFyKiBkZXN0aW5hdGlvbikKKyAgICB2b2lkIHdy
aXRlVG8oTENoYXIqIGRlc3RpbmF0aW9uKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlz
OEJpdCgpKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIx
KG1fc3RyaW5nMSk7CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgYWRhcHRlcjIu
d3JpdGVUbyhkZXN0aW5hdGlvbiArIGFkYXB0ZXIxLmxlbmd0aCgpKTsKICAgICB9CiAKLSAgICB2
b2lkIHdyaXRlVG8oVUNoYXIqIGRlc3RpbmF0aW9uKQorICAgIHZvaWQgd3JpdGVUbyhVQ2hhciog
ZGVzdGluYXRpb24pIGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJp
bmdUeXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8
U3RyaW5nVHlwZTI+IGFkYXB0ZXIyKG1fc3RyaW5nMik7CkBAIC03MCw3ICs3MCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgYWRhcHRlcjIud3JpdGVUbyhkZXN0aW5hdGlvbiArIGFkYXB0ZXIxLmxlbmd0
aCgpKTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgoKQorICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMT4g
YWRhcHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlw
ZTI+IGFkYXB0ZXIyKG1fc3RyaW5nMik7CkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiB0ZW1w
bGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlMSwgdHlwZW5hbWUgU3RyaW5nVHlwZTI+CiBjbGFzcyBT
dHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdBcHBlbmQ8U3RyaW5nVHlwZTEsIFN0cmluZ1R5cGUyPj4g
ewogcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKFN0cmluZ0FwcGVuZDxTdHJpbmdUeXBl
MSwgU3RyaW5nVHlwZTI+JiBidWZmZXIpCisgICAgU3RyaW5nVHlwZUFkYXB0ZXIoY29uc3QgU3Ry
aW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIGJ1ZmZlcikKICAgICAgICAgOiBt
X2J1ZmZlciB7IGJ1ZmZlciB9CiAgICAgewogICAgIH0KQEAgLTk1LDcgKzk1LDcgQEAgcHVibGlj
OgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgd3JpdGVUbyhDaGFy
YWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyBtX2J1ZmZlci53cml0ZVRvKGRlc3RpbmF0
aW9uKTsgfQogCiBwcml2YXRlOgotICAgIFN0cmluZ0FwcGVuZDxTdHJpbmdUeXBlMSwgU3RyaW5n
VHlwZTI+JiBtX2J1ZmZlcjsKKyAgICBjb25zdCBTdHJpbmdBcHBlbmQ8U3RyaW5nVHlwZTEsIFN0
cmluZ1R5cGUyPiYgbV9idWZmZXI7CiB9OwogCiBpbmxpbmUgU3RyaW5nQXBwZW5kPGNvbnN0IGNo
YXIqLCBTdHJpbmc+IG9wZXJhdG9yKyhjb25zdCBjaGFyKiBzdHJpbmcxLCBjb25zdCBTdHJpbmcm
IHN0cmluZzIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCmluZGV4IDVjMDBkN2M4OTMyMy4uMzFi
NjdmNDczODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaApAQCAtNjcsOSArNjcsOSBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nVmlldyhjb25zdCBMQ2hhciosIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgU3RyaW5nVmlldyhjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgU3RyaW5n
Vmlldyhjb25zdCBjaGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBTdHJpbmdWaWV3KEFTQ0lJ
TGl0ZXJhbCk7Ci0gICAgQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3KFNwYW48Y29uc3QgTENoYXI+
IGNoYXJhY3RlcnMpIDogU3RyaW5nVmlldyhjaGFyYWN0ZXJzLmRhdGEoKSwgY2hhcmFjdGVycy5z
aXplKCkpIHsgfQotICAgIEFMV0FZU19JTkxJTkUgU3RyaW5nVmlldyhTcGFuPGNvbnN0IFVDaGFy
PiBjaGFyYWN0ZXJzKSA6IFN0cmluZ1ZpZXcoY2hhcmFjdGVycy5kYXRhKCksIGNoYXJhY3RlcnMu
c2l6ZSgpKSB7IH0KKyAgICBTdHJpbmdWaWV3KGNvbnN0IEFTQ0lJTGl0ZXJhbCYpOworICAgIEFM
V0FZU19JTkxJTkUgU3RyaW5nVmlldyhjb25zdCBTcGFuPGNvbnN0IExDaGFyPiYgY2hhcmFjdGVy
cykgOiBTdHJpbmdWaWV3KGNoYXJhY3RlcnMuZGF0YSgpLCBjaGFyYWN0ZXJzLnNpemUoKSkgeyB9
CisgICAgQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3KGNvbnN0IFNwYW48Y29uc3QgVUNoYXI+JiBj
aGFyYWN0ZXJzKSA6IFN0cmluZ1ZpZXcoY2hhcmFjdGVycy5kYXRhKCksIGNoYXJhY3RlcnMuc2l6
ZSgpKSB7IH0KIAogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZ1ZpZXcgZnJvbUxhdGlu
MShjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmdWaWV3IHsgY2hhcmFjdGVy
cyB9OyB9CiAKQEAgLTM4Miw3ICszODIsNyBAQCBpbmxpbmUgU3RyaW5nVmlldzo6U3RyaW5nVmll
dyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgaW5pdGlhbGl6
ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7CiB9
CiAKLWlubGluZSBTdHJpbmdWaWV3OjpTdHJpbmdWaWV3KEFTQ0lJTGl0ZXJhbCBzdHJpbmcpCitp
bmxpbmUgU3RyaW5nVmlldzo6U3RyaW5nVmlldyhjb25zdCBBU0NJSUxpdGVyYWwmIHN0cmluZykK
IHsKICAgICBpbml0aWFsaXplKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkp
OwogfQpAQCAtNjc0LDIxICs2NzQsNiBAQCBpbmxpbmUgdm9pZCBTdHJpbmdWaWV3OjppbnZhbGlk
YXRlKGNvbnN0IFN0cmluZ0ltcGwmKQogCiAjZW5kaWYKIAotdGVtcGxhdGU8PiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjxTdHJpbmdWaWV3LCB2b2lkPiB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nVHlw
ZUFkYXB0ZXIoU3RyaW5nVmlldyBzdHJpbmcpCi0gICAgICAgIDogbV9zdHJpbmcgeyBzdHJpbmcg
fQotICAgIHsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiBtX3N0cmlu
Zy5sZW5ndGgoKTsgfQotICAgIGJvb2wgaXM4Qml0KCkgeyByZXR1cm4gbV9zdHJpbmcuaXM4Qml0
KCk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRlVG8o
Q2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pIHsgbV9zdHJpbmcuZ2V0Q2hhcmFjdGVycyhkZXN0
aW5hdGlvbik7IH0KLQotcHJpdmF0ZToKLSAgICBTdHJpbmdWaWV3IG1fc3RyaW5nOwotfTsKLQog
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZSwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiB2
b2lkIGFwcGVuZChWZWN0b3I8Q2hhcmFjdGVyVHlwZSwgaW5saW5lQ2FwYWNpdHk+JiBidWZmZXIs
IFN0cmluZ1ZpZXcgc3RyaW5nKQogewogICAgIHVuc2lnbmVkIG9sZFNpemUgPSBidWZmZXIuc2l6
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IDQ2YTM3NjJmYWM1My4uNGQ2ZjY1NGY3
N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBB
WElzb2xhdGVkVHJlZTo6dXBkYXRlUHJvcGVydGllc0ZvclNlbGZBbmREZXNjZW5kYW50cyhBY2Nl
c3NpYmlsaXR5T2JqZWN0Jgogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnRp
ZXMoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgY29uc3QgVmVjdG9yPEFYUHJvcGVydHlOYW1lPiYg
cHJvcGVydGllcykKIHsKICAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVBy
b3BlcnRpZXMiX3MpOwotICAgIEFYTE9HKG1ha2VTdHJpbmcoIlVwZGF0aW5nIHByb3BlcnRpZXMg
IiwgcHJvcGVydGllcywgIiBmb3Igb2JqZWN0SUQgIiwgYXhPYmplY3Qub2JqZWN0SUQoKS5sb2dn
aW5nU3RyaW5nKCkpKTsKKyAgICBBWExPRyhtYWtlU3RyaW5nKCJVcGRhdGluZyBwcm9wZXJ0aWVz
ICIsIFNwYW4geyByZWludGVycHJldF9jYXN0PGNvbnN0IFVDaGFyKj4ocHJvcGVydGllcy5kYXRh
KCkpLCBwcm9wZXJ0aWVzLnNpemUoKSB9LCAiIGZvciBvYmplY3RJRCAiLCBheE9iamVjdC5vYmpl
Y3RJRCgpLmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
ICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnR5TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAppbmRleCAxMTU2
MzQxMzRiZDYuLjc4OTMwNDVhYTNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKQEAgLTEwOCw3ICsxMDgs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBJbmNyZW1lbnRpbmcgdGhpcyBudW1iZXIgd2lsbCBkZWxl
dGUgYWxsIGV4aXN0aW5nIGNhY2hlIGNvbnRlbnQgZm9yIGV2ZXJ5b25lLiBEbyB5b3UgcmVhbGx5
IG5lZWQgdG8gZG8gaXQ/CiAgICAgLy8gRklYTUU6IFdoZW4gdGhpcyBpcyBpbmNyZW1lbnRlZCwg
cmVtb3ZlIExlZ2FjeUNlcnRpZmljYXRlSW5mb1R5cGUuCi0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHZlcnNpb24gPSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZlcnNpb24g
PSAxNjsKIAogICAgIFN0cmluZyBiYXNlUGF0aElzb2xhdGVkQ29weSgpIGNvbnN0OwogICAgIFN0
cmluZyB2ZXJzaW9uUGF0aCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwCmluZGV4IDM2M2Q3N2RmZTBmZi4uN2E2NmYy
NTI0OTFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdD
b25jYXRlbmF0ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Q29uY2F0ZW5hdGUuY3BwCkBAIC0yMTYsNCArMjE2LDI0IEBAIFRFU1QoV1RGLCBTdHJpbmdDb25j
YXRlbmF0ZV9UdXBsZSkKICAgICBFWFBFQ1RfU1RSRVEoImhlbGxvIDQyIHdvcmxkIiwgbWFrZVN0
cmluZyhzdGQ6Om1ha2VfdHVwbGUoaGVsbG9Db2RlcG9pbnRzLCAnICcsIHVuc2lnbmVkKDQyKSwg
JyAnLCAid29ybGQiKSkudXRmOCgpLmRhdGEoKSk7CiB9CiAKK1RFU1QoV1RGLCBTdHJpbmdDb25j
YXRlbmF0ZV9TdHJpbmdMaXRlcmFsKQoreworICAgIEVYUEVDVF9TVFJFUSgiaGVsbG8gNDIgd29y
bGQiLCBtYWtlU3RyaW5nKCJoZWxsbyIsICcgJywgNDIsICIgIiwgIndvcmxkIikudXRmOCgpLmRh
dGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0MiB3b3JsZCIsIG1ha2VTdHJpbmcoImhl
bGxvIl9zLCAnICcsIDQyLCAiICJfcywgIndvcmxkIl9zKS51dGY4KCkuZGF0YSgpKTsKKworICAg
IEVYUEVDVF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3RyaW5nKCJoZWxsbyA0MlwwaWdu
b3JlZCIsICcgJywgIndvcmxkIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJo
ZWxsbyA0MiB3b3JsZCIsIG1ha2VTdHJpbmcoImhlbGxvIDQyXDBpZ25vcmVkIl9zLCAnICcsICJ3
b3JsZCIpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgY29uc3QgY2hhciBoZWxsb0NoYXJzW10gPSB7
ICdoJywgJ2UnLCAnbCcsICdsJywgJ28nLCAnXDAnIH07CisgICAgY2hhciBoZWxsb0RhdGFbNjRd
OworICAgIG1lbWNweShoZWxsb0RhdGEsIGhlbGxvQ2hhcnMsIHNpemVvZihoZWxsb0NoYXJzKSk7
CisKKyAgICBhdXRvIGhlbGxvID0gbWFrZVN0cmluZyhoZWxsb0RhdGEpOworICAgIEVYUEVDVF9T
VFJFUSgiaGVsbG8iLCBoZWxsby51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfRVEoNXUsIGhl
bGxvLmxlbmd0aCgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtl
U3RyaW5nKGhlbGxvRGF0YSwgIiA0MiB3b3JsZCIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVD
VF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3RyaW5nKGhlbGxvLCAiIDQyIHdvcmxkIiku
dXRmOCgpLmRhdGEoKSk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464770</attachid>
            <date>2023-01-30 16:23:49 -0800</date>
            <delta_ts>2023-01-30 16:54:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-250017-20230131092348.patch</filename>
            <type>text/plain</type>
            <size>7339</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSAyZjg4MDFhZWI3Y2Q0NTc5ZjUxMjg4NjVmYjNjZDkyODRhNDIwN2RmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFR1ZSwgMzEgSmFuIDIwMjMgMDk6MTU6MTQgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBTdHJpbmdUeXBlQWRhcHRlciBjb25zdHJ1Y3RvciBzaG91bGQgdGFrZSB0aGUgYXJndW1lbnQg
YXMgYQogY29uc3QgbHZhbHVlIHJlZmVyZW5jZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjUwMDE3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCm1ha2VTdHJp
bmcgZmFtaWx5IHVubmVjZXNzYXJ5IGNvcGllZCBvYmplY3RzIHBhc3NlZCBhcyBhcmd1bWVudHMu
ClN0cmluZ1R5cGVBZGFwdGVyIGNvbnN0cnVjdG9yIHNob3VsZCB0YWtlIHRoZSBhcmd1bWVudCBh
cyBhIGNvbnN0Cmx2YWx1ZSByZWZlcmVuY2UuIG1ha2VTdHJpbmcgZmFtaWx5IHRlbXBsYXRlcyBz
aG91bGQgdXNlIHVuaXZlcnNhbApyZWZlcmVuY2VzLgoKKiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlLmg6CihXVEY6OnRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJzSW50
ZXJuYWwpOgooV1RGOjp0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKToKKFdURjo6dHJ5TWFrZVN0
cmluZyk6CihXVEY6Om1ha2VTdHJpbmcpOgooV1RGOjp0cnlNYWtlQXRvbVN0cmluZyk6CihXVEY6
Om1ha2VBdG9tU3RyaW5nKToKKiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5o
OgooV1RGOjpTdHJpbmdBcHBlbmQ6OmlzOEJpdCBjb25zdCk6CihXVEY6OlN0cmluZ0FwcGVuZDo6
d3JpdGVUbyBjb25zdCk6CihXVEY6OlN0cmluZ0FwcGVuZDo6bGVuZ3RoIGNvbnN0KToKKFdURjo6
U3RyaW5nQXBwZW5kOjppczhCaXQpOiBEZWxldGVkLgooV1RGOjpTdHJpbmdBcHBlbmQ6OndyaXRl
VG8pOiBEZWxldGVkLgooV1RGOjpTdHJpbmdBcHBlbmQ6Omxlbmd0aCk6IERlbGV0ZWQuCiogU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3Lmg6Ci0tLQogU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZS5oIHwgMjYgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaCAgIHwgMTIgKysrKysrLS0tLS0tCiBTb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaCAgICAgICAgfCAgNCArKy0tCiAzIGZpbGVzIGNo
YW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAppbmRleCAwMGE5Njc2ZDE1YjguLjA3YzQ1OWRkNmQxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAtNTEsOCArNTEsOCBA
QCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpIHsgcmV0dXJu
IDE7IH0KLSAgICBib29sIGlzOEJpdCgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiAxOyB9CisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCB3
cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBjb25zdCB7ICpkZXN0aW5hdGlvbiA9
IG1fY2hhcmFjdGVyOyB9CiAKIHByaXZhdGU6CkBAIC0zNTgsMTIgKzM1OCwxMiBAQCBwdWJsaWM6
CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpCisgICAgdW5zaWduZWQgbGVu
Z3RoKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2luZGVudGF0aW9uLnZhbHVlICog
TjsKICAgICB9CiAKLSAgICBib29sIGlzOEJpdCgpCisgICAgYm9vbCBpczhCaXQoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtNDM2LDcgKzQzNiw3IEBAIGlu
bGluZSB2b2lkIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoUmVzdWx0VHlwZSogcmVzdWx0
LCBBZGFwdGVyIGFkYXB0ZXIsIEFkCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVB
ZGFwdGVyLCB0eXBlbmFtZS4uLiBTdHJpbmdUeXBlQWRhcHRlcnM+Ci1SZWZQdHI8U3RyaW5nSW1w
bD4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbCh1bnNpZ25lZCBsZW5ndGgs
IGJvb2wgYXJlQWxsQWRhcHRlcnM4Qml0LCBTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJp
bmdUeXBlQWRhcHRlcnMgLi4uYWRhcHRlcnMpCitSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5TWFrZVN0
cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbCh1bnNpZ25lZCBsZW5ndGgsIGJvb2wgYXJlQWxs
QWRhcHRlcnM4Qml0LCBjb25zdCBTdHJpbmdUeXBlQWRhcHRlciYgYWRhcHRlciwgY29uc3QgU3Ry
aW5nVHlwZUFkYXB0ZXJzJiAuLi5hZGFwdGVycykKIHsKICAgICBBU1NFUlQobGVuZ3RoIDw9IFN0
cmluZzo6TWF4TGVuZ3RoKTsKICAgICBpZiAoYXJlQWxsQWRhcHRlcnM4Qml0KSB7CkBAIC00Njks
NyArNDY5LDcgQEAgYXV0byBoYW5kbGVXaXRoQWRhcHRlcnMoRnVuYyYmIGZ1bmMsIFN0cmluZ1R5
cGVzJiYgLi4uc3RyaW5ncykgLT4gZGVjbHR5cGUoYXV0bykKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgU3RyaW5nVHlwZUFkYXB0ZXIsIHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVycz4KLVN0
cmluZyB0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIs
IFN0cmluZ1R5cGVBZGFwdGVycyAuLi5hZGFwdGVycykKK1N0cmluZyB0cnlNYWtlU3RyaW5nRnJv
bUFkYXB0ZXJzKGNvbnN0IFN0cmluZ1R5cGVBZGFwdGVyJiBhZGFwdGVyLCBjb25zdCBTdHJpbmdU
eXBlQWRhcHRlcnMmIC4uLmFkYXB0ZXJzKQogewogICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpN
YXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOwogICAgIGF1
dG8gc3VtID0gY2hlY2tlZFN1bTxpbnQzMl90PihhZGFwdGVyLmxlbmd0aCgpLCBhZGFwdGVycy5s
ZW5ndGgoKS4uLik7CkBAIC00ODEsMTUgKzQ4MSwxNSBAQCBTdHJpbmcgdHJ5TWFrZVN0cmluZ0Zy
b21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWRhcHRlcnMg
LgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLVN0cmluZyB0cnlNYWtl
U3RyaW5nKFN0cmluZ1R5cGVzIC4uLnN0cmluZ3MpCitTdHJpbmcgdHJ5TWFrZVN0cmluZyhTdHJp
bmdUeXBlcyYmIC4uLnN0cmluZ3MpCiB7Ci0gICAgcmV0dXJuIHRyeU1ha2VTdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKKyAgICBy
ZXR1cm4gdHJ5TWFrZVN0cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlcjxzdGQ6OmRl
Y2F5X3Q8U3RyaW5nVHlwZXM+PihzdGQ6OmZvcndhcmQ8U3RyaW5nVHlwZXM+KHN0cmluZ3MpKS4u
Lik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgotU3RyaW5nIG1ha2VT
dHJpbmcoU3RyaW5nVHlwZXMuLi4gc3RyaW5ncykKK1N0cmluZyBtYWtlU3RyaW5nKFN0cmluZ1R5
cGVzJiYuLi4gc3RyaW5ncykKIHsKLSAgICBTdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZVN0cmluZyhz
dHJpbmdzLi4uKTsKKyAgICBTdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZVN0cmluZyhzdGQ6OmZvcndh
cmQ8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
Q1JBU0goKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTI0LDEzICs1MjQsMTMgQEAgQXRvbVN0
cmluZyB0cnlNYWtlQXRvbVN0cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFw
dGVyLCBTdHJpbmdUeXBlQWQKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgogQXRv
bVN0cmluZyB0cnlNYWtlQXRvbVN0cmluZyhTdHJpbmdUeXBlcyAuLi5zdHJpbmdzKQogewotICAg
IHJldHVybiB0cnlNYWtlQXRvbVN0cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlcjxT
dHJpbmdUeXBlcz4oc3RyaW5ncykuLi4pOworICAgIHJldHVybiB0cnlNYWtlQXRvbVN0cmluZ0Zy
b21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlcjxzdGQ6OmRlY2F5X3Q8U3RyaW5nVHlwZXM+Pihz
dGQ6OmZvcndhcmQ8U3RyaW5nVHlwZXM+KHN0cmluZ3MpKS4uLik7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgotQXRvbVN0cmluZyBtYWtlQXRvbVN0cmluZyhTdHJpbmdU
eXBlcy4uLiBzdHJpbmdzKQorQXRvbVN0cmluZyBtYWtlQXRvbVN0cmluZyhTdHJpbmdUeXBlcyYm
Li4uIHN0cmluZ3MpCiB7Ci0gICAgQXRvbVN0cmluZyByZXN1bHQgPSB0cnlNYWtlQXRvbVN0cmlu
ZyhzdHJpbmdzLi4uKTsKKyAgICBBdG9tU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VBdG9tU3RyaW5n
KHN0ZDo6Zm9yd2FyZDxTdHJpbmdUeXBlcz4oc3RyaW5ncykuLi4pOwogICAgIGlmIChyZXN1bHQu
aXNOdWxsKCkpCiAgICAgICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCmluZGV4IDRmNTNjMjRlNjIzNC4uYTVmYjAwZDMyYjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmgKQEAgLTQ2LDE0ICs0NiwxNCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBdG9tU3RyaW5nKG9wZXJhdG9yIFN0cmluZygpKTsK
ICAgICB9CiAKLSAgICBib29sIGlzOEJpdCgpCisgICAgYm9vbCBpczhCaXQoKSBjb25zdAogICAg
IHsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3Ry
aW5nMSk7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMiht
X3N0cmluZzIpOwogICAgICAgICByZXR1cm4gYWRhcHRlcjEuaXM4Qml0KCkgJiYgYWRhcHRlcjIu
aXM4Qml0KCk7CiAgICAgfQogCi0gICAgdm9pZCB3cml0ZVRvKExDaGFyKiBkZXN0aW5hdGlvbikK
KyAgICB2b2lkIHdyaXRlVG8oTENoYXIqIGRlc3RpbmF0aW9uKSBjb25zdAogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzOEJpdCgpKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlw
ZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgYWRhcHRlcjIud3JpdGVUbyhkZXN0aW5hdGlvbiArIGFkYXB0ZXIxLmxlbmd0aCgpKTsKICAg
ICB9CiAKLSAgICB2b2lkIHdyaXRlVG8oVUNoYXIqIGRlc3RpbmF0aW9uKQorICAgIHZvaWQgd3Jp
dGVUbyhVQ2hhciogZGVzdGluYXRpb24pIGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBl
QWRhcHRlcjxTdHJpbmdUeXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5n
VHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTI+IGFkYXB0ZXIyKG1fc3RyaW5nMik7CkBAIC03MCw3ICs3
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgYWRhcHRlcjIud3JpdGVUbyhkZXN0aW5hdGlvbiArIGFk
YXB0ZXIxLmxlbmd0aCgpKTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgoKQorICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxT
dHJpbmdUeXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVHlwZTI+IGFkYXB0ZXIyKG1fc3RyaW5nMik7CkBAIC04NSw3ICs4NSw3IEBAIHBy
aXZhdGU6CiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlMSwgdHlwZW5hbWUgU3RyaW5nVHlw
ZTI+CiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdBcHBlbmQ8U3RyaW5nVHlwZTEsIFN0
cmluZ1R5cGUyPj4gewogcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVyKFN0cmluZ0FwcGVu
ZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+JiBidWZmZXIpCisgICAgU3RyaW5nVHlwZUFkYXB0
ZXIoY29uc3QgU3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIGJ1ZmZlcikK
ICAgICAgICAgOiBtX2J1ZmZlciB7IGJ1ZmZlciB9CiAgICAgewogICAgIH0KQEAgLTk1LDcgKzk1
LDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQg
d3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyBtX2J1ZmZlci53cml0
ZVRvKGRlc3RpbmF0aW9uKTsgfQogCiBwcml2YXRlOgotICAgIFN0cmluZ0FwcGVuZDxTdHJpbmdU
eXBlMSwgU3RyaW5nVHlwZTI+JiBtX2J1ZmZlcjsKKyAgICBjb25zdCBTdHJpbmdBcHBlbmQ8U3Ry
aW5nVHlwZTEsIFN0cmluZ1R5cGUyPiYgbV9idWZmZXI7CiB9OwogCiBpbmxpbmUgU3RyaW5nQXBw
ZW5kPGNvbnN0IGNoYXIqLCBTdHJpbmc+IG9wZXJhdG9yKyhjb25zdCBjaGFyKiBzdHJpbmcxLCBj
b25zdCBTdHJpbmcmIHN0cmluZzIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1ZpZXcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCmluZGV4IDVjMDBk
N2M4OTMyMy4uNDZkMWQ5ODMyNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1ZpZXcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaApAQCAtNjgx
LDggKzY4MSw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgbGVuZ3Ro
KCkgeyByZXR1cm4gbV9zdHJpbmcubGVuZ3RoKCk7IH0KLSAgICBib29sIGlzOEJpdCgpIHsgcmV0
dXJuIG1fc3RyaW5nLmlzOEJpdCgpOyB9CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdHJpbmcubGVuZ3RoKCk7IH0KKyAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0
dXJuIG1fc3RyaW5nLmlzOEJpdCgpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSB7IG1fc3RyaW5n
LmdldENoYXJhY3RlcnMoZGVzdGluYXRpb24pOyB9CiAKIHByaXZhdGU6Cg==
</data>
<flag name="commit-queue"
          id="492945"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464771</attachid>
            <date>2023-01-30 18:07:22 -0800</date>
            <delta_ts>2023-01-31 19:53:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-250017-20230131110721.patch</filename>
            <type>text/plain</type>
            <size>12474</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSBjNWM3NmM4YzkxZTM2MDJiZTUxZGRlY2E0ZDM5ZTNjZDY4ODhmY2NkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFR1ZSwgMzEgSmFuIDIwMjMgMDk6MTU6MTQgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBTdHJpbmdUeXBlQWRhcHRlciBjb25zdHJ1Y3RvciBzaG91bGQgdGFrZSB0aGUgYXJndW1lbnQg
YXMgYQogY29uc3QgbHZhbHVlIHJlZmVyZW5jZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjUwMDE3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCm1ha2VTdHJp
bmcgZmFtaWx5IHVubmVjZXNzYXJ5IGNvcGllZCBvYmplY3RzIHBhc3NlZCBhcyBhcmd1bWVudHMu
IFNvbWUKbm9uLXRyaXZpYWwgdHlwZSBTdHJpbmdUeXBlQWRhcHRlciBjb25zdHJ1Y3RvciBzaG91
bGQgdGFrZSBhcmd1bWVudHMKYXMgYSBjb25zdCBsdmFsdWUgcmVmZXJlbmNlLiBtYWtlU3RyaW5n
IGZhbWlseSB0ZW1wbGF0ZXMgc2hvdWxkIHVzZQp1bml2ZXJzYWwgcmVmZXJlbmNlcy4KClRoZSBh
Ym92ZSBjaGFuZ2UgaW50cm9kdWNlZCB0d28gc3RyYW5nZSBsaW5rYWdlIGVycm9ycy4gTGlua2lu
ZwpKYXZhU2NyaXB0Q29yZSByZXBvcnRlZCBhIHdlYWsgZXh0ZXJuYWwgc3ltYm9sCldURjo6SlNP
TkltcGw6OlZhbHVlOjptYXhEZXB0aC4gTGlua2luZyBXZWJLaXQgcmVwb3J0ZWQgYW4gdW5kZWZp
bmVkCnN5bWJvbHMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OnZlcnNpb24uCgpUbyBm
aXggdGhlbSwgc3RvcHBlZCBleHBvcnRpbmcgVmFsdWU6Om1heERlcHRoIGJ5IG5vdCBtYXJraW5n
IHRoZQp3aG9sZSBjbGFzcyBhcyBXVEZfRVhQT1JUX1BSSVZBVEUsIGFuZCBjaGFuZ2VkIFN0b3Jh
Z2U6OnZlcnNpb24gdG8KY29uc3RleHByLgoKKiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0Nv
bmNhdGVuYXRlLmg6CihXVEY6OnRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJzSW50ZXJuYWwp
OgooV1RGOjp0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKToKKFdURjo6dHJ5TWFrZVN0cmluZyk6
CihXVEY6Om1ha2VTdHJpbmcpOgooV1RGOjp0cnlNYWtlQXRvbVN0cmluZyk6CihXVEY6Om1ha2VB
dG9tU3RyaW5nKToKKiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oOgooV1RG
OjpTdHJpbmdBcHBlbmQ6OmlzOEJpdCBjb25zdCk6CihXVEY6OlN0cmluZ0FwcGVuZDo6d3JpdGVU
byBjb25zdCk6CihXVEY6OlN0cmluZ0FwcGVuZDo6bGVuZ3RoIGNvbnN0KToKKFdURjo6U3RyaW5n
QXBwZW5kOjppczhCaXQpOiBEZWxldGVkLgooV1RGOjpTdHJpbmdBcHBlbmQ6OndyaXRlVG8pOiBE
ZWxldGVkLgooV1RGOjpTdHJpbmdBcHBlbmQ6Omxlbmd0aCk6IERlbGV0ZWQuCiogU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CiogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5jcHA6CihKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6
OmRpc3BsYXlOYW1lKToKKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxh
eU5hbWVGb3JKU09OVGVzdHMpOgoqIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaDoKKiBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaDoKLS0t
CiAuLi4vcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCAgICAgICAgICAgICAgfCAgNCArLS0K
IFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaCAgICAgICAgICAgICAgICAgICB8IDM2ICsrKysr
KysrKy0tLS0tLS0tLS0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaCAg
ICAgICB8IDI2ICsrKysrKystLS0tLS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJh
dG9ycy5oICAgICAgICAgfCAxMiArKystLS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1Zp
ZXcuaCAgICAgICAgICAgICAgfCAgNCArLS0KIC4uLi9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdl
LmggICAgICAgICAgICAgICB8ICAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMo
KyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggNWQzYjc2ZGUxNGE5Li5kZmJiYWFhZWEzZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuY3BwCkBAIC04MzQsNyArODM0LDcgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNr
RnJhbWU6OmRpc3BsYXlOYW1lKFZNJiB2bSkKICAgICBjYXNlIEZyYW1lVHlwZTo6V2FzbToKICNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmICh3YXNtSW5kZXhPck5hbWUpCi0gICAg
ICAgICAgICByZXR1cm4gbWFrZVN0cmluZyh3YXNtSW5kZXhPck5hbWUudmFsdWUoKSk7CisgICAg
ICAgICAgICByZXR1cm4gV2FzbTo6bWFrZVN0cmluZyh3YXNtSW5kZXhPck5hbWUudmFsdWUoKSk7
CiAjZW5kaWYKICAgICAgICAgcmV0dXJuICIod2FzbSkiX3M7CiAKQEAgLTg3OCw3ICs4NzgsNyBA
QCBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWVGb3JKU09O
VGVzdHMoVk0mIHZtKQogICAgIGNhc2UgRnJhbWVUeXBlOjpXYXNtOiB7CiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQogICAgICAgICBpZiAod2FzbUluZGV4T3JOYW1lKQotICAgICAgICAgICAgcmV0
dXJuIG1ha2VTdHJpbmcod2FzbUluZGV4T3JOYW1lLnZhbHVlKCkpOworICAgICAgICAgICAgcmV0
dXJuIFdhc206Om1ha2VTdHJpbmcod2FzbUluZGV4T3JOYW1lLnZhbHVlKCkpOwogI2VuZGlmCiAg
ICAgICAgIHJldHVybiAiKHdhc20pIl9zOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0pTT05WYWx1ZXMuaCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAppbmRleCBkNjNk
Y2IxODU5MGQuLjgyNGVhODM0ODhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSlNPTlZh
bHVlcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaApAQCAtNTAsNyArNTAsNyBA
QCBjbGFzcyBPYmplY3Q7CiBjbGFzcyBPYmplY3RCYXNlOwogCiAvLyBGSVhNRTogdW5pZnkgdGhp
cyBKU09OIHBhcnNlciB3aXRoIEpTT05QYXJzZSBpbiBKYXZhU2NyaXB0Q29yZS4KLWNsYXNzIFdU
Rl9FWFBPUlRfUFJJVkFURSBWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFZhbHVlPiB7CitjbGFz
cyBWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFZhbHVlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBpbnQgbWF4RGVwdGggPSAxMDAwOwogCkBAIC03MiwxMSArNzIsMTEgQEAgcHVi
bGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxWYWx1ZT4gbnVsbCgpOwot
ICAgIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShib29sKTsKLSAgICBzdGF0aWMgUmVmPFZhbHVl
PiBjcmVhdGUoaW50KTsKLSAgICBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoZG91YmxlKTsKLSAg
ICBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBSZWY8VmFsdWU+IG51bGwoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGJvb2wpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoaW50KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGRvdWJsZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKICAgICB0ZW1wbGF0ZTxj
bGFzcyBUPgogICAgIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShUKSA9IGRlbGV0ZTsKIApAQCAt
OTMsMjcgKzkzLDI3IEBAIHB1YmxpYzoKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBl
OjpOdWxsOyB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFzQm9vbGVhbigpIGNvbnN0Owot
ICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBhc0ludGVnZXIoKSBjb25zdDsKLSAgICBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gYXNEb3VibGUoKSBjb25zdDsKLSAgICBTdHJpbmcgYXNTdHJpbmcoKSBjb25z
dDsKLSAgICBSZWZQdHI8VmFsdWU+IGFzVmFsdWUoKTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxPYmpl
Y3Q+IGFzT2JqZWN0KCk7Ci0gICAgdmlydHVhbCBSZWZQdHI8Y29uc3QgT2JqZWN0PiBhc09iamVj
dCgpIGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFz
Qm9vbGVhbigpIGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPGlu
dD4gYXNJbnRlZ2VyKCkgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPiBhc0RvdWJsZSgpIGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJp
bmcgYXNTdHJpbmcoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPFZhbHVl
PiBhc1ZhbHVlKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgUmVmUHRyPE9iamVj
dD4gYXNPYmplY3QoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCBSZWZQdHI8Y29u
c3QgT2JqZWN0PiBhc09iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgUmVmUHRyPEFycmF5PiBh
c0FycmF5KCk7CiAKLSAgICBzdGF0aWMgUmVmUHRyPFZhbHVlPiBwYXJzZUpTT04oU3RyaW5nVmll
dyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWZQdHI8VmFsdWU+IHBhcnNlSlNP
TihTdHJpbmdWaWV3KTsKICAgICBzdGF0aWMgdm9pZCBlc2NhcGVTdHJpbmcoU3RyaW5nQnVpbGRl
ciYsIFN0cmluZ1ZpZXcpOwogCi0gICAgU3RyaW5nIHRvSlNPTlN0cmluZygpIGNvbnN0OworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgdG9KU09OU3RyaW5nKCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlSlNPTihTdHJpbmdCdWlsZGVyJiBvdXRwdXQpIGNvbnN0OwogCiAgICAg
dmlydHVhbCBzaXplX3QgbWVtb3J5Q29zdCgpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzE3OTg0Nz4gcmVtb3ZlIHRoZXNlIGZ1bmN0aW9ucyB3aGVuIGxlZ2Fj
eSBJbnNwZWN0b3JPYmplY3Qgc3ltYm9scyBhcmUgbm8gbG9uZ2VyIG5lZWRlZC4KLSAgICBib29s
IGFzRG91YmxlKGRvdWJsZSYpIGNvbnN0OwotICAgIGJvb2wgYXNJbnRlZ2VyKGludCYpIGNvbnN0
OwotICAgIGJvb2wgYXNTdHJpbmcoU3RyaW5nJikgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGJvb2wgYXNEb3VibGUoZG91YmxlJikgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IGJvb2wgYXNJbnRlZ2VyKGludCYpIGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29s
IGFzU3RyaW5nKFN0cmluZyYpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgVmFsdWUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCmluZGV4IDAwYTk2NzZkMTViOC4uMDdj
NDU5ZGQ2ZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCkBAIC01
MSw4ICs1MSw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgbGVuZ3Ro
KCkgeyByZXR1cm4gMTsgfQotICAgIGJvb2wgaXM4Qml0KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIDE7IH0KKyAgICBib29sIGlzOEJpdCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pIGNvbnN0IHsgKmRl
c3RpbmF0aW9uID0gbV9jaGFyYWN0ZXI7IH0KIAogcHJpdmF0ZToKQEAgLTM1OCwxMiArMzU4LDEy
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkKKyAgICB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1faW5kZW50YXRp
b24udmFsdWUgKiBOOwogICAgIH0KIAotICAgIGJvb2wgaXM4Qml0KCkKKyAgICBib29sIGlzOEJp
dCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC00MzYsNyAr
NDM2LDcgQEAgaW5saW5lIHZvaWQgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihSZXN1bHRU
eXBlKiByZXN1bHQsIEFkYXB0ZXIgYWRhcHRlciwgQWQKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
U3RyaW5nVHlwZUFkYXB0ZXIsIHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVycz4KLVJlZlB0
cjxTdHJpbmdJbXBsPiB0cnlNYWtlU3RyaW5nSW1wbEZyb21BZGFwdGVyc0ludGVybmFsKHVuc2ln
bmVkIGxlbmd0aCwgYm9vbCBhcmVBbGxBZGFwdGVyczhCaXQsIFN0cmluZ1R5cGVBZGFwdGVyIGFk
YXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuLi5hZGFwdGVycykKK1JlZlB0cjxTdHJpbmdJbXBs
PiB0cnlNYWtlU3RyaW5nSW1wbEZyb21BZGFwdGVyc0ludGVybmFsKHVuc2lnbmVkIGxlbmd0aCwg
Ym9vbCBhcmVBbGxBZGFwdGVyczhCaXQsIGNvbnN0IFN0cmluZ1R5cGVBZGFwdGVyJiBhZGFwdGVy
LCBjb25zdCBTdHJpbmdUeXBlQWRhcHRlcnMmIC4uLmFkYXB0ZXJzKQogewogICAgIEFTU0VSVChs
ZW5ndGggPD0gU3RyaW5nOjpNYXhMZW5ndGgpOwogICAgIGlmIChhcmVBbGxBZGFwdGVyczhCaXQp
IHsKQEAgLTQ2OSw3ICs0NjksNyBAQCBhdXRvIGhhbmRsZVdpdGhBZGFwdGVycyhGdW5jJiYgZnVu
YywgU3RyaW5nVHlwZXMmJiAuLi5zdHJpbmdzKSAtPiBkZWNsdHlwZShhdXRvKQogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlwZW5hbWUuLi4gU3RyaW5nVHlwZUFk
YXB0ZXJzPgotU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0
ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQorU3RyaW5nIHRyeU1h
a2VTdHJpbmdGcm9tQWRhcHRlcnMoY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXImIGFkYXB0ZXIsIGNv
bnN0IFN0cmluZ1R5cGVBZGFwdGVycyYgLi4uYWRhcHRlcnMpCiB7CiAgICAgc3RhdGljX2Fzc2Vy
dChTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgo
KSk7CiAgICAgYXV0byBzdW0gPSBjaGVja2VkU3VtPGludDMyX3Q+KGFkYXB0ZXIubGVuZ3RoKCks
IGFkYXB0ZXJzLmxlbmd0aCgpLi4uKTsKQEAgLTQ4MSwxNSArNDgxLDE1IEBAIFN0cmluZyB0cnlN
YWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5
cGVBZGFwdGVycyAuCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgotU3Ry
aW5nIHRyeU1ha2VTdHJpbmcoU3RyaW5nVHlwZXMgLi4uc3RyaW5ncykKK1N0cmluZyB0cnlNYWtl
U3RyaW5nKFN0cmluZ1R5cGVzJiYgLi4uc3RyaW5ncykKIHsKLSAgICByZXR1cm4gdHJ5TWFrZVN0
cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlcz4oc3RyaW5ncyku
Li4pOworICAgIHJldHVybiB0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFw
dGVyPHN0ZDo6ZGVjYXlfdDxTdHJpbmdUeXBlcz4+KHN0ZDo6Zm9yd2FyZDxTdHJpbmdUeXBlcz4o
c3RyaW5ncykpLi4uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1T
dHJpbmcgbWFrZVN0cmluZyhTdHJpbmdUeXBlcy4uLiBzdHJpbmdzKQorU3RyaW5nIG1ha2VTdHJp
bmcoU3RyaW5nVHlwZXMmJi4uLiBzdHJpbmdzKQogewotICAgIFN0cmluZyByZXN1bHQgPSB0cnlN
YWtlU3RyaW5nKHN0cmluZ3MuLi4pOworICAgIFN0cmluZyByZXN1bHQgPSB0cnlNYWtlU3RyaW5n
KHN0ZDo6Zm9yd2FyZDxTdHJpbmdUeXBlcz4oc3RyaW5ncykuLi4pOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC01MjQsMTMgKzUyNCwx
MyBAQCBBdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVB
ZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5n
VHlwZXM+CiBBdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5nKFN0cmluZ1R5cGVzIC4uLnN0cmlu
Z3MpCiB7Ci0gICAgcmV0dXJuIHRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5
cGVBZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7CisgICAgcmV0dXJuIHRyeU1ha2VB
dG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyPHN0ZDo6ZGVjYXlfdDxTdHJp
bmdUeXBlcz4+KHN0ZDo6Zm9yd2FyZDxTdHJpbmdUeXBlcz4oc3RyaW5ncykpLi4uKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1BdG9tU3RyaW5nIG1ha2VBdG9tU3Ry
aW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCitBdG9tU3RyaW5nIG1ha2VBdG9tU3RyaW5nKFN0
cmluZ1R5cGVzJiYuLi4gc3RyaW5ncykKIHsKLSAgICBBdG9tU3RyaW5nIHJlc3VsdCA9IHRyeU1h
a2VBdG9tU3RyaW5nKHN0cmluZ3MuLi4pOworICAgIEF0b21TdHJpbmcgcmVzdWx0ID0gdHJ5TWFr
ZUF0b21TdHJpbmcoc3RkOjpmb3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7CiAgICAg
aWYgKHJlc3VsdC5pc051bGwoKSkKICAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gcmVzdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmgKaW5kZXggNGY1M2MyNGU2MjM0Li5h
NWZiMDBkMzJiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0
b3JzLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaApAQCAtNDYs
MTQgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEF0b21TdHJpbmcob3BlcmF0b3Ig
U3RyaW5nKCkpOwogICAgIH0KIAotICAgIGJvb2wgaXM4Qml0KCkKKyAgICBib29sIGlzOEJpdCgp
IGNvbnN0CiAgICAgewogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMT4gYWRh
cHRlcjEobV9zdHJpbmcxKTsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTI+
IGFkYXB0ZXIyKG1fc3RyaW5nMik7CiAgICAgICAgIHJldHVybiBhZGFwdGVyMS5pczhCaXQoKSAm
JiBhZGFwdGVyMi5pczhCaXQoKTsKICAgICB9CiAKLSAgICB2b2lkIHdyaXRlVG8oTENoYXIqIGRl
c3RpbmF0aW9uKQorICAgIHZvaWQgd3JpdGVUbyhMQ2hhciogZGVzdGluYXRpb24pIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQoaXM4Qml0KCkpOwogICAgICAgICBTdHJpbmdUeXBlQWRhcHRl
cjxTdHJpbmdUeXBlMT4gYWRhcHRlcjEobV9zdHJpbmcxKTsKQEAgLTYyLDcgKzYyLDcgQEAgcHVi
bGljOgogICAgICAgICBhZGFwdGVyMi53cml0ZVRvKGRlc3RpbmF0aW9uICsgYWRhcHRlcjEubGVu
Z3RoKCkpOwogICAgIH0KIAotICAgIHZvaWQgd3JpdGVUbyhVQ2hhciogZGVzdGluYXRpb24pCisg
ICAgdm9pZCB3cml0ZVRvKFVDaGFyKiBkZXN0aW5hdGlvbikgY29uc3QKICAgICB7CiAgICAgICAg
IFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBhZGFwdGVyMShtX3N0cmluZzEpOwogICAg
ICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMj4gYWRhcHRlcjIobV9zdHJpbmcyKTsK
QEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgICAgICBhZGFwdGVyMi53cml0ZVRvKGRlc3Rp
bmF0aW9uICsgYWRhcHRlcjEubGVuZ3RoKCkpOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGxlbmd0
aCgpCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QKICAgICB7CiAgICAgICAgIFN0cmluZ1R5
cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBhZGFwdGVyMShtX3N0cmluZzEpOwogICAgICAgICBTdHJp
bmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMj4gYWRhcHRlcjIobV9zdHJpbmcyKTsKQEAgLTg1LDcg
Kzg1LDcgQEAgcHJpdmF0ZToKIHRlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGUxLCB0eXBlbmFt
ZSBTdHJpbmdUeXBlMj4KIGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ0FwcGVuZDxTdHJp
bmdUeXBlMSwgU3RyaW5nVHlwZTI+PiB7CiBwdWJsaWM6Ci0gICAgU3RyaW5nVHlwZUFkYXB0ZXIo
U3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIGJ1ZmZlcikKKyAgICBTdHJp
bmdUeXBlQWRhcHRlcihjb25zdCBTdHJpbmdBcHBlbmQ8U3RyaW5nVHlwZTEsIFN0cmluZ1R5cGUy
PiYgYnVmZmVyKQogICAgICAgICA6IG1fYnVmZmVyIHsgYnVmZmVyIH0KICAgICB7CiAgICAgfQpA
QCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUqIGRlc3RpbmF0aW9uKSBjb25zdCB7IG1f
YnVmZmVyLndyaXRlVG8oZGVzdGluYXRpb24pOyB9CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nQXBw
ZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIG1fYnVmZmVyOworICAgIGNvbnN0IFN0cmlu
Z0FwcGVuZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+JiBtX2J1ZmZlcjsKIH07CiAKIGlubGlu
ZSBTdHJpbmdBcHBlbmQ8Y29uc3QgY2hhciosIFN0cmluZz4gb3BlcmF0b3IrKGNvbnN0IGNoYXIq
IHN0cmluZzEsIGNvbnN0IFN0cmluZyYgc3RyaW5nMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgK
aW5kZXggNWMwMGQ3Yzg5MzIzLi40NmQxZDk4MzI3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nVmlldy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmll
dy5oCkBAIC02ODEsOCArNjgxLDggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB1bnNp
Z25lZCBsZW5ndGgoKSB7IHJldHVybiBtX3N0cmluZy5sZW5ndGgoKTsgfQotICAgIGJvb2wgaXM4
Qml0KCkgeyByZXR1cm4gbV9zdHJpbmcuaXM4Qml0KCk7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5sZW5ndGgoKTsgfQorICAgIGJvb2wgaXM4Qml0KCkg
Y29uc3QgeyByZXR1cm4gbV9zdHJpbmcuaXM4Qml0KCk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24p
IHsgbV9zdHJpbmcuZ2V0Q2hhcmFjdGVycyhkZXN0aW5hdGlvbik7IH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RvcmFnZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdG9yYWdlLmgKaW5kZXggMTE1NjM0MTM0YmQ2Li43ODkzMDQ1YWEzZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Rv
cmFnZS5oCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW5jcmVtZW50aW5n
IHRoaXMgbnVtYmVyIHdpbGwgZGVsZXRlIGFsbCBleGlzdGluZyBjYWNoZSBjb250ZW50IGZvciBl
dmVyeW9uZS4gRG8geW91IHJlYWxseSBuZWVkIHRvIGRvIGl0PwogICAgIC8vIEZJWE1FOiBXaGVu
IHRoaXMgaXMgaW5jcmVtZW50ZWQsIHJlbW92ZSBMZWdhY3lDZXJ0aWZpY2F0ZUluZm9UeXBlLgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2ZXJzaW9uID0gMTY7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCB2ZXJzaW9uID0gMTY7CiAKICAgICBTdHJpbmcgYmFzZVBhdGhJc29sYXRl
ZENvcHkoKSBjb25zdDsKICAgICBTdHJpbmcgdmVyc2lvblBhdGgoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464787</attachid>
            <date>2023-01-31 19:53:42 -0800</date>
            <delta_ts>2023-02-01 16:11:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-250017-20230201125341.patch</filename>
            <type>text/plain</type>
            <size>15109</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSAyOTQ5MmNlZTU5YzliOTMwNjc4ZGRjOTFjNWIxOTQyMmM5MGY3MWM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFR1ZSwgMzEgSmFuIDIwMjMgMDk6MTU6MTQgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBtYWtlU3RyaW5nIGFuZCBtYWtlQXRvbVN0cmluZyBzaG91bGRuJ3QgY29weSBhcmd1bWVudHMK
IG9iamVjdHMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MDAxNwoK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgptYWtlU3RyaW5nIGZhbWlseSB1bm5lY2Vzc2Fy
eSBjb3BpZWQgb2JqZWN0cyBwYXNzZWQgYXMgYXJndW1lbnRzLiBUaGV5CnNob3VsZCB0YWtlIHJl
ZmVyZW5jZXMgYW5kIHBhc3MgdGhlbSB0byBTdHJpbmdUeXBlQWRhcHRlci4KClRoZSBhYm92ZSBj
aGFuZ2UgaW50cm9kdWNlZCB0d28gc3RyYW5nZSBsaW5rYWdlIGVycm9ycy4gTGlua2luZwpKYXZh
U2NyaXB0Q29yZSByZXBvcnRlZCBhIHdlYWsgZXh0ZXJuYWwgc3ltYm9sCldURjo6SlNPTkltcGw6
OlZhbHVlOjptYXhEZXB0aC4gTGlua2luZyBXZWJLaXQgcmVwb3J0ZWQgYW4gdW5kZWZpbmVkCnN5
bWJvbHMgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OnZlcnNpb24uCgpUbyBmaXggdGhl
bSwgc3RvcHBlZCBleHBvcnRpbmcgVmFsdWU6Om1heERlcHRoIGJ5IG5vdCBtYXJraW5nIHRoZQp3
aG9sZSBjbGFzcyBhcyBXVEZfRVhQT1JUX1BSSVZBVEUsIGFuZCBjaGFuZ2VkIFN0b3JhZ2U6OnZl
cnNpb24gdG8KY29uc3RleHByLgoKKiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlLmg6CihXVEY6OnRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJzSW50ZXJuYWwpOgooV1RG
Ojp0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKToKKFdURjo6dHJ5TWFrZVN0cmluZyk6CihXVEY6
Om1ha2VTdHJpbmcpOgooV1RGOjp0cnlNYWtlQXRvbVN0cmluZyk6CihXVEY6Om1ha2VBdG9tU3Ry
aW5nKToKKiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oOgooV1RGOjpTdHJp
bmdBcHBlbmQ6OmlzOEJpdCBjb25zdCk6CihXVEY6OlN0cmluZ0FwcGVuZDo6d3JpdGVUbyBjb25z
dCk6CihXVEY6OlN0cmluZ0FwcGVuZDo6bGVuZ3RoIGNvbnN0KToKKFdURjo6U3RyaW5nQXBwZW5k
OjppczhCaXQpOiBEZWxldGVkLgooV1RGOjpTdHJpbmdBcHBlbmQ6OndyaXRlVG8pOiBEZWxldGVk
LgooV1RGOjpTdHJpbmdBcHBlbmQ6Omxlbmd0aCk6IERlbGV0ZWQuCiogU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdWaWV3Lmg6CiogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHA6CihKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmRpc3Bs
YXlOYW1lKToKKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWVG
b3JKU09OVGVzdHMpOgoqIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwOgooV1RGOjpKU09O
SW1wbDo6VmFsdWU6On5WYWx1ZSk6CiogU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oOgooV1RG
OjpKU09OSW1wbDo6VmFsdWU6On5WYWx1ZSk6IERlbGV0ZWQuCiogU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmg6CiogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwOgooVGVzdFdlYktpdEFQSTo6VEVT
VCk6Ci0tLQogLi4uL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgICAgICAgICAgICAgIHwg
IDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwICAgICAgICAgICAgICAgICB8IDE4
ICsrKysrKysKIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaCAgICAgICAgICAgICAgICAgICB8
IDU0ICsrKysrKystLS0tLS0tLS0tLS0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0
ZW5hdGUuaCAgICAgICB8IDI2ICsrKystLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdP
cGVyYXRvcnMuaCAgICAgICAgIHwgMTIgKystLS0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
Vmlldy5oICAgICAgICAgICAgICB8ICA0ICstCiAuLi4vY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFn
ZS5oICAgICAgICAgICAgICAgfCAgMiArLQogLi4uL1Rlc3RzL1dURi9TdHJpbmdDb25jYXRlbmF0
ZS5jcHAgICAgICAgICAgIHwgMjAgKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRp
b25zKCspLCA1OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDVkM2I3NmRlMTRhOS4uZGZiYmFhYWVh
M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1By
b2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1By
b2ZpbGVyLmNwcApAQCAtODM0LDcgKzgzNCw3IEBAIFN0cmluZyBTYW1wbGluZ1Byb2ZpbGVyOjpT
dGFja0ZyYW1lOjpkaXNwbGF5TmFtZShWTSYgdm0pCiAgICAgY2FzZSBGcmFtZVR5cGU6Oldhc206
CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICBpZiAod2FzbUluZGV4T3JOYW1lKQot
ICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcod2FzbUluZGV4T3JOYW1lLnZhbHVlKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIFdhc206Om1ha2VTdHJpbmcod2FzbUluZGV4T3JOYW1lLnZhbHVl
KCkpOwogI2VuZGlmCiAgICAgICAgIHJldHVybiAiKHdhc20pIl9zOwogCkBAIC04NzgsNyArODc4
LDcgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmRpc3BsYXlOYW1lRm9y
SlNPTlRlc3RzKFZNJiB2bSkKICAgICBjYXNlIEZyYW1lVHlwZTo6V2FzbTogewogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKICAgICAgICAgaWYgKHdhc21JbmRleE9yTmFtZSkKLSAgICAgICAgICAg
IHJldHVybiBtYWtlU3RyaW5nKHdhc21JbmRleE9yTmFtZS52YWx1ZSgpKTsKKyAgICAgICAgICAg
IHJldHVybiBXYXNtOjptYWtlU3RyaW5nKHdhc21JbmRleE9yTmFtZS52YWx1ZSgpKTsKICNlbmRp
ZgogICAgICAgICByZXR1cm4gIih3YXNtKSJfczsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9KU09OVmFsdWVzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCmlu
ZGV4IDY2MzRjMTJlZDdkZC4uNWFlMzJmOTE3YTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9KU09OVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcApAQCAt
NDY4LDYgKzQ2OCwyNCBAQCBpbmxpbmUgdm9pZCBhcHBlbmREb3VibGVRdW90ZWRTdHJpbmcoU3Ry
aW5nQnVpbGRlciYgYnVpbGRlciwgU3RyaW5nVmlldyBzdHJpbmcpCiAKIH0gLy8gYW5vbnltb3Vz
IG5hbWVzcGFjZQogCitWYWx1ZTo6flZhbHVlKCkKK3sKKyAgICBzd2l0Y2ggKG1fdHlwZSkgewor
ICAgIGNhc2UgVHlwZTo6TnVsbDoKKyAgICBjYXNlIFR5cGU6OkJvb2xlYW46CisgICAgY2FzZSBU
eXBlOjpEb3VibGU6CisgICAgY2FzZSBUeXBlOjpJbnRlZ2VyOgorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFR5cGU6OlN0cmluZzoKKyAgICAgICAgaWYgKG1fdmFsdWUuc3RyaW5nKQorICAgICAg
ICAgICAgbV92YWx1ZS5zdHJpbmctPmRlcmVmKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VHlwZTo6T2JqZWN0OgorICAgIGNhc2UgVHlwZTo6QXJyYXk6CisgICAgICAgIGJyZWFrOworICAg
IH0KK30KKwogUmVmPFZhbHVlPiBWYWx1ZTo6bnVsbCgpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oIGIv
U291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCmluZGV4IGQ2M2RjYjE4NTkwZC4uNjhmODA0MDli
ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKKysrIGIvU291cmNl
L1dURi93dGYvSlNPTlZhbHVlcy5oCkBAIC01MCwzMyArNTAsMTcgQEAgY2xhc3MgT2JqZWN0Owog
Y2xhc3MgT2JqZWN0QmFzZTsKIAogLy8gRklYTUU6IHVuaWZ5IHRoaXMgSlNPTiBwYXJzZXIgd2l0
aCBKU09OUGFyc2UgaW4gSmF2YVNjcmlwdENvcmUuCi1jbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUg
VmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxWYWx1ZT4geworY2xhc3MgVmFsdWUgOiBwdWJsaWMg
UmVmQ291bnRlZDxWYWx1ZT4gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IG1h
eERlcHRoID0gMTAwMDsKIAotICAgIHZpcnR1YWwgflZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHN3
aXRjaCAobV90eXBlKSB7Ci0gICAgICAgIGNhc2UgVHlwZTo6TnVsbDoKLSAgICAgICAgY2FzZSBU
eXBlOjpCb29sZWFuOgotICAgICAgICBjYXNlIFR5cGU6OkRvdWJsZToKLSAgICAgICAgY2FzZSBU
eXBlOjpJbnRlZ2VyOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZTo6U3Ry
aW5nOgotICAgICAgICAgICAgaWYgKG1fdmFsdWUuc3RyaW5nKQotICAgICAgICAgICAgICAgIG1f
dmFsdWUuc3RyaW5nLT5kZXJlZigpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
VHlwZTo6T2JqZWN0OgotICAgICAgICBjYXNlIFR5cGU6OkFycmF5OgotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICB9CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflZh
bHVlKCk7CiAKLSAgICBzdGF0aWMgUmVmPFZhbHVlPiBudWxsKCk7Ci0gICAgc3RhdGljIFJlZjxW
YWx1ZT4gY3JlYXRlKGJvb2wpOwotICAgIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShpbnQpOwot
ICAgIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShkb3VibGUpOwotICAgIHN0YXRpYyBSZWY8VmFs
dWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IFJlZjxWYWx1ZT4gbnVsbCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZh
bHVlPiBjcmVhdGUoYm9vbCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8VmFs
dWU+IGNyZWF0ZShpbnQpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZhbHVl
PiBjcmVhdGUoZG91YmxlKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxWYWx1
ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYpOwogICAgIHRlbXBsYXRlPGNsYXNzIFQ+CiAgICAgc3Rh
dGljIFJlZjxWYWx1ZT4gY3JlYXRlKFQpID0gZGVsZXRlOwogCkBAIC05MywyNyArNzcsMjcgQEAg
cHVibGljOgogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGJv
b2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6Ok51bGw7IH0KIAotICAg
IHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYXNCb29sZWFuKCkgY29uc3Q7Ci0gICAgc3RkOjpvcHRpb25h
bDxpbnQ+IGFzSW50ZWdlcigpIGNvbnN0OwotICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBhc0Rv
dWJsZSgpIGNvbnN0OwotICAgIFN0cmluZyBhc1N0cmluZygpIGNvbnN0OwotICAgIFJlZlB0cjxW
YWx1ZT4gYXNWYWx1ZSgpOwotICAgIHZpcnR1YWwgUmVmUHRyPE9iamVjdD4gYXNPYmplY3QoKTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxjb25zdCBPYmplY3Q+IGFzT2JqZWN0KCkgY29uc3Q7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYXNCb29sZWFuKCkgY29uc3Q7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0ZDo6b3B0aW9uYWw8aW50PiBhc0ludGVnZXIoKSBj
b25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RkOjpvcHRpb25hbDxkb3VibGU+IGFzRG91
YmxlKCkgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBhc1N0cmluZygpIGNv
bnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8VmFsdWU+IGFzVmFsdWUoKTsKKyAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCBSZWZQdHI8T2JqZWN0PiBhc09iamVjdCgpOwor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIFJlZlB0cjxjb25zdCBPYmplY3Q+IGFzT2Jq
ZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBSZWZQdHI8QXJyYXk+IGFzQXJyYXkoKTsKIAotICAg
IHN0YXRpYyBSZWZQdHI8VmFsdWU+IHBhcnNlSlNPTihTdHJpbmdWaWV3KTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIFJlZlB0cjxWYWx1ZT4gcGFyc2VKU09OKFN0cmluZ1ZpZXcpOwog
ICAgIHN0YXRpYyB2b2lkIGVzY2FwZVN0cmluZyhTdHJpbmdCdWlsZGVyJiwgU3RyaW5nVmlldyk7
CiAKLSAgICBTdHJpbmcgdG9KU09OU3RyaW5nKCkgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIFN0cmluZyB0b0pTT05TdHJpbmcoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVK
U09OKFN0cmluZ0J1aWxkZXImIG91dHB1dCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHNpemVfdCBt
ZW1vcnlDb3N0KCkgY29uc3Q7CiAKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2Iv
MTc5ODQ3PiByZW1vdmUgdGhlc2UgZnVuY3Rpb25zIHdoZW4gbGVnYWN5IEluc3BlY3Rvck9iamVj
dCBzeW1ib2xzIGFyZSBubyBsb25nZXIgbmVlZGVkLgotICAgIGJvb2wgYXNEb3VibGUoZG91Ymxl
JikgY29uc3Q7Ci0gICAgYm9vbCBhc0ludGVnZXIoaW50JikgY29uc3Q7Ci0gICAgYm9vbCBhc1N0
cmluZyhTdHJpbmcmKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBhc0RvdWJs
ZShkb3VibGUmKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBhc0ludGVnZXIo
aW50JikgY29uc3Q7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYXNTdHJpbmcoU3RyaW5n
JikgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICBWYWx1ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlLmgKaW5kZXggMDBhOTY3NmQxNWI4Li4wN2M0NTlkZDZkMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKQEAgLTUxLDggKzUxLDggQEAgcHVi
bGljOgogICAgIHsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiAxOyB9
Ci0gICAgYm9vbCBpczhCaXQoKSB7IHJldHVybiB0cnVlOyB9CisgICAgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gMTsgfQorICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgd3JpdGVU
byhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgY29uc3QgeyAqZGVzdGluYXRpb24gPSBtX2No
YXJhY3RlcjsgfQogCiBwcml2YXRlOgpAQCAtMzU4LDEyICszNTgsMTIgQEAgcHVibGljOgogICAg
IHsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgoKQorICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9pbmRlbnRhdGlvbi52YWx1ZSAqIE47CiAg
ICAgfQogCi0gICAgYm9vbCBpczhCaXQoKQorICAgIGJvb2wgaXM4Qml0KCkgY29uc3QKICAgICB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTQzNiw3ICs0MzYsNyBAQCBpbmxpbmUg
dm9pZCBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKFJlc3VsdFR5cGUqIHJlc3VsdCwgQWRh
cHRlciBhZGFwdGVyLCBBZAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRl
ciwgdHlwZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgotUmVmUHRyPFN0cmluZ0ltcGw+IHRy
eU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJzSW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBib29s
IGFyZUFsbEFkYXB0ZXJzOEJpdCwgU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlw
ZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQorUmVmUHRyPFN0cmluZ0ltcGw+IHRyeU1ha2VTdHJpbmdJ
bXBsRnJvbUFkYXB0ZXJzSW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBib29sIGFyZUFsbEFkYXB0
ZXJzOEJpdCwgY29uc3QgU3RyaW5nVHlwZUFkYXB0ZXImIGFkYXB0ZXIsIGNvbnN0IFN0cmluZ1R5
cGVBZGFwdGVycyYgLi4uYWRhcHRlcnMpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCA8PSBTdHJpbmc6
Ok1heExlbmd0aCk7CiAgICAgaWYgKGFyZUFsbEFkYXB0ZXJzOEJpdCkgewpAQCAtNDY5LDcgKzQ2
OSw3IEBAIGF1dG8gaGFuZGxlV2l0aEFkYXB0ZXJzKEZ1bmMmJiBmdW5jLCBTdHJpbmdUeXBlcyYm
IC4uLnN0cmluZ3MpIC0+IGRlY2x0eXBlKGF1dG8pCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN0
cmluZ1R5cGVBZGFwdGVyLCB0eXBlbmFtZS4uLiBTdHJpbmdUeXBlQWRhcHRlcnM+Ci1TdHJpbmcg
dHJ5TWFrZVN0cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJp
bmdUeXBlQWRhcHRlcnMgLi4uYWRhcHRlcnMpCitTdHJpbmcgdHJ5TWFrZVN0cmluZ0Zyb21BZGFw
dGVycyhjb25zdCBTdHJpbmdUeXBlQWRhcHRlciYgYWRhcHRlciwgY29uc3QgU3RyaW5nVHlwZUFk
YXB0ZXJzJiAuLi5hZGFwdGVycykKIHsKICAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6TWF4TGVu
Z3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKICAgICBhdXRvIHN1
bSA9IGNoZWNrZWRTdW08aW50MzJfdD4oYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMubGVuZ3Ro
KCkuLi4pOwpAQCAtNDgxLDE1ICs0ODEsMTUgQEAgU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4KIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1TdHJpbmcgdHJ5TWFrZVN0cmlu
ZyhTdHJpbmdUeXBlcyAuLi5zdHJpbmdzKQorU3RyaW5nIHRyeU1ha2VTdHJpbmcoU3RyaW5nVHlw
ZXMmJiAuLi5zdHJpbmdzKQogewotICAgIHJldHVybiB0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJz
KFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7CisgICAgcmV0dXJu
IHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8c3RkOjpkZWNheV90
PFN0cmluZ1R5cGVzPj4oc3RkOjpmb3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKSkuLi4pOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLVN0cmluZyBtYWtlU3RyaW5n
KFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCitTdHJpbmcgbWFrZVN0cmluZyhTdHJpbmdUeXBlcyYm
Li4uIHN0cmluZ3MpCiB7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmcoc3RyaW5n
cy4uLik7CisgICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmcoc3RkOjpmb3J3YXJkPFN0
cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNI
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUyNCwxMyArNTI0LDEzIEBAIEF0b21TdHJpbmcg
dHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwg
U3RyaW5nVHlwZUFkCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KIEF0b21TdHJp
bmcgdHJ5TWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMgLi4uc3RyaW5ncykKIHsKLSAgICByZXR1
cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5n
VHlwZXM+KHN0cmluZ3MpLi4uKTsKKyAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8c3RkOjpkZWNheV90PFN0cmluZ1R5cGVzPj4oc3RkOjpm
b3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKSkuLi4pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBTdHJpbmdUeXBlcz4KLUF0b21TdHJpbmcgbWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMu
Li4gc3RyaW5ncykKK0F0b21TdHJpbmcgbWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMmJi4uLiBz
dHJpbmdzKQogewotICAgIEF0b21TdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZUF0b21TdHJpbmcoc3Ry
aW5ncy4uLik7CisgICAgQXRvbVN0cmluZyByZXN1bHQgPSB0cnlNYWtlQXRvbVN0cmluZyhzdGQ6
OmZvcndhcmQ8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKICAgICBpZiAocmVzdWx0LmlzTnVs
bCgpKQogICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdPcGVyYXRvcnMuaAppbmRleCA0ZjUzYzI0ZTYyMzQuLmE1ZmIwMGQzMmIwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCkBAIC00NiwxNCArNDYsMTQgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gQXRvbVN0cmluZyhvcGVyYXRvciBTdHJpbmcoKSk7CiAgICAg
fQogCi0gICAgYm9vbCBpczhCaXQoKQorICAgIGJvb2wgaXM4Qml0KCkgY29uc3QKICAgICB7CiAg
ICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBhZGFwdGVyMShtX3N0cmluZzEp
OwogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMj4gYWRhcHRlcjIobV9zdHJp
bmcyKTsKICAgICAgICAgcmV0dXJuIGFkYXB0ZXIxLmlzOEJpdCgpICYmIGFkYXB0ZXIyLmlzOEJp
dCgpOwogICAgIH0KIAotICAgIHZvaWQgd3JpdGVUbyhMQ2hhciogZGVzdGluYXRpb24pCisgICAg
dm9pZCB3cml0ZVRvKExDaGFyKiBkZXN0aW5hdGlvbikgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChpczhCaXQoKSk7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBh
ZGFwdGVyMShtX3N0cmluZzEpOwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGFk
YXB0ZXIyLndyaXRlVG8oZGVzdGluYXRpb24gKyBhZGFwdGVyMS5sZW5ndGgoKSk7CiAgICAgfQog
Ci0gICAgdm9pZCB3cml0ZVRvKFVDaGFyKiBkZXN0aW5hdGlvbikKKyAgICB2b2lkIHdyaXRlVG8o
VUNoYXIqIGRlc3RpbmF0aW9uKSBjb25zdAogICAgIHsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CiAgICAgICAgIFN0cmluZ1R5cGVB
ZGFwdGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMihtX3N0cmluZzIpOwpAQCAtNzAsNyArNzAsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGFkYXB0ZXIyLndyaXRlVG8oZGVzdGluYXRpb24gKyBhZGFwdGVy
MS5sZW5ndGgoKSk7CiAgICAgfQogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkKKyAgICB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdAogICAgIHsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5n
VHlwZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0
cmluZ1R5cGUyPiBhZGFwdGVyMihtX3N0cmluZzIpOwpAQCAtODUsNyArODUsNyBAQCBwcml2YXRl
OgogdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZTEsIHR5cGVuYW1lIFN0cmluZ1R5cGUyPgog
Y2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBTdHJpbmdU
eXBlMj4+IHsKIHB1YmxpYzoKLSAgICBTdHJpbmdUeXBlQWRhcHRlcihTdHJpbmdBcHBlbmQ8U3Ry
aW5nVHlwZTEsIFN0cmluZ1R5cGUyPiYgYnVmZmVyKQorICAgIFN0cmluZ1R5cGVBZGFwdGVyKGNv
bnN0IFN0cmluZ0FwcGVuZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+JiBidWZmZXIpCiAgICAg
ICAgIDogbV9idWZmZXIgeyBidWZmZXIgfQogICAgIHsKICAgICB9CkBAIC05NSw3ICs5NSw3IEBA
IHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIHdyaXRl
VG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pIGNvbnN0IHsgbV9idWZmZXIud3JpdGVUbyhk
ZXN0aW5hdGlvbik7IH0KIAogcHJpdmF0ZToKLSAgICBTdHJpbmdBcHBlbmQ8U3RyaW5nVHlwZTEs
IFN0cmluZ1R5cGUyPiYgbV9idWZmZXI7CisgICAgY29uc3QgU3RyaW5nQXBwZW5kPFN0cmluZ1R5
cGUxLCBTdHJpbmdUeXBlMj4mIG1fYnVmZmVyOwogfTsKIAogaW5saW5lIFN0cmluZ0FwcGVuZDxj
b25zdCBjaGFyKiwgU3RyaW5nPiBvcGVyYXRvcisoY29uc3QgY2hhciogc3RyaW5nMSwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdW
aWV3LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAppbmRleCA1YzAwZDdjODkz
MjMuLjQ2ZDFkOTgzMjcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdW
aWV3LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKQEAgLTY4MSw4ICs2
ODEsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpIHsg
cmV0dXJuIG1fc3RyaW5nLmxlbmd0aCgpOyB9Ci0gICAgYm9vbCBpczhCaXQoKSB7IHJldHVybiBt
X3N0cmluZy5pczhCaXQoKTsgfQorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RyaW5nLmxlbmd0aCgpOyB9CisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBt
X3N0cmluZy5pczhCaXQoKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
IHZvaWQgd3JpdGVUbyhDaGFyYWN0ZXJUeXBlKiBkZXN0aW5hdGlvbikgeyBtX3N0cmluZy5nZXRD
aGFyYWN0ZXJzKGRlc3RpbmF0aW9uKTsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAppbmRl
eCAxMTU2MzQxMzRiZDYuLjc4OTMwNDVhYTNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKQEAgLTEwOCw3
ICsxMDgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBJbmNyZW1lbnRpbmcgdGhpcyBudW1iZXIgd2ls
bCBkZWxldGUgYWxsIGV4aXN0aW5nIGNhY2hlIGNvbnRlbnQgZm9yIGV2ZXJ5b25lLiBEbyB5b3Ug
cmVhbGx5IG5lZWQgdG8gZG8gaXQ/CiAgICAgLy8gRklYTUU6IFdoZW4gdGhpcyBpcyBpbmNyZW1l
bnRlZCwgcmVtb3ZlIExlZ2FjeUNlcnRpZmljYXRlSW5mb1R5cGUuCi0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHZlcnNpb24gPSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZl
cnNpb24gPSAxNjsKIAogICAgIFN0cmluZyBiYXNlUGF0aElzb2xhdGVkQ29weSgpIGNvbnN0Owog
ICAgIFN0cmluZyB2ZXJzaW9uUGF0aCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwCmluZGV4IDM2M2Q3N2RmZTBmZi4u
MGRkNTM0NjkxNTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdDb25jYXRlbmF0ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQ29uY2F0ZW5hdGUuY3BwCkBAIC0yMTYsNCArMjE2LDI0IEBAIFRFU1QoV1RGLCBTdHJp
bmdDb25jYXRlbmF0ZV9UdXBsZSkKICAgICBFWFBFQ1RfU1RSRVEoImhlbGxvIDQyIHdvcmxkIiwg
bWFrZVN0cmluZyhzdGQ6Om1ha2VfdHVwbGUoaGVsbG9Db2RlcG9pbnRzLCAnICcsIHVuc2lnbmVk
KDQyKSwgJyAnLCAid29ybGQiKSkudXRmOCgpLmRhdGEoKSk7CiB9CiAKK1RFU1QoV1RGLCBTdHJp
bmdDb25jYXRlbmF0ZV9TdHJpbmdMaXRlcmFsKQoreworICAgIEVYUEVDVF9TVFJFUSgiaGVsbG8g
NDIgd29ybGQiLCBtYWtlU3RyaW5nKCJoZWxsbyIsICcgJywgNDIsICIgIiwgIndvcmxkIikudXRm
OCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0MiB3b3JsZCIsIG1ha2VTdHJp
bmcoImhlbGxvIl9zLCAnICcsIDQyLCAiICJfcywgIndvcmxkIl9zKS51dGY4KCkuZGF0YSgpKTsK
KworICAgIEVYUEVDVF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3RyaW5nKCJoZWxsbyA0
MlwwaWdub3JlZCIsICcgJywgIndvcmxkIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJoZWxsbyA0MiB3b3JsZCIsIG1ha2VTdHJpbmcoImhlbGxvIDQyXDBpZ25vcmVkIl9zLCAn
ICcsICJ3b3JsZCIpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgY29uc3QgY2hhciBoZWxsb0NoYXJz
W10gPSAiaGVsbG8iOworICAgIGNoYXIgaGVsbG9EYXRhWzY0XTsKKyAgICBtZW1jcHkoaGVsbG9E
YXRhLCBoZWxsb0NoYXJzLCBzaXplb2YoaGVsbG9DaGFycykpOworCisgICAgYXV0byBoZWxsbyA9
IG1ha2VTdHJpbmcoaGVsbG9EYXRhKTsKKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvIiwgaGVsbG8u
dXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX0VRKDV1LCBoZWxsby5sZW5ndGgoKSk7CisKKyAg
ICBFWFBFQ1RfU1RSRVEoImhlbGxvIDQyIHdvcmxkIiwgbWFrZVN0cmluZyhoZWxsb0RhdGEsICIg
NDIgd29ybGQiKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvIDQyIHdv
cmxkIiwgbWFrZVN0cmluZyhoZWxsbywgIiA0MiB3b3JsZCIpLnV0ZjgoKS5kYXRhKCkpOworfQor
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464806</attachid>
            <date>2023-02-01 16:12:13 -0800</date>
            <delta_ts>2023-02-01 18:38:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-250017-20230202091212.patch</filename>
            <type>text/plain</type>
            <size>14539</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSBmODY4OWZiZjcyNjY2YzQ0NTQyMDQ0OWI2NzMwMDBhMDczNzUyYWRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFRodSwgMiBGZWIgMjAyMyAwOTowNjoxNSArMDkwMApTdWJqZWN0OiBbUEFUQ0hd
IG1ha2VTdHJpbmcgYW5kIG1ha2VBdG9tU3RyaW5nIHNob3VsZG4ndCBjb3B5IGFyZ3VtZW50cwog
b2JqZWN0cyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUwMDE3CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCm1ha2VTdHJpbmcgZmFtaWx5IHVubmVjZXNzYXJ5
IGNvcGllZCBvYmplY3RzIHBhc3NlZCBhcyBhcmd1bWVudHMuIEl0CmNhdXNlZCByZWYgY2h1cm4g
b2YgUmVmQ291bnRlZCBvYmplY3RzLCBmb3IgZXhhbXBsZSBTdHJpbmdJbXBsLiBBbmQsCml0IHBy
ZXZlbnRlZCB0byB0YWtlIG5vbi1jb3B5YWJsZSBvYmplY3RzLiBUaGV5IHNob3VsZCB0YWtlIHVu
aXZlcnNhbApyZWZlcmVuY2VzIGFuZCBwYXNzIHRoZW0gdG8gU3RyaW5nVHlwZUFkYXB0ZXIgYnkg
cGVyZmVjdCBmb3J3YXJkaW5nLgoKVGhlcmUgYXJlIHR3byBraW5kcyBvZiBzcGVjaWFsaXplZCBT
dHJpbmdUeXBlQWRhcHRlciBjb25zdHJ1Y3RvcnMuClN0cmluZ1R5cGVBZGFwdGVyKFQpIHRha2Vz
IHRoZSBhcmd1bWVudCBhcyBwYXNzIGJ5IHZhbHVlLApTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBU
JikgZG9lcyBpdCBhcyBwYXNzIGJ5IHJlZmVyZW5jZSwKClRoZSBhYm92ZSBjaGFuZ2UgaW50cm9k
dWNlZCB0d28gc3RyYW5nZSBsaW5rYWdlIGVycm9ycy4gTGlua2luZwpKYXZhU2NyaXB0Q29yZSBy
ZXBvcnRlZCBhIHdlYWsgZXh0ZXJuYWwgc3ltYm9sCldURjo6SlNPTkltcGw6OlZhbHVlOjptYXhE
ZXB0aC4gTGlua2luZyBXZWJLaXQgcmVwb3J0ZWQgYW4gdW5kZWZpbmVkCnN5bWJvbHMgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OnZlcnNpb24uCgpUbyBmaXggdGhlbSwgc3RvcHBlZCBl
eHBvcnRpbmcgVmFsdWU6Om1heERlcHRoIGJ5IG5vdCBtYXJraW5nIHRoZQp3aG9sZSBjbGFzcyBh
cyBXVEZfRVhQT1JUX1BSSVZBVEUsIGFuZCBjaGFuZ2VkIFN0b3JhZ2U6OnZlcnNpb24gdG8KY29u
c3RleHByLgoKKiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVy
LmNwcDoKKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWUpOgoo
SlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpkaXNwbGF5TmFtZUZvckpTT05UZXN0
cyk6CiogU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHA6CihXVEY6OkpTT05JbXBsOjpWYWx1
ZTo6flZhbHVlKToKKiBTb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmg6CiogU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oOgooV1RGOjp0cnlNYWtlU3RyaW5nKToKKFdURjo6
bWFrZVN0cmluZyk6CihXVEY6OnRyeU1ha2VBdG9tU3RyaW5nKToKKFdURjo6bWFrZUF0b21TdHJp
bmcpOgoqIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmg6CihXVEY6OlN0cmlu
Z0FwcGVuZDo6aXM4Qml0IGNvbnN0KToKKFdURjo6U3RyaW5nQXBwZW5kOjp3cml0ZVRvIGNvbnN0
KToKKFdURjo6U3RyaW5nQXBwZW5kOjpsZW5ndGggY29uc3QpOgooV1RGOjpTdHJpbmdBcHBlbmQ6
OmlzOEJpdCk6IERlbGV0ZWQuCihXVEY6OlN0cmluZ0FwcGVuZDo6d3JpdGVUbyk6IERlbGV0ZWQu
CihXVEY6OlN0cmluZ0FwcGVuZDo6bGVuZ3RoKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaDoKKiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdDb25jYXRlbmF0ZS5jcHA6CihUZXN0V2ViS2l0QVBJOjpO
b25Db3B5YWJsZTo6Tm9uQ29weWFibGUpOgooVGVzdFdlYktpdEFQSTo6Tm9uQ29weWFibGU6OnZh
bHVlIGNvbnN0KToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgotLS0KIC4uLi9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwICAgICAgICAgICAgICB8ICA0ICstCiBTb3VyY2UvV1RGL3d0Zi9KU09O
VmFsdWVzLmNwcCAgICAgICAgICAgICAgICAgfCAxOCArKysrKysKIFNvdXJjZS9XVEYvd3RmL0pT
T05WYWx1ZXMuaCAgICAgICAgICAgICAgICAgICB8IDU0ICsrKysrKystLS0tLS0tLS0tLQogU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oICAgICAgIHwgMjIgKysrLS0tLQog
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaCAgICAgICAgIHwgMTIgKystLQog
Li4uL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIC4u
Li9UZXN0cy9XVEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwICAgICAgICAgICB8IDU3ICsrKysrKysr
KysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDU1IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHAKaW5kZXggNWQzYjc2ZGUxNGE5Li5kZmJiYWFhZWEzZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC04
MzQsNyArODM0LDcgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmRpc3Bs
YXlOYW1lKFZNJiB2bSkKICAgICBjYXNlIEZyYW1lVHlwZTo6V2FzbToKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAgICAgICAgIGlmICh3YXNtSW5kZXhPck5hbWUpCi0gICAgICAgICAgICByZXR1
cm4gbWFrZVN0cmluZyh3YXNtSW5kZXhPck5hbWUudmFsdWUoKSk7CisgICAgICAgICAgICByZXR1
cm4gV2FzbTo6bWFrZVN0cmluZyh3YXNtSW5kZXhPck5hbWUudmFsdWUoKSk7CiAjZW5kaWYKICAg
ICAgICAgcmV0dXJuICIod2FzbSkiX3M7CiAKQEAgLTg3OCw3ICs4NzgsNyBAQCBTdHJpbmcgU2Ft
cGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWVGb3JKU09OVGVzdHMoVk0mIHZt
KQogICAgIGNhc2UgRnJhbWVUeXBlOjpXYXNtOiB7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQog
ICAgICAgICBpZiAod2FzbUluZGV4T3JOYW1lKQotICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJp
bmcod2FzbUluZGV4T3JOYW1lLnZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuIFdhc206Om1h
a2VTdHJpbmcod2FzbUluZGV4T3JOYW1lLnZhbHVlKCkpOwogI2VuZGlmCiAgICAgICAgIHJldHVy
biAiKHdhc20pIl9zOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKaW5kZXggNjYzNGMxMmVkN2Rk
Li41YWUzMmY5MTdhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCkBAIC00NjgsNiArNDY4LDI0IEBA
IGlubGluZSB2b2lkIGFwcGVuZERvdWJsZVF1b3RlZFN0cmluZyhTdHJpbmdCdWlsZGVyJiBidWls
ZGVyLCBTdHJpbmdWaWV3IHN0cmluZykKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKK1Zh
bHVlOjp+VmFsdWUoKQoreworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBUeXBlOjpO
dWxsOgorICAgIGNhc2UgVHlwZTo6Qm9vbGVhbjoKKyAgICBjYXNlIFR5cGU6OkRvdWJsZToKKyAg
ICBjYXNlIFR5cGU6OkludGVnZXI6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZTo6U3Ry
aW5nOgorICAgICAgICBpZiAobV92YWx1ZS5zdHJpbmcpCisgICAgICAgICAgICBtX3ZhbHVlLnN0
cmluZy0+ZGVyZWYoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpPYmplY3Q6Cisg
ICAgY2FzZSBUeXBlOjpBcnJheToKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiBSZWY8VmFs
dWU+IFZhbHVlOjpudWxsKCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWYWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9K
U09OVmFsdWVzLmgKaW5kZXggZDYzZGNiMTg1OTBkLi42OGY4MDQwOWJmMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFs
dWVzLmgKQEAgLTUwLDMzICs1MCwxNyBAQCBjbGFzcyBPYmplY3Q7CiBjbGFzcyBPYmplY3RCYXNl
OwogCiAvLyBGSVhNRTogdW5pZnkgdGhpcyBKU09OIHBhcnNlciB3aXRoIEpTT05QYXJzZSBpbiBK
YXZhU2NyaXB0Q29yZS4KLWNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBWYWx1ZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFZhbHVlPiB7CitjbGFzcyBWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFZhbHVl
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4RGVwdGggPSAxMDAwOwog
Ci0gICAgdmlydHVhbCB+VmFsdWUoKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsK
LSAgICAgICAgY2FzZSBUeXBlOjpOdWxsOgotICAgICAgICBjYXNlIFR5cGU6OkJvb2xlYW46Ci0g
ICAgICAgIGNhc2UgVHlwZTo6RG91YmxlOgotICAgICAgICBjYXNlIFR5cGU6OkludGVnZXI6Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlOjpTdHJpbmc6Ci0gICAgICAgICAg
ICBpZiAobV92YWx1ZS5zdHJpbmcpCi0gICAgICAgICAgICAgICAgbV92YWx1ZS5zdHJpbmctPmRl
cmVmKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlOjpPYmplY3Q6Ci0g
ICAgICAgIGNhc2UgVHlwZTo6QXJyYXk6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+VmFsdWUoKTsKIAotICAgIHN0
YXRpYyBSZWY8VmFsdWU+IG51bGwoKTsKLSAgICBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoYm9v
bCk7Ci0gICAgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGludCk7Ci0gICAgc3RhdGljIFJlZjxW
YWx1ZT4gY3JlYXRlKGRvdWJsZSk7Ci0gICAgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZhbHVlPiBudWxs
KCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShib29s
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGludCk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShkb3VibGUp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJik7CiAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgICBzdGF0aWMgUmVmPFZhbHVlPiBj
cmVhdGUoVCkgPSBkZWxldGU7CiAKQEAgLTkzLDI3ICs3NywyNyBAQCBwdWJsaWM6CiAgICAgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBpc051bGwoKSBjb25z
dCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6TnVsbDsgfQogCi0gICAgc3RkOjpvcHRpb25hbDxi
b29sPiBhc0Jvb2xlYW4oKSBjb25zdDsKLSAgICBzdGQ6Om9wdGlvbmFsPGludD4gYXNJbnRlZ2Vy
KCkgY29uc3Q7Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGFzRG91YmxlKCkgY29uc3Q7Ci0g
ICAgU3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFZhbHVlPiBhc1ZhbHVlKCk7
Ci0gICAgdmlydHVhbCBSZWZQdHI8T2JqZWN0PiBhc09iamVjdCgpOwotICAgIHZpcnR1YWwgUmVm
UHRyPGNvbnN0IE9iamVjdD4gYXNPYmplY3QoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgc3RkOjpvcHRpb25hbDxib29sPiBhc0Jvb2xlYW4oKSBjb25zdDsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgc3RkOjpvcHRpb25hbDxpbnQ+IGFzSW50ZWdlcigpIGNvbnN0OworICAgIFdURl9F
WFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gYXNEb3VibGUoKSBjb25zdDsKKyAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIFJlZlB0cjxWYWx1ZT4gYXNWYWx1ZSgpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2aXJ0dWFsIFJlZlB0cjxPYmplY3Q+IGFzT2JqZWN0KCk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZpcnR1YWwgUmVmUHRyPGNvbnN0IE9iamVjdD4gYXNPYmplY3QoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFJlZlB0cjxBcnJheT4gYXNBcnJheSgpOwogCi0gICAgc3RhdGljIFJlZlB0cjxW
YWx1ZT4gcGFyc2VKU09OKFN0cmluZ1ZpZXcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgUmVmUHRyPFZhbHVlPiBwYXJzZUpTT04oU3RyaW5nVmlldyk7CiAgICAgc3RhdGljIHZvaWQg
ZXNjYXBlU3RyaW5nKFN0cmluZ0J1aWxkZXImLCBTdHJpbmdWaWV3KTsKIAotICAgIFN0cmluZyB0
b0pTT05TdHJpbmcoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHRvSlNP
TlN0cmluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUpTT04oU3RyaW5nQnVpbGRl
ciYgb3V0cHV0KSBjb25zdDsKIAogICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25z
dDsKIAogICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xNzk4NDc+IHJlbW92ZSB0
aGVzZSBmdW5jdGlvbnMgd2hlbiBsZWdhY3kgSW5zcGVjdG9yT2JqZWN0IHN5bWJvbHMgYXJlIG5v
IGxvbmdlciBuZWVkZWQuCi0gICAgYm9vbCBhc0RvdWJsZShkb3VibGUmKSBjb25zdDsKLSAgICBi
b29sIGFzSW50ZWdlcihpbnQmKSBjb25zdDsKLSAgICBib29sIGFzU3RyaW5nKFN0cmluZyYpIGNv
bnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGFzRG91YmxlKGRvdWJsZSYpIGNvbnN0
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGFzSW50ZWdlcihpbnQmKSBjb25zdDsKKyAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBhc1N0cmluZyhTdHJpbmcmKSBjb25zdDsKIAogcHJv
dGVjdGVkOgogICAgIFZhbHVlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUu
aAppbmRleCAwMGE5Njc2ZDE1YjguLjAxYTkyY2YyN2NkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAgICAgewogICAg
IH0KIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpIHsgcmV0dXJuIDE7IH0KLSAgICBib29sIGlzOEJp
dCgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVy
biAxOyB9CisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5cGUq
IGRlc3RpbmF0aW9uKSBjb25zdCB7ICpkZXN0aW5hdGlvbiA9IG1fY2hhcmFjdGVyOyB9CiAKIHBy
aXZhdGU6CkBAIC0zNTgsMTIgKzM1OCwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHVuc2lnbmVkIGxlbmd0aCgpCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX2luZGVudGF0aW9uLnZhbHVlICogTjsKICAgICB9CiAKLSAgICBib29s
IGlzOEJpdCgpCisgICAgYm9vbCBpczhCaXQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpAQCAtNDgxLDE1ICs0ODEsMTUgQEAgU3RyaW5nIHRyeU1ha2VTdHJpbmdG
cm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJz
IC4KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1TdHJpbmcgdHJ5TWFr
ZVN0cmluZyhTdHJpbmdUeXBlcyAuLi5zdHJpbmdzKQorU3RyaW5nIHRyeU1ha2VTdHJpbmcoU3Ry
aW5nVHlwZXMmJiAuLi5zdHJpbmdzKQogewotICAgIHJldHVybiB0cnlNYWtlU3RyaW5nRnJvbUFk
YXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7CisgICAg
cmV0dXJuIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8c3RkOjpk
ZWNheV90PFN0cmluZ1R5cGVzPj4oc3RkOjpmb3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKSku
Li4pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLVN0cmluZyBtYWtl
U3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCitTdHJpbmcgbWFrZVN0cmluZyhTdHJpbmdU
eXBlcyYmLi4uIHN0cmluZ3MpCiB7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmco
c3RyaW5ncy4uLik7CisgICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmcoc3RkOjpmb3J3
YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAg
IENSQVNIKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUyNCwxMyArNTI0LDEzIEBAIEF0b21T
dHJpbmcgdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRh
cHRlciwgU3RyaW5nVHlwZUFkCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KIEF0
b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMgLi4uc3RyaW5ncykKIHsKLSAg
ICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8
U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKKyAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdG
cm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8c3RkOjpkZWNheV90PFN0cmluZ1R5cGVzPj4o
c3RkOjpmb3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKSkuLi4pOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLUF0b21TdHJpbmcgbWFrZUF0b21TdHJpbmcoU3RyaW5n
VHlwZXMuLi4gc3RyaW5ncykKK0F0b21TdHJpbmcgbWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMm
Ji4uLiBzdHJpbmdzKQogewotICAgIEF0b21TdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZUF0b21TdHJp
bmcoc3RyaW5ncy4uLik7CisgICAgQXRvbVN0cmluZyByZXN1bHQgPSB0cnlNYWtlQXRvbVN0cmlu
ZyhzdGQ6OmZvcndhcmQ8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKICAgICBpZiAocmVzdWx0
LmlzTnVsbCgpKQogICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oIGIvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaAppbmRleCA0ZjUzYzI0ZTYyMzQuLmE1ZmIwMGQzMmIw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCkBAIC00NiwxNCArNDYsMTQg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gQXRvbVN0cmluZyhvcGVyYXRvciBTdHJpbmcoKSk7
CiAgICAgfQogCi0gICAgYm9vbCBpczhCaXQoKQorICAgIGJvb2wgaXM4Qml0KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBhZGFwdGVyMShtX3N0
cmluZzEpOwogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMj4gYWRhcHRlcjIo
bV9zdHJpbmcyKTsKICAgICAgICAgcmV0dXJuIGFkYXB0ZXIxLmlzOEJpdCgpICYmIGFkYXB0ZXIy
LmlzOEJpdCgpOwogICAgIH0KIAotICAgIHZvaWQgd3JpdGVUbyhMQ2hhciogZGVzdGluYXRpb24p
CisgICAgdm9pZCB3cml0ZVRvKExDaGFyKiBkZXN0aW5hdGlvbikgY29uc3QKICAgICB7CiAgICAg
ICAgIEFTU0VSVChpczhCaXQoKSk7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5
cGUxPiBhZGFwdGVyMShtX3N0cmluZzEpOwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGFkYXB0ZXIyLndyaXRlVG8oZGVzdGluYXRpb24gKyBhZGFwdGVyMS5sZW5ndGgoKSk7CiAg
ICAgfQogCi0gICAgdm9pZCB3cml0ZVRvKFVDaGFyKiBkZXN0aW5hdGlvbikKKyAgICB2b2lkIHdy
aXRlVG8oVUNoYXIqIGRlc3RpbmF0aW9uKSBjb25zdAogICAgIHsKICAgICAgICAgU3RyaW5nVHlw
ZUFkYXB0ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CiAgICAgICAgIFN0cmlu
Z1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMihtX3N0cmluZzIpOwpAQCAtNzAsNyAr
NzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGFkYXB0ZXIyLndyaXRlVG8oZGVzdGluYXRpb24gKyBh
ZGFwdGVyMS5sZW5ndGgoKSk7CiAgICAgfQogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkKKyAgICB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdAogICAgIHsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0ZXI8
U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFw
dGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMihtX3N0cmluZzIpOwpAQCAtODUsNyArODUsNyBAQCBw
cml2YXRlOgogdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZTEsIHR5cGVuYW1lIFN0cmluZ1R5
cGUyPgogY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUxLCBT
dHJpbmdUeXBlMj4+IHsKIHB1YmxpYzoKLSAgICBTdHJpbmdUeXBlQWRhcHRlcihTdHJpbmdBcHBl
bmQ8U3RyaW5nVHlwZTEsIFN0cmluZ1R5cGUyPiYgYnVmZmVyKQorICAgIFN0cmluZ1R5cGVBZGFw
dGVyKGNvbnN0IFN0cmluZ0FwcGVuZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+JiBidWZmZXIp
CiAgICAgICAgIDogbV9idWZmZXIgeyBidWZmZXIgfQogICAgIHsKICAgICB9CkBAIC05NSw3ICs5
NSw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lk
IHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pIGNvbnN0IHsgbV9idWZmZXIud3Jp
dGVUbyhkZXN0aW5hdGlvbik7IH0KIAogcHJpdmF0ZToKLSAgICBTdHJpbmdBcHBlbmQ8U3RyaW5n
VHlwZTEsIFN0cmluZ1R5cGUyPiYgbV9idWZmZXI7CisgICAgY29uc3QgU3RyaW5nQXBwZW5kPFN0
cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIG1fYnVmZmVyOwogfTsKIAogaW5saW5lIFN0cmluZ0Fw
cGVuZDxjb25zdCBjaGFyKiwgU3RyaW5nPiBvcGVyYXRvcisoY29uc3QgY2hhciogc3RyaW5nMSwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAppbmRleCAxMTU2MzQxMzRiZDYu
Ljc4OTMwNDVhYTNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBJbmNyZW1lbnRpbmcgdGhpcyBudW1iZXIgd2lsbCBkZWxldGUgYWxsIGV4
aXN0aW5nIGNhY2hlIGNvbnRlbnQgZm9yIGV2ZXJ5b25lLiBEbyB5b3UgcmVhbGx5IG5lZWQgdG8g
ZG8gaXQ/CiAgICAgLy8gRklYTUU6IFdoZW4gdGhpcyBpcyBpbmNyZW1lbnRlZCwgcmVtb3ZlIExl
Z2FjeUNlcnRpZmljYXRlSW5mb1R5cGUuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZlcnNp
b24gPSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZlcnNpb24gPSAxNjsKIAog
ICAgIFN0cmluZyBiYXNlUGF0aElzb2xhdGVkQ29weSgpIGNvbnN0OwogICAgIFN0cmluZyB2ZXJz
aW9uUGF0aCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQ29uY2F0ZW5hdGUuY3BwCmluZGV4IDM2M2Q3N2RmZTBmZi4uYzA0YmU2Y2ZmYTlmIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdDb25jYXRlbmF0
ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQ29uY2F0ZW5h
dGUuY3BwCkBAIC0zNSw2ICszNSwzNyBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAK
K2NsYXNzIE5vbkNvcHlhYmxlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOb25Db3B5YWJs
ZSk7CitwdWJsaWM6CisgICAgTm9uQ29weWFibGUoaW50IHZhbHVlKQorICAgICAgICA6IG1fdmFs
dWUodmFsdWUpIHsgfQorICAgIGludCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgKiAy
OyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IGNsYXNzIFN0cmlu
Z1R5cGVBZGFwdGVyPFRlc3RXZWJLaXRBUEk6Ok5vbkNvcHlhYmxlLCB2b2lkPiA6IHB1YmxpYyBT
dHJpbmdUeXBlQWRhcHRlcjxpbnQsIHZvaWQ+IHsKK3B1YmxpYzoKKyAgICBTdHJpbmdUeXBlQWRh
cHRlcihjb25zdCBUZXN0V2ViS2l0QVBJOjpOb25Db3B5YWJsZSYgb2JqZWN0KQorICAgICAgICA6
IFN0cmluZ1R5cGVBZGFwdGVyPGludCwgdm9pZD4ob2JqZWN0LnZhbHVlKCkpCisgICAgICAgICwg
bV9vYmplY3Qob2JqZWN0KQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgVGVz
dFdlYktpdEFQSTo6Tm9uQ29weWFibGUmIG1fb2JqZWN0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwogZW51bSBjbGFzcyBCb29sRW51bSA6
IGJvb2wgewogICAgIEEsCiAgICAgQgpAQCAtMjE2LDQgKzI0NywzMCBAQCBURVNUKFdURiwgU3Ry
aW5nQ29uY2F0ZW5hdGVfVHVwbGUpCiAgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0MiB3b3JsZCIs
IG1ha2VTdHJpbmcoc3RkOjptYWtlX3R1cGxlKGhlbGxvQ29kZXBvaW50cywgJyAnLCB1bnNpZ25l
ZCg0MiksICcgJywgIndvcmxkIikpLnV0ZjgoKS5kYXRhKCkpOwogfQogCitURVNUKFdURiwgU3Ry
aW5nQ29uY2F0ZW5hdGVfU3RyaW5nTGl0ZXJhbCkKK3sKKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxv
IDQyIHdvcmxkIiwgbWFrZVN0cmluZygiaGVsbG8iLCAnICcsIDQyLCAiICIsICJ3b3JsZCIpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3Ry
aW5nKCJoZWxsbyJfcywgJyAnLCA0MiwgIiAiX3MsICJ3b3JsZCJfcykudXRmOCgpLmRhdGEoKSk7
CisKKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvIDQyIHdvcmxkIiwgbWFrZVN0cmluZygiaGVsbG8g
NDJcMGlnbm9yZWQiLCAnICcsICJ3b3JsZCIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3RyaW5nKCJoZWxsbyA0MlwwaWdub3JlZCJfcywg
JyAnLCAid29ybGQiKS51dGY4KCkuZGF0YSgpKTsKKworICAgIGNvbnN0IGNoYXIgaGVsbG9DaGFy
c1tdID0gImhlbGxvIjsKKyAgICBjaGFyIGhlbGxvRGF0YVs2NF07CisgICAgbWVtY3B5KGhlbGxv
RGF0YSwgaGVsbG9DaGFycywgc2l6ZW9mKGhlbGxvQ2hhcnMpKTsKKworICAgIGF1dG8gaGVsbG8g
PSBtYWtlU3RyaW5nKGhlbGxvRGF0YSk7CisgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyIsIGhlbGxv
LnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9FUSg1dSwgaGVsbG8ubGVuZ3RoKCkpOworCisg
ICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0MiB3b3JsZCIsIG1ha2VTdHJpbmcoaGVsbG9EYXRhLCAi
IDQyIHdvcmxkIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0MiB3
b3JsZCIsIG1ha2VTdHJpbmcoaGVsbG8sICIgNDIgd29ybGQiKS51dGY4KCkuZGF0YSgpKTsKK30K
KworVEVTVChXVEYsIFN0cmluZ0NvbmNhdGVuYXRlX05vbkNvcHlhYmxlKQoreworICAgIE5vbkNv
cHlhYmxlIG9iamVjdCgyMSk7CisgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0MiB3b3JsZCIsIG1h
a2VTdHJpbmcoImhlbGxvICIsIG9iamVjdCwgIiB3b3JsZCIpLnV0ZjgoKS5kYXRhKCkpOworfQor
CiB9Cg==
</data>
<flag name="commit-queue"
          id="492983"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464808</attachid>
            <date>2023-02-01 18:21:17 -0800</date>
            <delta_ts>2023-02-06 23:39:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-250017-20230202112116.patch</filename>
            <type>text/plain</type>
            <size>14453</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSA2YmRlY2ExNTMzNGExODQ1ZTQ5NjVlZDFlZGFlNWVjODAwZGFkYTU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFRodSwgMiBGZWIgMjAyMyAwOTowNjoxNSArMDkwMApTdWJqZWN0OiBbUEFUQ0hd
IG1ha2VTdHJpbmcgYW5kIG1ha2VBdG9tU3RyaW5nIHNob3VsZG4ndCBjb3B5IGFyZ3VtZW50cwog
b2JqZWN0cyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUwMDE3CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCm1ha2VTdHJpbmcgZmFtaWx5IHVubmVjZXNzYXJ5
IGNvcGllZCBvYmplY3RzIHBhc3NlZCBhcyBhcmd1bWVudHMuIEl0CmNhdXNlZCByZWYgY2h1cm4g
b2YgUmVmQ291bnRlZCBvYmplY3RzLCBmb3IgZXhhbXBsZSBTdHJpbmdJbXBsLiBBbmQsCml0IHBy
ZXZlbnRlZCB0byB0YWtlIG5vbi1jb3B5YWJsZSBvYmplY3RzLiBUaGV5IHNob3VsZCB0YWtlIHVu
aXZlcnNhbApyZWZlcmVuY2VzIGFuZCBwYXNzIHRoZW0gdG8gU3RyaW5nVHlwZUFkYXB0ZXIgYnkg
cGVyZmVjdCBmb3J3YXJkaW5nLgoKVGhlcmUgYXJlIHR3byBraW5kcyBvZiBzcGVjaWFsaXplZCBT
dHJpbmdUeXBlQWRhcHRlciBjb25zdHJ1Y3RvcnMuClN0cmluZ1R5cGVBZGFwdGVyKFQpIHRha2Vz
IHRoZSBhcmd1bWVudCBhcyBwYXNzIGJ5IHZhbHVlLApTdHJpbmdUeXBlQWRhcHRlcihjb25zdCBU
JikgZG9lcyBpdCBhcyBwYXNzIGJ5IHJlZmVyZW5jZSwKClRoZSBhYm92ZSBjaGFuZ2UgaW50cm9k
dWNlZCB0d28gc3RyYW5nZSBsaW5rYWdlIGVycm9ycy4gTGlua2luZwpKYXZhU2NyaXB0Q29yZSBy
ZXBvcnRlZCBhIHdlYWsgZXh0ZXJuYWwgc3ltYm9sCldURjo6SlNPTkltcGw6OlZhbHVlOjptYXhE
ZXB0aC4gTGlua2luZyBXZWJLaXQgcmVwb3J0ZWQgYW4gdW5kZWZpbmVkCnN5bWJvbHMgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OnZlcnNpb24uCgpUbyBmaXggdGhlbSwgc3RvcHBlZCBl
eHBvcnRpbmcgVmFsdWU6Om1heERlcHRoIGJ5IG5vdCBtYXJraW5nIHRoZQp3aG9sZSBjbGFzcyBh
cyBXVEZfRVhQT1JUX1BSSVZBVEUsIGFuZCBjaGFuZ2VkIFN0b3JhZ2U6OnZlcnNpb24gdG8KY29u
c3RleHByLgoKKiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVy
LmNwcDoKKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWUpOgoo
SlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpkaXNwbGF5TmFtZUZvckpTT05UZXN0
cyk6CiogU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHA6CihXVEY6OkpTT05JbXBsOjpWYWx1
ZTo6flZhbHVlKToKKiBTb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmg6CiogU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oOgooV1RGOjp0cnlNYWtlU3RyaW5nKToKKFdURjo6
bWFrZVN0cmluZyk6CihXVEY6OnRyeU1ha2VBdG9tU3RyaW5nKToKKFdURjo6bWFrZUF0b21TdHJp
bmcpOgoqIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmg6CihXVEY6OlN0cmlu
Z0FwcGVuZDo6aXM4Qml0IGNvbnN0KToKKFdURjo6U3RyaW5nQXBwZW5kOjp3cml0ZVRvIGNvbnN0
KToKKFdURjo6U3RyaW5nQXBwZW5kOjpsZW5ndGggY29uc3QpOgooV1RGOjpTdHJpbmdBcHBlbmQ6
OmlzOEJpdCk6IERlbGV0ZWQuCihXVEY6OlN0cmluZ0FwcGVuZDo6d3JpdGVUbyk6IERlbGV0ZWQu
CihXVEY6OlN0cmluZ0FwcGVuZDo6bGVuZ3RoKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaDoKKiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdDb25jYXRlbmF0ZS5jcHA6CihUZXN0V2ViS2l0QVBJOjpO
b25Db3B5YWJsZTo6Tm9uQ29weWFibGUpOgooVGVzdFdlYktpdEFQSTo6Tm9uQ29weWFibGU6OnZh
bHVlIGNvbnN0KToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgotLS0KIC4uLi9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwICAgICAgICAgICAgICB8ICA0ICstCiBTb3VyY2UvV1RGL3d0Zi9KU09O
VmFsdWVzLmNwcCAgICAgICAgICAgICAgICAgfCAxOCArKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9K
U09OVmFsdWVzLmggICAgICAgICAgICAgICAgICAgfCA1NCArKysrKysrLS0tLS0tLS0tLS0tCiBT
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmggICAgICAgfCAyMiArKysrLS0t
LQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaCAgICAgICAgIHwgMTIgKyst
LS0KIC4uLi9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmggICAgICAgICAgICAgICB8ICAyICst
CiAuLi4vVGVzdHMvV1RGL1N0cmluZ0NvbmNhdGVuYXRlLmNwcCAgICAgICAgICAgfCA1MyArKysr
KysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDU1IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHAKaW5kZXggNWQzYjc2ZGUxNGE5Li5kZmJiYWFhZWEzZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBA
IC04MzQsNyArODM0LDcgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmRp
c3BsYXlOYW1lKFZNJiB2bSkKICAgICBjYXNlIEZyYW1lVHlwZTo6V2FzbToKICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCiAgICAgICAgIGlmICh3YXNtSW5kZXhPck5hbWUpCi0gICAgICAgICAgICBy
ZXR1cm4gbWFrZVN0cmluZyh3YXNtSW5kZXhPck5hbWUudmFsdWUoKSk7CisgICAgICAgICAgICBy
ZXR1cm4gV2FzbTo6bWFrZVN0cmluZyh3YXNtSW5kZXhPck5hbWUudmFsdWUoKSk7CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuICIod2FzbSkiX3M7CiAKQEAgLTg3OCw3ICs4NzgsNyBAQCBTdHJpbmcg
U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWVGb3JKU09OVGVzdHMoVk0m
IHZtKQogICAgIGNhc2UgRnJhbWVUeXBlOjpXYXNtOiB7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgICAgICBpZiAod2FzbUluZGV4T3JOYW1lKQotICAgICAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcod2FzbUluZGV4T3JOYW1lLnZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuIFdhc206
Om1ha2VTdHJpbmcod2FzbUluZGV4T3JOYW1lLnZhbHVlKCkpOwogI2VuZGlmCiAgICAgICAgIHJl
dHVybiAiKHdhc20pIl9zOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0pTT05W
YWx1ZXMuY3BwIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKaW5kZXggNjYzNGMxMmVk
N2RkLi41YWUzMmY5MTdhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCkBAIC00NjgsNiArNDY4LDI0
IEBAIGlubGluZSB2b2lkIGFwcGVuZERvdWJsZVF1b3RlZFN0cmluZyhTdHJpbmdCdWlsZGVyJiBi
dWlsZGVyLCBTdHJpbmdWaWV3IHN0cmluZykKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAK
K1ZhbHVlOjp+VmFsdWUoKQoreworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBUeXBl
OjpOdWxsOgorICAgIGNhc2UgVHlwZTo6Qm9vbGVhbjoKKyAgICBjYXNlIFR5cGU6OkRvdWJsZToK
KyAgICBjYXNlIFR5cGU6OkludGVnZXI6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZTo6
U3RyaW5nOgorICAgICAgICBpZiAobV92YWx1ZS5zdHJpbmcpCisgICAgICAgICAgICBtX3ZhbHVl
LnN0cmluZy0+ZGVyZWYoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpPYmplY3Q6
CisgICAgY2FzZSBUeXBlOjpBcnJheToKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiBSZWY8
VmFsdWU+IFZhbHVlOjpudWxsKCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWYWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmggYi9Tb3VyY2UvV1RGL3d0
Zi9KU09OVmFsdWVzLmgKaW5kZXggZDYzZGNiMTg1OTBkLi42OGY4MDQwOWJmMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09O
VmFsdWVzLmgKQEAgLTUwLDMzICs1MCwxNyBAQCBjbGFzcyBPYmplY3Q7CiBjbGFzcyBPYmplY3RC
YXNlOwogCiAvLyBGSVhNRTogdW5pZnkgdGhpcyBKU09OIHBhcnNlciB3aXRoIEpTT05QYXJzZSBp
biBKYXZhU2NyaXB0Q29yZS4KLWNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBWYWx1ZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFZhbHVlPiB7CitjbGFzcyBWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFZh
bHVlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4RGVwdGggPSAxMDAw
OwogCi0gICAgdmlydHVhbCB+VmFsdWUoKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChtX3R5cGUp
IHsKLSAgICAgICAgY2FzZSBUeXBlOjpOdWxsOgotICAgICAgICBjYXNlIFR5cGU6OkJvb2xlYW46
Ci0gICAgICAgIGNhc2UgVHlwZTo6RG91YmxlOgotICAgICAgICBjYXNlIFR5cGU6OkludGVnZXI6
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlOjpTdHJpbmc6Ci0gICAgICAg
ICAgICBpZiAobV92YWx1ZS5zdHJpbmcpCi0gICAgICAgICAgICAgICAgbV92YWx1ZS5zdHJpbmct
PmRlcmVmKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlOjpPYmplY3Q6
Ci0gICAgICAgIGNhc2UgVHlwZTo6QXJyYXk6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgIH0KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+VmFsdWUoKTsKIAotICAg
IHN0YXRpYyBSZWY8VmFsdWU+IG51bGwoKTsKLSAgICBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUo
Ym9vbCk7Ci0gICAgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGludCk7Ci0gICAgc3RhdGljIFJl
ZjxWYWx1ZT4gY3JlYXRlKGRvdWJsZSk7Ci0gICAgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGNv
bnN0IFN0cmluZyYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZhbHVlPiBu
dWxsKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShi
b29sKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxWYWx1ZT4gY3JlYXRlKGlu
dCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8VmFsdWU+IGNyZWF0ZShkb3Vi
bGUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZhbHVlPiBjcmVhdGUoY29u
c3QgU3RyaW5nJik7CiAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgICBzdGF0aWMgUmVmPFZhbHVl
PiBjcmVhdGUoVCkgPSBkZWxldGU7CiAKQEAgLTkzLDI3ICs3NywyNyBAQCBwdWJsaWM6CiAgICAg
VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgYm9vbCBpc051bGwoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6TnVsbDsgfQogCi0gICAgc3RkOjpvcHRpb25h
bDxib29sPiBhc0Jvb2xlYW4oKSBjb25zdDsKLSAgICBzdGQ6Om9wdGlvbmFsPGludD4gYXNJbnRl
Z2VyKCkgY29uc3Q7Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGFzRG91YmxlKCkgY29uc3Q7
Ci0gICAgU3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFZhbHVlPiBhc1ZhbHVl
KCk7Ci0gICAgdmlydHVhbCBSZWZQdHI8T2JqZWN0PiBhc09iamVjdCgpOwotICAgIHZpcnR1YWwg
UmVmUHRyPGNvbnN0IE9iamVjdD4gYXNPYmplY3QoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RkOjpvcHRpb25hbDxib29sPiBhc0Jvb2xlYW4oKSBjb25zdDsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgc3RkOjpvcHRpb25hbDxpbnQ+IGFzSW50ZWdlcigpIGNvbnN0OworICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gYXNEb3VibGUoKSBjb25zdDsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7CisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIFJlZlB0cjxWYWx1ZT4gYXNWYWx1ZSgpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2aXJ0dWFsIFJlZlB0cjxPYmplY3Q+IGFzT2JqZWN0KCk7CisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZpcnR1YWwgUmVmUHRyPGNvbnN0IE9iamVjdD4gYXNPYmplY3QoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFJlZlB0cjxBcnJheT4gYXNBcnJheSgpOwogCi0gICAgc3RhdGljIFJlZlB0
cjxWYWx1ZT4gcGFyc2VKU09OKFN0cmluZ1ZpZXcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgUmVmUHRyPFZhbHVlPiBwYXJzZUpTT04oU3RyaW5nVmlldyk7CiAgICAgc3RhdGljIHZv
aWQgZXNjYXBlU3RyaW5nKFN0cmluZ0J1aWxkZXImLCBTdHJpbmdWaWV3KTsKIAotICAgIFN0cmlu
ZyB0b0pTT05TdHJpbmcoKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHRv
SlNPTlN0cmluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUpTT04oU3RyaW5nQnVp
bGRlciYgb3V0cHV0KSBjb25zdDsKIAogICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUNvc3QoKSBj
b25zdDsKIAogICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xNzk4NDc+IHJlbW92
ZSB0aGVzZSBmdW5jdGlvbnMgd2hlbiBsZWdhY3kgSW5zcGVjdG9yT2JqZWN0IHN5bWJvbHMgYXJl
IG5vIGxvbmdlciBuZWVkZWQuCi0gICAgYm9vbCBhc0RvdWJsZShkb3VibGUmKSBjb25zdDsKLSAg
ICBib29sIGFzSW50ZWdlcihpbnQmKSBjb25zdDsKLSAgICBib29sIGFzU3RyaW5nKFN0cmluZyYp
IGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGFzRG91YmxlKGRvdWJsZSYpIGNv
bnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGFzSW50ZWdlcihpbnQmKSBjb25zdDsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBhc1N0cmluZyhTdHJpbmcmKSBjb25zdDsKIAog
cHJvdGVjdGVkOgogICAgIFZhbHVlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaAppbmRleCAwMGE5Njc2ZDE1YjguLjAxYTkyY2YyN2NkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAgICAgewog
ICAgIH0KIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpIHsgcmV0dXJuIDE7IH0KLSAgICBib29sIGlz
OEJpdCgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiAxOyB9CisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCB3cml0ZVRvKENoYXJhY3RlclR5
cGUqIGRlc3RpbmF0aW9uKSBjb25zdCB7ICpkZXN0aW5hdGlvbiA9IG1fY2hhcmFjdGVyOyB9CiAK
IHByaXZhdGU6CkBAIC0zNTgsMTIgKzM1OCwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAot
ICAgIHVuc2lnbmVkIGxlbmd0aCgpCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QKICAgICB7
CiAgICAgICAgIHJldHVybiBtX2luZGVudGF0aW9uLnZhbHVlICogTjsKICAgICB9CiAKLSAgICBi
b29sIGlzOEJpdCgpCisgICAgYm9vbCBpczhCaXQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpAQCAtNDgxLDE1ICs0ODEsMTUgQEAgU3RyaW5nIHRyeU1ha2VTdHJp
bmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0
ZXJzIC4KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+Ci1TdHJpbmcgdHJ5
TWFrZVN0cmluZyhTdHJpbmdUeXBlcyAuLi5zdHJpbmdzKQorU3RyaW5nIHRyeU1ha2VTdHJpbmco
U3RyaW5nVHlwZXMmJiAuLi5zdHJpbmdzKQogewotICAgIHJldHVybiB0cnlNYWtlU3RyaW5nRnJv
bUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7Cisg
ICAgcmV0dXJuIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8c3Rk
OjpkZWNheV90PFN0cmluZ1R5cGVzPj4oc3RkOjpmb3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdz
KSkuLi4pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLVN0cmluZyBt
YWtlU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCitTdHJpbmcgbWFrZVN0cmluZyhTdHJp
bmdUeXBlcyYmLi4uIHN0cmluZ3MpCiB7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJp
bmcoc3RyaW5ncy4uLik7CisgICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmcoc3RkOjpm
b3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAg
ICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUyNCwxMyArNTI0LDEzIEBAIEF0
b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIg
YWRhcHRlciwgU3RyaW5nVHlwZUFkCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4K
IEF0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMgLi4uc3RyaW5ncykKIHsK
LSAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKKyAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJp
bmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8c3RkOjpkZWNheV90PFN0cmluZ1R5cGVz
Pj4oc3RkOjpmb3J3YXJkPFN0cmluZ1R5cGVzPihzdHJpbmdzKSkuLi4pOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KLUF0b21TdHJpbmcgbWFrZUF0b21TdHJpbmcoU3Ry
aW5nVHlwZXMuLi4gc3RyaW5ncykKK0F0b21TdHJpbmcgbWFrZUF0b21TdHJpbmcoU3RyaW5nVHlw
ZXMmJi4uLiBzdHJpbmdzKQogewotICAgIEF0b21TdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZUF0b21T
dHJpbmcoc3RyaW5ncy4uLik7CisgICAgQXRvbVN0cmluZyByZXN1bHQgPSB0cnlNYWtlQXRvbVN0
cmluZyhzdGQ6OmZvcndhcmQ8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKICAgICBpZiAocmVz
dWx0LmlzTnVsbCgpKQogICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiByZXN1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaAppbmRleCA0ZjUzYzI0ZTYyMzQuLmE1ZmIwMGQz
MmIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCkBAIC00NiwxNCArNDYs
MTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQXRvbVN0cmluZyhvcGVyYXRvciBTdHJpbmco
KSk7CiAgICAgfQogCi0gICAgYm9vbCBpczhCaXQoKQorICAgIGJvb2wgaXM4Qml0KCkgY29uc3QK
ICAgICB7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUxPiBhZGFwdGVyMSht
X3N0cmluZzEpOwogICAgICAgICBTdHJpbmdUeXBlQWRhcHRlcjxTdHJpbmdUeXBlMj4gYWRhcHRl
cjIobV9zdHJpbmcyKTsKICAgICAgICAgcmV0dXJuIGFkYXB0ZXIxLmlzOEJpdCgpICYmIGFkYXB0
ZXIyLmlzOEJpdCgpOwogICAgIH0KIAotICAgIHZvaWQgd3JpdGVUbyhMQ2hhciogZGVzdGluYXRp
b24pCisgICAgdm9pZCB3cml0ZVRvKExDaGFyKiBkZXN0aW5hdGlvbikgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpczhCaXQoKSk7CiAgICAgICAgIFN0cmluZ1R5cGVBZGFwdGVyPFN0cmlu
Z1R5cGUxPiBhZGFwdGVyMShtX3N0cmluZzEpOwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGFkYXB0ZXIyLndyaXRlVG8oZGVzdGluYXRpb24gKyBhZGFwdGVyMS5sZW5ndGgoKSk7
CiAgICAgfQogCi0gICAgdm9pZCB3cml0ZVRvKFVDaGFyKiBkZXN0aW5hdGlvbikKKyAgICB2b2lk
IHdyaXRlVG8oVUNoYXIqIGRlc3RpbmF0aW9uKSBjb25zdAogICAgIHsKICAgICAgICAgU3RyaW5n
VHlwZUFkYXB0ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CiAgICAgICAgIFN0
cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMihtX3N0cmluZzIpOwpAQCAtNzAs
NyArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGFkYXB0ZXIyLndyaXRlVG8oZGVzdGluYXRpb24g
KyBhZGFwdGVyMS5sZW5ndGgoKSk7CiAgICAgfQogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkKKyAg
ICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdAogICAgIHsKICAgICAgICAgU3RyaW5nVHlwZUFkYXB0
ZXI8U3RyaW5nVHlwZTE+IGFkYXB0ZXIxKG1fc3RyaW5nMSk7CiAgICAgICAgIFN0cmluZ1R5cGVB
ZGFwdGVyPFN0cmluZ1R5cGUyPiBhZGFwdGVyMihtX3N0cmluZzIpOwpAQCAtODUsNyArODUsNyBA
QCBwcml2YXRlOgogdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZTEsIHR5cGVuYW1lIFN0cmlu
Z1R5cGUyPgogY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nQXBwZW5kPFN0cmluZ1R5cGUx
LCBTdHJpbmdUeXBlMj4+IHsKIHB1YmxpYzoKLSAgICBTdHJpbmdUeXBlQWRhcHRlcihTdHJpbmdB
cHBlbmQ8U3RyaW5nVHlwZTEsIFN0cmluZ1R5cGUyPiYgYnVmZmVyKQorICAgIFN0cmluZ1R5cGVB
ZGFwdGVyKGNvbnN0IFN0cmluZ0FwcGVuZDxTdHJpbmdUeXBlMSwgU3RyaW5nVHlwZTI+JiBidWZm
ZXIpCiAgICAgICAgIDogbV9idWZmZXIgeyBidWZmZXIgfQogICAgIHsKICAgICB9CkBAIC05NSw3
ICs5NSw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2
b2lkIHdyaXRlVG8oQ2hhcmFjdGVyVHlwZSogZGVzdGluYXRpb24pIGNvbnN0IHsgbV9idWZmZXIu
d3JpdGVUbyhkZXN0aW5hdGlvbik7IH0KIAogcHJpdmF0ZToKLSAgICBTdHJpbmdBcHBlbmQ8U3Ry
aW5nVHlwZTEsIFN0cmluZ1R5cGUyPiYgbV9idWZmZXI7CisgICAgY29uc3QgU3RyaW5nQXBwZW5k
PFN0cmluZ1R5cGUxLCBTdHJpbmdUeXBlMj4mIG1fYnVmZmVyOwogfTsKIAogaW5saW5lIFN0cmlu
Z0FwcGVuZDxjb25zdCBjaGFyKiwgU3RyaW5nPiBvcGVyYXRvcisoY29uc3QgY2hhciogc3RyaW5n
MSwgY29uc3QgU3RyaW5nJiBzdHJpbmcyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAppbmRleCAxMTU2MzQxMzRi
ZDYuLjc4OTMwNDVhYTNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBw
dWJsaWM6CiAKICAgICAvLyBJbmNyZW1lbnRpbmcgdGhpcyBudW1iZXIgd2lsbCBkZWxldGUgYWxs
IGV4aXN0aW5nIGNhY2hlIGNvbnRlbnQgZm9yIGV2ZXJ5b25lLiBEbyB5b3UgcmVhbGx5IG5lZWQg
dG8gZG8gaXQ/CiAgICAgLy8gRklYTUU6IFdoZW4gdGhpcyBpcyBpbmNyZW1lbnRlZCwgcmVtb3Zl
IExlZ2FjeUNlcnRpZmljYXRlSW5mb1R5cGUuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZl
cnNpb24gPSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZlcnNpb24gPSAxNjsK
IAogICAgIFN0cmluZyBiYXNlUGF0aElzb2xhdGVkQ29weSgpIGNvbnN0OwogICAgIFN0cmluZyB2
ZXJzaW9uUGF0aCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQ29uY2F0ZW5hdGUuY3BwCmluZGV4IDM2M2Q3N2RmZTBmZi4uODM5ZDc4YTI0M2Vh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdDb25jYXRl
bmF0ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQ29uY2F0
ZW5hdGUuY3BwCkBAIC0zNSw2ICszNSwzMyBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CiAKK2NsYXNzIE5vbkNvcHlhYmxlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOb25Db3B5
YWJsZSk7CitwdWJsaWM6CisgICAgTm9uQ29weWFibGUoaW50IHZhbHVlKQorICAgICAgICA6IG1f
dmFsdWUodmFsdWUpIHsgfQorICAgIGludCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUg
KiAyOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IGNsYXNzIFN0
cmluZ1R5cGVBZGFwdGVyPFRlc3RXZWJLaXRBUEk6Ok5vbkNvcHlhYmxlLCB2b2lkPiA6IHB1Ymxp
YyBTdHJpbmdUeXBlQWRhcHRlcjxpbnQsIHZvaWQ+IHsKK3B1YmxpYzoKKyAgICBTdHJpbmdUeXBl
QWRhcHRlcihjb25zdCBUZXN0V2ViS2l0QVBJOjpOb25Db3B5YWJsZSYgb2JqZWN0KQorICAgICAg
ICA6IFN0cmluZ1R5cGVBZGFwdGVyPGludCwgdm9pZD4ob2JqZWN0LnZhbHVlKCkpCisgICAgewor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKIGVudW0gY2xhc3MgQm9vbEVudW0gOiBib29sIHsKICAgICBBLAogICAgIEIKQEAgLTIx
Niw0ICsyNDMsMzAgQEAgVEVTVChXVEYsIFN0cmluZ0NvbmNhdGVuYXRlX1R1cGxlKQogICAgIEVY
UEVDVF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3RyaW5nKHN0ZDo6bWFrZV90dXBsZSho
ZWxsb0NvZGVwb2ludHMsICcgJywgdW5zaWduZWQoNDIpLCAnICcsICJ3b3JsZCIpKS51dGY4KCku
ZGF0YSgpKTsKIH0KIAorVEVTVChXVEYsIFN0cmluZ0NvbmNhdGVuYXRlX1N0cmluZ0xpdGVyYWwp
Cit7CisgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0MiB3b3JsZCIsIG1ha2VTdHJpbmcoImhlbGxv
IiwgJyAnLCA0MiwgIiAiLCAid29ybGQiKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoImhlbGxvIDQyIHdvcmxkIiwgbWFrZVN0cmluZygiaGVsbG8iX3MsICcgJywgNDIsICIgIl9z
LCAid29ybGQiX3MpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJoZWxsbyA0
MiB3b3JsZCIsIG1ha2VTdHJpbmcoImhlbGxvIDQyXDBpZ25vcmVkIiwgJyAnLCAid29ybGQiKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvIDQyIHdvcmxkIiwgbWFrZVN0
cmluZygiaGVsbG8gNDJcMGlnbm9yZWQiX3MsICcgJywgIndvcmxkIikudXRmOCgpLmRhdGEoKSk7
CisKKyAgICBjb25zdCBjaGFyIGhlbGxvQ2hhcnNbXSA9ICJoZWxsbyI7CisgICAgY2hhciBoZWxs
b0RhdGFbNjRdOworICAgIG1lbWNweShoZWxsb0RhdGEsIGhlbGxvQ2hhcnMsIHNpemVvZihoZWxs
b0NoYXJzKSk7CisKKyAgICBhdXRvIGhlbGxvID0gbWFrZVN0cmluZyhoZWxsb0RhdGEpOworICAg
IEVYUEVDVF9TVFJFUSgiaGVsbG8iLCBoZWxsby51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1Rf
RVEoNXUsIGhlbGxvLmxlbmd0aCgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiaGVsbG8gNDIgd29y
bGQiLCBtYWtlU3RyaW5nKGhlbGxvRGF0YSwgIiA0MiB3b3JsZCIpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIEVYUEVDVF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3RyaW5nKGhlbGxvLCAiIDQy
IHdvcmxkIikudXRmOCgpLmRhdGEoKSk7Cit9CisKK1RFU1QoV1RGLCBTdHJpbmdDb25jYXRlbmF0
ZV9Ob25Db3B5YWJsZSkKK3sKKyAgICBOb25Db3B5YWJsZSBvYmplY3QoMjEpOworICAgIEVYUEVD
VF9TVFJFUSgiaGVsbG8gNDIgd29ybGQiLCBtYWtlU3RyaW5nKCJoZWxsbyAiLCBvYmplY3QsICIg
d29ybGQiKS51dGY4KCkuZGF0YSgpKTsKK30KKwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>