<?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>237265</bug_id>
          
          <creation_ts>2022-02-27 22:01:43 -0800</creation_ts>
          <short_desc>WTF::SentinelLinkedList::iterator should have operator++ for range-for loop</short_desc>
          <delta_ts>2022-03-01 15:52:17 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846540</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-27 22:01:43 -0800</bug_when>
    <thetext>WTF::SentinelLinkedList has three problems.

Even though it has begin() and end(), using SentinelLinkedList
with range-for loop results in a broken node because
iterator::operator++ doesn&apos;t work as expected.

If I use a SentinelLinkedList in a movable type, the sentinel
pointer gets stale.

It doesn&apos;t have const_iterator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846542</commentid>
    <comment_count>1</comment_count>
      <attachid>453366</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-27 22:10:01 -0800</bug_when>
    <thetext>Created attachment 453366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846599</commentid>
    <comment_count>2</comment_count>
      <attachid>453381</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-28 04:20:07 -0800</bug_when>
    <thetext>Created attachment 453381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846603</commentid>
    <comment_count>3</comment_count>
      <attachid>453382</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-28 05:09:23 -0800</bug_when>
    <thetext>Created attachment 453382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846917</commentid>
    <comment_count>4</comment_count>
      <attachid>453382</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-28 21:48:49 -0800</bug_when>
    <thetext>Comment on attachment 453382
Patch

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

r=me

&gt; Source/WTF/wtf/SentinelLinkedList.h:89
&gt; +        BaseIterator(RawNodeType* node)

Let&apos;s make it `explicit` constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847134</commentid>
    <comment_count>5</comment_count>
      <attachid>453382</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-03-01 12:04:47 -0800</bug_when>
    <thetext>Comment on attachment 453382
Patch

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

Thank you very much for the review.

&gt;&gt; Source/WTF/wtf/SentinelLinkedList.h:89
&gt;&gt; +        BaseIterator(RawNodeType* node)
&gt; 
&gt; Let&apos;s make it `explicit` constructor.

It&apos;s a good idea. 
But, I did this because there are some existing code assuming an iterator can compare with a node pointer.
But, It seeds a bad idea comparing an iterator without deference. I&apos;m going to rewrite them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847162</commentid>
    <comment_count>6</comment_count>
      <attachid>453534</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-03-01 13:28:42 -0800</bug_when>
    <thetext>Created attachment 453534
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847224</commentid>
    <comment_count>7</comment_count>
      <attachid>453534</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-03-01 15:51:42 -0800</bug_when>
    <thetext>Comment on attachment 453534
Patch for landing

Clearing flags on attachment: 453534

Committed r290705 (247954@trunk): &lt;https://commits.webkit.org/247954@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847225</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-03-01 15:51:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847226</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-01 15:52:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89646622&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453366</attachid>
            <date>2022-02-27 22:10:01 -0800</date>
            <delta_ts>2022-02-28 04:19:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237265-20220228151000.patch</filename>
            <type>text/plain</type>
            <size>13689</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTlmMGRlMDg3YWViMjdkZTAxNDhlOWY4NDU0MzI1MjJiNDJkNGVhLi45MzFmNTYwZmRlZTU3Njlm
MWI5ZDFjMDYyNGZiZmE4MjA4ZWExYmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMi0wMi0yNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KKworICAgICAgICBXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6aXRlcmF0b3Igc2hv
dWxkIGhhdmUgb3BlcmF0b3IrKyBmb3IgcmFuZ2UtZm9yIGxvb3AKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHA6
CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6OmZpcmVBbGxXYXRjaHBvaW50cyk6CisgICAg
ICAgICogaGVhcC9IYW5kbGVTZXQuY3BwOgorICAgICAgICAoSlNDOjpIYW5kbGVTZXQ6OnZpc2l0
U3Ryb25nSGFuZGxlcyk6CisgICAgICAgIChKU0M6OkhhbmRsZVNldDo6cHJvdGVjdGVkR2xvYmFs
T2JqZWN0Q291bnQpOgorICAgICAgICAqIGhlYXAvSGFuZGxlU2V0Lmg6CisgICAgICAgIChKU0M6
OkhhbmRsZVNldDo6Zm9yRWFjaFN0cm9uZ0hhbmRsZSk6CisgICAgICAgICogaGVhcC9Jc29TdWJz
cGFjZS5jcHA6CisgICAgICAgIChKU0M6Oklzb1N1YnNwYWNlOjp0cnlBbGxvY2F0ZUZyb21Mb3dl
clRpZXIpOgorICAgICAgICAqIGhlYXAvU3Vic3BhY2VJbmxpbmVzLmg6CisgICAgICAgIChKU0M6
OlN1YnNwYWNlOjpmb3JFYWNoUHJlY2lzZUFsbG9jYXRpb24pOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChXb3JrZXJzOjpicm9hZGNhc3QpOgorCiAyMDIyLTAyLTI3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgT21pdCB0ZW1wbGF0ZSBwYXJhbWV0ZXIg
Zm9yIFNldEZvclNjb3BlPD4gdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiYjMyMmViYTFmODJlOTNiMjA1NDRi
YTAxNDg3ZTNhYjRhOWU4NzAuLjlmNGFhNjNlMmM5MGVlZGQxZDhkODdhZmU2OTY1NDFkZTcxZDQw
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDItMjcgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6
Oml0ZXJhdG9yIHNob3VsZCBoYXZlIG9wZXJhdG9yKysgZm9yIHJhbmdlLWZvciBsb29wCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyNjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW50aW5lbExpbmtl
ZExpc3QgaGFkIHRocmVlIHByb2JsZW1zLgorICAgICAgICAxLiBFdmVuIHRob3VnaCBpdCBoYXMg
YmVnaW4oKSBhbmQgZW5kKCksIHVzaW5nIFNlbnRpbmVsTGlua2VkTGlzdAorICAgICAgICAgICB3
aXRoIHJhbmdlLWZvciBsb29wIHJlc3VsdGVkIGluIGEgYnJva2VuIG5vZGUgYmVjYXVzZQorICAg
ICAgICAgICBpdGVyYXRvcjo6b3BlcmF0b3IrKyBkaWRuJ3Qgd29yayBhcyBleHBlY3RlZC4KKyAg
ICAgICAgMi4gSWYgSSB1c2VkIGEgU2VudGluZWxMaW5rZWRMaXN0IGluIGEgbW92YWJsZSB0eXBl
LCB0aGUgc2VudGluZWwKKyAgICAgICAgICAgcG9pbnRlciBnZXRzIHN0YWxlIGFmdGVyIG1vdmlu
ZyB0aGUgb2JqZWN0LiBtb3ZlLWN0b3Igc2hvdWxkIGJlIGRlbGV0ZWQuCisgICAgICAgIDMuIEl0
IGRpZG4ndCBoYXZlIGNvbnN0X2l0ZXJhdG9yLgorCisgICAgICAgICogd3RmL1NlbnRpbmVsTGlu
a2VkTGlzdC5oOgorICAgICAgICAoV1RGOjpCYXNpY1Jhd1NlbnRpbmVsTm9kZTo6cHJldiBjb25z
dCk6CisgICAgICAgIChXVEY6OkJhc2ljUmF3U2VudGluZWxOb2RlOjpuZXh0IGNvbnN0KToKKyAg
ICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjpCYXNlSXRlcmF0b3I6OkJhc2VJdGVyYXRv
cik6CisgICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6QmFzZUl0ZXJhdG9yOjpvcGVy
YXRvciogY29uc3QpOgorICAgICAgICAoV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6OkJhc2VJdGVy
YXRvcjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6QmFz
ZUl0ZXJhdG9yOjpvcGVyYXRvci0tKToKKyAgICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0
OjpCYXNlSXRlcmF0b3I6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV1RGOjpTZW50aW5l
bExpbmtlZExpc3Q6OkJhc2VJdGVyYXRvcjo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChX
VEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6Zm9yRWFjaCk6CisgICAgICAgIChXVEY6OlJhd05vZGU+
OjpiZWdpbik6CisgICAgICAgIChXVEY6OlJhd05vZGU+OjplbmQpOgorICAgICAgICAoV1RGOjpS
YXdOb2RlPjo6YmVnaW4gY29uc3QpOgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6ZW5kIGNvbnN0
KToKKyAgICAgICAgKFdURjo6QmFzaWNSYXdTZW50aW5lbE5vZGU6OnByZXYpOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpCYXNpY1Jhd1NlbnRpbmVsTm9kZTo6bmV4dCk6IERlbGV0ZWQuCisKIDIw
MjItMDItMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBPbWl0
IHRlbXBsYXRlIHBhcmFtZXRlciBmb3IgU2V0Rm9yU2NvcGU8PiB2YXJpYWJsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcAppbmRleCA3NDQ4ODA3ODQz
YjVkMTdhNTIyYjZjOGEyMjI3OTg5MzIzNTI3Yzc4Li5mODA0NzdjZjE5NDAzMGZmYmQ2OGJjZjA4
MTU0MTNlMDQxNjM4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvV2F0Y2hwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dh
dGNocG9pbnQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBXYXRjaHBvaW50U2V0OjpmaXJl
QWxsV2F0Y2hwb2ludHMoVk0mIHZtLCBjb25zdCBGaXJlRGV0YWlsJiBkZXRhaWwpCiAgICAgRGVm
ZXJHQ0ZvckFXaGlsZSBkZWZlckdDKHZtKTsKICAgICAKICAgICB3aGlsZSAoIW1fc2V0LmlzRW1w
dHkoKSkgewotICAgICAgICBXYXRjaHBvaW50KiB3YXRjaHBvaW50ID0gbV9zZXQuYmVnaW4oKTsK
KyAgICAgICAgV2F0Y2hwb2ludCogd2F0Y2hwb2ludCA9ICYqbV9zZXQuYmVnaW4oKTsKICAgICAg
ICAgQVNTRVJUKHdhdGNocG9pbnQtPmlzT25MaXN0KCkpOwogICAgICAgICAKICAgICAgICAgLy8g
UmVtb3ZpbmcgdGhlIFdhdGNocG9pbnQgYmVmb3JlIGZpcmluZyBpdCBtYWtlcyBpdCBwb3NzaWJs
ZSB0byBpbXBsZW1lbnQgd2F0Y2hwb2ludHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5k
bGVTZXQuY3BwCmluZGV4IDgxOTk2NTFlNjUwYWVkODVmYTc1ZGFmMjE3ZjUxNzE0ODhiNDY5MjEu
LjAzMTYzYmQxOWNlMGM5NDc3N2IwMGY2NjBkOTExYWMwMTNkZWUyODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmNwcApAQCAtNTksMTIgKzU5LDExIEBAIHZvaWQgSGFu
ZGxlU2V0Ojpncm93KCkKIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CiB2b2lkIEhhbmRsZVNl
dDo6dmlzaXRTdHJvbmdIYW5kbGVzKFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgTm9kZSogZW5k
ID0gbV9zdHJvbmdMaXN0LmVuZCgpOwotICAgIGZvciAoTm9kZSogbm9kZSA9IG1fc3Ryb25nTGlz
dC5iZWdpbigpOyBub2RlICE9IGVuZDsgbm9kZSA9IG5vZGUtPm5leHQoKSkgeworICAgIGZvciAo
Tm9kZSYgbm9kZSA6IG1fc3Ryb25nTGlzdCkgewogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQot
ICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0xpdmVOb2RlKG5vZGUpKTsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlQoaXNMaXZlTm9kZSgmbm9kZSkpOwogI2VuZGlmCi0gICAgICAgIHZpc2l0b3IuYXBw
ZW5kVW5iYXJyaWVyZWQoKm5vZGUtPnNsb3QoKSk7CisgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5i
YXJyaWVyZWQoKm5vZGUuc2xvdCgpKTsKICAgICB9CiB9CiAKQEAgLTk1LDkgKzk0LDggQEAgdm9p
ZCBIYW5kbGVTZXQ6OndyaXRlQmFycmllcihIYW5kbGVTbG90IHNsb3QsIGNvbnN0IEpTVmFsdWUm
IHZhbHVlKQogdW5zaWduZWQgSGFuZGxlU2V0Ojpwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgp
CiB7CiAgICAgdW5zaWduZWQgY291bnQgPSAwOwotICAgIE5vZGUqIGVuZCA9IG1fc3Ryb25nTGlz
dC5lbmQoKTsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX3N0cm9uZ0xpc3QuYmVnaW4oKTsgbm9k
ZSAhPSBlbmQ7IG5vZGUgPSBub2RlLT5uZXh0KCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9
ICpub2RlLT5zbG90KCk7CisgICAgZm9yIChOb2RlJiBub2RlIDogbV9zdHJvbmdMaXN0KSB7Cisg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSAqbm9kZS5zbG90KCk7CiAgICAgICAgIGlmICh2YWx1ZS5p
c09iamVjdCgpICYmIGFzT2JqZWN0KHZhbHVlLmFzQ2VsbCgpKS0+aXNHbG9iYWxPYmplY3QoKSkK
ICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGFuZGxlU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5k
bGVTZXQuaAppbmRleCAxNmE4NWZmYTFkODMwNGEwNjI3NzU4N2MxZDBmOGQ0OTFkOWJhZmJiLi5m
ZTRhOGE3MTMyNzliZGM1YjljOGE4OTcwNzNlMzI5MWEyNTJmZjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IYW5kbGVTZXQuaApAQCAtMTgxLDkgKzE4MSw4IEBAIGlubGluZSBIYW5kbGVO
b2RlKiBIYW5kbGVOb2RlOjpuZXh0KCkKIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdm9p
ZCBIYW5kbGVTZXQ6OmZvckVhY2hTdHJvbmdIYW5kbGUoY29uc3QgRnVuY3RvciYgZnVuY3Rvciwg
Y29uc3QgSGFzaENvdW50ZWRTZXQ8SlNDZWxsKj4mIHNraXBTZXQpCiB7Ci0gICAgSGFuZGxlU2V0
OjpOb2RlKiBlbmQgPSBtX3N0cm9uZ0xpc3QuZW5kKCk7Ci0gICAgZm9yIChIYW5kbGVTZXQ6Ok5v
ZGUqIG5vZGUgPSBtX3N0cm9uZ0xpc3QuYmVnaW4oKTsgbm9kZSAhPSBlbmQ7IG5vZGUgPSBub2Rl
LT5uZXh0KCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9ICpub2RlLT5zbG90KCk7CisgICAg
Zm9yIChOb2RlJiBub2RlIDogbV9zdHJvbmdMaXN0KSB7CisgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSAqbm9kZS5zbG90KCk7CiAgICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzQ2VsbCgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChza2lwU2V0LmNvbnRhaW5zKHZhbHVl
LmFzQ2VsbCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1
YnNwYWNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmNwcApp
bmRleCBkOTAwYzdkNTA1ZDc5MWNlNjgxMTEyOTdlMGE3YmMyNmZjMTcxMzM2Li4wMGZmYmNlNDBk
MWIzYmIxODM4NDQ1NDlkM2NiOTFmN2JlYmUwZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2UuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQqIElzb1N1YnNwYWNl
Ojp0cnlBbGxvY2F0ZUZyb21Mb3dlclRpZXIoKQogICAgIH07CiAKICAgICBpZiAoIW1fbG93ZXJU
aWVyRnJlZUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFByZWNpc2VBbGxvY2F0aW9uKiBhbGxv
Y2F0aW9uID0gbV9sb3dlclRpZXJGcmVlTGlzdC5iZWdpbigpOworICAgICAgICBQcmVjaXNlQWxs
b2NhdGlvbiogYWxsb2NhdGlvbiA9ICYqbV9sb3dlclRpZXJGcmVlTGlzdC5iZWdpbigpOwogICAg
ICAgICBhbGxvY2F0aW9uLT5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuIHJldml2ZShhbGxvY2F0
aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJz
cGFjZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5l
cy5oCmluZGV4IDhlOWJhOGRkMmZmMjg0MzU2ZmY3MjhiMGVlMjg4Mzc2ZTMyNzRjNWMuLjlmYjk2
ZjY4NjA0MGU4NWIyNWJlN2YwYmQzNjkyMTBhZDRiMDdhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5lcy5oCkBAIC02Miw4ICs2Miw4IEBAIHZvaWQgU3Vi
c3BhY2U6OmZvckVhY2hOb3RFbXB0eU1hcmtlZEJsb2NrKGNvbnN0IEZ1bmMmIGZ1bmMpCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jPgogdm9pZCBTdWJzcGFjZTo6Zm9yRWFjaFByZWNpc2VBbGxvY2F0
aW9uKGNvbnN0IEZ1bmMmIGZ1bmMpCiB7Ci0gICAgZm9yIChQcmVjaXNlQWxsb2NhdGlvbiogYWxs
b2NhdGlvbiA9IG1fcHJlY2lzZUFsbG9jYXRpb25zLmJlZ2luKCk7IGFsbG9jYXRpb24gIT0gbV9w
cmVjaXNlQWxsb2NhdGlvbnMuZW5kKCk7IGFsbG9jYXRpb24gPSBhbGxvY2F0aW9uLT5uZXh0KCkp
Ci0gICAgICAgIGZ1bmMoYWxsb2NhdGlvbik7CisgICAgZm9yIChQcmVjaXNlQWxsb2NhdGlvbiYg
YWxsb2NhdGlvbiA6IG1fcHJlY2lzZUFsbG9jYXRpb25zKQorICAgICAgICBmdW5jKCZhbGxvY2F0
aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggMWM1NzE0ZDg0YjYxYjA4ZmU1OGM4ZTY2OTFiNmJiN2RiZmMyNzQ3My4uNDViZDJmOWIwZDEy
OWRmOGI3YTY1MTBiOTA4NjEzZjVkNjdmMDU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE5
ODQsOSArMTk4NCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiB2b2lkIFdvcmtlcnM6OmJy
b2FkY2FzdChjb25zdCBGdW5jJiBmdW5jKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKLSAgICBmb3IgKFdvcmtlciogd29ya2VyID0gbV93b3JrZXJzLmJlZ2luKCk7IHdvcmtlciAh
PSBtX3dvcmtlcnMuZW5kKCk7IHdvcmtlciA9IHdvcmtlci0+bmV4dCgpKSB7Ci0gICAgICAgIGlm
ICh3b3JrZXIgIT0gJldvcmtlcjo6Y3VycmVudCgpKQotICAgICAgICAgICAgZnVuYyhsb2NrZXIs
ICp3b3JrZXIpOworICAgIGZvciAoV29ya2VyJiB3b3JrZXIgOiBtX3dvcmtlcnMpIHsKKyAgICAg
ICAgaWYgKCZ3b3JrZXIgIT0gJldvcmtlcjo6Y3VycmVudCgpKQorICAgICAgICAgICAgZnVuYyhs
b2NrZXIsIHdvcmtlcik7CiAgICAgfQogICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmggYi9Tb3VyY2Uv
V1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaAppbmRleCAyZWJkOGM4YmM5NGNkMmNhMjZmY2U5
ODRkZWNhYWI2ZGExMTYyMTA4Li5mNzkyYmYwOGFhZWI4NDViYmZmNzQ1MmRiZGM4ZmI5M2E4YmE1
ZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaApAQCAtMzAsMTIgKzMwLDE1IEBA
CiAvLyAgICBSZXF1aXJlczogTm9kZSBpcyBhIGNvbmNyZXRlIGNsYXNzIHdpdGg6CiAvLyAgICAg
ICAgTm9kZShTZW50aW5lbFRhZyk7CiAvLyAgICAgICAgdm9pZCBzZXRQcmV2KE5vZGUqKTsKLS8v
ICAgICAgICBOb2RlKiBwcmV2KCk7CisvLyAgICAgICAgTm9kZSogcHJldigpIGNvbnN0OwogLy8g
ICAgICAgIHZvaWQgc2V0TmV4dChOb2RlKik7Ci0vLyAgICAgICAgTm9kZSogbmV4dCgpOworLy8g
ICAgICAgIE5vZGUqIG5leHQoKSBjb25zdDsKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxp
dGVyYXRvcj4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvTm9u
bW92YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYWNrZWQuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBA
IC01Nyw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXYoQmFzaWNSYXdTZW50aW5l
bE5vZGUqIHByZXYpIHsgbV9wcmV2ID0gcHJldjsgfQogICAgIHZvaWQgc2V0TmV4dChCYXNpY1Jh
d1NlbnRpbmVsTm9kZSogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CiAgICAgCi0gICAgVCogcHJl
digpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihQdHJUcmFpdHM6OnVud3JhcChtX3ByZXYpKTsg
fQotICAgIFQqIG5leHQoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxUKj4oUHRyVHJhaXRzOjp1bndy
YXAobV9uZXh0KSk7IH0KKyAgICBUKiBwcmV2KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VCo+KFB0clRyYWl0czo6dW53cmFwKG1fcHJldikpOyB9CisgICAgVCogbmV4dCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFQqPihQdHJUcmFpdHM6OnVud3JhcChtX25leHQpKTsgfQogICAg
IAogICAgIGJvb2wgaXNPbkxpc3QoKSBjb25zdAogICAgIHsKQEAgLTc3LDggKzgwLDQ3IEBAIHBy
aXZhdGU6CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZSA9IFQ+
IGNsYXNzIFNlbnRpbmVsTGlua2VkTGlzdCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Vu
dGluZWxMaW5rZWRMaXN0KTsKKyAgICBXVEZfTUFLRV9OT05NT1ZBQkxFKFNlbnRpbmVsTGlua2Vk
TGlzdCk7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBUKiBpdGVyYXRvcjsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBSYXdOb2RlVHlwZSwgdHlwZW5hbWUgTm9kZVR5cGU+IGNsYXNzIEJhc2VJdGVyYXRv
ciB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAg
ICAgQmFzZUl0ZXJhdG9yKFJhd05vZGVUeXBlKiBub2RlKQorICAgICAgICAgICAgOiBtX25vZGUo
bm9kZSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhdXRvJiBvcGVy
YXRvciooKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxOb2RlVHlwZSY+KCptX25vZGUpOyB9
CisKKyAgICAgICAgQmFzZUl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgbV9ub2RlID0gbV9ub2RlLT5uZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEJhc2VJdGVyYXRvciYgb3BlcmF0b3ItLSgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fbm9kZSA9IG1fbm9kZS0+cHJldigpOworICAgICAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgQmFzZUl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIG1fbm9kZSA9PSBvdGhlci5tX25vZGU7CisgICAgICAgIH0KKworICAg
ICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQmFzZUl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgICAgICB9
CisKKyAgICBwcml2YXRlOgorICAgICAgICBSYXdOb2RlVHlwZSogbV9ub2RlOworICAgIH07CisK
KyAgICB1c2luZyBpdGVyYXRvciA9IEJhc2VJdGVyYXRvcjxSYXdOb2RlLCBUPjsKKyAgICB1c2lu
ZyBjb25zdF9pdGVyYXRvciA9IEJhc2VJdGVyYXRvcjxjb25zdCBSYXdOb2RlLCBjb25zdCBUPjsK
IAogICAgIFNlbnRpbmVsTGlua2VkTGlzdCgpCiAgICAgICAgIDogbV9zZW50aW5lbChTZW50aW5l
bCkKQEAgLTEwMSw2ICsxNDMsOCBAQCBwdWJsaWM6CiAKICAgICBpdGVyYXRvciBiZWdpbigpOwog
ICAgIGl0ZXJhdG9yIGVuZCgpOworICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3Q7Cisg
ICAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7CiAgICAgCiAgICAgYm9vbCBpc0VtcHR5KCkg
eyByZXR1cm4gYmVnaW4oKSA9PSBlbmQoKTsgfQogICAgIApAQCAtMTA4LDggKzE1Miw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZvckVhY2goY29uc3QgRnVuYyYgZnVuYykKICAgICB7CiAgICAgICAg
IGZvciAoaXRlcmF0b3IgaXRlciA9IGJlZ2luKCk7IGl0ZXIgIT0gZW5kKCk7KSB7Ci0gICAgICAg
ICAgICBpdGVyYXRvciBuZXh0ID0gaXRlci0+bmV4dCgpOwotICAgICAgICAgICAgZnVuYyhpdGVy
KTsKKyAgICAgICAgICAgIGl0ZXJhdG9yIG5leHQgPSBpdGVyOworICAgICAgICAgICAgKytuZXh0
OworICAgICAgICAgICAgZnVuYygmKml0ZXIpOwogICAgICAgICAgICAgaXRlciA9IG5leHQ7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xMzksMTIgKzE4NCwyMiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgUHRyVHJhaXRzPiB2b2lkIEJhc2ljUmF3U2VudGluZWxOb2RlPFQsIFB0clRy
YWl0cwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5saW5lIHR5
cGVuYW1lIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6aXRlcmF0b3IgU2VudGluZWxM
aW5rZWRMaXN0PFQsIFJhd05vZGU+OjpiZWdpbigpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PFQqPihtX3NlbnRpbmVsLm5leHQoKSk7CisgICAgcmV0dXJuIG1fc2VudGluZWwubmV4dCgpOwog
fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5saW5lIHR5cGVu
YW1lIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6aXRlcmF0b3IgU2VudGluZWxMaW5r
ZWRMaXN0PFQsIFJhd05vZGU+OjplbmQoKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4o
Jm1fc2VudGluZWwpOworICAgIHJldHVybiAmbV9zZW50aW5lbDsKK30KKwordGVtcGxhdGUgPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05vZGU+IGlubGluZSB0eXBlbmFtZSBTZW50aW5lbExpbmtl
ZExpc3Q8VCwgUmF3Tm9kZT46OmNvbnN0X2l0ZXJhdG9yIFNlbnRpbmVsTGlua2VkTGlzdDxULCBS
YXdOb2RlPjo6YmVnaW4oKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbnRpbmVsLm5leHQoKTsK
K30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05vZGU+IGlubGluZSB0eXBl
bmFtZSBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OmNvbnN0X2l0ZXJhdG9yIFNlbnRp
bmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6ZW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gJm1f
c2VudGluZWw7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBp
bmxpbmUgdm9pZCBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OnB1c2goVCogbm9kZSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZTQ5
ZjAzMTg3M2NjMjU5YzM1MmQ4ZjA1ZWJhYmZlMjY2ZjgxNDA2Li4xODE4ZmViNGM2YThkMTlmNjIx
ZDkxY2JmNTFmNWYwZGE5NzhkNjdmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMjcgIEZ1amlpIEhpcm9u
b3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgV1RGOjpTZW50aW5lbExp
bmtlZExpc3Q6Oml0ZXJhdG9yIHNob3VsZCBoYXZlIG9wZXJhdG9yKysgZm9yIHJhbmdlLWZvciBs
b29wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcy
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NlbnRpbmVsTGlua2VkTGlzdC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMi0wMi0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIE9taXQgdGVtcGxhdGUgcGFyYW1ldGVyIGZvciBTZXRGb3JT
Y29wZTw+IHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU2VudGluZWxMaW5rZWRMaXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1NlbnRpbmVsTGlua2VkTGlzdC5jcHAKaW5kZXggOTEyOWFkZGI0ZTY5ZGQwYzgyYTQ1NDNhNzNi
ODc3ZGQxMzljNGFjOC4uYzhiZTlmYzVkNTNhYTI0MWZlZTdkYmRhYmQ2NzQxNDYxMmI2OGMwNSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2VudGluZWxMaW5rZWRM
aXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtl
ZExpc3QuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0
LCBSZW1vdmUpCiAKICAgICBpbnQgaSA9IDA7CiAgICAgd2hpbGUgKCFsaXN0LmlzRW1wdHkoKSkg
ewotICAgICAgICBhdXRvKiBub2RlID0gbGlzdC5iZWdpbigpOworICAgICAgICBhdXRvIG5vZGUg
PSBsaXN0LmJlZ2luKCk7CiAgICAgICAgIEVYUEVDVF9FUShpKyssIG5vZGUtPnZhbHVlKCkpOwog
ICAgICAgICBub2RlLT5yZW1vdmUoKTsKICAgICB9CkBAIC0xNzIsNCArMTcyLDE4IEBAIFRFU1Qo
V1RGX1NlbnRpbmVsTGlua2VkTGlzdCwgRm9yRWFjaCkKICAgICBFWFBFQ1RfRVEoMTAsIGkpOwog
fQogCitURVNUKFdURl9TZW50aW5lbExpbmtlZExpc3QsIENvbnN0KQoreworICAgIEJhZzxUZXN0
Tm9kZT4gYmFnOworICAgIFNlbnRpbmVsTGlua2VkTGlzdDxUZXN0Tm9kZT4gbm9uQ29uc3RMaXN0
OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICAgICAgbm9uQ29uc3RMaXN0
LmFwcGVuZChiYWcuYWRkKGkpKTsKKworICAgIGNvbnN0IFNlbnRpbmVsTGlua2VkTGlzdDxUZXN0
Tm9kZT4mIGNvbnN0TGlzdCA9IG5vbkNvbnN0TGlzdDsKKyAgICBpbnQgaSA9IDA7CisgICAgZm9y
IChhdXRvJiBub2RlIDogY29uc3RMaXN0KQorICAgICAgICBFWFBFQ1RfRVEoaSsrLCBub2RlLnZh
bHVlKCkpOworICAgIEVYUEVDVF9FUSgxMCwgaSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453381</attachid>
            <date>2022-02-28 04:20:07 -0800</date>
            <delta_ts>2022-02-28 05:14:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237265-20220228212006.patch</filename>
            <type>text/plain</type>
            <size>13768</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTlmMGRlMDg3YWViMjdkZTAxNDhlOWY4NDU0MzI1MjJiNDJkNGVhLi45MzFmNTYwZmRlZTU3Njlm
MWI5ZDFjMDYyNGZiZmE4MjA4ZWExYmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMi0wMi0yNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KKworICAgICAgICBXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6aXRlcmF0b3Igc2hv
dWxkIGhhdmUgb3BlcmF0b3IrKyBmb3IgcmFuZ2UtZm9yIGxvb3AKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHA6
CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6OmZpcmVBbGxXYXRjaHBvaW50cyk6CisgICAg
ICAgICogaGVhcC9IYW5kbGVTZXQuY3BwOgorICAgICAgICAoSlNDOjpIYW5kbGVTZXQ6OnZpc2l0
U3Ryb25nSGFuZGxlcyk6CisgICAgICAgIChKU0M6OkhhbmRsZVNldDo6cHJvdGVjdGVkR2xvYmFs
T2JqZWN0Q291bnQpOgorICAgICAgICAqIGhlYXAvSGFuZGxlU2V0Lmg6CisgICAgICAgIChKU0M6
OkhhbmRsZVNldDo6Zm9yRWFjaFN0cm9uZ0hhbmRsZSk6CisgICAgICAgICogaGVhcC9Jc29TdWJz
cGFjZS5jcHA6CisgICAgICAgIChKU0M6Oklzb1N1YnNwYWNlOjp0cnlBbGxvY2F0ZUZyb21Mb3dl
clRpZXIpOgorICAgICAgICAqIGhlYXAvU3Vic3BhY2VJbmxpbmVzLmg6CisgICAgICAgIChKU0M6
OlN1YnNwYWNlOjpmb3JFYWNoUHJlY2lzZUFsbG9jYXRpb24pOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChXb3JrZXJzOjpicm9hZGNhc3QpOgorCiAyMDIyLTAyLTI3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgT21pdCB0ZW1wbGF0ZSBwYXJhbWV0ZXIg
Zm9yIFNldEZvclNjb3BlPD4gdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiYjMyMmViYTFmODJlOTNiMjA1NDRi
YTAxNDg3ZTNhYjRhOWU4NzAuLjlmNGFhNjNlMmM5MGVlZGQxZDhkODdhZmU2OTY1NDFkZTcxZDQw
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDItMjcgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6
Oml0ZXJhdG9yIHNob3VsZCBoYXZlIG9wZXJhdG9yKysgZm9yIHJhbmdlLWZvciBsb29wCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyNjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW50aW5lbExpbmtl
ZExpc3QgaGFkIHRocmVlIHByb2JsZW1zLgorICAgICAgICAxLiBFdmVuIHRob3VnaCBpdCBoYXMg
YmVnaW4oKSBhbmQgZW5kKCksIHVzaW5nIFNlbnRpbmVsTGlua2VkTGlzdAorICAgICAgICAgICB3
aXRoIHJhbmdlLWZvciBsb29wIHJlc3VsdGVkIGluIGEgYnJva2VuIG5vZGUgYmVjYXVzZQorICAg
ICAgICAgICBpdGVyYXRvcjo6b3BlcmF0b3IrKyBkaWRuJ3Qgd29yayBhcyBleHBlY3RlZC4KKyAg
ICAgICAgMi4gSWYgSSB1c2VkIGEgU2VudGluZWxMaW5rZWRMaXN0IGluIGEgbW92YWJsZSB0eXBl
LCB0aGUgc2VudGluZWwKKyAgICAgICAgICAgcG9pbnRlciBnZXRzIHN0YWxlIGFmdGVyIG1vdmlu
ZyB0aGUgb2JqZWN0LiBtb3ZlLWN0b3Igc2hvdWxkIGJlIGRlbGV0ZWQuCisgICAgICAgIDMuIEl0
IGRpZG4ndCBoYXZlIGNvbnN0X2l0ZXJhdG9yLgorCisgICAgICAgICogd3RmL1NlbnRpbmVsTGlu
a2VkTGlzdC5oOgorICAgICAgICAoV1RGOjpCYXNpY1Jhd1NlbnRpbmVsTm9kZTo6cHJldiBjb25z
dCk6CisgICAgICAgIChXVEY6OkJhc2ljUmF3U2VudGluZWxOb2RlOjpuZXh0IGNvbnN0KToKKyAg
ICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjpCYXNlSXRlcmF0b3I6OkJhc2VJdGVyYXRv
cik6CisgICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6QmFzZUl0ZXJhdG9yOjpvcGVy
YXRvciogY29uc3QpOgorICAgICAgICAoV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6OkJhc2VJdGVy
YXRvcjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6QmFz
ZUl0ZXJhdG9yOjpvcGVyYXRvci0tKToKKyAgICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0
OjpCYXNlSXRlcmF0b3I6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV1RGOjpTZW50aW5l
bExpbmtlZExpc3Q6OkJhc2VJdGVyYXRvcjo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChX
VEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6Zm9yRWFjaCk6CisgICAgICAgIChXVEY6OlJhd05vZGU+
OjpiZWdpbik6CisgICAgICAgIChXVEY6OlJhd05vZGU+OjplbmQpOgorICAgICAgICAoV1RGOjpS
YXdOb2RlPjo6YmVnaW4gY29uc3QpOgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6ZW5kIGNvbnN0
KToKKyAgICAgICAgKFdURjo6QmFzaWNSYXdTZW50aW5lbE5vZGU6OnByZXYpOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpCYXNpY1Jhd1NlbnRpbmVsTm9kZTo6bmV4dCk6IERlbGV0ZWQuCisKIDIw
MjItMDItMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBPbWl0
IHRlbXBsYXRlIHBhcmFtZXRlciBmb3IgU2V0Rm9yU2NvcGU8PiB2YXJpYWJsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcAppbmRleCA3NDQ4ODA3ODQz
YjVkMTdhNTIyYjZjOGEyMjI3OTg5MzIzNTI3Yzc4Li5mODA0NzdjZjE5NDAzMGZmYmQ2OGJjZjA4
MTU0MTNlMDQxNjM4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvV2F0Y2hwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dh
dGNocG9pbnQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBXYXRjaHBvaW50U2V0OjpmaXJl
QWxsV2F0Y2hwb2ludHMoVk0mIHZtLCBjb25zdCBGaXJlRGV0YWlsJiBkZXRhaWwpCiAgICAgRGVm
ZXJHQ0ZvckFXaGlsZSBkZWZlckdDKHZtKTsKICAgICAKICAgICB3aGlsZSAoIW1fc2V0LmlzRW1w
dHkoKSkgewotICAgICAgICBXYXRjaHBvaW50KiB3YXRjaHBvaW50ID0gbV9zZXQuYmVnaW4oKTsK
KyAgICAgICAgV2F0Y2hwb2ludCogd2F0Y2hwb2ludCA9ICYqbV9zZXQuYmVnaW4oKTsKICAgICAg
ICAgQVNTRVJUKHdhdGNocG9pbnQtPmlzT25MaXN0KCkpOwogICAgICAgICAKICAgICAgICAgLy8g
UmVtb3ZpbmcgdGhlIFdhdGNocG9pbnQgYmVmb3JlIGZpcmluZyBpdCBtYWtlcyBpdCBwb3NzaWJs
ZSB0byBpbXBsZW1lbnQgd2F0Y2hwb2ludHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5k
bGVTZXQuY3BwCmluZGV4IDgxOTk2NTFlNjUwYWVkODVmYTc1ZGFmMjE3ZjUxNzE0ODhiNDY5MjEu
LjAzMTYzYmQxOWNlMGM5NDc3N2IwMGY2NjBkOTExYWMwMTNkZWUyODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmNwcApAQCAtNTksMTIgKzU5LDExIEBAIHZvaWQgSGFu
ZGxlU2V0Ojpncm93KCkKIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CiB2b2lkIEhhbmRsZVNl
dDo6dmlzaXRTdHJvbmdIYW5kbGVzKFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgTm9kZSogZW5k
ID0gbV9zdHJvbmdMaXN0LmVuZCgpOwotICAgIGZvciAoTm9kZSogbm9kZSA9IG1fc3Ryb25nTGlz
dC5iZWdpbigpOyBub2RlICE9IGVuZDsgbm9kZSA9IG5vZGUtPm5leHQoKSkgeworICAgIGZvciAo
Tm9kZSYgbm9kZSA6IG1fc3Ryb25nTGlzdCkgewogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQot
ICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0xpdmVOb2RlKG5vZGUpKTsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlQoaXNMaXZlTm9kZSgmbm9kZSkpOwogI2VuZGlmCi0gICAgICAgIHZpc2l0b3IuYXBw
ZW5kVW5iYXJyaWVyZWQoKm5vZGUtPnNsb3QoKSk7CisgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5i
YXJyaWVyZWQoKm5vZGUuc2xvdCgpKTsKICAgICB9CiB9CiAKQEAgLTk1LDkgKzk0LDggQEAgdm9p
ZCBIYW5kbGVTZXQ6OndyaXRlQmFycmllcihIYW5kbGVTbG90IHNsb3QsIGNvbnN0IEpTVmFsdWUm
IHZhbHVlKQogdW5zaWduZWQgSGFuZGxlU2V0Ojpwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgp
CiB7CiAgICAgdW5zaWduZWQgY291bnQgPSAwOwotICAgIE5vZGUqIGVuZCA9IG1fc3Ryb25nTGlz
dC5lbmQoKTsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX3N0cm9uZ0xpc3QuYmVnaW4oKTsgbm9k
ZSAhPSBlbmQ7IG5vZGUgPSBub2RlLT5uZXh0KCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9
ICpub2RlLT5zbG90KCk7CisgICAgZm9yIChOb2RlJiBub2RlIDogbV9zdHJvbmdMaXN0KSB7Cisg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSAqbm9kZS5zbG90KCk7CiAgICAgICAgIGlmICh2YWx1ZS5p
c09iamVjdCgpICYmIGFzT2JqZWN0KHZhbHVlLmFzQ2VsbCgpKS0+aXNHbG9iYWxPYmplY3QoKSkK
ICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGFuZGxlU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5k
bGVTZXQuaAppbmRleCAxNmE4NWZmYTFkODMwNGEwNjI3NzU4N2MxZDBmOGQ0OTFkOWJhZmJiLi5m
ZTRhOGE3MTMyNzliZGM1YjljOGE4OTcwNzNlMzI5MWEyNTJmZjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IYW5kbGVTZXQuaApAQCAtMTgxLDkgKzE4MSw4IEBAIGlubGluZSBIYW5kbGVO
b2RlKiBIYW5kbGVOb2RlOjpuZXh0KCkKIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdm9p
ZCBIYW5kbGVTZXQ6OmZvckVhY2hTdHJvbmdIYW5kbGUoY29uc3QgRnVuY3RvciYgZnVuY3Rvciwg
Y29uc3QgSGFzaENvdW50ZWRTZXQ8SlNDZWxsKj4mIHNraXBTZXQpCiB7Ci0gICAgSGFuZGxlU2V0
OjpOb2RlKiBlbmQgPSBtX3N0cm9uZ0xpc3QuZW5kKCk7Ci0gICAgZm9yIChIYW5kbGVTZXQ6Ok5v
ZGUqIG5vZGUgPSBtX3N0cm9uZ0xpc3QuYmVnaW4oKTsgbm9kZSAhPSBlbmQ7IG5vZGUgPSBub2Rl
LT5uZXh0KCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9ICpub2RlLT5zbG90KCk7CisgICAg
Zm9yIChOb2RlJiBub2RlIDogbV9zdHJvbmdMaXN0KSB7CisgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSAqbm9kZS5zbG90KCk7CiAgICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzQ2VsbCgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChza2lwU2V0LmNvbnRhaW5zKHZhbHVl
LmFzQ2VsbCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1
YnNwYWNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmNwcApp
bmRleCBkOTAwYzdkNTA1ZDc5MWNlNjgxMTEyOTdlMGE3YmMyNmZjMTcxMzM2Li4wMGZmYmNlNDBk
MWIzYmIxODM4NDQ1NDlkM2NiOTFmN2JlYmUwZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2UuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQqIElzb1N1YnNwYWNl
Ojp0cnlBbGxvY2F0ZUZyb21Mb3dlclRpZXIoKQogICAgIH07CiAKICAgICBpZiAoIW1fbG93ZXJU
aWVyRnJlZUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFByZWNpc2VBbGxvY2F0aW9uKiBhbGxv
Y2F0aW9uID0gbV9sb3dlclRpZXJGcmVlTGlzdC5iZWdpbigpOworICAgICAgICBQcmVjaXNlQWxs
b2NhdGlvbiogYWxsb2NhdGlvbiA9ICYqbV9sb3dlclRpZXJGcmVlTGlzdC5iZWdpbigpOwogICAg
ICAgICBhbGxvY2F0aW9uLT5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuIHJldml2ZShhbGxvY2F0
aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJz
cGFjZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5l
cy5oCmluZGV4IDhlOWJhOGRkMmZmMjg0MzU2ZmY3MjhiMGVlMjg4Mzc2ZTMyNzRjNWMuLjlmYjk2
ZjY4NjA0MGU4NWIyNWJlN2YwYmQzNjkyMTBhZDRiMDdhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5lcy5oCkBAIC02Miw4ICs2Miw4IEBAIHZvaWQgU3Vi
c3BhY2U6OmZvckVhY2hOb3RFbXB0eU1hcmtlZEJsb2NrKGNvbnN0IEZ1bmMmIGZ1bmMpCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jPgogdm9pZCBTdWJzcGFjZTo6Zm9yRWFjaFByZWNpc2VBbGxvY2F0
aW9uKGNvbnN0IEZ1bmMmIGZ1bmMpCiB7Ci0gICAgZm9yIChQcmVjaXNlQWxsb2NhdGlvbiogYWxs
b2NhdGlvbiA9IG1fcHJlY2lzZUFsbG9jYXRpb25zLmJlZ2luKCk7IGFsbG9jYXRpb24gIT0gbV9w
cmVjaXNlQWxsb2NhdGlvbnMuZW5kKCk7IGFsbG9jYXRpb24gPSBhbGxvY2F0aW9uLT5uZXh0KCkp
Ci0gICAgICAgIGZ1bmMoYWxsb2NhdGlvbik7CisgICAgZm9yIChQcmVjaXNlQWxsb2NhdGlvbiYg
YWxsb2NhdGlvbiA6IG1fcHJlY2lzZUFsbG9jYXRpb25zKQorICAgICAgICBmdW5jKCZhbGxvY2F0
aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggMWM1NzE0ZDg0YjYxYjA4ZmU1OGM4ZTY2OTFiNmJiN2RiZmMyNzQ3My4uNDViZDJmOWIwZDEy
OWRmOGI3YTY1MTBiOTA4NjEzZjVkNjdmMDU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE5
ODQsOSArMTk4NCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiB2b2lkIFdvcmtlcnM6OmJy
b2FkY2FzdChjb25zdCBGdW5jJiBmdW5jKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKLSAgICBmb3IgKFdvcmtlciogd29ya2VyID0gbV93b3JrZXJzLmJlZ2luKCk7IHdvcmtlciAh
PSBtX3dvcmtlcnMuZW5kKCk7IHdvcmtlciA9IHdvcmtlci0+bmV4dCgpKSB7Ci0gICAgICAgIGlm
ICh3b3JrZXIgIT0gJldvcmtlcjo6Y3VycmVudCgpKQotICAgICAgICAgICAgZnVuYyhsb2NrZXIs
ICp3b3JrZXIpOworICAgIGZvciAoV29ya2VyJiB3b3JrZXIgOiBtX3dvcmtlcnMpIHsKKyAgICAg
ICAgaWYgKCZ3b3JrZXIgIT0gJldvcmtlcjo6Y3VycmVudCgpKQorICAgICAgICAgICAgZnVuYyhs
b2NrZXIsIHdvcmtlcik7CiAgICAgfQogICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmggYi9Tb3VyY2Uv
V1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaAppbmRleCAyZWJkOGM4YmM5NGNkMmNhMjZmY2U5
ODRkZWNhYWI2ZGExMTYyMTA4Li4xNjU0YzkxOGQwYmU0ZmEyNjU4NzI0MWE4MTI2OWM4YWYxZmM0
NDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaApAQCAtMzAsMTIgKzMwLDE1IEBA
CiAvLyAgICBSZXF1aXJlczogTm9kZSBpcyBhIGNvbmNyZXRlIGNsYXNzIHdpdGg6CiAvLyAgICAg
ICAgTm9kZShTZW50aW5lbFRhZyk7CiAvLyAgICAgICAgdm9pZCBzZXRQcmV2KE5vZGUqKTsKLS8v
ICAgICAgICBOb2RlKiBwcmV2KCk7CisvLyAgICAgICAgTm9kZSogcHJldigpIGNvbnN0OwogLy8g
ICAgICAgIHZvaWQgc2V0TmV4dChOb2RlKik7Ci0vLyAgICAgICAgTm9kZSogbmV4dCgpOworLy8g
ICAgICAgIE5vZGUqIG5leHQoKSBjb25zdDsKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxp
dGVyYXRvcj4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvTm9u
bW92YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYWNrZWQuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBA
IC01Nyw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXYoQmFzaWNSYXdTZW50aW5l
bE5vZGUqIHByZXYpIHsgbV9wcmV2ID0gcHJldjsgfQogICAgIHZvaWQgc2V0TmV4dChCYXNpY1Jh
d1NlbnRpbmVsTm9kZSogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CiAgICAgCi0gICAgVCogcHJl
digpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihQdHJUcmFpdHM6OnVud3JhcChtX3ByZXYpKTsg
fQotICAgIFQqIG5leHQoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxUKj4oUHRyVHJhaXRzOjp1bndy
YXAobV9uZXh0KSk7IH0KKyAgICBUKiBwcmV2KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VCo+KFB0clRyYWl0czo6dW53cmFwKG1fcHJldikpOyB9CisgICAgVCogbmV4dCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFQqPihQdHJUcmFpdHM6OnVud3JhcChtX25leHQpKTsgfQogICAg
IAogICAgIGJvb2wgaXNPbkxpc3QoKSBjb25zdAogICAgIHsKQEAgLTc3LDggKzgwLDQ5IEBAIHBy
aXZhdGU6CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZSA9IFQ+
IGNsYXNzIFNlbnRpbmVsTGlua2VkTGlzdCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Vu
dGluZWxMaW5rZWRMaXN0KTsKKyAgICBXVEZfTUFLRV9OT05NT1ZBQkxFKFNlbnRpbmVsTGlua2Vk
TGlzdCk7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBUKiBpdGVyYXRvcjsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBSYXdOb2RlVHlwZSwgdHlwZW5hbWUgTm9kZVR5cGU+IGNsYXNzIEJhc2VJdGVyYXRv
ciB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAg
ICAgQmFzZUl0ZXJhdG9yKFJhd05vZGVUeXBlKiBub2RlKQorICAgICAgICAgICAgOiBtX25vZGUo
bm9kZSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhdXRvJiBvcGVy
YXRvciooKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxOb2RlVHlwZSY+KCptX25vZGUpOyB9
CisKKyAgICAgICAgYXV0byogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PE5vZGVUeXBlKj4obV9ub2RlKTsgfQorCisgICAgICAgIEJhc2VJdGVyYXRvciYgb3BlcmF0b3Ir
KygpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fbm9kZSA9IG1fbm9kZS0+bmV4dCgpOworICAg
ICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBCYXNl
SXRlcmF0b3ImIG9wZXJhdG9yLS0oKQorICAgICAgICB7CisgICAgICAgICAgICBtX25vZGUgPSBt
X25vZGUtPnByZXYoKTsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJhc2VJdGVyYXRvciYgb3RoZXIp
IGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX25vZGUgPT0gb3RoZXIubV9u
b2RlOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEJhc2VJdGVy
YXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhKCp0aGlz
ID09IG90aGVyKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmF3Tm9kZVR5
cGUqIG1fbm9kZTsKKyAgICB9OworCisgICAgdXNpbmcgaXRlcmF0b3IgPSBCYXNlSXRlcmF0b3I8
UmF3Tm9kZSwgVD47CisgICAgdXNpbmcgY29uc3RfaXRlcmF0b3IgPSBCYXNlSXRlcmF0b3I8Y29u
c3QgUmF3Tm9kZSwgY29uc3QgVD47CiAKICAgICBTZW50aW5lbExpbmtlZExpc3QoKQogICAgICAg
ICA6IG1fc2VudGluZWwoU2VudGluZWwpCkBAIC0xMDEsNiArMTQ1LDggQEAgcHVibGljOgogCiAg
ICAgaXRlcmF0b3IgYmVnaW4oKTsKICAgICBpdGVyYXRvciBlbmQoKTsKKyAgICBjb25zdF9pdGVy
YXRvciBiZWdpbigpIGNvbnN0OworICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0OwogICAg
IAogICAgIGJvb2wgaXNFbXB0eSgpIHsgcmV0dXJuIGJlZ2luKCkgPT0gZW5kKCk7IH0KICAgICAK
QEAgLTEwOCw4ICsxNTQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JFYWNoKGNvbnN0IEZ1bmMm
IGZ1bmMpCiAgICAgewogICAgICAgICBmb3IgKGl0ZXJhdG9yIGl0ZXIgPSBiZWdpbigpOyBpdGVy
ICE9IGVuZCgpOykgewotICAgICAgICAgICAgaXRlcmF0b3IgbmV4dCA9IGl0ZXItPm5leHQoKTsK
LSAgICAgICAgICAgIGZ1bmMoaXRlcik7CisgICAgICAgICAgICBpdGVyYXRvciBuZXh0ID0gaXRl
cjsKKyAgICAgICAgICAgICsrbmV4dDsKKyAgICAgICAgICAgIGZ1bmMoJippdGVyKTsKICAgICAg
ICAgICAgIGl0ZXIgPSBuZXh0OwogICAgICAgICB9CiAgICAgfQpAQCAtMTM5LDEyICsxODYsMjIg
QEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clRyYWl0cz4gdm9pZCBCYXNpY1Jh
d1NlbnRpbmVsTm9kZTxULCBQdHJUcmFpdHMKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFJhd05vZGU+IGlubGluZSB0eXBlbmFtZSBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9k
ZT46Oml0ZXJhdG9yIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6YmVnaW4oKQogewot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9zZW50aW5lbC5uZXh0KCkpOworICAgIHJldHVy
biBtX3NlbnRpbmVsLm5leHQoKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFJhd05vZGU+IGlubGluZSB0eXBlbmFtZSBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46
Oml0ZXJhdG9yIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6ZW5kKCkKIHsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KCZtX3NlbnRpbmVsKTsKKyAgICByZXR1cm4gJm1fc2VudGlu
ZWw7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUg
dHlwZW5hbWUgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+Ojpjb25zdF9pdGVyYXRvciBT
ZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OmJlZ2luKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zZW50aW5lbC5uZXh0KCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBSYXdOb2RlPiBpbmxpbmUgdHlwZW5hbWUgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+
Ojpjb25zdF9pdGVyYXRvciBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OmVuZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICZtX3NlbnRpbmVsOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5saW5lIHZvaWQgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJh
d05vZGU+OjpwdXNoKFQqIG5vZGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZWU0OWYwMzE4NzNjYzI1OWMzNTJkOGYwNWViYWJmZTI2NmY4MTQw
Ni4uMTgxOGZlYjRjNmE4ZDE5ZjYyMWQ5MWNiZjUxZjVmMGRhOTc4ZDY3ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIyLTAyLTI3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisg
ICAgICAgIFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjppdGVyYXRvciBzaG91bGQgaGF2ZSBvcGVy
YXRvcisrIGZvciByYW5nZS1mb3IgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtl
ZExpc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjItMDItMjcg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBPbWl0IHRlbXBsYXRl
IHBhcmFtZXRlciBmb3IgU2V0Rm9yU2NvcGU8PiB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NlbnRpbmVsTGlua2VkTGlzdC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwCmluZGV4IDkxMjlh
ZGRiNGU2OWRkMGM4MmE0NTQzYTczYjg3N2RkMTM5YzRhYzguLmM4YmU5ZmM1ZDUzYWEyNDFmZWU3
ZGJkYWJkNjc0MTQ2MTJiNjhjMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1NlbnRpbmVsTGlua2VkTGlzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU2VudGluZWxMaW5rZWRMaXN0LmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIFRFU1Qo
V1RGX1NlbnRpbmVsTGlua2VkTGlzdCwgUmVtb3ZlKQogCiAgICAgaW50IGkgPSAwOwogICAgIHdo
aWxlICghbGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byogbm9kZSA9IGxpc3QuYmVnaW4o
KTsKKyAgICAgICAgYXV0byBub2RlID0gbGlzdC5iZWdpbigpOwogICAgICAgICBFWFBFQ1RfRVEo
aSsrLCBub2RlLT52YWx1ZSgpKTsKICAgICAgICAgbm9kZS0+cmVtb3ZlKCk7CiAgICAgfQpAQCAt
MTcyLDQgKzE3MiwxOCBAQCBURVNUKFdURl9TZW50aW5lbExpbmtlZExpc3QsIEZvckVhY2gpCiAg
ICAgRVhQRUNUX0VRKDEwLCBpKTsKIH0KIAorVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBD
b25zdCkKK3sKKyAgICBCYWc8VGVzdE5vZGU+IGJhZzsKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8
VGVzdE5vZGU+IG5vbkNvbnN0TGlzdDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kp
CisgICAgICAgIG5vbkNvbnN0TGlzdC5hcHBlbmQoYmFnLmFkZChpKSk7CisKKyAgICBjb25zdCBT
ZW50aW5lbExpbmtlZExpc3Q8VGVzdE5vZGU+JiBjb25zdExpc3QgPSBub25Db25zdExpc3Q7Cisg
ICAgaW50IGkgPSAwOworICAgIGZvciAoYXV0byYgbm9kZSA6IGNvbnN0TGlzdCkKKyAgICAgICAg
RVhQRUNUX0VRKGkrKywgbm9kZS52YWx1ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMTAsIGkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>
<flag name="commit-queue"
          id="480744"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453382</attachid>
            <date>2022-02-28 05:09:23 -0800</date>
            <delta_ts>2022-03-01 13:28:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237265-20220228050922.patch</filename>
            <type>text/plain</type>
            <size>15302</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MDNmMmE0NGJhMTZkOTJiYzQyZmRlYzg2ZmMxYjBkMDE0ZmY4MzNjLi4wMjRjNmNhYzY0NmExNGRl
ZmYxN2RlODE1MGJkNzUzNzY3NjkyMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMi0wMi0yOCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KKworICAgICAgICBXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6aXRlcmF0b3Igc2hv
dWxkIGhhdmUgb3BlcmF0b3IrKyBmb3IgcmFuZ2UtZm9yIGxvb3AKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHA6
CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6OmZpcmVBbGxXYXRjaHBvaW50cyk6CisgICAg
ICAgICogaGVhcC9IYW5kbGVTZXQuY3BwOgorICAgICAgICAoSlNDOjpIYW5kbGVTZXQ6OnZpc2l0
U3Ryb25nSGFuZGxlcyk6CisgICAgICAgIChKU0M6OkhhbmRsZVNldDo6cHJvdGVjdGVkR2xvYmFs
T2JqZWN0Q291bnQpOgorICAgICAgICAqIGhlYXAvSGFuZGxlU2V0Lmg6CisgICAgICAgIChKU0M6
OkhhbmRsZVNldDo6Zm9yRWFjaFN0cm9uZ0hhbmRsZSk6CisgICAgICAgICogaGVhcC9Jc29TdWJz
cGFjZS5jcHA6CisgICAgICAgIChKU0M6Oklzb1N1YnNwYWNlOjp0cnlBbGxvY2F0ZUZyb21Mb3dl
clRpZXIpOgorICAgICAgICAqIGhlYXAvU3Vic3BhY2VJbmxpbmVzLmg6CisgICAgICAgIChKU0M6
OlN1YnNwYWNlOjpmb3JFYWNoUHJlY2lzZUFsbG9jYXRpb24pOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChXb3JrZXJzOjpicm9hZGNhc3QpOgorCiAyMDIyLTAyLTI4ICBBbmdlbG9zIE9p
a29ub21vcG91bG9zICA8YW5nZWxvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIFJldXNl
IGtub3duIHJlZ2lzdGVyIHZhbHVlcyBvbiBBUk12NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAwOGRmZGVkNWViNDQyNzExYmNj
ZGY5YzgzMWM2MzAwNjIxMTFlOTVkLi43NDY1NmQ1MmM0YmZkM2Q3ZjRiMjEwZjg5ODcxYzgzYjUy
M2MyZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAyLTI4ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFdURjo6U2VudGluZWxMaW5rZWRM
aXN0OjppdGVyYXRvciBzaG91bGQgaGF2ZSBvcGVyYXRvcisrIGZvciByYW5nZS1mb3IgbG9vcAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VudGluZWxM
aW5rZWRMaXN0IGhhZCB0aHJlZSBwcm9ibGVtcy4KKyAgICAgICAgMS4gRXZlbiB0aG91Z2ggaXQg
aGFzIGJlZ2luKCkgYW5kIGVuZCgpLCB1c2luZyBTZW50aW5lbExpbmtlZExpc3QKKyAgICAgICAg
ICAgd2l0aCByYW5nZS1mb3IgbG9vcCByZXN1bHRlZCBpbiBhIGJyb2tlbiBub2RlIGJlY2F1c2UK
KyAgICAgICAgICAgaXRlcmF0b3I6Om9wZXJhdG9yKysgZGlkbid0IHdvcmsgYXMgZXhwZWN0ZWQu
CisgICAgICAgIDIuIElmIEkgdXNlZCBhIFNlbnRpbmVsTGlua2VkTGlzdCBpbiBhIG1vdmFibGUg
dHlwZSwgdGhlIHNlbnRpbmVsCisgICAgICAgICAgIHBvaW50ZXIgZ2V0cyBzdGFsZSBhZnRlciBt
b3ZpbmcgdGhlIG9iamVjdC4gbW92ZS1jdG9yIHNob3VsZCBiZSBkZWxldGVkLgorICAgICAgICAz
LiBJdCBkaWRuJ3QgaGF2ZSBjb25zdF9pdGVyYXRvci4KKworICAgICAgICAqIHd0Zi9PcmRlck1h
a2VyLmg6CisgICAgICAgIChXVEY6Ok9yZGVyTWFrZXI6Oml0ZXJhdG9yOjppdGVyYXRvcik6Cisg
ICAgICAgIChXVEY6Ok9yZGVyTWFrZXI6Oml0ZXJhdG9yOjpvcGVyYXRvciopOgorICAgICAgICAo
V1RGOjpPcmRlck1ha2VyOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChXVEY6Ok9y
ZGVyTWFrZXI6Oml0ZXJhdG9yOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKiB3dGYvU2Vu
dGluZWxMaW5rZWRMaXN0Lmg6CisgICAgICAgIChXVEY6OkJhc2ljUmF3U2VudGluZWxOb2RlOjpw
cmV2IGNvbnN0KToKKyAgICAgICAgKFdURjo6QmFzaWNSYXdTZW50aW5lbE5vZGU6Om5leHQgY29u
c3QpOgorICAgICAgICAoV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6OkJhc2VJdGVyYXRvcjo6QmFz
ZUl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjpCYXNlSXRlcmF0
b3I6Om9wZXJhdG9yKiBjb25zdCk6CisgICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6
QmFzZUl0ZXJhdG9yOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKFdURjo6U2VudGluZWxM
aW5rZWRMaXN0OjpCYXNlSXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV1RGOjpTZW50
aW5lbExpbmtlZExpc3Q6OkJhc2VJdGVyYXRvcjo6b3BlcmF0b3ItLSk6CisgICAgICAgIChXVEY6
OlNlbnRpbmVsTGlua2VkTGlzdDo6QmFzZUl0ZXJhdG9yOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjpCYXNlSXRlcmF0b3I6Om9wZXJhdG9yIT0g
Y29uc3QpOgorICAgICAgICAoV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6OmZvckVhY2gpOgorICAg
ICAgICAoV1RGOjpSYXdOb2RlPjo6YmVnaW4pOgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6ZW5k
KToKKyAgICAgICAgKFdURjo6UmF3Tm9kZT46OmJlZ2luIGNvbnN0KToKKyAgICAgICAgKFdURjo6
UmF3Tm9kZT46OmVuZCBjb25zdCk6CisgICAgICAgIChXVEY6OkJhc2ljUmF3U2VudGluZWxOb2Rl
OjpwcmV2KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QmFzaWNSYXdTZW50aW5lbE5vZGU6Om5l
eHQpOiBEZWxldGVkLgorCiAyMDIyLTAyLTI4ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIGluZXJ0IGF0dHJpYnV0ZSBmZWF0dXJlIGZsYWcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcAppbmRleCA3NDQ4ODA3ODQz
YjVkMTdhNTIyYjZjOGEyMjI3OTg5MzIzNTI3Yzc4Li5mODA0NzdjZjE5NDAzMGZmYmQ2OGJjZjA4
MTU0MTNlMDQxNjM4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvV2F0Y2hwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dh
dGNocG9pbnQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBXYXRjaHBvaW50U2V0OjpmaXJl
QWxsV2F0Y2hwb2ludHMoVk0mIHZtLCBjb25zdCBGaXJlRGV0YWlsJiBkZXRhaWwpCiAgICAgRGVm
ZXJHQ0ZvckFXaGlsZSBkZWZlckdDKHZtKTsKICAgICAKICAgICB3aGlsZSAoIW1fc2V0LmlzRW1w
dHkoKSkgewotICAgICAgICBXYXRjaHBvaW50KiB3YXRjaHBvaW50ID0gbV9zZXQuYmVnaW4oKTsK
KyAgICAgICAgV2F0Y2hwb2ludCogd2F0Y2hwb2ludCA9ICYqbV9zZXQuYmVnaW4oKTsKICAgICAg
ICAgQVNTRVJUKHdhdGNocG9pbnQtPmlzT25MaXN0KCkpOwogICAgICAgICAKICAgICAgICAgLy8g
UmVtb3ZpbmcgdGhlIFdhdGNocG9pbnQgYmVmb3JlIGZpcmluZyBpdCBtYWtlcyBpdCBwb3NzaWJs
ZSB0byBpbXBsZW1lbnQgd2F0Y2hwb2ludHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5k
bGVTZXQuY3BwCmluZGV4IDgxOTk2NTFlNjUwYWVkODVmYTc1ZGFmMjE3ZjUxNzE0ODhiNDY5MjEu
LjAzMTYzYmQxOWNlMGM5NDc3N2IwMGY2NjBkOTExYWMwMTNkZWUyODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmNwcApAQCAtNTksMTIgKzU5LDExIEBAIHZvaWQgSGFu
ZGxlU2V0Ojpncm93KCkKIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CiB2b2lkIEhhbmRsZVNl
dDo6dmlzaXRTdHJvbmdIYW5kbGVzKFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgTm9kZSogZW5k
ID0gbV9zdHJvbmdMaXN0LmVuZCgpOwotICAgIGZvciAoTm9kZSogbm9kZSA9IG1fc3Ryb25nTGlz
dC5iZWdpbigpOyBub2RlICE9IGVuZDsgbm9kZSA9IG5vZGUtPm5leHQoKSkgeworICAgIGZvciAo
Tm9kZSYgbm9kZSA6IG1fc3Ryb25nTGlzdCkgewogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQot
ICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0xpdmVOb2RlKG5vZGUpKTsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlQoaXNMaXZlTm9kZSgmbm9kZSkpOwogI2VuZGlmCi0gICAgICAgIHZpc2l0b3IuYXBw
ZW5kVW5iYXJyaWVyZWQoKm5vZGUtPnNsb3QoKSk7CisgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5i
YXJyaWVyZWQoKm5vZGUuc2xvdCgpKTsKICAgICB9CiB9CiAKQEAgLTk1LDkgKzk0LDggQEAgdm9p
ZCBIYW5kbGVTZXQ6OndyaXRlQmFycmllcihIYW5kbGVTbG90IHNsb3QsIGNvbnN0IEpTVmFsdWUm
IHZhbHVlKQogdW5zaWduZWQgSGFuZGxlU2V0Ojpwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgp
CiB7CiAgICAgdW5zaWduZWQgY291bnQgPSAwOwotICAgIE5vZGUqIGVuZCA9IG1fc3Ryb25nTGlz
dC5lbmQoKTsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX3N0cm9uZ0xpc3QuYmVnaW4oKTsgbm9k
ZSAhPSBlbmQ7IG5vZGUgPSBub2RlLT5uZXh0KCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9
ICpub2RlLT5zbG90KCk7CisgICAgZm9yIChOb2RlJiBub2RlIDogbV9zdHJvbmdMaXN0KSB7Cisg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSAqbm9kZS5zbG90KCk7CiAgICAgICAgIGlmICh2YWx1ZS5p
c09iamVjdCgpICYmIGFzT2JqZWN0KHZhbHVlLmFzQ2VsbCgpKS0+aXNHbG9iYWxPYmplY3QoKSkK
ICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGFuZGxlU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5k
bGVTZXQuaAppbmRleCAxNmE4NWZmYTFkODMwNGEwNjI3NzU4N2MxZDBmOGQ0OTFkOWJhZmJiLi5m
ZTRhOGE3MTMyNzliZGM1YjljOGE4OTcwNzNlMzI5MWEyNTJmZjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IYW5kbGVTZXQuaApAQCAtMTgxLDkgKzE4MSw4IEBAIGlubGluZSBIYW5kbGVO
b2RlKiBIYW5kbGVOb2RlOjpuZXh0KCkKIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdm9p
ZCBIYW5kbGVTZXQ6OmZvckVhY2hTdHJvbmdIYW5kbGUoY29uc3QgRnVuY3RvciYgZnVuY3Rvciwg
Y29uc3QgSGFzaENvdW50ZWRTZXQ8SlNDZWxsKj4mIHNraXBTZXQpCiB7Ci0gICAgSGFuZGxlU2V0
OjpOb2RlKiBlbmQgPSBtX3N0cm9uZ0xpc3QuZW5kKCk7Ci0gICAgZm9yIChIYW5kbGVTZXQ6Ok5v
ZGUqIG5vZGUgPSBtX3N0cm9uZ0xpc3QuYmVnaW4oKTsgbm9kZSAhPSBlbmQ7IG5vZGUgPSBub2Rl
LT5uZXh0KCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9ICpub2RlLT5zbG90KCk7CisgICAg
Zm9yIChOb2RlJiBub2RlIDogbV9zdHJvbmdMaXN0KSB7CisgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSAqbm9kZS5zbG90KCk7CiAgICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzQ2VsbCgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChza2lwU2V0LmNvbnRhaW5zKHZhbHVl
LmFzQ2VsbCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1
YnNwYWNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmNwcApp
bmRleCBkOTAwYzdkNTA1ZDc5MWNlNjgxMTEyOTdlMGE3YmMyNmZjMTcxMzM2Li4wMGZmYmNlNDBk
MWIzYmIxODM4NDQ1NDlkM2NiOTFmN2JlYmUwZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2UuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQqIElzb1N1YnNwYWNl
Ojp0cnlBbGxvY2F0ZUZyb21Mb3dlclRpZXIoKQogICAgIH07CiAKICAgICBpZiAoIW1fbG93ZXJU
aWVyRnJlZUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFByZWNpc2VBbGxvY2F0aW9uKiBhbGxv
Y2F0aW9uID0gbV9sb3dlclRpZXJGcmVlTGlzdC5iZWdpbigpOworICAgICAgICBQcmVjaXNlQWxs
b2NhdGlvbiogYWxsb2NhdGlvbiA9ICYqbV9sb3dlclRpZXJGcmVlTGlzdC5iZWdpbigpOwogICAg
ICAgICBhbGxvY2F0aW9uLT5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuIHJldml2ZShhbGxvY2F0
aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJz
cGFjZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5l
cy5oCmluZGV4IDhlOWJhOGRkMmZmMjg0MzU2ZmY3MjhiMGVlMjg4Mzc2ZTMyNzRjNWMuLjlmYjk2
ZjY4NjA0MGU4NWIyNWJlN2YwYmQzNjkyMTBhZDRiMDdhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5lcy5oCkBAIC02Miw4ICs2Miw4IEBAIHZvaWQgU3Vi
c3BhY2U6OmZvckVhY2hOb3RFbXB0eU1hcmtlZEJsb2NrKGNvbnN0IEZ1bmMmIGZ1bmMpCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jPgogdm9pZCBTdWJzcGFjZTo6Zm9yRWFjaFByZWNpc2VBbGxvY2F0
aW9uKGNvbnN0IEZ1bmMmIGZ1bmMpCiB7Ci0gICAgZm9yIChQcmVjaXNlQWxsb2NhdGlvbiogYWxs
b2NhdGlvbiA9IG1fcHJlY2lzZUFsbG9jYXRpb25zLmJlZ2luKCk7IGFsbG9jYXRpb24gIT0gbV9w
cmVjaXNlQWxsb2NhdGlvbnMuZW5kKCk7IGFsbG9jYXRpb24gPSBhbGxvY2F0aW9uLT5uZXh0KCkp
Ci0gICAgICAgIGZ1bmMoYWxsb2NhdGlvbik7CisgICAgZm9yIChQcmVjaXNlQWxsb2NhdGlvbiYg
YWxsb2NhdGlvbiA6IG1fcHJlY2lzZUFsbG9jYXRpb25zKQorICAgICAgICBmdW5jKCZhbGxvY2F0
aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggMWM1NzE0ZDg0YjYxYjA4ZmU1OGM4ZTY2OTFiNmJiN2RiZmMyNzQ3My4uNDViZDJmOWIwZDEy
OWRmOGI3YTY1MTBiOTA4NjEzZjVkNjdmMDU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE5
ODQsOSArMTk4NCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiB2b2lkIFdvcmtlcnM6OmJy
b2FkY2FzdChjb25zdCBGdW5jJiBmdW5jKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKLSAgICBmb3IgKFdvcmtlciogd29ya2VyID0gbV93b3JrZXJzLmJlZ2luKCk7IHdvcmtlciAh
PSBtX3dvcmtlcnMuZW5kKCk7IHdvcmtlciA9IHdvcmtlci0+bmV4dCgpKSB7Ci0gICAgICAgIGlm
ICh3b3JrZXIgIT0gJldvcmtlcjo6Y3VycmVudCgpKQotICAgICAgICAgICAgZnVuYyhsb2NrZXIs
ICp3b3JrZXIpOworICAgIGZvciAoV29ya2VyJiB3b3JrZXIgOiBtX3dvcmtlcnMpIHsKKyAgICAg
ICAgaWYgKCZ3b3JrZXIgIT0gJldvcmtlcjo6Y3VycmVudCgpKQorICAgICAgICAgICAgZnVuYyhs
b2NrZXIsIHdvcmtlcik7CiAgICAgfQogICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3JkZXJNYWtlci5oIGIvU291cmNlL1dURi93dGYv
T3JkZXJNYWtlci5oCmluZGV4IGY2ZjJjOTkyMDJlNzJkZmQzYzBjMTE2MDhhZWYyOGM5N2YyMWQ3
YjAuLmIwODVjN2UwZWY0NmZlNzY1ODBhZGJlYjJkOWU5NmRjZmI0YTlmMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL09yZGVyTWFrZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcmRlck1h
a2VyLmgKQEAgLTg4LDI1ICs4OCwyNSBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgfQog
Ci0gICAgICAgIGl0ZXJhdG9yKE5vZGUqIG5vZGUpCi0gICAgICAgICAgICA6IG1fbm9kZShub2Rl
KQorICAgICAgICBpdGVyYXRvcih0eXBlbmFtZSBTZW50aW5lbExpbmtlZExpc3Q8Tm9kZT46Oml0
ZXJhdG9yIGl0ZXIpCisgICAgICAgICAgICA6IG1faXRlcihpdGVyKQogICAgICAgICB7CiAgICAg
ICAgIH0KIAogICAgICAgICBjb25zdCBUJiBvcGVyYXRvciooKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gbV9ub2RlLT5wYXlsb2FkOworICAgICAgICAgICAgcmV0dXJuIG1faXRlci0+
cGF5bG9hZDsKICAgICAgICAgfQogCiAgICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKICAg
ICAgICAgewotICAgICAgICAgICAgbV9ub2RlID0gbV9ub2RlLT5uZXh0KCk7CisgICAgICAgICAg
ICArK21faXRlcjsKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKICAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0CiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBtX25vZGUgPT0gb3RoZXIubV9ub2RlOworICAgICAgICAg
ICAgcmV0dXJuIG1faXRlciA9PSBvdGhlci5tX2l0ZXI7CiAgICAgICAgIH0KIAogICAgICAgICBi
b29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdApAQCAtMTE1LDcgKzEx
NSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAg
ICBOb2RlKiBtX25vZGUgeyBudWxscHRyIH07CisgICAgICAgIHR5cGVuYW1lIFNlbnRpbmVsTGlu
a2VkTGlzdDxOb2RlPjo6aXRlcmF0b3IgbV9pdGVyOwogICAgIH07CiAKICAgICBpdGVyYXRvciBi
ZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKGNvbnN0X2Nhc3Q8U2VudGluZWxMaW5rZWRM
aXN0PE5vZGU+Jj4obV9saXN0KS5iZWdpbigpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvU2VudGluZWxMaW5rZWRMaXN0LmggYi9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExp
c3QuaAppbmRleCAyZWJkOGM4YmM5NGNkMmNhMjZmY2U5ODRkZWNhYWI2ZGExMTYyMTA4Li4xNjU0
YzkxOGQwYmU0ZmEyNjU4NzI0MWE4MTI2OWM4YWYxZmM0NDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5l
bExpbmtlZExpc3QuaApAQCAtMzAsMTIgKzMwLDE1IEBACiAvLyAgICBSZXF1aXJlczogTm9kZSBp
cyBhIGNvbmNyZXRlIGNsYXNzIHdpdGg6CiAvLyAgICAgICAgTm9kZShTZW50aW5lbFRhZyk7CiAv
LyAgICAgICAgdm9pZCBzZXRQcmV2KE5vZGUqKTsKLS8vICAgICAgICBOb2RlKiBwcmV2KCk7Cisv
LyAgICAgICAgTm9kZSogcHJldigpIGNvbnN0OwogLy8gICAgICAgIHZvaWQgc2V0TmV4dChOb2Rl
Kik7Ci0vLyAgICAgICAgTm9kZSogbmV4dCgpOworLy8gICAgICAgIE5vZGUqIG5leHQoKSBjb25z
dDsKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxpdGVyYXRvcj4KKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvTm9ubW92YWJsZS5oPgogI2luY2x1ZGUgPHd0
Zi9QYWNrZWQuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC01Nyw4ICs2MCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFByZXYoQmFzaWNSYXdTZW50aW5lbE5vZGUqIHByZXYpIHsgbV9wcmV2ID0g
cHJldjsgfQogICAgIHZvaWQgc2V0TmV4dChCYXNpY1Jhd1NlbnRpbmVsTm9kZSogbmV4dCkgeyBt
X25leHQgPSBuZXh0OyB9CiAgICAgCi0gICAgVCogcHJldigpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PFQqPihQdHJUcmFpdHM6OnVud3JhcChtX3ByZXYpKTsgfQotICAgIFQqIG5leHQoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxUKj4oUHRyVHJhaXRzOjp1bndyYXAobV9uZXh0KSk7IH0KKyAgICBUKiBw
cmV2KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KFB0clRyYWl0czo6dW53cmFwKG1f
cHJldikpOyB9CisgICAgVCogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihQ
dHJUcmFpdHM6OnVud3JhcChtX25leHQpKTsgfQogICAgIAogICAgIGJvb2wgaXNPbkxpc3QoKSBj
b25zdAogICAgIHsKQEAgLTc3LDggKzgwLDQ5IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZSA9IFQ+IGNsYXNzIFNlbnRpbmVsTGlua2VkTGlz
dCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2VudGluZWxMaW5rZWRMaXN0KTsKKyAgICBX
VEZfTUFLRV9OT05NT1ZBQkxFKFNlbnRpbmVsTGlua2VkTGlzdCk7CiBwdWJsaWM6Ci0gICAgdHlw
ZWRlZiBUKiBpdGVyYXRvcjsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSYXdOb2RlVHlwZSwgdHlw
ZW5hbWUgTm9kZVR5cGU+IGNsYXNzIEJhc2VJdGVyYXRvciB7CisgICAgICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAgICAgQmFzZUl0ZXJhdG9yKFJhd05vZGVU
eXBlKiBub2RlKQorICAgICAgICAgICAgOiBtX25vZGUobm9kZSkKKyAgICAgICAgeworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBhdXRvJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxOb2RlVHlwZSY+KCptX25vZGUpOyB9CisKKyAgICAgICAgYXV0byogb3BlcmF0
b3ItPigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE5vZGVUeXBlKj4obV9ub2RlKTsgfQor
CisgICAgICAgIEJhc2VJdGVyYXRvciYgb3BlcmF0b3IrKygpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIG1fbm9kZSA9IG1fbm9kZS0+bmV4dCgpOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBCYXNlSXRlcmF0b3ImIG9wZXJhdG9yLS0oKQor
ICAgICAgICB7CisgICAgICAgICAgICBtX25vZGUgPSBtX25vZGUtPnByZXYoKTsKKyAgICAgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEJhc2VJdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBtX25vZGUgPT0gb3RoZXIubV9ub2RlOworICAgICAgICB9CisKKyAgICAg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEJhc2VJdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICAgICAgfQor
CisgICAgcHJpdmF0ZToKKyAgICAgICAgUmF3Tm9kZVR5cGUqIG1fbm9kZTsKKyAgICB9OworCisg
ICAgdXNpbmcgaXRlcmF0b3IgPSBCYXNlSXRlcmF0b3I8UmF3Tm9kZSwgVD47CisgICAgdXNpbmcg
Y29uc3RfaXRlcmF0b3IgPSBCYXNlSXRlcmF0b3I8Y29uc3QgUmF3Tm9kZSwgY29uc3QgVD47CiAK
ICAgICBTZW50aW5lbExpbmtlZExpc3QoKQogICAgICAgICA6IG1fc2VudGluZWwoU2VudGluZWwp
CkBAIC0xMDEsNiArMTQ1LDggQEAgcHVibGljOgogCiAgICAgaXRlcmF0b3IgYmVnaW4oKTsKICAg
ICBpdGVyYXRvciBlbmQoKTsKKyAgICBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0OworICAg
IGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0OwogICAgIAogICAgIGJvb2wgaXNFbXB0eSgpIHsg
cmV0dXJuIGJlZ2luKCkgPT0gZW5kKCk7IH0KICAgICAKQEAgLTEwOCw4ICsxNTQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBmb3JFYWNoKGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgewogICAgICAgICBm
b3IgKGl0ZXJhdG9yIGl0ZXIgPSBiZWdpbigpOyBpdGVyICE9IGVuZCgpOykgewotICAgICAgICAg
ICAgaXRlcmF0b3IgbmV4dCA9IGl0ZXItPm5leHQoKTsKLSAgICAgICAgICAgIGZ1bmMoaXRlcik7
CisgICAgICAgICAgICBpdGVyYXRvciBuZXh0ID0gaXRlcjsKKyAgICAgICAgICAgICsrbmV4dDsK
KyAgICAgICAgICAgIGZ1bmMoJippdGVyKTsKICAgICAgICAgICAgIGl0ZXIgPSBuZXh0OwogICAg
ICAgICB9CiAgICAgfQpAQCAtMTM5LDEyICsxODYsMjIgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFB0clRyYWl0cz4gdm9pZCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxULCBQdHJUcmFp
dHMKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05vZGU+IGlubGluZSB0eXBl
bmFtZSBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46Oml0ZXJhdG9yIFNlbnRpbmVsTGlu
a2VkTGlzdDxULCBSYXdOb2RlPjo6YmVnaW4oKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxU
Kj4obV9zZW50aW5lbC5uZXh0KCkpOworICAgIHJldHVybiBtX3NlbnRpbmVsLm5leHQoKTsKIH0K
IAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05vZGU+IGlubGluZSB0eXBlbmFt
ZSBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46Oml0ZXJhdG9yIFNlbnRpbmVsTGlua2Vk
TGlzdDxULCBSYXdOb2RlPjo6ZW5kKCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KCZt
X3NlbnRpbmVsKTsKKyAgICByZXR1cm4gJm1fc2VudGluZWw7Cit9CisKK3RlbXBsYXRlIDx0eXBl
bmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgdHlwZW5hbWUgU2VudGluZWxMaW5rZWRM
aXN0PFQsIFJhd05vZGU+Ojpjb25zdF9pdGVyYXRvciBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3
Tm9kZT46OmJlZ2luKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZW50aW5lbC5uZXh0KCk7Cit9
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgdHlwZW5h
bWUgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+Ojpjb25zdF9pdGVyYXRvciBTZW50aW5l
bExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OmVuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICZtX3Nl
bnRpbmVsOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5s
aW5lIHZvaWQgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjpwdXNoKFQqIG5vZGUpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmQxNTI4
OTVmZWZmZDhhYzBmOTkwMDAyNWExNzQyZmYwNzI4YmFmMy4uM2M3ZjNhNTE3MzM0YzNhNGQ3NzMx
YmZjYzRhMWJiMjgzNWQxY2FlOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTI4ICBGdWppaSBIaXJvbm9y
aSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFdURjo6U2VudGluZWxMaW5r
ZWRMaXN0OjppdGVyYXRvciBzaG91bGQgaGF2ZSBvcGVyYXRvcisrIGZvciByYW5nZS1mb3IgbG9v
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjItMDItMjcgIERld2VpIFpodSAgPGRld2VpX3podUBh
cHBsZS5jb20+CiAKICAgICAgICAgJ3J1bi1iZW5jaG1hcmsnIHNjcmlwdCBzaG91bGQgbG9nIGh0
dHAgcmVxdWVzdHMgZHVyaW5nIGJlbmNobWFyayBydW4uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU2VudGluZWxMaW5rZWRMaXN0LmNwcAppbmRleCA5MTI5YWRkYjRl
NjlkZDBjODJhNDU0M2E3M2I4NzdkZDEzOWM0YWM4Li5jOGJlOWZjNWQ1M2FhMjQxZmVlN2RiZGFi
ZDY3NDE0NjEyYjY4YzA1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TZW50aW5lbExpbmtlZExpc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1NlbnRpbmVsTGlua2VkTGlzdC5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBURVNUKFdURl9T
ZW50aW5lbExpbmtlZExpc3QsIFJlbW92ZSkKIAogICAgIGludCBpID0gMDsKICAgICB3aGlsZSAo
IWxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8qIG5vZGUgPSBsaXN0LmJlZ2luKCk7Cisg
ICAgICAgIGF1dG8gbm9kZSA9IGxpc3QuYmVnaW4oKTsKICAgICAgICAgRVhQRUNUX0VRKGkrKywg
bm9kZS0+dmFsdWUoKSk7CiAgICAgICAgIG5vZGUtPnJlbW92ZSgpOwogICAgIH0KQEAgLTE3Miw0
ICsxNzIsMTggQEAgVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBGb3JFYWNoKQogICAgIEVY
UEVDVF9FUSgxMCwgaSk7CiB9CiAKK1RFU1QoV1RGX1NlbnRpbmVsTGlua2VkTGlzdCwgQ29uc3Qp
Cit7CisgICAgQmFnPFRlc3ROb2RlPiBiYWc7CisgICAgU2VudGluZWxMaW5rZWRMaXN0PFRlc3RO
b2RlPiBub25Db25zdExpc3Q7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKQorICAg
ICAgICBub25Db25zdExpc3QuYXBwZW5kKGJhZy5hZGQoaSkpOworCisgICAgY29uc3QgU2VudGlu
ZWxMaW5rZWRMaXN0PFRlc3ROb2RlPiYgY29uc3RMaXN0ID0gbm9uQ29uc3RMaXN0OworICAgIGlu
dCBpID0gMDsKKyAgICBmb3IgKGF1dG8mIG5vZGUgOiBjb25zdExpc3QpCisgICAgICAgIEVYUEVD
VF9FUShpKyssIG5vZGUudmFsdWUoKSk7CisgICAgRVhQRUNUX0VRKDEwLCBpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453534</attachid>
            <date>2022-03-01 13:28:42 -0800</date>
            <delta_ts>2022-03-01 13:28:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237265-20220302062840.patch</filename>
            <type>text/plain</type>
            <size>18822</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZDBlZmU2YjYzNDkzM2Q3NzkxM2Y3MzU5MmNmNWY5MjJiY2NhYWJkLi5mNjY4ZWM3YWRkYjIxZTVj
Yjk5Zjk2NmZhZGYwNmI1MWYwYjMyMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMi0wMy0wMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KKworICAgICAgICBXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6aXRlcmF0b3Igc2hv
dWxkIGhhdmUgb3BlcmF0b3IrKyBmb3IgcmFuZ2UtZm9yIGxvb3AKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgU2VudGluZWxMaW5rZWRMaXN0OjppdGVyYXRv
ciBpc24ndCBhIHBvaW50ZXIgb2Ygbm9kZSBub3csIGl0CisgICAgICAgIHNob3VsZCBiZSBkZWZl
cmVuY2VkIGJlZm9yZSBjb21wYXJpbmcgd2l0aCBhIHBvaW50ZXIuCisKKyAgICAgICAgKiBieXRl
Y29kZS9XYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6V2F0Y2hwb2ludFNldDo6ZmlyZUFs
bFdhdGNocG9pbnRzKToKKyAgICAgICAgKiBoZWFwL0hhbmRsZVNldC5jcHA6CisgICAgICAgIChK
U0M6OkhhbmRsZVNldDo6dmlzaXRTdHJvbmdIYW5kbGVzKToKKyAgICAgICAgKEpTQzo6SGFuZGxl
U2V0Ojpwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCk6CisgICAgICAgICogaGVhcC9IYW5kbGVT
ZXQuaDoKKyAgICAgICAgKEpTQzo6SGFuZGxlU2V0Ojpmb3JFYWNoU3Ryb25nSGFuZGxlKToKKyAg
ICAgICAgKiBoZWFwL0lzb1N1YnNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6SXNvU3Vic3BhY2U6
OnRyeUFsbG9jYXRlRnJvbUxvd2VyVGllcik6CisgICAgICAgICogaGVhcC9TdWJzcGFjZUlubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6U3Vic3BhY2U6OmZvckVhY2hQcmVjaXNlQWxsb2NhdGlvbik6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKFdvcmtlcnM6OmJyb2FkY2FzdCk6CisKIDIw
MjItMDMtMDEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBbQXBwbGVXaW5dIFN0YXJ0IHVzaW5nIFZpc3VhbCBTdHVkaW8gMjAyMgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAy
ZGM4M2NkZWNiNTEzMzI0ZDkwNTU1ZDI4Y2ZlYjdlNzhhMzU2ZGE3Li5kZjQ2ODM4NDdhZjIwYmEw
ODkwY2JlMTdhZTY0ZDU1ZjM1NDk5NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTAx
ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFdU
Rjo6U2VudGluZWxMaW5rZWRMaXN0OjppdGVyYXRvciBzaG91bGQgaGF2ZSBvcGVyYXRvcisrIGZv
ciByYW5nZS1mb3IgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM3MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKwor
ICAgICAgICBTZW50aW5lbExpbmtlZExpc3QgaGFkIHRocmVlIHByb2JsZW1zLgorICAgICAgICAx
LiBFdmVuIHRob3VnaCBpdCBoYXMgYmVnaW4oKSBhbmQgZW5kKCksIHVzaW5nIFNlbnRpbmVsTGlu
a2VkTGlzdAorICAgICAgICAgICB3aXRoIHJhbmdlLWZvciBsb29wIHJlc3VsdGVkIGluIGEgYnJv
a2VuIG5vZGUgYmVjYXVzZQorICAgICAgICAgICBpdGVyYXRvcjo6b3BlcmF0b3IrKyBkaWRuJ3Qg
d29yayBhcyBleHBlY3RlZC4KKyAgICAgICAgMi4gSWYgSSB1c2VkIGEgU2VudGluZWxMaW5rZWRM
aXN0IGluIGEgbW92YWJsZSB0eXBlLCB0aGUgc2VudGluZWwKKyAgICAgICAgICAgcG9pbnRlciBn
ZXRzIHN0YWxlIGFmdGVyIG1vdmluZyB0aGUgb2JqZWN0LiBtb3ZlLWN0b3Igc2hvdWxkIGJlIGRl
bGV0ZWQuCisgICAgICAgIDMuIEl0IGRpZG4ndCBoYXZlIGNvbnN0X2l0ZXJhdG9yLgorCisgICAg
ICAgICogd3RmL09yZGVyTWFrZXIuaDoKKyAgICAgICAgKFdURjo6T3JkZXJNYWtlcjo6aXRlcmF0
b3I6Oml0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6T3JkZXJNYWtlcjo6aXRlcmF0b3I6Om9wZXJh
dG9yKik6CisgICAgICAgIChXVEY6Ok9yZGVyTWFrZXI6Oml0ZXJhdG9yOjpvcGVyYXRvcisrKToK
KyAgICAgICAgKFdURjo6T3JkZXJNYWtlcjo6aXRlcmF0b3I6Om9wZXJhdG9yPT0gY29uc3QpOgor
ICAgICAgICAqIHd0Zi9TZW50aW5lbExpbmtlZExpc3QuaDoKKyAgICAgICAgKFdURjo6QmFzaWNS
YXdTZW50aW5lbE5vZGU6OnByZXYgY29uc3QpOgorICAgICAgICAoV1RGOjpCYXNpY1Jhd1NlbnRp
bmVsTm9kZTo6bmV4dCBjb25zdCk6CisgICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6
QmFzZUl0ZXJhdG9yOjpCYXNlSXRlcmF0b3IpOgorICAgICAgICAoV1RGOjpTZW50aW5lbExpbmtl
ZExpc3Q6OkJhc2VJdGVyYXRvcjo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAgKFdURjo6U2Vu
dGluZWxMaW5rZWRMaXN0OjpCYXNlSXRlcmF0b3I6Om9wZXJhdG9yLT4gY29uc3QpOgorICAgICAg
ICAoV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6OkJhc2VJdGVyYXRvcjo6b3BlcmF0b3IrKyk6Cisg
ICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlzdDo6QmFzZUl0ZXJhdG9yOjpvcGVyYXRvci0t
KToKKyAgICAgICAgKFdURjo6U2VudGluZWxMaW5rZWRMaXN0OjpCYXNlSXRlcmF0b3I6Om9wZXJh
dG9yPT0gY29uc3QpOgorICAgICAgICAoV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6OkJhc2VJdGVy
YXRvcjo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXVEY6OlNlbnRpbmVsTGlua2VkTGlz
dDo6Zm9yRWFjaCk6CisgICAgICAgIChXVEY6OlJhd05vZGU+OjpiZWdpbik6CisgICAgICAgIChX
VEY6OlJhd05vZGU+OjplbmQpOgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6YmVnaW4gY29uc3Qp
OgorICAgICAgICAoV1RGOjpSYXdOb2RlPjo6ZW5kIGNvbnN0KToKKyAgICAgICAgKFdURjo6QmFz
aWNSYXdTZW50aW5lbE5vZGU6OnByZXYpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpCYXNpY1Jh
d1NlbnRpbmVsTm9kZTo6bmV4dCk6IERlbGV0ZWQuCisKIDIwMjItMDMtMDEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBXZWJSVENSZW1vdGVWaWRl
b0ZyYW1lRW5hYmxlZCBieSBkZWZhdWx0IG9uIENvY29hIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAKaW5kZXggNzQ0ODgwNzg0M2I1ZDE3YTUy
MmI2YzhhMjIyNzk4OTMyMzUyN2M3OC4uMjE4NzA4MjA0YThhMzMxZGYxMWQzMmE5NGVhYWY4ZGY0
MmQ5NGM0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNo
cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50
LmNwcApAQCAtMTM4LDggKzEzOCw4IEBAIHZvaWQgV2F0Y2hwb2ludFNldDo6ZmlyZUFsbFdhdGNo
cG9pbnRzKFZNJiB2bSwgY29uc3QgRmlyZURldGFpbCYgZGV0YWlsKQogICAgIERlZmVyR0NGb3JB
V2hpbGUgZGVmZXJHQyh2bSk7CiAgICAgCiAgICAgd2hpbGUgKCFtX3NldC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgV2F0Y2hwb2ludCogd2F0Y2hwb2ludCA9IG1fc2V0LmJlZ2luKCk7Ci0gICAgICAg
IEFTU0VSVCh3YXRjaHBvaW50LT5pc09uTGlzdCgpKTsKKyAgICAgICAgV2F0Y2hwb2ludCYgd2F0
Y2hwb2ludCA9ICptX3NldC5iZWdpbigpOworICAgICAgICBBU1NFUlQod2F0Y2hwb2ludC5pc09u
TGlzdCgpKTsKICAgICAgICAgCiAgICAgICAgIC8vIFJlbW92aW5nIHRoZSBXYXRjaHBvaW50IGJl
Zm9yZSBmaXJpbmcgaXQgbWFrZXMgaXQgcG9zc2libGUgdG8gaW1wbGVtZW50IHdhdGNocG9pbnRz
CiAgICAgICAgIC8vIHRoYXQgYWRkIHRoZW1zZWx2ZXMgdG8gYSBkaWZmZXJlbnQgc2V0IHdoZW4g
dGhleSBmaXJlLiBUaGlzIGtpbmQgb2YgImFkYXB0aXZlIgpAQCAtMTUwLDExICsxNTAsMTEgQEAg
dm9pZCBXYXRjaHBvaW50U2V0OjpmaXJlQWxsV2F0Y2hwb2ludHMoVk0mIHZtLCBjb25zdCBGaXJl
RGV0YWlsJiBkZXRhaWwpCiAgICAgICAgIC8vIFNvLCBiZWZvcmUgdGhlIHdhdGNocG9pbnQgZGVj
aWRlcyB0byBpbnZhbGlkYXRlIGFueSBjb2RlLCBpdCBjYW4gY2hlY2sgaWYgaXQgaXMKICAgICAg
ICAgLy8gcG9zc2libGUgdG8gYWRkIGl0c2VsZiB0byB0aGUgdHJhbnNpdGlvbiB3YXRjaHBvaW50
IHNldCBvZiB0aGUgc2luZ2xldG9uIG9iamVjdCdzIG5ldwogICAgICAgICAvLyBTdHJ1Y3R1cmUu
Ci0gICAgICAgIHdhdGNocG9pbnQtPnJlbW92ZSgpOwotICAgICAgICBBU1NFUlQobV9zZXQuYmVn
aW4oKSAhPSB3YXRjaHBvaW50KTsKLSAgICAgICAgQVNTRVJUKCF3YXRjaHBvaW50LT5pc09uTGlz
dCgpKTsKKyAgICAgICAgd2F0Y2hwb2ludC5yZW1vdmUoKTsKKyAgICAgICAgQVNTRVJUKCYqbV9z
ZXQuYmVnaW4oKSAhPSAmd2F0Y2hwb2ludCk7CisgICAgICAgIEFTU0VSVCghd2F0Y2hwb2ludC5p
c09uTGlzdCgpKTsKICAgICAgICAgCi0gICAgICAgIHdhdGNocG9pbnQtPmZpcmUodm0sIGRldGFp
bCk7CisgICAgICAgIHdhdGNocG9pbnQuZmlyZSh2bSwgZGV0YWlsKTsKICAgICAgICAgLy8gQWZ0
ZXIgd2UgZmlyZSB0aGUgd2F0Y2hwb2ludCwgdGhlIHdhdGNocG9pbnQgcG9pbnRlciBtYXkgYmUg
YSBkYW5nbGluZyBwb2ludGVyLiBUaGF0J3MKICAgICAgICAgLy8gZmluZSwgYmVjYXVzZSB3ZSBo
YXZlIG5vIHVzZSBmb3IgdGhlIHBvaW50ZXIgYW55bW9yZS4KICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGFuZGxlU2V0LmNwcAppbmRleCA4MTk5NjUxZTY1MGFlZDg1ZmE3NWRhZjIx
N2Y1MTcxNDg4YjQ2OTIxLi4wMzE2M2JkMTljZTBjOTQ3NzdiMDBmNjYwZDkxMWFjMDEzZGVlMjg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAKQEAgLTU5LDEyICs1
OSwxMSBAQCB2b2lkIEhhbmRsZVNldDo6Z3JvdygpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9y
Pgogdm9pZCBIYW5kbGVTZXQ6OnZpc2l0U3Ryb25nSGFuZGxlcyhWaXNpdG9yJiB2aXNpdG9yKQog
ewotICAgIE5vZGUqIGVuZCA9IG1fc3Ryb25nTGlzdC5lbmQoKTsKLSAgICBmb3IgKE5vZGUqIG5v
ZGUgPSBtX3N0cm9uZ0xpc3QuYmVnaW4oKTsgbm9kZSAhPSBlbmQ7IG5vZGUgPSBub2RlLT5uZXh0
KCkpIHsKKyAgICBmb3IgKE5vZGUmIG5vZGUgOiBtX3N0cm9uZ0xpc3QpIHsKICNpZiBFTkFCTEUo
R0NfVkFMSURBVElPTikKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNMaXZlTm9kZShub2RlKSk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzTGl2ZU5vZGUoJm5vZGUpKTsKICNlbmRpZgotICAg
ICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKCpub2RlLT5zbG90KCkpOworICAgICAgICB2
aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKCpub2RlLnNsb3QoKSk7CiAgICAgfQogfQogCkBAIC05
NSw5ICs5NCw4IEBAIHZvaWQgSGFuZGxlU2V0Ojp3cml0ZUJhcnJpZXIoSGFuZGxlU2xvdCBzbG90
LCBjb25zdCBKU1ZhbHVlJiB2YWx1ZSkKIHVuc2lnbmVkIEhhbmRsZVNldDo6cHJvdGVjdGVkR2xv
YmFsT2JqZWN0Q291bnQoKQogewogICAgIHVuc2lnbmVkIGNvdW50ID0gMDsKLSAgICBOb2RlKiBl
bmQgPSBtX3N0cm9uZ0xpc3QuZW5kKCk7Ci0gICAgZm9yIChOb2RlKiBub2RlID0gbV9zdHJvbmdM
aXN0LmJlZ2luKCk7IG5vZGUgIT0gZW5kOyBub2RlID0gbm9kZS0+bmV4dCgpKSB7Ci0gICAgICAg
IEpTVmFsdWUgdmFsdWUgPSAqbm9kZS0+c2xvdCgpOworICAgIGZvciAoTm9kZSYgbm9kZSA6IG1f
c3Ryb25nTGlzdCkgeworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gKm5vZGUuc2xvdCgpOwogICAg
ICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSAmJiBhc09iamVjdCh2YWx1ZS5hc0NlbGwoKSktPmlz
R2xvYmFsT2JqZWN0KCkpCiAgICAgICAgICAgICBjb3VudCsrOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGFuZGxlU2V0LmgKaW5kZXggMTZhODVmZmExZDgzMDRhMDYyNzc1ODdjMWQw
ZjhkNDkxZDliYWZiYi4uZmU0YThhNzEzMjc5YmRjNWI5YzhhODk3MDczZTMyOTFhMjUyZmYwZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmgKQEAgLTE4MSw5ICsxODEsOCBA
QCBpbmxpbmUgSGFuZGxlTm9kZSogSGFuZGxlTm9kZTo6bmV4dCgpCiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+IHZvaWQgSGFuZGxlU2V0Ojpmb3JFYWNoU3Ryb25nSGFuZGxlKGNvbnN0IEZ1
bmN0b3ImIGZ1bmN0b3IsIGNvbnN0IEhhc2hDb3VudGVkU2V0PEpTQ2VsbCo+JiBza2lwU2V0KQog
ewotICAgIEhhbmRsZVNldDo6Tm9kZSogZW5kID0gbV9zdHJvbmdMaXN0LmVuZCgpOwotICAgIGZv
ciAoSGFuZGxlU2V0OjpOb2RlKiBub2RlID0gbV9zdHJvbmdMaXN0LmJlZ2luKCk7IG5vZGUgIT0g
ZW5kOyBub2RlID0gbm9kZS0+bmV4dCgpKSB7Ci0gICAgICAgIEpTVmFsdWUgdmFsdWUgPSAqbm9k
ZS0+c2xvdCgpOworICAgIGZvciAoTm9kZSYgbm9kZSA6IG1fc3Ryb25nTGlzdCkgeworICAgICAg
ICBKU1ZhbHVlIHZhbHVlID0gKm5vZGUuc2xvdCgpOwogICAgICAgICBpZiAoIXZhbHVlIHx8ICF2
YWx1ZS5pc0NlbGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoc2tpcFNl
dC5jb250YWlucyh2YWx1ZS5hc0NlbGwoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
c29TdWJzcGFjZS5jcHAKaW5kZXggZDkwMGM3ZDUwNWQ3OTFjZTY4MTExMjk3ZTBhN2JjMjZmYzE3
MTMzNi4uMDBmZmJjZTQwZDFiM2JiMTgzODQ0NTQ5ZDNjYjkxZjdiZWJlMGY1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmNwcApAQCAtOTMsNyArOTMsNyBAQCB2
b2lkKiBJc29TdWJzcGFjZTo6dHJ5QWxsb2NhdGVGcm9tTG93ZXJUaWVyKCkKICAgICB9OwogCiAg
ICAgaWYgKCFtX2xvd2VyVGllckZyZWVMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBQcmVjaXNl
QWxsb2NhdGlvbiogYWxsb2NhdGlvbiA9IG1fbG93ZXJUaWVyRnJlZUxpc3QuYmVnaW4oKTsKKyAg
ICAgICAgUHJlY2lzZUFsbG9jYXRpb24qIGFsbG9jYXRpb24gPSAmKm1fbG93ZXJUaWVyRnJlZUxp
c3QuYmVnaW4oKTsKICAgICAgICAgYWxsb2NhdGlvbi0+cmVtb3ZlKCk7CiAgICAgICAgIHJldHVy
biByZXZpdmUoYWxsb2NhdGlvbik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU3Vic3BhY2VJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TdWJzcGFjZUlubGluZXMuaAppbmRleCA4ZTliYThkZDJmZjI4NDM1NmZmNzI4YjBlZTI4ODM3
NmUzMjc0YzVjLi45ZmI5NmY2ODYwNDBlODViMjViZTdmMGJkMzY5MjEwYWQ0YjA3YThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaApAQCAtNjIsOCAr
NjIsOCBAQCB2b2lkIFN1YnNwYWNlOjpmb3JFYWNoTm90RW1wdHlNYXJrZWRCbG9jayhjb25zdCBG
dW5jJiBmdW5jKQogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KIHZvaWQgU3Vic3BhY2U6OmZvckVh
Y2hQcmVjaXNlQWxsb2NhdGlvbihjb25zdCBGdW5jJiBmdW5jKQogewotICAgIGZvciAoUHJlY2lz
ZUFsbG9jYXRpb24qIGFsbG9jYXRpb24gPSBtX3ByZWNpc2VBbGxvY2F0aW9ucy5iZWdpbigpOyBh
bGxvY2F0aW9uICE9IG1fcHJlY2lzZUFsbG9jYXRpb25zLmVuZCgpOyBhbGxvY2F0aW9uID0gYWxs
b2NhdGlvbi0+bmV4dCgpKQotICAgICAgICBmdW5jKGFsbG9jYXRpb24pOworICAgIGZvciAoUHJl
Y2lzZUFsbG9jYXRpb24mIGFsbG9jYXRpb24gOiBtX3ByZWNpc2VBbGxvY2F0aW9ucykKKyAgICAg
ICAgZnVuYygmYWxsb2NhdGlvbik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCmluZGV4IDFjNTcxNGQ4NGI2MWIwOGZlNThjOGU2NjkxYjZiYjdkYmZjMjc0
NzMuLjQ1YmQyZjliMGQxMjlkZjhiN2E2NTEwYjkwODYxM2Y1ZDY3ZjA1NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCkBAIC0xOTg0LDkgKzE5ODQsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgog
dm9pZCBXb3JrZXJzOjpicm9hZGNhc3QoY29uc3QgRnVuYyYgZnVuYykKIHsKICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9sb2NrIH07Ci0gICAgZm9yIChXb3JrZXIqIHdvcmtlciA9IG1fd29ya2Vycy5i
ZWdpbigpOyB3b3JrZXIgIT0gbV93b3JrZXJzLmVuZCgpOyB3b3JrZXIgPSB3b3JrZXItPm5leHQo
KSkgewotICAgICAgICBpZiAod29ya2VyICE9ICZXb3JrZXI6OmN1cnJlbnQoKSkKLSAgICAgICAg
ICAgIGZ1bmMobG9ja2VyLCAqd29ya2VyKTsKKyAgICBmb3IgKFdvcmtlciYgd29ya2VyIDogbV93
b3JrZXJzKSB7CisgICAgICAgIGlmICgmd29ya2VyICE9ICZXb3JrZXI6OmN1cnJlbnQoKSkKKyAg
ICAgICAgICAgIGZ1bmMobG9ja2VyLCB3b3JrZXIpOwogICAgIH0KICAgICBtX2NvbmRpdGlvbi5u
b3RpZnlBbGwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09yZGVyTWFrZXIuaCBi
L1NvdXJjZS9XVEYvd3RmL09yZGVyTWFrZXIuaAppbmRleCBmNmYyYzk5MjAyZTcyZGZkM2MwYzEx
NjA4YWVmMjhjOTdmMjFkN2IwLi5iMDg1YzdlMGVmNDZmZTc2NTgwYWRiZWIyZDllOTZkY2ZiNGE5
ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PcmRlck1ha2VyLmgKKysrIGIvU291cmNl
L1dURi93dGYvT3JkZXJNYWtlci5oCkBAIC04OCwyNSArODgsMjUgQEAgcHVibGljOgogICAgICAg
ICB7CiAgICAgICAgIH0KIAotICAgICAgICBpdGVyYXRvcihOb2RlKiBub2RlKQotICAgICAgICAg
ICAgOiBtX25vZGUobm9kZSkKKyAgICAgICAgaXRlcmF0b3IodHlwZW5hbWUgU2VudGluZWxMaW5r
ZWRMaXN0PE5vZGU+OjppdGVyYXRvciBpdGVyKQorICAgICAgICAgICAgOiBtX2l0ZXIoaXRlcikK
ICAgICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgY29uc3QgVCYgb3BlcmF0b3IqKCkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fbm9kZS0+cGF5bG9hZDsKKyAgICAgICAgICAg
IHJldHVybiBtX2l0ZXItPnBheWxvYWQ7CiAgICAgICAgIH0KIAogICAgICAgICBpdGVyYXRvciYg
b3BlcmF0b3IrKygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fbm9kZSA9IG1fbm9kZS0+bmV4
dCgpOworICAgICAgICAgICAgKyttX2l0ZXI7CiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CiAg
ICAgICAgIH0KIAogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG90aGVy
KSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9ub2RlID09IG90aGVyLm1f
bm9kZTsKKyAgICAgICAgICAgIHJldHVybiBtX2l0ZXIgPT0gb3RoZXIubV9pdGVyOwogICAgICAg
ICB9CiAKICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29u
c3QKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgTm9kZSogbV9ub2RlIHsgbnVsbHB0ciB9OworICAgICAgICB0eXBl
bmFtZSBTZW50aW5lbExpbmtlZExpc3Q8Tm9kZT46Oml0ZXJhdG9yIG1faXRlcjsKICAgICB9Owog
CiAgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihjb25zdF9jYXN0
PFNlbnRpbmVsTGlua2VkTGlzdDxOb2RlPiY+KG1fbGlzdCkuYmVnaW4oKSk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1NlbnRpbmVsTGlua2VkTGlzdC5oIGIvU291cmNlL1dURi93dGYv
U2VudGluZWxMaW5rZWRMaXN0LmgKaW5kZXggMmViZDhjOGJjOTRjZDJjYTI2ZmNlOTg0ZGVjYWFi
NmRhMTE2MjEwOC4uYmQ5ZTEzNDc1ZDYzNGY4N2JkMTliNjUyODg1YjU1M2NiNGM0NzhlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmgKKysrIGIvU291cmNl
L1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmgKQEAgLTMwLDEyICszMCwxNSBAQAogLy8gICAg
UmVxdWlyZXM6IE5vZGUgaXMgYSBjb25jcmV0ZSBjbGFzcyB3aXRoOgogLy8gICAgICAgIE5vZGUo
U2VudGluZWxUYWcpOwogLy8gICAgICAgIHZvaWQgc2V0UHJldihOb2RlKik7Ci0vLyAgICAgICAg
Tm9kZSogcHJldigpOworLy8gICAgICAgIE5vZGUqIHByZXYoKSBjb25zdDsKIC8vICAgICAgICB2
b2lkIHNldE5leHQoTm9kZSopOwotLy8gICAgICAgIE5vZGUqIG5leHQoKTsKKy8vICAgICAgICBO
b2RlKiBuZXh0KCkgY29uc3Q7CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8aXRlcmF0b3I+
CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL05vbm1vdmFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUGFja2VkLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNTcsOCAr
NjAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2KEJhc2ljUmF3U2VudGluZWxOb2RlKiBw
cmV2KSB7IG1fcHJldiA9IHByZXY7IH0KICAgICB2b2lkIHNldE5leHQoQmFzaWNSYXdTZW50aW5l
bE5vZGUqIG5leHQpIHsgbV9uZXh0ID0gbmV4dDsgfQogICAgIAotICAgIFQqIHByZXYoKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxUKj4oUHRyVHJhaXRzOjp1bndyYXAobV9wcmV2KSk7IH0KLSAgICBU
KiBuZXh0KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KFB0clRyYWl0czo6dW53cmFwKG1fbmV4
dCkpOyB9CisgICAgVCogcHJldigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihQdHJU
cmFpdHM6OnVud3JhcChtX3ByZXYpKTsgfQorICAgIFQqIG5leHQoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxUKj4oUHRyVHJhaXRzOjp1bndyYXAobV9uZXh0KSk7IH0KICAgICAKICAgICBi
b29sIGlzT25MaXN0KCkgY29uc3QKICAgICB7CkBAIC03Nyw4ICs4MCw0OSBAQCBwcml2YXRlOgog
fTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJhd05vZGUgPSBUPiBjbGFzcyBT
ZW50aW5lbExpbmtlZExpc3QgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlbnRpbmVsTGlu
a2VkTGlzdCk7CisgICAgV1RGX01BS0VfTk9OTU9WQUJMRShTZW50aW5lbExpbmtlZExpc3QpOwog
cHVibGljOgotICAgIHR5cGVkZWYgVCogaXRlcmF0b3I7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
UmF3Tm9kZVR5cGUsIHR5cGVuYW1lIE5vZGVUeXBlPiBjbGFzcyBCYXNlSXRlcmF0b3IgeworICAg
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxp
Y2l0IEJhc2VJdGVyYXRvcihSYXdOb2RlVHlwZSogbm9kZSkKKyAgICAgICAgICAgIDogbV9ub2Rl
KG5vZGUpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYXV0byYgb3Bl
cmF0b3IqKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9kZVR5cGUmPigqbV9ub2RlKTsg
fQorCisgICAgICAgIGF1dG8qIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxOb2RlVHlwZSo+KG1fbm9kZSk7IH0KKworICAgICAgICBCYXNlSXRlcmF0b3ImIG9wZXJhdG9y
KysoKQorICAgICAgICB7CisgICAgICAgICAgICBtX25vZGUgPSBtX25vZGUtPm5leHQoKTsKKyAg
ICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQmFz
ZUl0ZXJhdG9yJiBvcGVyYXRvci0tKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9ub2RlID0g
bV9ub2RlLT5wcmV2KCk7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBCYXNlSXRlcmF0b3ImIG90aGVy
KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9ub2RlID09IG90aGVyLm1f
bm9kZTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBCYXNlSXRl
cmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gISgqdGhp
cyA9PSBvdGhlcik7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJhd05vZGVU
eXBlKiBtX25vZGU7CisgICAgfTsKKworICAgIHVzaW5nIGl0ZXJhdG9yID0gQmFzZUl0ZXJhdG9y
PFJhd05vZGUsIFQ+OworICAgIHVzaW5nIGNvbnN0X2l0ZXJhdG9yID0gQmFzZUl0ZXJhdG9yPGNv
bnN0IFJhd05vZGUsIGNvbnN0IFQ+OwogCiAgICAgU2VudGluZWxMaW5rZWRMaXN0KCkKICAgICAg
ICAgOiBtX3NlbnRpbmVsKFNlbnRpbmVsKQpAQCAtMTAxLDYgKzE0NSw4IEBAIHB1YmxpYzoKIAog
ICAgIGl0ZXJhdG9yIGJlZ2luKCk7CiAgICAgaXRlcmF0b3IgZW5kKCk7CisgICAgY29uc3RfaXRl
cmF0b3IgYmVnaW4oKSBjb25zdDsKKyAgICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdDsKICAg
ICAKICAgICBib29sIGlzRW1wdHkoKSB7IHJldHVybiBiZWdpbigpID09IGVuZCgpOyB9CiAgICAg
CkBAIC0xMDgsOCArMTU0LDkgQEAgcHVibGljOgogICAgIHZvaWQgZm9yRWFjaChjb25zdCBGdW5j
JiBmdW5jKQogICAgIHsKICAgICAgICAgZm9yIChpdGVyYXRvciBpdGVyID0gYmVnaW4oKTsgaXRl
ciAhPSBlbmQoKTspIHsKLSAgICAgICAgICAgIGl0ZXJhdG9yIG5leHQgPSBpdGVyLT5uZXh0KCk7
Ci0gICAgICAgICAgICBmdW5jKGl0ZXIpOworICAgICAgICAgICAgaXRlcmF0b3IgbmV4dCA9IGl0
ZXI7CisgICAgICAgICAgICArK25leHQ7CisgICAgICAgICAgICBmdW5jKCYqaXRlcik7CiAgICAg
ICAgICAgICBpdGVyID0gbmV4dDsKICAgICAgICAgfQogICAgIH0KQEAgLTEzOSwxMiArMTg2LDIy
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUcmFpdHM+IHZvaWQgQmFzaWNS
YXdTZW50aW5lbE5vZGU8VCwgUHRyVHJhaXRzCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBl
bmFtZSBSYXdOb2RlPiBpbmxpbmUgdHlwZW5hbWUgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05v
ZGU+OjppdGVyYXRvciBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46OmJlZ2luKCkKIHsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1fc2VudGluZWwubmV4dCgpKTsKKyAgICByZXR1
cm4gaXRlcmF0b3IgeyBtX3NlbnRpbmVsLm5leHQoKSB9OwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4gaW5saW5lIHR5cGVuYW1lIFNlbnRpbmVsTGlua2VkTGlz
dDxULCBSYXdOb2RlPjo6aXRlcmF0b3IgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+Ojpl
bmQoKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4oJm1fc2VudGluZWwpOworICAgIHJl
dHVybiBpdGVyYXRvciB7ICZtX3NlbnRpbmVsIH07Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgdHlwZW5hbWUgU2VudGluZWxMaW5rZWRMaXN0PFQs
IFJhd05vZGU+Ojpjb25zdF9pdGVyYXRvciBTZW50aW5lbExpbmtlZExpc3Q8VCwgUmF3Tm9kZT46
OmJlZ2luKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IgeyBtX3NlbnRpbmVs
Lm5leHQoKSB9OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmF3Tm9kZT4g
aW5saW5lIHR5cGVuYW1lIFNlbnRpbmVsTGlua2VkTGlzdDxULCBSYXdOb2RlPjo6Y29uc3RfaXRl
cmF0b3IgU2VudGluZWxMaW5rZWRMaXN0PFQsIFJhd05vZGU+OjplbmQoKSBjb25zdAoreworICAg
IHJldHVybiBjb25zdF9pdGVyYXRvciB7ICZtX3NlbnRpbmVsIH07CiB9CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBULCB0eXBlbmFtZSBSYXdOb2RlPiBpbmxpbmUgdm9pZCBTZW50aW5lbExpbmtlZExp
c3Q8VCwgUmF3Tm9kZT46OnB1c2goVCogbm9kZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwOWI5OGVlN2U3ZTMwY2U0MjBiZmY2ODJhOWNmMWEw
OTkwZTkyMDNmLi5jMjQ4MjllMjczMjcwMDlhMDA4NWIwYzhhMjk3YmVhNmMwNTA3ZmFlIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMjItMDMtMDEgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CisKKyAgICAgICAgV1RGOjpTZW50aW5lbExpbmtlZExpc3Q6Oml0ZXJhdG9yIHNob3VsZCBo
YXZlIG9wZXJhdG9yKysgZm9yIHJhbmdlLWZvciBsb29wCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBZ
dXN1a2UgU3V6dWtpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2VudGlu
ZWxMaW5rZWRMaXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIy
LTAzLTAxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Z2l0LXdlYmtpdF0gR2F0ZSBpbmZvcm1hdGlvbiBVUkwgb24gaW5pdGlhbCBzZXR1cApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2VudGluZWxMaW5rZWRMaXN0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NlbnRpbmVsTGlua2VkTGlzdC5jcHAK
aW5kZXggOTEyOWFkZGI0ZTY5ZGQwYzgyYTQ1NDNhNzNiODc3ZGQxMzljNGFjOC4uZDQyYmQ3YzA4
NzUwM2I4Y2FkNGNkZTdkMDUxN2E3NmY2MmQ3OGE2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU2VudGluZWxMaW5rZWRMaXN0LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TZW50aW5lbExpbmtlZExpc3QuY3BwCkBAIC01MSwzMCArNTEs
MzAgQEAgVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBCYXNpYykKIAogICAgIGF1dG8qIGZp
cnN0ID0gYmFnLmFkZCgwKTsKICAgICBsaXN0LnB1c2goZmlyc3QpOwotICAgIEVYUEVDVF9FUShm
aXJzdCwgbGlzdC5iZWdpbigpKTsKKyAgICBFWFBFQ1RfRVEoZmlyc3QsICYqbGlzdC5iZWdpbigp
KTsKICAgICBFWFBFQ1RfRVEoMCwgbGlzdC5iZWdpbigpLT52YWx1ZSgpKTsKIAogICAgIGF1dG8q
IHNlY29uZCA9IGJhZy5hZGQoMSk7CiAgICAgbGlzdC5wdXNoKHNlY29uZCk7Ci0gICAgRVhQRUNU
X0VRKHNlY29uZCwgbGlzdC5iZWdpbigpKTsKKyAgICBFWFBFQ1RfRVEoc2Vjb25kLCAmKmxpc3Qu
YmVnaW4oKSk7CiAgICAgRVhQRUNUX0VRKDEsIGxpc3QuYmVnaW4oKS0+dmFsdWUoKSk7CiAgICAg
RVhQRUNUX0VRKGZpcnN0LCBsaXN0LmJlZ2luKCktPm5leHQoKSk7CiAgICAgRVhQRUNUX0VRKDAs
IGxpc3QuYmVnaW4oKS0+bmV4dCgpLT52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEobGlzdC5lbmQo
KSwgbGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKSk7CisgICAgRVhQRUNUX0VRKCYqbGlzdC5l
bmQoKSwgbGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKSk7CiAKICAgICBhdXRvKiB0aGlyZCA9
IGJhZy5hZGQoMik7CiAgICAgZmlyc3QtPnByZXBlbmQodGhpcmQpOwotICAgIEVYUEVDVF9FUShz
ZWNvbmQsIGxpc3QuYmVnaW4oKSk7CisgICAgRVhQRUNUX0VRKHNlY29uZCwgJipsaXN0LmJlZ2lu
KCkpOwogICAgIEVYUEVDVF9FUSgxLCBsaXN0LmJlZ2luKCktPnZhbHVlKCkpOwogICAgIEVYUEVD
VF9FUSh0aGlyZCwgbGlzdC5iZWdpbigpLT5uZXh0KCkpOwogICAgIEVYUEVDVF9FUSgyLCBsaXN0
LmJlZ2luKCktPm5leHQoKS0+dmFsdWUoKSk7CiAgICAgRVhQRUNUX0VRKGZpcnN0LCBsaXN0LmJl
Z2luKCktPm5leHQoKS0+bmV4dCgpKTsKICAgICBFWFBFQ1RfRVEoMCwgbGlzdC5iZWdpbigpLT5u
ZXh0KCktPm5leHQoKS0+dmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKGxpc3QuZW5kKCksIGxpc3Qu
YmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKSk7CisgICAgRVhQRUNUX0VRKCYqbGlzdC5l
bmQoKSwgbGlzdC5iZWdpbigpLT5uZXh0KCktPm5leHQoKS0+bmV4dCgpKTsKIAogICAgIGF1dG8q
IGZvdXJ0aCA9IGJhZy5hZGQoMyk7CiAgICAgZmlyc3QtPmFwcGVuZChmb3VydGgpOwotICAgIEVY
UEVDVF9FUShzZWNvbmQsIGxpc3QuYmVnaW4oKSk7CisgICAgRVhQRUNUX0VRKHNlY29uZCwgJips
aXN0LmJlZ2luKCkpOwogICAgIEVYUEVDVF9FUSgxLCBsaXN0LmJlZ2luKCktPnZhbHVlKCkpOwog
ICAgIEVYUEVDVF9FUSh0aGlyZCwgbGlzdC5iZWdpbigpLT5uZXh0KCkpOwogICAgIEVYUEVDVF9F
USgyLCBsaXN0LmJlZ2luKCktPm5leHQoKS0+dmFsdWUoKSk7CkBAIC04Miw3ICs4Miw3IEBAIFRF
U1QoV1RGX1NlbnRpbmVsTGlua2VkTGlzdCwgQmFzaWMpCiAgICAgRVhQRUNUX0VRKDAsIGxpc3Qu
YmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPnZhbHVlKCkpOwogICAgIEVYUEVDVF9FUShmb3VydGgs
IGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKSk7CiAgICAgRVhQRUNUX0VRKDMs
IGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKS0+dmFsdWUoKSk7Ci0gICAgRVhQ
RUNUX0VRKGxpc3QuZW5kKCksIGxpc3QuYmVnaW4oKS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKS0+
bmV4dCgpKTsKKyAgICBFWFBFQ1RfRVEoJipsaXN0LmVuZCgpLCBsaXN0LmJlZ2luKCktPm5leHQo
KS0+bmV4dCgpLT5uZXh0KCktPm5leHQoKSk7CiAKICAgICBFWFBFQ1RfVFJVRShmaXJzdC0+aXNP
bkxpc3QoKSk7CiAgICAgRVhQRUNUX1RSVUUoc2Vjb25kLT5pc09uTGlzdCgpKTsKQEAgLTExMyw5
ICsxMTMsOSBAQCBURVNUKFdURl9TZW50aW5lbExpbmtlZExpc3QsIFJlbW92ZSkKIAogICAgIGlu
dCBpID0gMDsKICAgICB3aGlsZSAoIWxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8qIG5v
ZGUgPSBsaXN0LmJlZ2luKCk7Ci0gICAgICAgIEVYUEVDVF9FUShpKyssIG5vZGUtPnZhbHVlKCkp
OwotICAgICAgICBub2RlLT5yZW1vdmUoKTsKKyAgICAgICAgYXV0byYgbm9kZSA9ICpsaXN0LmJl
Z2luKCk7CisgICAgICAgIEVYUEVDVF9FUShpKyssIG5vZGUudmFsdWUoKSk7CisgICAgICAgIG5v
ZGUucmVtb3ZlKCk7CiAgICAgfQogICAgIEVYUEVDVF9FUSgxMCwgaSk7CiB9CkBAIC0xNDcsNyAr
MTQ3LDcgQEAgVEVTVChXVEZfU2VudGluZWxMaW5rZWRMaXN0LCBUYWtlRnJvbSkKICAgICBFWFBF
Q1RfRVEoMCwgbGlzdC5iZWdpbigpLT52YWx1ZSgpKTsKICAgICBFWFBFQ1RfRVEoMSwgbGlzdC5i
ZWdpbigpLT5uZXh0KCktPnZhbHVlKCkpOwogICAgIEVYUEVDVF9FUSgyLCBsaXN0LmJlZ2luKCkt
Pm5leHQoKS0+bmV4dCgpLT52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEobGlzdC5lbmQoKSwgbGlz
dC5iZWdpbigpLT5uZXh0KCktPm5leHQoKS0+bmV4dCgpKTsKKyAgICBFWFBFQ1RfRVEoJipsaXN0
LmVuZCgpLCBsaXN0LmJlZ2luKCktPm5leHQoKS0+bmV4dCgpLT5uZXh0KCkpOwogfQogCiBURVNU
KFdURl9TZW50aW5lbExpbmtlZExpc3QsIEZvckVhY2gpCkBAIC0xNzIsNCArMTcyLDE4IEBAIFRF
U1QoV1RGX1NlbnRpbmVsTGlua2VkTGlzdCwgRm9yRWFjaCkKICAgICBFWFBFQ1RfRVEoMTAsIGkp
OwogfQogCitURVNUKFdURl9TZW50aW5lbExpbmtlZExpc3QsIENvbnN0KQoreworICAgIEJhZzxU
ZXN0Tm9kZT4gYmFnOworICAgIFNlbnRpbmVsTGlua2VkTGlzdDxUZXN0Tm9kZT4gbm9uQ29uc3RM
aXN0OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICAgICAgbm9uQ29uc3RM
aXN0LmFwcGVuZChiYWcuYWRkKGkpKTsKKworICAgIGNvbnN0IFNlbnRpbmVsTGlua2VkTGlzdDxU
ZXN0Tm9kZT4mIGNvbnN0TGlzdCA9IG5vbkNvbnN0TGlzdDsKKyAgICBpbnQgaSA9IDA7CisgICAg
Zm9yIChhdXRvJiBub2RlIDogY29uc3RMaXN0KQorICAgICAgICBFWFBFQ1RfRVEoaSsrLCBub2Rl
LnZhbHVlKCkpOworICAgIEVYUEVDVF9FUSgxMCwgaSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>