<?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>234804</bug_id>
          
          <creation_ts>2022-01-02 17:20:03 -0800</creation_ts>
          <short_desc>Delete most code for beforeload event</short_desc>
          <delta_ts>2022-01-29 13:01:07 -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>DOM</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827571</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-02 17:20:03 -0800</bug_when>
    <thetext>Delete code for beforeload event.
The event has been disabled since https://trac.webkit.org/r261946.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827573</commentid>
    <comment_count>1</comment_count>
      <attachid>448193</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-02 17:35:05 -0800</bug_when>
    <thetext>Created attachment 448193
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827578</commentid>
    <comment_count>2</comment_count>
      <attachid>448195</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-02 17:48:23 -0800</bug_when>
    <thetext>Created attachment 448195
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827616</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-02 21:27:28 -0800</bug_when>
    <thetext>There is an existing bug in RenderImage::paintReplaced. Fixing that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827617</commentid>
    <comment_count>4</comment_count>
      <attachid>448203</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-02 21:28:39 -0800</bug_when>
    <thetext>Created attachment 448203
Fixed the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827618</commentid>
    <comment_count>5</comment_count>
      <attachid>448203</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-02 21:28:53 -0800</bug_when>
    <thetext>Comment on attachment 448203
Fixed the test

Wait for EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827638</commentid>
    <comment_count>6</comment_count>
      <attachid>448211</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-02 23:22:10 -0800</bug_when>
    <thetext>Created attachment 448211
Fixed the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829367</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-09 17:21:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/87317502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835250</commentid>
    <comment_count>8</comment_count>
      <attachid>448211</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-28 22:26:22 -0800</bug_when>
    <thetext>Comment on attachment 448211
Fixed the test

I guess I need to go with a more conservative approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835271</commentid>
    <comment_count>9</comment_count>
      <attachid>450322</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-29 01:02:06 -0800</bug_when>
    <thetext>Created attachment 450322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835275</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-29 02:38:21 -0800</bug_when>
    <thetext>nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835305</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-29 13:01:07 -0800</bug_when>
    <thetext>Committed r288793 (246570@trunk): &lt;https://commits.webkit.org/246570@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448193</attachid>
            <date>2022-01-02 17:35:05 -0800</date>
            <delta_ts>2022-01-02 17:48:21 -0800</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-234804-20220102173504.patch</filename>
            <type>text/plain</type>
            <size>50904</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ4ODJmYWEwZTNhN2Nk
M2UzMjZjM2ZmZmY0YTMxMTYxNDI1N2EzMy4uZjAyZmE5YmExZmEzN2ZjMDI1Nzg0MzgyM2EyOTI1
YWUwMzNlMTEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIyLTAxLTAyICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0ZSBjb2RlIGZvciBi
ZWZvcmVsb2FkIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQ4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZWxldGUgY29kZSBmb3IgYmVmb3JlbG9hZCBldmVudCBhcyB0aGUgZXZlbnQgaGFz
IGJlZW4gZGlzYWJsZWQgc3VjY2Vzc2Z1bGx5IGluIHIyNjE5NDYuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50LmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50Lmg6IFJlbW92ZWQuCisgICAg
ICAgICogZG9tL0JlZm9yZUxvYWRFdmVudC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdENsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRMaXN0ZW5lclR5cGVJZk5lZWRlZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hC
ZWZvcmVMb2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAg
ICogZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCk6IG1faXNIYW5kbGluZ0JlZm9yZUxv
YWQgaXMgbmV2ZXIgdHJ1ZS4KKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg6
CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6cmVxdWVzdENsYXNzaWNTY3JpcHQpOiBkaXNwYXRjaEJlZm9yZUxvYWRFdmVu
dCBhbHdheXMgcmV0dXJuZWQgdHJ1ZQorICAgICAgICB3aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMg
ZGlzYWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxl
U2NyaXB0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCk6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOiBUaGVyZSBpcyBuZXZlciBhIHBl
bmRpbmcgYmVmb3JlbG9hZCBldmVudC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnNob3VsZExvYWRMaW5rKTog
ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVybmVkIHRydWUKKyAgICAgICAgd2hl
biBiZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RN
ZWRpYVJlc291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojp1cGRh
dGVXaWRnZXQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpndWFyZGVkRGlzcGF0Y2hCZWZv
cmVMb2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1l
bnQ6OnBsdWdpbldpZGdldCBjb25zdCk6IG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyIGlzIG5l
dmVyIHRydWUuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tF
bGVtZW50OjpjYW5Mb2FkVVJMKTogZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVy
bmVkIHRydWUgd2hlbgorICAgICAgICBiZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAg
ICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJ
bnB1dFR5cGU6OmF0dGFjaCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdCk6IFJl
bW92ZWQgdGhlIGNvbW1lbnQgcmVmZXJyaW5nIHRvIGJlZm9yZWxvYWQgZXZlbnQKKyAgICAgICAg
YnV0IGtlZXAgUmVmIHNpbmNlIHdlJ3JlIGNhbGxpbmcgYSBidW5jaCBvZiBmdW5jdGlvbnMgd2l0
aCBtX2ZyYW1lIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOiBEZWxldGVkIGEgYmxvY2sgb2Ygbm8tb3AgY29kZSBz
aW5jZQorICAgICAgICBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBhbHdheXMgcmV0dXJuZWQgdHJ1
ZSB3aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMgZGlzYWJsZWQuCisgICAgICAgICogbG9hZGVyL0lt
YWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJlZm9yZUxvYWRFdmVudFNlbmRlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6SW1hZ2VMb2FkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6On5JbWFnZUxvYWRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUxvYWRlcjo6Y2xlYXJJbWFnZVdpdGhvdXRDb25zaWRlcmluZ1BlbmRpbmdM
b2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVu
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5k
aW5nQmVmb3JlTG9hZEV2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9h
ZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0JlZm9yZUxv
YWRFdmVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgor
ICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZCk6CisKIDIwMjEtMTItMjYgIEZyw6lkw6ly
aWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgbnVsbCBwdHIgZGVyZWYgaW4g
V2ViQ29yZTo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA0OWMwMTAxNmNmMzg3ZDI0OGYxNGIxMTQwYzI4NGNjMDI0ZGU0ZmQ3Li4zYzg4ZTdhMDUxNDZh
NjRjYTdjNjhmM2ZjMWE2MmM0YzY1NmQzMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODQz
LDcgKzg0Myw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgZG9tL0FkZEV2
ZW50TGlzdGVuZXJPcHRpb25zLmlkbAogICAgIGRvbS9BbmltYXRpb25FdmVudC5pZGwKICAgICBk
b20vQXR0ci5pZGwKLSAgICBkb20vQmVmb3JlTG9hZEV2ZW50LmlkbAogICAgIGRvbS9CZWZvcmVV
bmxvYWRFdmVudC5pZGwKICAgICBkb20vQnJvYWRjYXN0Q2hhbm5lbC5pZGwKICAgICBkb20vQ0RB
VEFTZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKaW5kZXggZDZjYWMwYjRhYTVhMTJjMmYyYjJjYWU3NTBiOTUyZjZkZTlmMzgyOC4u
NWZkOGExMGI3NWEzNjg0OTFjOWY2MTRkYmE5MjQyNWJmOGNiMTRmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC05OTAsNyArOTkwLDYg
QEAgJChQUk9KRUNUX0RJUikvZG9tL0Fic3RyYWN0UmFuZ2UuaWRsCiAkKFBST0pFQ1RfRElSKS9k
b20vQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQW5pbWF0
aW9uRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQXR0ci5pZGwKLSQoUFJPSkVDVF9ESVIp
L2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQmVmb3JlVW5sb2Fk
RXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5pZGwKICQoUFJP
SkVDVF9ESVIpL2RvbS9DREFUQVNlY3Rpb24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGU4MjQ3Yjc4ZjJjMTI2YWFlYWFmNmQx
NjFkYjA4MjkzMTZjM2RkYTkuLjhiZGE2ODZlZjc5MzBjZjg1MWQ1ZDY1YmExNWM1M2UzNTc0NTNi
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CkBAIC0yNjQsOCArMjY0LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNCYXNlQXVkaW9Db250ZXh0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCYXNlQXVkaW9Db250ZXh0LmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmFzaWNDcmVkZW50aWFsLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCYXNpY0NyZWRl
bnRpYWwuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNC
ZWZvcmVMb2FkRXZlbnQuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0JlZm9yZUxvYWRFdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0JlZm9yZVVubG9hZEV2ZW50LmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCZWZvcmVVbmxvYWRFdmVudC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0JpcXVhZEZpbHRlck5v
ZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0OWFkYmMyNDM2MGIxNjll
Y2ExZTMyMzM2MDIzNTA5NjQ1OTNhZTYyLi5kNDc0MmY3YTQ0ZTFiN2FjYWM0ZjQ0ZDU1NjllZTk1
Y2E4Yzk0ZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTg0OCw3ICs4NDgs
NiBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvZG9tL0FkZEV2ZW50TGlz
dGVuZXJPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQW5pbWF0aW9uRXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9BdHRyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vQmVm
b3JlTG9hZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vQ0RBVEFTZWN0aW9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJkNWE3NDc5
Y2IzOWU0NmNjOTEwNDAwZjRlZTM4NDkzMjRjNzUzMWYuLmUxNDEyYzQwZTYyNGUyY2M3ODYwNGQ0
NzE0ODExMGFlMTI4MjJmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04OTgsNyArODk4LDYgQEAgZG9t
L0FjdGl2ZURPTU9iamVjdC5jcHAKIGRvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uY3BwCiBk
b20vQW5pbWF0aW9uRXZlbnQuY3BwCiBkb20vQXR0ci5jcHAKLWRvbS9CZWZvcmVMb2FkRXZlbnQu
Y3BwCiBkb20vQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwCiBkb20vQmVmb3JlVW5sb2FkRXZl
bnQuY3BwCiBkb20vQm91bmRhcnlQb2ludC5jcHAKQEAgLTI5MDYsNyArMjkwNSw2IEBAIEpTQXV0
b21hdGlvblJhdGUuY3BwCiBKU0JhclByb3AuY3BwCiBKU0Jhc2VBdWRpb0NvbnRleHQuY3BwCiBK
U0Jhc2ljQ3JlZGVudGlhbC5jcHAKLUpTQmVmb3JlTG9hZEV2ZW50LmNwcAogSlNCZWZvcmVVbmxv
YWRFdmVudC5jcHAKIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAKIEpTQmlxdWFkRmlsdGVyT3B0aW9u
cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBiNjYyYjA4N2U3MmVkZTZlYzdjOTM1ZGZhNDdmMDdlMGRjNGQwNzZmLi43MjM5
OWMzOTBiODRjYzM1OTMzYTkxOTlkYjZjNjBjNjZiYjg1MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MjEzLDggKzQyMTMs
NiBAQAogCQlCQzhDOEZBRTBERENEMzFCMDBCNTkyRjQgLyogUmVuZGVyU3R5bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEM4RkFDMEREQ0QzMUIw
MEI1OTJGNCAvKiBSZW5kZXJTdHlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDOTI2RjgxMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFt
ZVNldEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDOTI2RjdGMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnQuaCAq
LzsgfTsKIAkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NDM5QzIxMTZDRjQ5
NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCUJDOTQ2MkQ4MTA3QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVM
b2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDOTQ2MkQ3MTA3QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLzsgfTsKLQkJ
QkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0NjM0NzEwN0E5MzY2MDA4
NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCAqLzsgfTsKIAkJQkM5NEQxNEYwQzI3NUM2ODAw
NkJDNjE3IC8qIEpTSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM5NEQxNEQwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5oICovOyB9
OwogCQlCQzk0RDE1NDBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NEQxNTEwQzI3NUM4QjAwNkJDNjE3
IC8qIEhpc3RvcnkuaCAqLzsgfTsKIAkJQkM5NkRCNDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRl
ckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzk2REI0MjBGM0E4ODBFMDA1NzNDQjMgLyogUmVuZGVyQm94TW9kZWxPYmplY3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUz
NjgsMTAgKzE1MzY2LDYgQEAKIAkJQkM5MjZGN0UwQzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZy
YW1lU2V0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNIVE1MRnJhbWVTZXRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM5MjZGN0YwQzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRnJhbWVTZXRFbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDOTQzOUMyMTE2Q0Y0OTQwMDQ4Qzc1MCAvKiBK
U05vZGVDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOb2RlQ3Vz
dG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MkNCMTA3QTdBMzkwMDg1
NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJlZm9y
ZUxvYWRFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MkQ3MTA3
QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmVmb3JlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDOTQ2MzQ1MTA3QTkzNEIwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JlZm9yZUxvYWRFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MzQ3MTA3QTkzNjYwMDg1NzE5MyAv
KiBKU0JlZm9yZUxvYWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0JlZm9yZUxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk0RDEw
NzBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TY3JlZW5NYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDOTREMTRDMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3Rv
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSGlzdG9yeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDOTREMTREMEMyNzVDNjgwMDZCQzYx
NyAvKiBKU0hpc3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSGlz
dG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcyNTcsNyArMTcyNTEsNiBA
QAogCQlFM0JGMTlFMTIyQUYyRjU1MDA5Qzk5MjYgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUUzMjJBRjJGQTUwMDlDOTky
NiAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE92
ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFM0JGMTlFNDIyQUYyRkNGMDA5Qzk5MjYgLyogQ2xvc2VFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDbG9zZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTNC
RjE5RTUyMkFGMkZGNDAwOUM5OTI2IC8qIEJlZm9yZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCZWZvcmVMb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFM0JGMTlFNjIyQUYzMDJBMDA5Qzk5MjYgLyogSGFzaENoYW5nZUV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEhhc2hDaGFuZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzQkYxOUU3MjJBRjMwOUYwMDlDOTkyNiAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0MwNDEyRDI1NENBMjlCMDAy
MUQwRTYgLyogU3lzdGVtU291bmRNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN5c3RlbVNvdW5kTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjc2NjUsOCArMjc2NTgsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMzE5ODQ4MDMxQTFF
NkI1RDAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuY3BwICovLAogCQkJCTMxOTg0ODA0MUEx
RTZCNUQwMEExMzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi8sCi0JCQkJQkM5NDYzNDUxMDdB
OTM0QjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmNwcCAqLywKLQkJCQlCQzk0NjM0NzEw
N0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCAqLywKIAkJCQk4MjI1NDMyQ0E5
RDRCNENGNDYyOEVDN0YgLyogSlNCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8sCiAJCQkJMjlFMDRB
MjdCRUQyRjgxRjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCAqLywKIAkJCQk4MzZE
MDMyRDFEQThBMTMyMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5jcHAgKi8sCkBAIC0zMjA3
NCw5ICszMjA2NSw2IEBACiAJCQkJQThDNEE3RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAq
LywKIAkJCQk5M0VFQzFFNTA5QzI4Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8sCiAJCQkJQThD
NEE3RjkwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5oICovLAotCQkJCUUzQkYxOUU1MjJB
RjJGRjQwMDlDOTkyNiAvKiBCZWZvcmVMb2FkRXZlbnQuY3BwICovLAotCQkJCUJDOTQ2MkQ3MTA3
QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLywKLQkJCQlCQzk0NjJDQjEwN0E3
QTM5MDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmlkbCAqLywKIAkJCQlBQjIzQTMyNTA5QkJB
N0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwICovLAogCQkJCUFCMjNB
MzI2MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oICovLAogCQkJ
CTg1MDMxQjI2MEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8sCkBA
IC0zMzQ2Niw3ICszMzQ1NCw2IEBACiAJCQkJNzE1NkJDQTEyMUNBMzUwRjAwNTM0Mzk3IC8qIEJh
c2ljRWZmZWN0VGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlGQkQ2QUY4QTE1RUYyNURGMDA4
QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkJENkFG
OEMxNUVGMjYwNDAwOEI3MTEwIC8qIEJhc2ljU2hhcGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlC
Qzk0NjJEODEwN0E3QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBQjIzQTMyODA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjNEMEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZv
cmVVbmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMjQwRDAwNkMxRDAwRUY2
RjI2IC8qIEJpZGlDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTM0NTA4LDYgKzM0NDk1LDcg
QEAKIAkJCQlCQzUzQzVGNTBEQTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3OTY0MEQwMEJGMjIwMDcxQjc4MiAvKiBHcmFkaWVudEF0dHJpYnV0ZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTlDREY0Mjc3MTA2MzkwMDUzRjczNCAvKiBHcmFkaWVu
dENvbG9yU3RvcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMxOUNFMkIyNzcyQkY3QjAwNTNGNzM0
IC8qIEdyYWRpZW50Q29sb3JTdG9wcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0ODFGMDQxNDZC
NUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTlD
REYyMjc2RkZDNkQwMDUzRjczNCAvKiBHcmFkaWVudFJlbmRlcmVyQ0cuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdCQjY4MEJBMjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zNTAyNCw3ICszNTAxMiw2IEBACiAJCQkJNTdEQ0VEOTgyMTQ4ODIx
NjAwMTZCODQ3IC8qIEpTQXV0aGVudGljYXRvclRyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTdDN0E2OUYxRTU3OTE3ODAwQzY3RDcxIC8qIEpTQmFzaWNDcmVkZW50aWFsLmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2Fk
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBK
U0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREYwOURDOTEzOTlCNjIy
MDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTJE
OTlDRTEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4gSGVhZGVycyAqLywKQEAgLTM3NTcz
LDcgKzM3NTYwLDYgQEAKIAkJCQlCRTkxM0Q4MDE4MUVGOTI0MDBEQ0IwOUUgLyogVHJhY2tQcml2
YXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMUMyNzAyNEJDMjAwNjE3RUI2IC8q
IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGQUMzMEZFMTg0
RkIxNDUwMDhDNEYxRSAvKiBUcmFpbGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovLAotCQkJCUJD
MTlDRTJCMjc3MkJGN0IwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxNjA3MTMyMUJEODMwOEIwMERCQzRGMiAvKiBUcmFuc2FjdGlvbk9wZXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGNDEyNTc5OUZEOTAwNjU2M0JCIC8qIFRyYW5z
ZmVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUM0MEVGODZENDcwMDlEMENB
RiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggMjMzYThjYWZl
MzQzM2I5OWMxNjU3OTJmYzAxZmQ5YTM3MDhmZjJjOC4uOTJhY2M4ODhhNTZjYzI3YjZjNTI0MDA2
ZTBjNGZkYmFlOGYzOGY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNjIsNyArNjIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpIFwKICAgICBtYWNy
byhBdXRoZW50aWNhdG9yUmVzcG9uc2UpIFwKICAgICBtYWNybyhCYXNlQXVkaW9Db250ZXh0KSBc
Ci0gICAgbWFjcm8oQmVmb3JlTG9hZEV2ZW50KSBcCiAgICAgbWFjcm8oQmxvYkV2ZW50KSBcCiAg
ICAgbWFjcm8oQnJvYWRjYXN0Q2hhbm5lbCkgXAogICAgIG1hY3JvKENhY2hlKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1ZGJlNTA4YmYzMDQxOWIwMGU3OWYzODg2ZDE1MjEzMjc5ZWQzYWRmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZv
cmVMb2FkRXZlbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJCZWZvcmVMb2FkRXZlbnQuaCIKLQotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEJlZm9yZUxvYWRFdmVudCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OWE3ZDQyMWYzYTQ1Yzk0NmY5YmU0M2EzOWYxNzhmNmJhYjM1YmUzZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3Jl
TG9hZEV2ZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
bmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBCZWZvcmVMb2FkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewot
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQmVmb3JlTG9hZEV2ZW50KTsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEJlZm9yZUxvYWRFdmVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmVmb3JlTG9hZEV2ZW50KHVybCkp
OwotICAgIH0KLQotICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKLSAgICAgICAgU3RyaW5n
IHVybDsKLSAgICB9OwotCi0gICAgc3RhdGljIFJlZjxCZWZvcmVMb2FkRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVk
IGlzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBCZWZvcmVMb2FkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwot
ICAgIH0KLQotICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
LQotICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQmVmb3JlTG9hZEV2ZW50SW50ZXJmYWNlVHlwZTsgfQotCi1wcml2YXRlOgotICAgIGV4
cGxpY2l0IEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHVybCkKLSAgICAgICAgOiBFdmVu
dChldmVudE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50LCBDYW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFi
bGU6OlllcykKLSAgICAgICAgLCBtX3VybCh1cmwpCi0gICAgewotICAgIH0KLQotICAgIEJlZm9y
ZUxvYWRFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXpl
ciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKLSAgICAgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXpl
ciwgaXNUcnVzdGVkKQotICAgICAgICAsIG1fdXJsKGluaXRpYWxpemVyLnVybCkKLSAgICB7Ci0g
ICAgfQotCi0gICAgU3RyaW5nIG1fdXJsOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTMyMDlhY2E1ZGUzOTBkMzRiNDUxZjc3YTZlYzdhZWEyMjI3OTViYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQmVmb3JlTG9hZEV2ZW50LmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi1bCi0gICAg
RW5hYmxlZEJ5U2V0dGluZz1MZWdhY3lCZWZvcmVMb2FkRXZlbnRFbmFibGVkLAotICAgIEV4cG9z
ZWQ9V2luZG93Ci1dIGludGVyZmFjZSBCZWZvcmVMb2FkRXZlbnQgOiBFdmVudCB7Ci0gICAgY29u
c3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEJlZm9yZUxvYWRFdmVudEluaXQgZXZl
bnRJbml0RGljdCk7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVybDsKLX07
Ci0KLWRpY3Rpb25hcnkgQmVmb3JlTG9hZEV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7Ci0gICAgRE9N
U3RyaW5nIHVybCA9ICIiOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQyZGFjZDJk
ZDVjZTNlNWY2MjMzM2EyMTYyY2MzNzY3NDZlOGZiODkuLmY1OWYwNTFiZjQzNjgzZmRlNmY4MzMy
OGI4MDQyNjQyNzU2MWVmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzE3OSw3ICsz
MTc5LDYgQEAgdm9pZCBEb2N1bWVudDo6aW1wbGljaXRDbG9zZSgpCiAgICAgICAgIC8vIEZvciBu
b3csIG9ubHkgZG8gdGhpcyB3aGVuIHRoZXJlIGlzIGEgRnJhbWUsIG90aGVyd2lzZSB0aGlzIGNv
dWxkIGNhdXNlIEpTIHJlZW50cmFuY3kKICAgICAgICAgLy8gYmVsb3cgU1ZHIGZvbnQgcGFyc2lu
ZywgZm9yIGV4YW1wbGUuIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzYyNjk+CiAgICAgICAgIGlm
IChhdXRvKiBjdXJyZW50UGFnZSA9IHBhZ2UoKSkgewotICAgICAgICAgICAgSW1hZ2VMb2FkZXI6
OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudHMoY3VycmVudFBhZ2UpOwogICAgICAgICAg
ICAgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudHMoY3VycmVudFBhZ2UpOwog
ICAgICAgICAgICAgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0Vycm9yRXZlbnRzKGN1cnJl
bnRQYWdlKTsKICAgICAgICAgICAgIEhUTUxMaW5rRWxlbWVudDo6ZGlzcGF0Y2hQZW5kaW5nTG9h
ZEV2ZW50cyhjdXJyZW50UGFnZSk7CkBAIC01MjgyLDggKzUyODEsNiBAQCB2b2lkIERvY3VtZW50
OjphZGRMaXN0ZW5lclR5cGVJZk5lZWRlZChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUpCiAg
ICAgICAgIGFkZExpc3RlbmVyVHlwZShBTklNQVRJT05JVEVSQVRJT05fTElTVEVORVIpOwogICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2
ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KQogICAg
ICAgICBhZGRMaXN0ZW5lclR5cGUoVFJBTlNJVElPTkVORF9MSVNURU5FUik7Ci0gICAgZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmVsb2FkRXZlbnQpCi0gICAgICAgIGFk
ZExpc3RlbmVyVHlwZShCRUZPUkVMT0FEX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUo
U0NST0xMX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LndlYmtpdG1vdXNlZm9yY2V3aWxsYmVnaW5FdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
ODA1ZDBjYjU2YTQwYTkyZmFkMjJiNzdkN2VkZmMxNmFkNjU1NGY3Mi4uOWU5YjdhMGM4ZThlNjA3
ZDAxNWZhMzQ4OWFkMDVmZmYzNzExOTdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTg5OCwx
MyArODk4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQU5JTUFUSU9OU1RBUlRfTElTVEVORVIgICAg
ICAgICAgICAgID0gMSA8PCA4LAogICAgICAgICBBTklNQVRJT05JVEVSQVRJT05fTElTVEVORVIg
ICAgICAgICAgPSAxIDw8IDksCiAgICAgICAgIFRSQU5TSVRJT05FTkRfTElTVEVORVIgICAgICAg
ICAgICAgICA9IDEgPDwgMTAsCi0gICAgICAgIEJFRk9SRUxPQURfTElTVEVORVIgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMTEsCi0gICAgICAgIFNDUk9MTF9MSVNURU5FUiAgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMTIsCi0gICAgICAgIEZPUkNFV0lMTEJFR0lOX0xJU1RFTkVSICAgICAg
ICAgICAgICA9IDEgPDwgMTMsCi0gICAgICAgIEZPUkNFQ0hBTkdFRF9MSVNURU5FUiAgICAgICAg
ICAgICAgICA9IDEgPDwgMTQsCi0gICAgICAgIEZPUkNFRE9XTl9MSVNURU5FUiAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMTUsCi0gICAgICAgIEZPUkNFVVBfTElTVEVORVIgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMTYsCi0gICAgICAgIFJFU0laRV9MSVNURU5FUiAgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMTcKKyAgICAgICAgU0NST0xMX0xJU1RFTkVSICAgICAgICAgICAgICAg
ICAgICAgID0gMSA8PCAxMSwKKyAgICAgICAgRk9SQ0VXSUxMQkVHSU5fTElTVEVORVIgICAgICAg
ICAgICAgID0gMSA8PCAxMiwKKyAgICAgICAgRk9SQ0VDSEFOR0VEX0xJU1RFTkVSICAgICAgICAg
ICAgICAgID0gMSA8PCAxMywKKyAgICAgICAgRk9SQ0VET1dOX0xJU1RFTkVSICAgICAgICAgICAg
ICAgICAgID0gMSA8PCAxNCwKKyAgICAgICAgRk9SQ0VVUF9MSVNURU5FUiAgICAgICAgICAgICAg
ICAgICAgID0gMSA8PCAxNSwKKyAgICAgICAgUkVTSVpFX0xJU1RFTkVSICAgICAgICAgICAgICAg
ICAgICAgID0gMSA8PCAxNgogICAgIH07CiAKICAgICBib29sIGhhc0xpc3RlbmVyVHlwZShMaXN0
ZW5lclR5cGUgbGlzdGVuZXJUeXBlKSBjb25zdCB7IHJldHVybiAobV9saXN0ZW5lclR5cGVzICYg
bGlzdGVuZXJUeXBlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCAyZTNhMTZkN2Fl
NjE4N2MwYTg5MjdhMDRmMDJmZTdmZjNmNmZkYjMzLi41OWM3ZWZiOWFkNTk3NGI0YjIzNWIzYjYy
NzY0MTJlNWE1ZTg3MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNyw3ICs3LDYg
QEAgRXZlbnRzIGludGVyZmFjZU5hbWU9RXZlbnQKIEhUTUxFdmVudHMgaW50ZXJmYWNlTmFtZT1F
dmVudAogQW5pbWF0aW9uRXZlbnQKIEFuaW1hdGlvblBsYXliYWNrRXZlbnQKLUJlZm9yZUxvYWRF
dmVudAogQmVmb3JlVW5sb2FkRXZlbnQKIENsaXBib2FyZEV2ZW50CiBDbG9zZUV2ZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKaW5kZXggNTFlMGFjYTM0NDQ5ZmMzYzNkNjU5YjI2NGNmODg1YWIzM2Y3ZjhjZC4u
Zjk4MmU0MTVmYmQ1ZmE5ZTA4ZjNiYWQ2OTgyZjQ2YzRlMGFjMmFjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkF0dHIuaCIKLSNpbmNsdWRlICJCZWZvcmVMb2FkRXZlbnQuaCIKICNpbmNsdWRlICJDaGls
ZExpc3RNdXRhdGlvblNjb3BlLmgiCiAjaW5jbHVkZSAiQ29tbW9uVk0uaCIKICNpbmNsdWRlICJD
b21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmgiCkBAIC00Miw2ICs0MSw3IEBACiAjaW5jbHVk
ZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogI2lu
Y2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MQm9keUVsZW1lbnQuaCIKQEAgLTI0MTEsMjAgKzI0MTEsNiBAQCB2b2lkIE5vZGU6OmRpc3Bh
dGNoRE9NQWN0aXZhdGVFdmVudChFdmVudCYgdW5kZXJseWluZ0NsaWNrRXZlbnQpCiAgICAgICAg
IHVuZGVybHlpbmdDbGlja0V2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKLWJvb2wgTm9k
ZTo6ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCi17Ci0g
ICAgaWYgKCFkb2N1bWVudCgpLnNldHRpbmdzKCkubGVnYWN5QmVmb3JlTG9hZEV2ZW50RW5hYmxl
ZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICghZG9jdW1lbnQoKS5oYXNMaXN0
ZW5lclR5cGUoRG9jdW1lbnQ6OkJFRk9SRUxPQURfTElTVEVORVIpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLQotICAgIFJlZjxOb2RlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBhdXRvIGV2
ZW50ID0gQmVmb3JlTG9hZEV2ZW50OjpjcmVhdGUoc291cmNlVVJMKTsKLSAgICBkaXNwYXRjaEV2
ZW50KGV2ZW50KTsKLSAgICByZXR1cm4gIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Ci19Ci0K
IHZvaWQgTm9kZTo6ZGlzcGF0Y2hJbnB1dEV2ZW50KCkKIHsKICAgICBkaXNwYXRjaFNjb3BlZEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6OlllcywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8sIEV2ZW50OjpJc0NvbXBvc2VkOjpZZXMp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCmluZGV4IGI0NThkYTlhMzMzNWFiMWE2Y2YxMzFhOTg5MzZmZDg1MzAyMzFj
MmYuLjljZTg4MWZjMWJjN2VkOGM2MjdjZjdjOTUwZDI1MTY1ZWYzZmE2MjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aApAQCAtNDc4LDggKzQ3OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dzRG91
YmxlVGFwR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCi0gICAgYm9v
bCBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0KICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoSW5wdXRFdmVudCgpOwogCiAgICAgLy8gUGVy
Zm9ybSB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIGFuIGV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCAzZTBmN2U1NDM1ZWEzN2ZjNmI5ZGNm
YjQxZmUzNjE4NTI1ZjJkZjEwLi4xOGQ4NzcyYmVlYTRiMzY4YmVmNDM5YzllZjU5OGEwMWNjNmY5
NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApA
QCAtODUsMTAgKzg1LDYgQEAgUmVmPE5vZGU+IFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG8KIAogdm9pZCBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiB7Ci0gICAgLy8gUHJldmVudCByZWN1
cnNpdmUgbG9hZGluZyBvZiBzdHlsZXNoZWV0LgotICAgIGlmIChtX2lzSGFuZGxpbmdCZWZvcmVM
b2FkKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV90YXJnZXQgPT0gInhtbC1zdHlsZXNo
ZWV0IiAmJiBkb2N1bWVudCgpLmZyYW1lKCkgJiYgcGFyZW50Tm9kZSgpID09ICZkb2N1bWVudCgp
KSB7CiAgICAgICAgIC8vIHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtc3R5bGVzaGVldC8K
ICAgICAgICAgLy8gIyMjIHN1cHBvcnQgc3R5bGVzaGVldCBpbmNsdWRlZCBpbiBhIGZyYWdtZW50
IG9mIHRoaXMgKG9yIGFub3RoZXIpIGRvY3VtZW50CkBAIC0xNDMsMTIgKzEzOSw2IEBAIHZvaWQg
UHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogCiAgICAgICAgICAgICBT
dHJpbmcgdXJsID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChocmVmKS5zdHJpbmcoKTsKIAotICAg
ICAgICAgICAgewotICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faXNIYW5k
bGluZ0JlZm9yZUxvYWQsIHRydWUpOwotICAgICAgICAgICAgaWYgKCFkaXNwYXRjaEJlZm9yZUxv
YWRFdmVudCh1cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQog
ICAgICAgICAgICAgYm9vbCBkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50ID0g
IWlzQ29ubmVjdGVkKCkgfHwgJmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIoKTsK
ICAgICAgICAgICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50KQog
ICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaAppbmRleCA1NGRjZjc1ODEyNGU1NDczN2QwZGYwMWY4MjE0ZjQ1MzEyOTdkZjk4
Li42NDBkYzRjOWQ5YTAyODc0MTRmZjcyOWE5YmJhZDM4MmYyNzY5YzEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCkBAIC04OSw3ICs4OSw2IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgYm9vbCBtX2lzWFNMIHsgZmFsc2UgfTsKICNlbmRp
ZgotICAgIGJvb2wgbV9pc0hhbmRsaW5nQmVmb3JlTG9hZCB7IGZhbHNlIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXgg
MjM5MmEzYWFlZjVlOThhZjdmMzljYzk4NDM5ZGNhNjVhN2E1YTMxZi4uMGY4MjZhODYzZGUyMjJm
ZmMwOTFmZmUwZjQ5NGRiOWNiMzg5YjRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcApAQCAtMjgxLDkgKzI4MSw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlw
dChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAKIGJvb2wg
U2NyaXB0RWxlbWVudDo6cmVxdWVzdENsYXNzaWNTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpCiB7Ci0gICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1
bWVudCgpKTsKLSAgICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3Vy
Y2VVUkwpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUmVmIG9yaWdpbmFsRG9jdW1lbnQg
PSBtX2VsZW1lbnQuZG9jdW1lbnQoKTsKICAgICBib29sIGRpZEV2ZW50TGlzdGVuZXJEaXNjb25u
ZWN0VGhpc0VsZW1lbnQgPSAhbV9lbGVtZW50LmlzQ29ubmVjdGVkKCkgfHwgJm1fZWxlbWVudC5k
b2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQucHRyKCk7CiAgICAgaWYgKGRpZEV2ZW50TGlz
dGVuZXJEaXNjb25uZWN0VGhpc0VsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMz
Myw5ICszMzEsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQoY29u
c3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogCiAgICAgaWYgKGhhc1NvdXJj
ZUF0dHJpYnV0ZSgpKSB7CiAgICAgICAgIFN0cmluZyBzb3VyY2VVUkwgPSBzb3VyY2VBdHRyaWJ1
dGVWYWx1ZSgpOwotICAgICAgICBSZWY8RG9jdW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVt
ZW50LmRvY3VtZW50KCkpOwotICAgICAgICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxv
YWRFdmVudChzb3VyY2VVUkwpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBS
ZWYgb3JpZ2luYWxEb2N1bWVudCA9IG1fZWxlbWVudC5kb2N1bWVudCgpOwogCiAgICAgICAgIGJv
b2wgZGlkRXZlbnRMaXN0ZW5lckRpc2Nvbm5lY3RUaGlzRWxlbWVudCA9ICFtX2VsZW1lbnQuaXND
b25uZWN0ZWQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5w
dHIoKTsKICAgICAgICAgaWYgKGRpZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0VGhpc0VsZW1lbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCBjZWY2ZDJiYTcz
ODA1ZTZhMDNjMGY3OGI2MWE0NDljMWU1ZWMzNDQzLi4zM2E3ZTkwN2U5MGUwNDY0NGViMGRlOGJm
NDJlZDM3MWY0ZTk0MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5j
cHAKQEAgLTE2MSwxNiArMTYxLDYgQEAgdm9pZCBIVE1MRW1iZWRFbGVtZW50Ojp1cGRhdGVXaWRn
ZXQoQ3JlYXRlUGx1Z2lucyBjcmVhdGVQbHVnaW5zKQogICAgIHBhcmFtZXRlcnNGb3JQbHVnaW4o
cGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwogCiAgICAgUmVmPEhUTUxFbWJlZEVsZW1lbnQ+IHBy
b3RlY3RlZFRoaXMoKnRoaXMpOyAvLyBMb2FkaW5nIHRoZSBwbHVnaW4gbWlnaHQgcmVtb3ZlIHVz
IGZyb20gdGhlIGRvY3VtZW50LgotICAgIGJvb2wgYmVmb3JlTG9hZEFsbG93ZWRMb2FkID0gZ3Vh
cmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KG1fdXJsKTsKLSAgICBpZiAoIWJlZm9yZUxvYWRB
bGxvd2VkTG9hZCkgewotICAgICAgICBpZiAoaXM8UGx1Z2luRG9jdW1lbnQ+KGRvY3VtZW50KCkp
KSB7Ci0gICAgICAgICAgICAvLyBQbHVnaW5zIGluc2lkZSBwbHVnaW4gZG9jdW1lbnRzIGxvYWQg
ZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwbHVnaW5zLiBCeSB0aGUgdGltZQotICAgICAgICAgICAg
Ly8gd2UgYXJlIGhlcmUgaW4gYSBwbHVnaW4gZG9jdW1lbnQsIHRoZSBsb2FkIG9mIHRoZSBwbHVn
aW4gKHdoaWNoIGlzIHRoZSBwbHVnaW4gZG9jdW1lbnQncwotICAgICAgICAgICAgLy8gbWFpbiBy
ZXNvdXJjZSkgaGFzIGFscmVhZHkgc3RhcnRlZC4gV2UgbmVlZCB0byBleHBsaWNpdGx5IGNhbmNl
bCB0aGUgbWFpbiByZXNvdXJjZSBsb2FkIGhlcmUuCi0gICAgICAgICAgICBkb3duY2FzdDxQbHVn
aW5Eb2N1bWVudD4oZG9jdW1lbnQoKSkuY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgaWYgKCFyZW5kZXJlcigpKSAvLyBEbyBu
b3QgbG9hZCB0aGUgcGx1Z2luIGlmIGJlZm9yZWxvYWQgcmVtb3ZlZCB0aGlzIGVsZW1lbnQgb3Ig
aXRzIHJlbmRlcmVyLgogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwCmluZGV4IDc3Yzk4ZjVlMDQ1OTc2Zjk5N2M1ODliYTFhYzQzYzVmZGYx
YWIyODMuLjExMTg2NTMwNWZjZDFhYWViMjA4ODhiOTU1NDZmZGU5NmM2ZTRmZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtMzgyLDggKzM4Miw2IEBAIHZv
aWQgSFRNTEltYWdlRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKIHsKICAgICBpZiAoIWlz
PFJlbmRlckltYWdlPihyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2lt
YWdlTG9hZGVyLT5oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkpCi0gICAgICAgIHJldHVybjsK
IAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHVwZGF0ZUltYWdlQ29udHJvbHMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA1OWU4MzE3OTkw
MDA2MGUyNDFmYjA0NjM1ZTA0ZmYyODg3OGUzZWUzLi5lMWU4NjY3Nzk4MTQ1NjJkMTNlYWQ1MjZk
NzA4OGRmMmE3MmQwMjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3Bw
CkBAIC0yMTAsOCArMjEwLDYgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcKIGJvb2wgSFRNTExp
bmtFbGVtZW50OjpzaG91bGRMb2FkTGluaygpCiB7CiAgICAgUmVmPERvY3VtZW50PiBvcmlnaW5h
bERvY3VtZW50ID0gZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50
KGdldE5vbkVtcHR5VVJMQXR0cmlidXRlKGhyZWZBdHRyKS5zdHJpbmcoKSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAvLyBBIGJlZm9yZWxvYWQgaGFuZGxlciBtaWdodCBoYXZlIHJlbW92
ZWQgdXMgZnJvbSB0aGUgZG9jdW1lbnQgb3IgY2hhbmdlZCB0aGUgZG9jdW1lbnQuCiAgICAgaWYg
KCFpc0Nvbm5lY3RlZCgpIHx8ICZkb2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQucHRyKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDg5ODg5ZGY3NjkxMWM2YzYyZjhhOTA2ZGQxZTBiY2ViZjZjMmYyM2YuLjJh
OGZiYzEzY2I3OWVhMDBmZWI1MTg5MDYxNGZiODNhOTY0MzVhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTQwNiw3ICsxNDA2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlKCkKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICghaXNTYWZlVG9Mb2FkVVJMKGFi
c29sdXRlVVJMLCBDb21wbGFpbikgfHwgIWRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGFic29sdXRl
VVJMLnN0cmluZygpKSkgeworICAgICAgICAgICAgaWYgKCFpc1NhZmVUb0xvYWRVUkwoYWJzb2x1
dGVVUkwsIENvbXBsYWluKSkgewogICAgICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChN
ZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvcik7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNDg4Myw3ICs0ODgzLDcgQEAgVVJMIEhUTUxNZWRp
YUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29udGVudFR5cGUs
IFN0cmluZyoga2UKICAgICAgICAgfQogCiAgICAgICAgIC8vIElzIGl0IHNhZmUgdG8gbG9hZCB0
aGlzIHVybD8KLSAgICAgICAgaWYgKCFpc1NhZmVUb0xvYWRVUkwobWVkaWFVUkwsIGFjdGlvbklm
SW52YWxpZCkgfHwgIWRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KG1lZGlhVVJMLnN0cmluZygpKSkK
KyAgICAgICAgaWYgKCFpc1NhZmVUb0xvYWRVUkwobWVkaWFVUkwsIGFjdGlvbklmSW52YWxpZCkp
CiAgICAgICAgICAgICBnb3RvIENoZWNrQWdhaW47CiAKICAgICAgICAgLy8gQSAnYmVmb3JlbG9h
ZCcgZXZlbnQgaGFuZGxlciBjYW4gbXV0YXRlIHRoZSBET00sIHNvIGNoZWNrIHRvIHNlZSBpZiB0
aGUgc291cmNlIGVsZW1lbnQgaXMgc3RpbGwgYSBjaGlsZCBub2RlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCA2M2JmYTdlZDEzZDBhYjFmMjQxMmU3OGEw
Y2UxMjY5YzY1NGFjNTYxLi5lNzU3NDEzYzA4MjFlN2IxYzYzMDc0NjIxZWI3NjYxMjc1YzhkOTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtMjc2LDE0
ICsyNzYsMTMgQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6dXBkYXRlV2lkZ2V0KENyZWF0ZVBs
dWdpbnMgY3JlYXRlUGx1Z2lucykKIAogICAgIHNldE5lZWRzV2lkZ2V0VXBkYXRlKGZhbHNlKTsK
IAotICAgIFJlZjxIVE1MT2JqZWN0RWxlbWVudD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7IC8vIGJl
Zm9yZWxvYWQgYW5kIHBsdWdpbiBsb2FkaW5nIGNhbiBtYWtlIGFyYml0cmFyeSBET00gbXV0YXRp
b25zLgotICAgIGJvb2wgYmVmb3JlTG9hZEFsbG93ZWRMb2FkID0gZ3VhcmRlZERpc3BhdGNoQmVm
b3JlTG9hZEV2ZW50KHVybCk7CisgICAgUmVmIHByb3RlY3RlZFRoaXMgPSAqdGhpczsgLy8gcGx1
Z2luIGxvYWRpbmcgY2FuIG1ha2UgYXJiaXRyYXJ5IERPTSBtdXRhdGlvbnMuCiAgICAgaWYgKCFy
ZW5kZXJlcigpKSAvLyBEbyBub3QgbG9hZCB0aGUgcGx1Z2luIGlmIGJlZm9yZWxvYWQgcmVtb3Zl
ZCB0aGlzIGVsZW1lbnQgb3IgaXRzIHJlbmRlcmVyLgogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBEaXNwYXRjaGluZyBhIGJlZm9yZUxvYWQgZXZlbnQgY291bGQgaGF2ZSBleGVjdXRlZCBjb2Rl
IHRoYXQgY2hhbmdlZCB0aGUgZG9jdW1lbnQuCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBVUkwgaXMg
c3RpbGwgc2FmZSB0byBsb2FkLgotICAgIGJvb2wgc3VjY2VzcyA9IGJlZm9yZUxvYWRBbGxvd2Vk
TG9hZCAmJiBoYXNWYWxpZENsYXNzSWQoKSAmJiBjYW5Mb2FkVVJMKHVybCk7CisgICAgYm9vbCBz
dWNjZXNzID0gaGFzVmFsaWRDbGFzc0lkKCkgJiYgY2FuTG9hZFVSTCh1cmwpOwogICAgIGlmIChz
dWNjZXNzKQogICAgICAgICBzdWNjZXNzID0gcmVxdWVzdE9iamVjdCh1cmwsIHNlcnZpY2VUeXBl
LCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAgICAgaWYgKCFzdWNjZXNzICYmIGhhc0ZhbGxi
YWNrQ29udGVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApp
bmRleCBjN2YxNWY1MTc2NTkzYzRkYTAwMjlmMGFiZDUyZDZiN2RhYjk2YjNhLi44ZGFhNjY4Y2Q2
MDZmYjJhZjYzZTdhOGFiNjUzNDQ4MDVjNmIxMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMTA3LDI5ICsxMDcsOCBAQCBKU0M6OkJpbmRpbmdzOjpJ
bnN0YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2UoKQogICAgIHJldHVy
biBtX2luc3RhbmNlLmdldCgpOwogfQogCi1ib29sIEhUTUxQbHVnSW5FbGVtZW50OjpndWFyZGVk
RGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCi17Ci0gICAg
Ly8gRklYTUU6IE91ciBjdXJyZW50IHBsdWctaW4gbG9hZGluZyBkZXNpZ24gY2FuJ3QgZ3VhcmFu
dGVlIHRoZSBmb2xsb3dpbmcKLSAgICAvLyBhc3NlcnRpb24gaXMgdHJ1ZSwgc2luY2UgcGx1Zy1p
biBsb2FkaW5nIGNhbiBiZSBpbml0aWF0ZWQgZHVyaW5nIGxheW91dCwKLSAgICAvLyBhbmQgc3lu
Y2hyb25vdXMgbGF5b3V0IGNhbiBiZSBpbml0aWF0ZWQgaW4gYSBiZWZvcmVsb2FkIGV2ZW50IGhh
bmRsZXIhCi0gICAgLy8gU2VlIDxodHRwOi8vd2Via2l0Lm9yZy9iLzcxMjY0Pi4KLSAgICAvLyBB
U1NFUlQoIW1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyKTsKLSAgICBtX2luQmVmb3JlTG9hZEV2
ZW50SGFuZGxlciA9IHRydWU7Ci0gICAgLy8gc3RhdGljX2Nhc3QgaXMgdXNlZCB0byBhdm9pZCBh
IGNvbXBpbGUgZXJyb3Igc2luY2UgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQKLSAgICAvLyBpcyBp
bnRlbnRpb25hbGx5IHVuZGVmaW5lZCBvbiB0aGlzIGNsYXNzLgotICAgIGJvb2wgYmVmb3JlTG9h
ZEFsbG93ZWRMb2FkID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4odGhpcykt
PmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHNvdXJjZVVSTCk7Ci0gICAgbV9pbkJlZm9yZUxvYWRF
dmVudEhhbmRsZXIgPSBmYWxzZTsKLSAgICByZXR1cm4gYmVmb3JlTG9hZEFsbG93ZWRMb2FkOwot
fQotCiBXaWRnZXQqIEhUTUxQbHVnSW5FbGVtZW50OjpwbHVnaW5XaWRnZXQoUGx1Z2luTG9hZGlu
Z1BvbGljeSBsb2FkUG9saWN5KSBjb25zdAogewotICAgIGlmIChtX2luQmVmb3JlTG9hZEV2ZW50
SGFuZGxlcikgewotICAgICAgICAvLyBUaGUgcGx1Zy1pbiBoYXNuJ3QgbG9hZGVkIHlldCwgYW5k
IGl0IG1ha2VzIG5vIHNlbnNlIHRvIHRyeSB0byBsb2FkIGlmIGJlZm9yZWxvYWQgaGFuZGxlciBo
YXBwZW5lZCB0byB0b3VjaCB0aGUgcGx1Zy1pbiBlbGVtZW50LgotICAgICAgICAvLyBUaGF0IHdv
dWxkIHJlY3Vyc2l2ZWx5IGNhbGwgYmVmb3JlbG9hZCBmb3IgdGhlIHNhbWUgZWxlbWVudC4KLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAgICAgUmVuZGVyV2lkZ2V0KiByZW5kZXJX
aWRnZXQgPSBsb2FkUG9saWN5ID09IFBsdWdpbkxvYWRpbmdQb2xpY3k6OkxvYWQgPyByZW5kZXJX
aWRnZXRMb2FkaW5nUGx1Z2luKCkgOiB0aGlzLT5yZW5kZXJXaWRnZXQoKTsKICAgICBpZiAoIXJl
bmRlcldpZGdldCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5FbGVtZW50LmgKaW5kZXggZTE5NWQ3ZDcxOGY5YzEyMWIyMjYyMGRkOGEzZGI3ODE0
ZWMyZWM4My4uMDliMDQxMjU5NTFkOTY5MDY5ODg3MGI2YWM0ZmNkMTQwYjQzODU4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtOTMsOSArOTMsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYpIGZpbmFsOwogCi0g
ICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgdXNlIGd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVu
dCBpbnN0ZWFkIG9mIGNhbGxpbmcgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgZGlyZWN0bHkuCi0g
ICAgYm9vbCBndWFyZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpOwotCiAgICAgLy8gVGhpcyB3aWxsIGxvYWQgdGhlIHBsdWdpbiBpZiBuZWNlc3Nhcnku
CiAgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldExvYWRpbmdQbHVnaW4oKSBj
b25zdDsKIApAQCAtMTAzLDggKzEwMCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwUmVuZGVy
ZXJUaW1lckZpcmVkKCk7CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZVBsdWdpbihjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKLSAgICBib29sIGRpc3BhdGNoQmVm
b3JlTG9hZEV2ZW50KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IGRlbGV0ZTsgLy8gR2VuZXJh
dGUgYSBjb21waWxlIGVycm9yIGlmIHNvbWVvbmUgY2FsbHMgdGhpcyBieSBtaXN0YWtlLgotCiAg
ICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IGZpbmFsOwpAQCAtMTE0LDcgKzEwOSw2
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiBtX2luc3Rh
bmNlOwogICAgIFRpbWVyIG1fc3dhcFJlbmRlcmVyVGltZXI7CiAgICAgYm9vbCBtX2lzQ2FwdHVy
aW5nTW91c2VFdmVudHMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pbkJlZm9yZUxvYWRFdmVudEhh
bmRsZXIgeyBmYWxzZSB9OwogICAgIERpc3BsYXlTdGF0ZSBtX2Rpc3BsYXlTdGF0ZSB7IFBsYXlp
bmcgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4
IDcxMDE5NTFiNTY4ODAyOTIyMDg4MWI2NTlmOGVkNDYzZWMyOWYzYjMuLjgxN2UwYTQ4YjNjM2Q2
N2FiMWJhYzk0NTVlMjQ2M2M1ZmNhMTc1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmNwcApAQCAtMjI5LDcgKzIyOSw3IEBAIGJvb2wgSFRNTFRyYWNrRWxlbWVudDo6
Y2FuTG9hZFVSTChjb25zdCBVUkwmIHVybCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAotICAgIHJldHVybiBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCh1cmwuc3RyaW5nKCkpOworICAg
IHJldHVybiB0cnVlOwogfQogCiB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OmRpZENvbXBsZXRlTG9h
ZChMb2FkU3RhdHVzIHN0YXR1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAK
aW5kZXggZjI4YTM0YTNjY2NmNWUxZmJjMzRjNjcwYTMzN2Y5NzQ3MmRiYjAwZC4uN2IyNDBlNDc3
ZDNmOWEwNTcxNjJiZmExMjFkMWZiOGEzYTk1NTg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHAKQEAgLTE0Miw5ICsxNDIsNiBAQCB2b2lkIEltYWdlSW5wdXRUeXBlOjph
dHRhY2goKQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChp
bWFnZUxvYWRlci5oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkpCi0gICAgICAgIHJldHVybjsK
LQogICAgIGF1dG8mIGltYWdlUmVzb3VyY2UgPSByZW5kZXJlci0+aW1hZ2VSZXNvdXJjZSgpOwog
ICAgIGltYWdlUmVzb3VyY2Uuc2V0Q2FjaGVkSW1hZ2UoaW1hZ2VMb2FkZXIuaW1hZ2UoKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGZkYzk3ZGM0NjJjODc1MjZh
YTE4OGY3OTY4ZDYwYTBjODNkNjgwZDkuLjZhMTNiZDFjZmQ0MDA0ZjAzYzY3MGVlM2M5YTQxODIy
ZTZmNmU1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTIyMSw3
ICsxMjIxLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRS
ZXF1ZXN0JiYgcmVxdWVzdCwgRXZlbnQqIGV2ZW50LCBSZWYKIHsKICAgICBGUkFNRUxPQURFUl9S
RUxFQVNFX0xPRyhSZXNvdXJjZUxvYWRpbmcsICJsb2FkRnJhbWVSZXF1ZXN0OiBmcmFtZSBsb2Fk
IHN0YXJ0ZWQiKTsKIAotICAgIC8vIFByb3RlY3QgZnJhbWUgZnJvbSBnZXR0aW5nIGJsb3duIGF3
YXkgaW5zaWRlIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IGluIGxvYWRXaXRoRG9jdW1lbnRMb2Fk
ZXIuCiAgICAgUmVmIHByb3RlY3RlZEZyYW1lIHsgbV9mcmFtZSB9OwogCiAgICAgVVJMIHVybCA9
IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCk7CkBAIC0xMjU5LDEwICsxMjU4LDEwIEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJl
cXVlc3QsIEV2ZW50KiBldmVudCwgUmVmCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0
aGlzLCBwcm90ZWN0ZWRGcmFtZSA9IFJlZiB7IG1fZnJhbWUgfSwgZm9ybVN0YXRlID0gV2Vha1B0
ciB7IGZvcm1TdGF0ZSB9LCBmcmFtZU5hbWUgPSByZXF1ZXN0LmZyYW1lTmFtZSgpXSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBJdCdzIHBvc3NpYmxlIHRoaXMgdGFyZ2V0RnJhbWUgd2lsbCBub3QgYmUg
dGhlIHNhbWUgZnJhbWUgdGhhdCB3YXMgdGFyZ2V0ZWQgYnkgdGhlIGFjdHVhbAogICAgICAgICAv
LyBsb2FkIGlmIGZyYW1lIG5hbWVzIGhhdmUgY2hhbmdlZC4KLSAgICAgICAgRnJhbWUqIHNvdXJj
ZUZyYW1lID0gZm9ybVN0YXRlID8gZm9ybVN0YXRlLT5zb3VyY2VEb2N1bWVudCgpLmZyYW1lKCkg
OiAmbV9mcmFtZTsKKyAgICAgICAgUmVmUHRyIHNvdXJjZUZyYW1lID0gZm9ybVN0YXRlID8gZm9y
bVN0YXRlLT5zb3VyY2VEb2N1bWVudCgpLmZyYW1lKCkgOiAmbV9mcmFtZTsKICAgICAgICAgaWYg
KCFzb3VyY2VGcmFtZSkKICAgICAgICAgICAgIHNvdXJjZUZyYW1lID0gJm1fZnJhbWU7Ci0gICAg
ICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IHNvdXJjZUZyYW1lLT5sb2FkZXIoKS5maW5kRnJhbWVG
b3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSk7CisgICAgICAgIFJlZlB0ciB0YXJnZXRGcmFtZSA9IHNv
dXJjZUZyYW1lLT5sb2FkZXIoKS5maW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSk7CiAg
ICAgICAgIGlmICh0YXJnZXRGcmFtZSAmJiB0YXJnZXRGcmFtZSAhPSBzb3VyY2VGcmFtZSkgewog
ICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0YXJnZXRGcmFtZS0+cGFnZSgpKQogICAgICAg
ICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmZvY3VzKCk7CkBAIC0xNjExLDE5ICsxNjEwLDYgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciog
bG9hZGVyLCBGcmFtZUxvYWRUeXBlIHQKICAgICBpZiAobG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9u
KCkuaXNFbXB0eSgpKQogICAgICAgICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oeyAqbV9m
cmFtZS5kb2N1bWVudCgpLCBsb2FkZXItPnJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6
OlVua25vd24sIHBvbGljeUNoZWNrZXIoKS5sb2FkVHlwZSgpLCBpc0Zvcm1TdWJtaXNzaW9uIH0p
OwogCi0gICAgaWYgKEVsZW1lbnQqIG93bmVyRWxlbWVudCA9IG1fZnJhbWUub3duZXJFbGVtZW50
KCkpIHsKLSAgICAgICAgLy8gV2Ugc2tpcCBkaXNwYXRjaGluZyB0aGUgYmVmb3JlbG9hZCBldmVu
dCBpZiB3ZSd2ZSBhbHJlYWR5Ci0gICAgICAgIC8vIGNvbW1pdHRlZCBhIHJlYWwgZG9jdW1lbnQg
bG9hZCBiZWNhdXNlIHRoZSBldmVudCB3b3VsZCBsZWFrCi0gICAgICAgIC8vIHN1YnNlcXVlbnQg
YWN0aXZpdHkgYnkgdGhlIGZyYW1lIHdoaWNoIHRoZSBwYXJlbnQgZnJhbWUgaXNuJ3QKLSAgICAg
ICAgLy8gc3VwcG9zZWQgdG8gbGVhcm4uIEZvciBleGFtcGxlLCBpZiB0aGUgY2hpbGQgZnJhbWUg
bmF2aWdhdGVkIHRvCi0gICAgICAgIC8vIGEgbmV3IFVSTCwgdGhlIHBhcmVudCBmcmFtZSBzaG91
bGRuJ3QgbGVhcm4gdGhlIFVSTC4KLSAgICAgICAgaWYgKCFtX3N0YXRlTWFjaGluZS5jb21taXR0
ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKQotICAgICAgICAgICAgJiYgIW93bmVyRWxlbWVudC0+
ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQobG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkp
KSB7Ci0gICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kobG9hZGVy
LT5yZXF1ZXN0KCksIGZvcm1TdGF0ZS5nZXQoKSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjpJ
Z25vcmVMb2FkLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgbV9mcmFtZS5uYXZpZ2F0aW9uU2NoZWR1bGVy
KCkuY2FuY2VsKE5ld0xvYWRJblByb2dyZXNzOjpZZXMpOwogCiAgICAgaWYgKHNob3VsZFRyZWF0
Q3VycmVudExvYWRBc0NvbnRpbnVpbmdMb2FkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwCmluZGV4IGQ1MDZmNDQ3OTNhYjEyNzQ0ZTZlZmY2OTE0ZTA5Zjc4MmQ0ODFhZmQu
LjNiOGFiYjJjMDVkNzc1N2QzYmVlYmU4OGUxNmY4NWU2YTY5MWRiYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtNzAsMTIgKzcwLDYgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgVmFsdWVDaGVjazxXZWJDb3JlOjpJbWFnZUxvYWRlcio+IHsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdGF0aWMgSW1hZ2VFdmVudFNlbmRlciYgYmVmb3JlTG9hZEV2ZW50U2VuZGVyKCkK
LXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SW1hZ2VFdmVudFNlbmRlcj4gc2VuZGVyKGV2
ZW50TmFtZXMoKS5iZWZvcmVsb2FkRXZlbnQpOwotICAgIHJldHVybiBzZW5kZXI7Ci19Ci0KIHN0
YXRpYyBJbWFnZUV2ZW50U2VuZGVyJiBsb2FkRXZlbnRTZW5kZXIoKQogewogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxJbWFnZUV2ZW50U2VuZGVyPiBzZW5kZXIoZXZlbnROYW1lcygpLmxvYWRF
dmVudCk7CkBAIC05OCw3ICs5Miw2IEBAIEltYWdlTG9hZGVyOjpJbWFnZUxvYWRlcihFbGVtZW50
JiBlbGVtZW50KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2ltYWdlKG51bGxw
dHIpCiAgICAgLCBtX2RlcmVmRWxlbWVudFRpbWVyKCp0aGlzLCAmSW1hZ2VMb2FkZXI6OnRpbWVy
RmlyZWQpCi0gICAgLCBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoZmFsc2UpCiAgICAgLCBt
X2hhc1BlbmRpbmdMb2FkRXZlbnQoZmFsc2UpCiAgICAgLCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50
KGZhbHNlKQogICAgICwgbV9pbWFnZUNvbXBsZXRlKHRydWUpCkBAIC0xMTIsMTAgKzEwNSw2IEBA
IEltYWdlTG9hZGVyOjp+SW1hZ2VMb2FkZXIoKQogICAgIGlmIChtX2ltYWdlKQogICAgICAgICBt
X2ltYWdlLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogCi0gICAgQVNTRVJUKG1faGFzUGVuZGluZ0Jl
Zm9yZUxvYWRFdmVudCB8fCAhYmVmb3JlTG9hZEV2ZW50U2VuZGVyKCkuaGFzUGVuZGluZ0V2ZW50
cygqdGhpcykpOwotICAgIGlmIChtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQpCi0gICAgICAg
IGJlZm9yZUxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKLQogICAgIEFTU0VS
VChtX2hhc1BlbmRpbmdMb2FkRXZlbnQgfHwgIWxvYWRFdmVudFNlbmRlcigpLmhhc1BlbmRpbmdF
dmVudHMoKnRoaXMpKTsKICAgICBpZiAobV9oYXNQZW5kaW5nTG9hZEV2ZW50KQogICAgICAgICBs
b2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7CkBAIC0xNDAsMTAgKzEyOSw2IEBA
IHZvaWQgSW1hZ2VMb2FkZXI6OmNsZWFySW1hZ2VXaXRob3V0Q29uc2lkZXJpbmdQZW5kaW5nTG9h
ZEV2ZW50KCkKICAgICBDYWNoZWRJbWFnZSogb2xkSW1hZ2UgPSBtX2ltYWdlLmdldCgpOwogICAg
IGlmIChvbGRJbWFnZSkgewogICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKLSAgICAgICAgaWYg
KG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCkgewotICAgICAgICAgICAgYmVmb3JlTG9hZEV2
ZW50U2VuZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwotICAgICAgICAgICAgbV9oYXNQZW5kaW5n
QmVmb3JlTG9hZEV2ZW50ID0gZmFsc2U7Ci0gICAgICAgIH0KICAgICAgICAgaWYgKG1faGFzUGVu
ZGluZ0xvYWRFdmVudCkgewogICAgICAgICAgICAgbG9hZEV2ZW50U2VuZGVyKCkuY2FuY2VsRXZl
bnQoKnRoaXMpOwogICAgICAgICAgICAgbV9oYXNQZW5kaW5nTG9hZEV2ZW50ID0gZmFsc2U7CkBA
IC0yMzcsMTAgKzIyMiw2IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KFJl
bGV2YW50TXV0YXRpb24gcmVsZXZhbnRNdXRhdGlvbikKIAogICAgIENhY2hlZEltYWdlKiBvbGRJ
bWFnZSA9IG1faW1hZ2UuZ2V0KCk7CiAgICAgaWYgKG5ld0ltYWdlICE9IG9sZEltYWdlIHx8IHJl
bGV2YW50TXV0YXRpb24gPT0gUmVsZXZhbnRNdXRhdGlvbjo6WWVzKSB7Ci0gICAgICAgIGlmICht
X2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQpIHsKLSAgICAgICAgICAgIGJlZm9yZUxvYWRFdmVu
dFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKLSAgICAgICAgICAgIG1faGFzUGVuZGluZ0Jl
Zm9yZUxvYWRFdmVudCA9IGZhbHNlOwotICAgICAgICB9CiAgICAgICAgIGlmIChtX2hhc1BlbmRp
bmdMb2FkRXZlbnQpIHsKICAgICAgICAgICAgIGxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50
KCp0aGlzKTsKICAgICAgICAgICAgIG1faGFzUGVuZGluZ0xvYWRFdmVudCA9IGZhbHNlOwpAQCAt
MjU2LDE3ICsyMzcsMTEgQEAgdm9pZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQoUmVs
ZXZhbnRNdXRhdGlvbiByZWxldmFudE11dGF0aW9uKQogICAgICAgICB9CiAKICAgICAgICAgbV9p
bWFnZSA9IG5ld0ltYWdlOwotICAgICAgICBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQgPSAh
ZG9jdW1lbnQuaXNJbWFnZURvY3VtZW50KCkgJiYgbmV3SW1hZ2U7CiAgICAgICAgIG1faGFzUGVu
ZGluZ0xvYWRFdmVudCA9IG5ld0ltYWdlOwogICAgICAgICBtX2ltYWdlQ29tcGxldGUgPSAhbmV3
SW1hZ2U7CiAKICAgICAgICAgaWYgKG5ld0ltYWdlKSB7Ci0gICAgICAgICAgICBpZiAoIWRvY3Vt
ZW50LmlzSW1hZ2VEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5o
YXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkJFRk9SRUxPQURfTElTVEVORVIpKQotICAgICAgICAg
ICAgICAgICAgICBkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKTsKLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGJlZm9yZUxvYWRFdmVudFNlbmRlcigpLmRp
c3BhdGNoRXZlbnRTb29uKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
aWYgKGRvY3VtZW50LmlzSW1hZ2VEb2N1bWVudCgpKQogICAgICAgICAgICAgICAgIHVwZGF0ZVJl
bmRlcmVyKCk7CiAKICAgICAgICAgICAgIGlmIChtX2xhenlJbWFnZUxvYWRTdGF0ZSA9PSBMYXp5
SW1hZ2VMb2FkU3RhdGU6OkRlZmVycmVkKQpAQCAtMzM1LDggKzMxMCw3IEBAIHZvaWQgSW1hZ2VM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgTmV0
d29ya0xvYWRNZXRyCiAgICAgfQogCiAgICAgbV9pbWFnZUNvbXBsZXRlID0gdHJ1ZTsKLSAgICBp
ZiAoIWhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSkKLSAgICAgICAgdXBkYXRlUmVuZGVyZXIo
KTsKKyAgICB1cGRhdGVSZW5kZXJlcigpOwogCiAgICAgaWYgKCFtX2hhc1BlbmRpbmdMb2FkRXZl
bnQpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4OSw1MCArNDYzLDE0IEBAIHZvaWQgSW1hZ2VMb2Fk
ZXI6OnRpbWVyRmlyZWQoKQogCiB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdFdmVu
dChJbWFnZUV2ZW50U2VuZGVyKiBldmVudFNlbmRlcikKIHsKLSAgICBBU1NFUlQoZXZlbnRTZW5k
ZXIgPT0gJmJlZm9yZUxvYWRFdmVudFNlbmRlcigpIHx8IGV2ZW50U2VuZGVyID09ICZsb2FkRXZl
bnRTZW5kZXIoKSB8fCBldmVudFNlbmRlciA9PSAmZXJyb3JFdmVudFNlbmRlcigpKTsKKyAgICBB
U1NFUlQoZXZlbnRTZW5kZXIgPT0gJmxvYWRFdmVudFNlbmRlcigpIHx8IGV2ZW50U2VuZGVyID09
ICZlcnJvckV2ZW50U2VuZGVyKCkpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSA9
IGV2ZW50U2VuZGVyLT5ldmVudFR5cGUoKTsKLSAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5iZWZvcmVsb2FkRXZlbnQpCi0gICAgICAgIGRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRF
dmVudCgpOwogICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmxvYWRFdmVudCkKICAg
ICAgICAgZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50KCk7CiAgICAgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCkKICAgICAgICAgZGlzcGF0Y2hQZW5kaW5nRXJyb3JFdmVu
dCgpOwogfQogCi12b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZl
bnQoKQotewotICAgIGlmICghbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KQotICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKCFtX2ltYWdlKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFlbGVt
ZW50KCkuZG9jdW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkpCi0gICAgICAgIHJldHVybjsK
LSAgICBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQgPSBmYWxzZTsKLSAgICBSZWY8RG9jdW1l
bnQ+IG9yaWdpbmFsRG9jdW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQoKTsKLSAgICBpZiAoZWxl
bWVudCgpLmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KG1faW1hZ2UtPnVybCgpLnN0cmluZygpKSkg
ewotICAgICAgICBib29sIGRpZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0VGhpc0VsZW1lbnQgPSAh
ZWxlbWVudCgpLmlzQ29ubmVjdGVkKCkgfHwgJmVsZW1lbnQoKS5kb2N1bWVudCgpICE9IG9yaWdp
bmFsRG9jdW1lbnQucHRyKCk7Ci0gICAgICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlzY29ubmVj
dFRoaXNFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAgICAgdXBk
YXRlUmVuZGVyZXIoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAobV9pbWFnZSkg
ewotICAgICAgICBtX2ltYWdlLT5yZW1vdmVDbGllbnQoKnRoaXMpOwotICAgICAgICBtX2ltYWdl
ID0gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBsb2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgq
dGhpcyk7Ci0gICAgbV9oYXNQZW5kaW5nTG9hZEV2ZW50ID0gZmFsc2U7Ci0gICAgCi0gICAgaWYg
KGlzPEhUTUxPYmplY3RFbGVtZW50PihlbGVtZW50KCkpKQotICAgICAgICBkb3duY2FzdDxIVE1M
T2JqZWN0RWxlbWVudD4oZWxlbWVudCgpKS5yZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKLQotICAg
IC8vIE9ubHkgY29uc2lkZXIgdXBkYXRpbmcgdGhlIHByb3RlY3Rpb24gcmVmLWNvdW50IG9mIHRo
ZSBFbGVtZW50IGltbWVkaWF0ZWx5IGJlZm9yZSByZXR1cm5pbmcKLSAgICAvLyBmcm9tIHRoaXMg
ZnVuY3Rpb24gYXMgZG9pbmcgc28gbWlnaHQgcmVzdWx0IGluIHRoZSBkZXN0cnVjdGlvbiBvZiB0
aGlzIEltYWdlTG9hZGVyLgotICAgIHVwZGF0ZWRIYXNQZW5kaW5nRXZlbnQoKTsKLX0KLQogdm9p
ZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50KCkKIHsKICAgICBpZiAoIW1f
aGFzUGVuZGluZ0xvYWRFdmVudCkKQEAgLTU2MiwxMSArNTAwLDYgQEAgdm9pZCBJbWFnZUxvYWRl
cjo6ZGlzcGF0Y2hQZW5kaW5nRXJyb3JFdmVudCgpCiAgICAgdXBkYXRlZEhhc1BlbmRpbmdFdmVu
dCgpOwogfQogCi12b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZl
bnRzKFBhZ2UqIHBhZ2UpCi17Ci0gICAgYmVmb3JlTG9hZEV2ZW50U2VuZGVyKCkuZGlzcGF0Y2hQ
ZW5kaW5nRXZlbnRzKHBhZ2UpOwotfQotCiB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRp
bmdMb2FkRXZlbnRzKFBhZ2UqIHBhZ2UpCiB7CiAgICAgbG9hZEV2ZW50U2VuZGVyKCkuZGlzcGF0
Y2hQZW5kaW5nRXZlbnRzKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaAppbmRl
eCA4YTk2ZjBkNTI2NzQ0NTE5ZDMxMTMxNjgxYzVlY2ZkYTkyZjdmYjE2Li42MTI5NTVkMGYxZTg3
NDg0ZjQ3YmNmOWU4ZWE0N2JjMGRhOTA4OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSW1hZ2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2Fk
ZXIuaApAQCAtNzAsMTIgKzcwLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TG9hZE1hbnVh
bGx5KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fbG9hZE1hbnVhbGx5ID0gbG9hZE1hbnVhbGx5OyB9
CiAKLSAgICBib29sIGhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBt
X2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQ7IH0KICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0
eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ0xvYWRFdmVudCB8fCBtX2hhc1BlbmRpbmdF
cnJvckV2ZW50OyB9CiAKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0V2ZW50KEltYWdlRXZlbnRT
ZW5kZXIqKTsKIAotICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVu
dHMoUGFnZSopOwogICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudHMoUGFn
ZSopOwogICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoUGVuZGluZ0Vycm9yRXZlbnRzKFBhZ2UqKTsK
IApAQCAtOTgsNyArOTYsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1cGRhdGVkSGFzUGVuZGlu
Z0V2ZW50KCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgpOwog
ICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50KCk7CiAgICAgdm9pZCBkaXNwYXRjaFBl
bmRpbmdFcnJvckV2ZW50KCk7CiAKQEAgLTEyMyw3ICsxMjAsNiBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxFbGVtZW50PiBtX3Byb3RlY3RlZEVsZW1lbnQ7CiAgICAgQXRvbVN0cmluZyBtX2ZhaWxl
ZExvYWRVUkw7CiAgICAgVmVjdG9yPFJlZlB0cjxEZWZlcnJlZFByb21pc2U+PiBtX2RlY29kaW5n
UHJvbWlzZXM7Ci0gICAgYm9vbCBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQgOiAxOwogICAg
IGJvb2wgbV9oYXNQZW5kaW5nTG9hZEV2ZW50IDogMTsKICAgICBib29sIG1faGFzUGVuZGluZ0Vy
cm9yRXZlbnQgOiAxOwogICAgIGJvb2wgbV9pbWFnZUNvbXBsZXRlIDogMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MueWFtbAppbmRleCAyYWU3MGNiMWRhODRlOGNhZDNlY2NjMGM5ZmZlZjQzNmY4ZTg5
ZjYwLi5kNzhhMzQ2YWQ5ZDYyMmNmMDAwNTk3NWUyOTEyZDI0MDIwNTRiOWEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sCkBAIC0zMjAsMTQgKzMyMCw2IEBAIExhbmdBdHRyaWJ1dGVBd2Fy
ZUZvcm1Db250cm9sVUlFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxz
ZQogCi1MZWdhY3lCZWZvcmVMb2FkRXZlbnRFbmFibGVkOgotICBjb21tZW50OiA+LQotICAgIEZJ
TVhFOiBUaGlzIGRvZXMgbm90IGFwcGVhciB0byBldmVyIGJlIHNldCB0byB0cnVlLiBSZW1vdmUg
b25jZSB2ZXJpZmllZC4KLSAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViQ29y
ZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDoKICAg
dHlwZTogU3RyaW5nCiAgIGRlZmF1bHRWYWx1ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggN2U2YmY0YWEwMzY1MWFkNjE3OWEyYmI0
OTdmMGFiMzA4ZmNlYTU2Ni4uMmVmYjM1MTU4MGQyZTc3OTdlYzYxMTg4NDg0ZTUwOTI5ZGRhY2U1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5j
cHAKQEAgLTEyNCw5ICsxMjQsNiBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjphcHBlbmQoUmVm
UHRyPFN0cmluZ0ltcGw+JiYgaW5wdXRTb3VyY2UpCiAgICAgfQogCiAgICAgZG9Xcml0ZShzb3Vy
Y2UpOwotCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgZGlzcGF0Y2ggaW1hZ2UgYmVmb3JlbG9hZCBl
dmVudHMuCi0gICAgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudHMo
bnVsbHB0cik7CiB9CiAKIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmhhbmRsZUVycm9yKFhNTEVy
cm9yczo6RXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG0sIFRleHRQb3NpdGlvbiBwb3NpdGlv
bikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448195</attachid>
            <date>2022-01-02 17:48:23 -0800</date>
            <delta_ts>2022-01-02 21:28:35 -0800</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-234804-20220102174822.patch</filename>
            <type>text/plain</type>
            <size>48194</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBACisyMDIyLTAxLTAyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0ZSBjb2RlIGZvciBiZWZv
cmVsb2FkIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQ4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBEZWxldGUgY29kZSBmb3IgYmVmb3JlbG9hZCBldmVudCBhcyB0aGUgZXZlbnQgaGFzIGJl
ZW4gZGlzYWJsZWQgc3VjY2Vzc2Z1bGx5IGluIHIyNjE5NDYuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50Lmg6IFJlbW92ZWQuCisgICAgICAg
ICogZG9tL0JlZm9yZUxvYWRFdmVudC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdENsb3NlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRMaXN0ZW5lclR5cGVJZk5lZWRlZCk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hCZWZv
cmVMb2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICog
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCk6IG1faXNIYW5kbGluZ0JlZm9yZUxvYWQg
aXMgbmV2ZXIgdHJ1ZS4KKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg6Cisg
ICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
RWxlbWVudDo6cmVxdWVzdENsYXNzaWNTY3JpcHQpOiBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBh
bHdheXMgcmV0dXJuZWQgdHJ1ZQorICAgICAgICB3aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMgZGlz
YWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2Ny
aXB0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCk6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOiBUaGVyZSBpcyBuZXZlciBhIHBlbmRp
bmcgYmVmb3JlbG9hZCBldmVudC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnNob3VsZExvYWRMaW5rKTogZGlz
cGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVybmVkIHRydWUKKyAgICAgICAgd2hlbiBi
ZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRp
YVJlc291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpz
ZWxlY3ROZXh0U291cmNlQ2hpbGQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojp1cGRhdGVX
aWRnZXQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpndWFyZGVkRGlzcGF0Y2hCZWZvcmVM
b2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6
OnBsdWdpbldpZGdldCBjb25zdCk6IG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyIGlzIG5ldmVy
IHRydWUuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVt
ZW50OjpjYW5Mb2FkVVJMKTogZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVybmVk
IHRydWUgd2hlbgorICAgICAgICBiZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAgICAg
ICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1
dFR5cGU6OmF0dGFjaCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdCk6IFJlbW92
ZWQgdGhlIGNvbW1lbnQgcmVmZXJyaW5nIHRvIGJlZm9yZWxvYWQgZXZlbnQKKyAgICAgICAgYnV0
IGtlZXAgUmVmIHNpbmNlIHdlJ3JlIGNhbGxpbmcgYSBidW5jaCBvZiBmdW5jdGlvbnMgd2l0aCBt
X2ZyYW1lIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRXaXRoRG9jdW1lbnRMb2FkZXIpOiBEZWxldGVkIGEgYmxvY2sgb2Ygbm8tb3AgY29kZSBzaW5j
ZQorICAgICAgICBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBhbHdheXMgcmV0dXJuZWQgdHJ1ZSB3
aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMgZGlzYWJsZWQuCisgICAgICAgICogbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJlZm9yZUxvYWRFdmVudFNlbmRlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6SW1hZ2VMb2FkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6On5JbWFnZUxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUxvYWRlcjo6Y2xlYXJJbWFnZVdpdGhvdXRDb25zaWRlcmluZ1BlbmRpbmdMb2Fk
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5n
QmVmb3JlTG9hZEV2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0JlZm9yZUxvYWRF
dmVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAg
ICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZCk6CisKIDIwMjItMDEtMDIgIEFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRkIEFTU0VSVChtaWRk
bGUgPj0gbGVmdCAmJiBtaWRkbGUgPCByaWdodCkgdG8gVGV4dFV0aWw6OmJyZWFrV29yZApJbmRl
eDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04NDMsNyArODQzLDYgQEAgc2V0KFdl
YkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20vQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMu
aWRsCiAgICAgZG9tL0FuaW1hdGlvbkV2ZW50LmlkbAogICAgIGRvbS9BdHRyLmlkbAotICAgIGRv
bS9CZWZvcmVMb2FkRXZlbnQuaWRsCiAgICAgZG9tL0JlZm9yZVVubG9hZEV2ZW50LmlkbAogICAg
IGRvbS9Ccm9hZGNhc3RDaGFubmVsLmlkbAogICAgIGRvbS9DREFUQVNlY3Rpb24uaWRsCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHJl
dmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTk5MCw3ICs5OTAsNiBAQCAkKFBST0pFQ1RfRElS
KS9kb20vQWJzdHJhY3RSYW5nZS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9BZGRFdmVudExpc3Rl
bmVyT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9BbmltYXRpb25FdmVudC5pZGwKICQo
UFJPSkVDVF9ESVIpL2RvbS9BdHRyLmlkbAotJChQUk9KRUNUX0RJUikvZG9tL0JlZm9yZUxvYWRF
dmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5pZGwKICQoUFJP
SkVDVF9ESVIpL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmlkbAogJChQUk9KRUNUX0RJUikvZG9tL0NE
QVRBU2VjdGlvbi5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyODc1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMjY0LDgg
KzI2NCw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmFzZUF1ZGlvQ29udGV4
dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Jhc2lj
Q3JlZGVudGlhbC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQmFzaWNDcmVkZW50aWFsLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQmVmb3JlTG9hZEV2ZW50LmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCZWZvcmVMb2FkRXZlbnQuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCZWZvcmVVbmxvYWRFdmVudC5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmVmb3JlVW5s
b2FkRXZlbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNCaXF1YWRGaWx0ZXJOb2RlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CShyZXZpc2lvbiAyODc1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC04NDgsNyArODQ4LDYgQEAgSlNfQklORElOR19JRExTIDo9IFwK
ICAgICAkKFdlYkNvcmUpL2RvbS9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0FuaW1hdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQXR0
ci5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0JlZm9yZVVubG9hZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20v
QnJvYWRjYXN0Q2hhbm5lbC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NEQVRBU2VjdGlvbi5p
ZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04OTgsNyArODk4LDYgQEAgZG9tL0Fj
dGl2ZURPTU9iamVjdC5jcHAKIGRvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uY3BwCiBkb20v
QW5pbWF0aW9uRXZlbnQuY3BwCiBkb20vQXR0ci5jcHAKLWRvbS9CZWZvcmVMb2FkRXZlbnQuY3Bw
CiBkb20vQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwCiBkb20vQmVmb3JlVW5sb2FkRXZlbnQu
Y3BwCiBkb20vQm91bmRhcnlQb2ludC5jcHAKQEAgLTI5MDYsNyArMjkwNSw2IEBAIEpTQXV0b21h
dGlvblJhdGUuY3BwCiBKU0JhclByb3AuY3BwCiBKU0Jhc2VBdWRpb0NvbnRleHQuY3BwCiBKU0Jh
c2ljQ3JlZGVudGlhbC5jcHAKLUpTQmVmb3JlTG9hZEV2ZW50LmNwcAogSlNCZWZvcmVVbmxvYWRF
dmVudC5jcHAKIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAKIEpTQmlxdWFkRmlsdGVyT3B0aW9ucy5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDIxMyw4ICs0MjEzLDYg
QEAKIAkJQkM4QzhGQUUwRERDRDMxQjAwQjU5MkY0IC8qIFJlbmRlclN0eWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzhDOEZBQzBERENEMzFCMDBC
NTkyRjQgLyogUmVuZGVyU3R5bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCQzkyNkY4MTBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVT
ZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzkyNkY3RjBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmggKi87
IH07CiAJCUJDOTQzOUMzMTE2Q0Y0OTQwMDQ4Qzc1MCAvKiBKU05vZGVDdXN0b20uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTQzOUMyMTE2Q0Y0OTQw
MDQ4Qzc1MCAvKiBKU05vZGVDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQlCQzk0NjJEODEwN0E3QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9h
ZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Qzk0NjJENzEwN0E3QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmggKi87IH07Ci0JCUJD
OTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NDYzNDcxMDdBOTM2NjAwODU3
MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggKi87IH07CiAJCUJDOTREMTRGMEMyNzVDNjgwMDZC
QzYxNyAvKiBKU0hpc3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDOTREMTREMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuaCAqLzsgfTsK
IAkJQkM5NEQxNTQwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTREMTUxMEMyNzVDOEIwMDZCQzYxNyAv
KiBIaXN0b3J5LmggKi87IH07CiAJCUJDOTZEQjQzMEYzQTg4MEUwMDU3M0NCMyAvKiBSZW5kZXJC
b3hNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM5NkRCNDIwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MzY5
LDEwICsxNTM2Nyw2IEBACiAJCUJDOTI2RjdFMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
OTI2RjdGMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEZyYW1lU2V0RWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk0MzlDMjExNkNGNDk0MDA0OEM3NTAgLyogSlNO
b2RlQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUN1c3Rv
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzk0NjJDQjEwN0E3QTM5MDA4NTcx
OTMgLyogQmVmb3JlTG9hZEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCZWZvcmVM
b2FkRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzk0NjJENzEwN0E3
QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJlZm9yZUxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzk0NjM0NTEwN0E5MzRCMDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCZWZvcmVMb2FkRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzk0NjM0NzEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNC
ZWZvcmVMb2FkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5NEQxMDcw
QzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU2NyZWVuTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzk0RDE0QzBDMjc1QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hpc3RvcnkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk0RDE0RDBDMjc1QzY4MDA2QkM2MTcg
LyogSlNIaXN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hpc3Rv
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MjU4LDcgKzE3MjUyLDYgQEAK
IAkJRTNCRjE5RTEyMkFGMkY1NTAwOUM5OTI2IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlFMzIyQUYyRkE1MDA5Qzk5MjYg
LyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPdmVy
Y29uc3RyYWluZWRFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNCRjE5RTQyMkFGMkZDRjAwOUM5OTI2IC8qIENsb3NlRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ2xvc2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUzQkYx
OUU1MjJBRjJGRjQwMDlDOTkyNiAvKiBCZWZvcmVMb2FkRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmVmb3JlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNCRjE5RTYyMkFGMzAyQTAwOUM5OTI2IC8qIEhhc2hDaGFuZ2VFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIYXNoQ2hhbmdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFM0JGMTlFNzIyQUYzMDlGMDA5Qzk5MjYgLyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDMDQxMkQyNTRDQTI5QjAwMjFE
MEU2IC8qIFN5c3RlbVNvdW5kTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTeXN0ZW1Tb3VuZE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI3NjY3LDggKzI3NjYwLDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTMxOTg0ODAzMUExRTZC
NUQwMEExMzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmNwcCAqLywKIAkJCQkzMTk4NDgwNDFBMUU2
QjVEMDBBMTMzMTggLyogSlNBbmltYXRpb25FdmVudC5oICovLAotCQkJCUJDOTQ2MzQ1MTA3QTkz
NEIwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5jcHAgKi8sCi0JCQkJQkM5NDYzNDcxMDdB
OTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggKi8sCiAJCQkJODIyNTQzMkNBOUQ0
QjRDRjQ2MjhFQzdGIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuY3BwICovLAogCQkJCTI5RTA0QTI3
QkVEMkY4MUY5OEU5MDIyQiAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggKi8sCiAJCQkJODM2RDAz
MkQxREE4QTEzMjAwRkZEOTZCIC8qIEpTQ2xpcGJvYXJkRXZlbnQuY3BwICovLApAQCAtMzIwNzcs
OSArMzIwNjgsNiBAQAogCQkJCUE4QzRBN0ZCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmggKi8s
CiAJCQkJOTNFRUMxRTUwOUMyODc3NzAwQzUxNUQxIC8qIEF0dHIuaWRsICovLAogCQkJCUE4QzRB
N0Y5MDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUuaCAqLywKLQkJCQlFM0JGMTlFNTIyQUYy
RkY0MDA5Qzk5MjYgLyogQmVmb3JlTG9hZEV2ZW50LmNwcCAqLywKLQkJCQlCQzk0NjJENzEwN0E3
QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmggKi8sCi0JCQkJQkM5NDYyQ0IxMDdBN0Ez
OTAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5pZGwgKi8sCiAJCQkJQUIyM0EzMjUwOUJCQTdE
MDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCAqLywKIAkJCQlBQjIzQTMy
NjA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCAqLywKIAkJCQk4
NTAzMUIyNjBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQuY3BwICovLApAQCAt
MzM0NjksNyArMzM0NTcsNiBAQAogCQkJCTcxNTZCQ0ExMjFDQTM1MEYwMDUzNDM5NyAvKiBCYXNp
Y0VmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkJENkFGOEExNUVGMjVERjAwOEI3
MTEwIC8qIEJhc2ljU2hhcGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUZCRDZBRjhD
MTVFRjI2MDQwMDhCNzExMCAvKiBCYXNpY1NoYXBlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM5
NDYyRDgxMDdBN0I0QzAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUIyM0EzMjgwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUIzRDBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3Jl
VW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTI0MEQwMDZDMUQwMEVGNkYy
NiAvKiBCaWRpQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTAyOSw3ICszNTAxNiw2IEBA
CiAJCQkJNTdEQ0VEOTgyMTQ4ODIxNjAwMTZCODQ3IC8qIEpTQXV0aGVudGljYXRvclRyYW5zcG9y
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFy
UHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdDN0E2OUYxRTU3OTE3ODAwQzY3RDcxIC8qIEpT
QmFzaWNDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4
NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRF
ODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlGREYwOURDOTEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRTJEOTlDRTEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4g
SGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyAr
NjIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UpIFwKICAgICBtYWNybyhBdXRoZW50aWNhdG9yUmVzcG9uc2UpIFwKICAg
ICBtYWNybyhCYXNlQXVkaW9Db250ZXh0KSBcCi0gICAgbWFjcm8oQmVmb3JlTG9hZEV2ZW50KSBc
CiAgICAgbWFjcm8oQmxvYkV2ZW50KSBcCiAgICAgbWFjcm8oQnJvYWRjYXN0Q2hhbm5lbCkgXAog
ICAgIG1hY3JvKENhY2hlKSBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50
LmNwcAkocmV2aXNpb24gMjg3NTI1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRF
dmVudC5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkJlZm9yZUxvYWRFdmVudC5oIgotCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
QmVmb3JlTG9hZEV2ZW50KTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5jcHAKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9h
ZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVu
dC5oCShyZXZpc2lvbiAyODc1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2
ZW50LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRl
ICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBCZWZvcmVMb2FkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewotICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoQmVmb3JlTG9hZEV2ZW50KTsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEJlZm9yZUxvYWRFdmVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmVmb3JlTG9hZEV2ZW50KHVybCkpOwotICAg
IH0KLQotICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKLSAgICAgICAgU3RyaW5nIHVybDsK
LSAgICB9OwotCi0gICAgc3RhdGljIFJlZjxCZWZvcmVMb2FkRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBCZWZvcmVMb2FkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwotICAgIH0K
LQotICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KLQotICAg
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
QmVmb3JlTG9hZEV2ZW50SW50ZXJmYWNlVHlwZTsgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0
IEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHVybCkKLSAgICAgICAgOiBFdmVudChldmVu
dE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50LCBDYW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6Olll
cykKLSAgICAgICAgLCBtX3VybCh1cmwpCi0gICAgewotICAgIH0KLQotICAgIEJlZm9yZUxvYWRF
dmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNU
cnVzdGVkIGlzVHJ1c3RlZCkKLSAgICAgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKQotICAgICAgICAsIG1fdXJsKGluaXRpYWxpemVyLnVybCkKLSAgICB7Ci0gICAgfQot
Ci0gICAgU3RyaW5nIG1fdXJsOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5oCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0JlZm9y
ZUxvYWRFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxv
YWRFdmVudC5pZGwJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9CZWZv
cmVMb2FkRXZlbnQuaWRsCShub25leGlzdGVudCkKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0KLVsKLSAgICBFbmFibGVk
QnlTZXR0aW5nPUxlZ2FjeUJlZm9yZUxvYWRFdmVudEVuYWJsZWQsCi0gICAgRXhwb3NlZD1XaW5k
b3cKLV0gaW50ZXJmYWNlIEJlZm9yZUxvYWRFdmVudCA6IEV2ZW50IHsKLSAgICBjb25zdHJ1Y3Rv
cihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgQmVmb3JlTG9hZEV2ZW50SW5pdCBldmVudEluaXRE
aWN0KTsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOwotfTsKLQotZGlj
dGlvbmFyeSBCZWZvcmVMb2FkRXZlbnRJbml0IDogRXZlbnRJbml0IHsKLSAgICBET01TdHJpbmcg
dXJsID0gIiI7Ci19OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyODc1
MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMTc5LDcgKzMxNzksNiBAQCB2b2lkIERvY3VtZW50OjppbXBsaWNpdENsb3NlKCkKICAgICAg
ICAgLy8gRm9yIG5vdywgb25seSBkbyB0aGlzIHdoZW4gdGhlcmUgaXMgYSBGcmFtZSwgb3RoZXJ3
aXNlIHRoaXMgY291bGQgY2F1c2UgSlMgcmVlbnRyYW5jeQogICAgICAgICAvLyBiZWxvdyBTVkcg
Zm9udCBwYXJzaW5nLCBmb3IgZXhhbXBsZS4gPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNjI2OT4K
ICAgICAgICAgaWYgKGF1dG8qIGN1cnJlbnRQYWdlID0gcGFnZSgpKSB7Ci0gICAgICAgICAgICBJ
bWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50cyhjdXJyZW50UGFnZSk7
CiAgICAgICAgICAgICBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50cyhjdXJy
ZW50UGFnZSk7CiAgICAgICAgICAgICBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nRXJyb3JF
dmVudHMoY3VycmVudFBhZ2UpOwogICAgICAgICAgICAgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRj
aFBlbmRpbmdMb2FkRXZlbnRzKGN1cnJlbnRQYWdlKTsKQEAgLTUyODIsOCArNTI4MSw2IEBAIHZv
aWQgRG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGMKICAgICAgICAgYWRkTGlzdGVu
ZXJUeXBlKEFOSU1BVElPTklURVJBVElPTl9MSVNURU5FUik7CiAgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQgfHwgZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCiAgICAgICAgIGFkZExpc3RlbmVy
VHlwZShUUkFOU0lUSU9ORU5EX0xJU1RFTkVSKTsKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCkKLSAgICAgICAgYWRkTGlzdGVuZXJUeXBlKEJF
Rk9SRUxPQURfTElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuc2Nyb2xsRXZlbnQpCiAgICAgICAgIGFkZExpc3RlbmVyVHlwZShTQ1JPTExfTElTVEVORVIp
OwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3Jj
ZXdpbGxiZWdpbkV2ZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDI4NzUy
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04
OTgsMTMgKzg5OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIEFOSU1BVElPTlNUQVJUX0xJU1RFTkVS
ICAgICAgICAgICAgICA9IDEgPDwgOCwKICAgICAgICAgQU5JTUFUSU9OSVRFUkFUSU9OX0xJU1RF
TkVSICAgICAgICAgID0gMSA8PCA5LAogICAgICAgICBUUkFOU0lUSU9ORU5EX0xJU1RFTkVSICAg
ICAgICAgICAgICAgPSAxIDw8IDEwLAotICAgICAgICBCRUZPUkVMT0FEX0xJU1RFTkVSICAgICAg
ICAgICAgICAgICAgPSAxIDw8IDExLAotICAgICAgICBTQ1JPTExfTElTVEVORVIgICAgICAgICAg
ICAgICAgICAgICAgPSAxIDw8IDEyLAotICAgICAgICBGT1JDRVdJTExCRUdJTl9MSVNURU5FUiAg
ICAgICAgICAgICAgPSAxIDw8IDEzLAotICAgICAgICBGT1JDRUNIQU5HRURfTElTVEVORVIgICAg
ICAgICAgICAgICAgPSAxIDw8IDE0LAotICAgICAgICBGT1JDRURPV05fTElTVEVORVIgICAgICAg
ICAgICAgICAgICAgPSAxIDw8IDE1LAotICAgICAgICBGT1JDRVVQX0xJU1RFTkVSICAgICAgICAg
ICAgICAgICAgICAgPSAxIDw8IDE2LAotICAgICAgICBSRVNJWkVfTElTVEVORVIgICAgICAgICAg
ICAgICAgICAgICAgPSAxIDw8IDE3CisgICAgICAgIFNDUk9MTF9MSVNURU5FUiAgICAgICAgICAg
ICAgICAgICAgICA9IDEgPDwgMTEsCisgICAgICAgIEZPUkNFV0lMTEJFR0lOX0xJU1RFTkVSICAg
ICAgICAgICAgICA9IDEgPDwgMTIsCisgICAgICAgIEZPUkNFQ0hBTkdFRF9MSVNURU5FUiAgICAg
ICAgICAgICAgICA9IDEgPDwgMTMsCisgICAgICAgIEZPUkNFRE9XTl9MSVNURU5FUiAgICAgICAg
ICAgICAgICAgICA9IDEgPDwgMTQsCisgICAgICAgIEZPUkNFVVBfTElTVEVORVIgICAgICAgICAg
ICAgICAgICAgICA9IDEgPDwgMTUsCisgICAgICAgIFJFU0laRV9MSVNURU5FUiAgICAgICAgICAg
ICAgICAgICAgICA9IDEgPDwgMTYKICAgICB9OwogCiAgICAgYm9vbCBoYXNMaXN0ZW5lclR5cGUo
TGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgY29uc3QgeyByZXR1cm4gKG1fbGlzdGVuZXJUeXBl
cyAmIGxpc3RlbmVyVHlwZSk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCShyZXZp
c2lvbiAyODc1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNyw3ICs3LDYgQEAgRXZlbnRzIGludGVyZmFjZU5hbWU9RXZlbnQKIEhUTUxF
dmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudAogQW5pbWF0aW9uRXZlbnQKIEFuaW1hdGlvblBsYXli
YWNrRXZlbnQKLUJlZm9yZUxvYWRFdmVudAogQmVmb3JlVW5sb2FkRXZlbnQKIENsaXBib2FyZEV2
ZW50CiBDbG9zZUV2ZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAyODc1MjUpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3
LDYgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdHRyLmgiCi0j
aW5jbHVkZSAiQmVmb3JlTG9hZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25T
Y29wZS5oIgogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlQW5j
ZXN0b3JJdGVyYXRvci5oIgpAQCAtNDIsNiArNDEsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnRUcmF2
ZXJzYWwuaCIKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJFdmVudEhh
bmRsZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50
LmgiCkBAIC0yNDExLDIwICsyNDExLDYgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaERPTUFjdGl2YXRl
RXZlbnQoRXZlbgogICAgICAgICB1bmRlcmx5aW5nQ2xpY2tFdmVudC5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogfQogCi1ib29sIE5vZGU6OmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQotewotICAgIGlmICghZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxlZ2FjeUJl
Zm9yZUxvYWRFdmVudEVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAo
IWRvY3VtZW50KCkuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpCRUZPUkVMT0FEX0xJU1RFTkVS
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBSZWY8Tm9kZT4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7Ci0gICAgYXV0byBldmVudCA9IEJlZm9yZUxvYWRFdmVudDo6Y3JlYXRlKHNvdXJjZVVS
TCk7Ci0gICAgZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgcmV0dXJuICFldmVudC0+ZGVmYXVs
dFByZXZlbnRlZCgpOwotfQotCiB2b2lkIE5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudCgpCiB7CiAg
ICAgZGlzcGF0Y2hTY29wZWRFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBFdmVu
dDo6SXNDb21wb3NlZDo6WWVzKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDI4NzUyNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3OCw4ICs0
NzgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFsbG93c0RvdWJsZVRhcEdlc3R1cmUo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgZGlzcGF0Y2hCZWZv
cmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwotCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaXNwYXRjaElucHV0RXZlbnQoKTsKIAogICAgIC8vIFBlcmZvcm0gdGhlIGRlZmF1
bHQgYWN0aW9uIGZvciBhbiBldmVudC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCShyZXZpc2lvbiAyODc1MjUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsMTAg
Kzg1LDYgQEAgUmVmPE5vZGU+IFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2xvbmVObwogCiB2b2lk
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KCkKIHsKLSAgICAvLyBQcmV2
ZW50IHJlY3Vyc2l2ZSBsb2FkaW5nIG9mIHN0eWxlc2hlZXQuCi0gICAgaWYgKG1faXNIYW5kbGlu
Z0JlZm9yZUxvYWQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChtX3RhcmdldCA9PSAieG1s
LXN0eWxlc2hlZXQiICYmIGRvY3VtZW50KCkuZnJhbWUoKSAmJiBwYXJlbnROb2RlKCkgPT0gJmRv
Y3VtZW50KCkpIHsKICAgICAgICAgLy8gc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1zdHls
ZXNoZWV0LwogICAgICAgICAvLyAjIyMgc3VwcG9ydCBzdHlsZXNoZWV0IGluY2x1ZGVkIGluIGEg
ZnJhZ21lbnQgb2YgdGhpcyAob3IgYW5vdGhlcikgZG9jdW1lbnQKQEAgLTE0MywxMiArMTM5LDYg
QEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaAogCiAgICAgICAgICAg
ICBTdHJpbmcgdXJsID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChocmVmKS5zdHJpbmcoKTsKIAot
ICAgICAgICAgICAgewotICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faXNI
YW5kbGluZ0JlZm9yZUxvYWQsIHRydWUpOwotICAgICAgICAgICAgaWYgKCFkaXNwYXRjaEJlZm9y
ZUxvYWRFdmVudCh1cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LQogICAgICAgICAgICAgYm9vbCBkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50
ID0gIWlzQ29ubmVjdGVkKCkgfHwgJmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIo
KTsKICAgICAgICAgICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50
KQogICAgICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmgJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODks
NiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShYU0xUKQogICAgIGJvb2wgbV9pc1hTTCB7IGZhbHNl
IH07CiAjZW5kaWYKLSAgICBib29sIG1faXNIYW5kbGluZ0JlZm9yZUxvYWQgeyBmYWxzZSB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmNwcAkocmV2aXNpb24gMjg3NTI1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsOSArMjgxLDcgQEAgYm9vbCBTY3Jp
cHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IAogCiBib29sIFNjcmlwdEVsZW1lbnQ6OnJl
cXVlc3RDbGFzc2ljU2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewotICAgIFJlZjxE
b2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7Ci0gICAgaWYg
KCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVVJMKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIFJlZiBvcmlnaW5hbERvY3VtZW50ID0gbV9lbGVtZW50LmRvY3Vt
ZW50KCk7CiAgICAgYm9vbCBkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50ID0g
IW1fZWxlbWVudC5pc0Nvbm5lY3RlZCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmln
aW5hbERvY3VtZW50LnB0cigpOwogICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRo
aXNFbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMzMsOSArMzMxLDcgQEAgYm9v
bCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KAogCiAgICAgaWYgKGhhc1NvdXJj
ZUF0dHJpYnV0ZSgpKSB7CiAgICAgICAgIFN0cmluZyBzb3VyY2VVUkwgPSBzb3VyY2VBdHRyaWJ1
dGVWYWx1ZSgpOwotICAgICAgICBSZWY8RG9jdW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVt
ZW50LmRvY3VtZW50KCkpOwotICAgICAgICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxv
YWRFdmVudChzb3VyY2VVUkwpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBS
ZWYgb3JpZ2luYWxEb2N1bWVudCA9IG1fZWxlbWVudC5kb2N1bWVudCgpOwogCiAgICAgICAgIGJv
b2wgZGlkRXZlbnRMaXN0ZW5lckRpc2Nvbm5lY3RUaGlzRWxlbWVudCA9ICFtX2VsZW1lbnQuaXND
b25uZWN0ZWQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5w
dHIoKTsKICAgICAgICAgaWYgKGRpZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0VGhpc0VsZW1lbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHJldmlzaW9u
IDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE2MSwxNiArMTYxLDYgQEAgdm9pZCBIVE1MRW1iZWRFbGVtZW50Ojp1
cGRhdGVXaWRnZXQoQ3JlYQogICAgIHBhcmFtZXRlcnNGb3JQbHVnaW4ocGFyYW1OYW1lcywgcGFy
YW1WYWx1ZXMpOwogCiAgICAgUmVmPEhUTUxFbWJlZEVsZW1lbnQ+IHByb3RlY3RlZFRoaXMoKnRo
aXMpOyAvLyBMb2FkaW5nIHRoZSBwbHVnaW4gbWlnaHQgcmVtb3ZlIHVzIGZyb20gdGhlIGRvY3Vt
ZW50LgotICAgIGJvb2wgYmVmb3JlTG9hZEFsbG93ZWRMb2FkID0gZ3VhcmRlZERpc3BhdGNoQmVm
b3JlTG9hZEV2ZW50KG1fdXJsKTsKLSAgICBpZiAoIWJlZm9yZUxvYWRBbGxvd2VkTG9hZCkgewot
ICAgICAgICBpZiAoaXM8UGx1Z2luRG9jdW1lbnQ+KGRvY3VtZW50KCkpKSB7Ci0gICAgICAgICAg
ICAvLyBQbHVnaW5zIGluc2lkZSBwbHVnaW4gZG9jdW1lbnRzIGxvYWQgZGlmZmVyZW50bHkgdGhh
biBvdGhlciBwbHVnaW5zLiBCeSB0aGUgdGltZQotICAgICAgICAgICAgLy8gd2UgYXJlIGhlcmUg
aW4gYSBwbHVnaW4gZG9jdW1lbnQsIHRoZSBsb2FkIG9mIHRoZSBwbHVnaW4gKHdoaWNoIGlzIHRo
ZSBwbHVnaW4gZG9jdW1lbnQncwotICAgICAgICAgICAgLy8gbWFpbiByZXNvdXJjZSkgaGFzIGFs
cmVhZHkgc3RhcnRlZC4gV2UgbmVlZCB0byBleHBsaWNpdGx5IGNhbmNlbCB0aGUgbWFpbiByZXNv
dXJjZSBsb2FkIGhlcmUuCi0gICAgICAgICAgICBkb3duY2FzdDxQbHVnaW5Eb2N1bWVudD4oZG9j
dW1lbnQoKSkuY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9CiAgICAgaWYgKCFyZW5kZXJlcigpKSAvLyBEbyBub3QgbG9hZCB0aGUgcGx1
Z2luIGlmIGJlZm9yZWxvYWQgcmVtb3ZlZCB0aGlzIGVsZW1lbnQgb3IgaXRzIHJlbmRlcmVyLgog
ICAgICAgICByZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAkocmV2aXNpb24gMjg3NTI1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgyLDggKzM4Miw2IEBAIHZvaWQgSFRN
TEltYWdlRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXIKIHsKICAgICBpZiAoIWlzPFJlbmRlcklt
YWdlPihyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2ltYWdlTG9hZGVy
LT5oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkpCi0gICAgICAgIHJldHVybjsKIAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHVwZGF0ZUltYWdlQ29udHJvbHMoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAJKHJldmlzaW9uIDI4NzUyNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjEwLDggKzIxMCw2IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb24KIGJvb2wgSFRNTExpbmtFbGVtZW50OjpzaG91bGRMb2FkTGluaygpCiB7CiAgICAgUmVm
PERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50ID0gZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRpc3Bh
dGNoQmVmb3JlTG9hZEV2ZW50KGdldE5vbkVtcHR5VVJMQXR0cmlidXRlKGhyZWZBdHRyKS5zdHJp
bmcoKSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBBIGJlZm9yZWxvYWQgaGFuZGxl
ciBtaWdodCBoYXZlIHJlbW92ZWQgdXMgZnJvbSB0aGUgZG9jdW1lbnQgb3IgY2hhbmdlZCB0aGUg
ZG9jdW1lbnQuCiAgICAgaWYgKCFpc0Nvbm5lY3RlZCgpIHx8ICZkb2N1bWVudCgpICE9IG9yaWdp
bmFsRG9jdW1lbnQucHRyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gMjg3NTI1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQwNiw3ICsxNDA2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291
cgogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
aWYgKCFpc1NhZmVUb0xvYWRVUkwoYWJzb2x1dGVVUkwsIENvbXBsYWluKSB8fCAhZGlzcGF0Y2hC
ZWZvcmVMb2FkRXZlbnQoYWJzb2x1dGVVUkwuc3RyaW5nKCkpKSB7CisgICAgICAgICAgICBpZiAo
IWlzU2FmZVRvTG9hZFVSTChhYnNvbHV0ZVVSTCwgQ29tcGxhaW4pKSB7CiAgICAgICAgICAgICAg
ICAgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVy
cm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC00ODgzLDcg
KzQ4ODMsNyBAQCBVUkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoCiAgICAg
ICAgIH0KIAogICAgICAgICAvLyBJcyBpdCBzYWZlIHRvIGxvYWQgdGhpcyB1cmw/Ci0gICAgICAg
IGlmICghaXNTYWZlVG9Mb2FkVVJMKG1lZGlhVVJMLCBhY3Rpb25JZkludmFsaWQpIHx8ICFkaXNw
YXRjaEJlZm9yZUxvYWRFdmVudChtZWRpYVVSTC5zdHJpbmcoKSkpCisgICAgICAgIGlmICghaXNT
YWZlVG9Mb2FkVVJMKG1lZGlhVVJMLCBhY3Rpb25JZkludmFsaWQpKQogICAgICAgICAgICAgZ290
byBDaGVja0FnYWluOwogCiAgICAgICAgIC8vIEEgJ2JlZm9yZWxvYWQnIGV2ZW50IGhhbmRsZXIg
Y2FuIG11dGF0ZSB0aGUgRE9NLCBzbyBjaGVjayB0byBzZWUgaWYgdGhlIHNvdXJjZSBlbGVtZW50
IGlzIHN0aWxsIGEgY2hpbGQgbm9kZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyODc1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc2LDE0ICsyNzYsMTMg
QEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6dXBkYXRlV2lkZ2V0KENyZQogCiAgICAgc2V0TmVl
ZHNXaWRnZXRVcGRhdGUoZmFsc2UpOwogCi0gICAgUmVmPEhUTUxPYmplY3RFbGVtZW50PiBwcm90
ZWN0ZWRUaGlzKCp0aGlzKTsgLy8gYmVmb3JlbG9hZCBhbmQgcGx1Z2luIGxvYWRpbmcgY2FuIG1h
a2UgYXJiaXRyYXJ5IERPTSBtdXRhdGlvbnMuCi0gICAgYm9vbCBiZWZvcmVMb2FkQWxsb3dlZExv
YWQgPSBndWFyZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQodXJsKTsKKyAgICBSZWYgcHJvdGVj
dGVkVGhpcyA9ICp0aGlzOyAvLyBwbHVnaW4gbG9hZGluZyBjYW4gbWFrZSBhcmJpdHJhcnkgRE9N
IG11dGF0aW9ucy4KICAgICBpZiAoIXJlbmRlcmVyKCkpIC8vIERvIG5vdCBsb2FkIHRoZSBwbHVn
aW4gaWYgYmVmb3JlbG9hZCByZW1vdmVkIHRoaXMgZWxlbWVudCBvciBpdHMgcmVuZGVyZXIuCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIERpc3BhdGNoaW5nIGEgYmVmb3JlTG9hZCBldmVudCBj
b3VsZCBoYXZlIGV4ZWN1dGVkIGNvZGUgdGhhdCBjaGFuZ2VkIHRoZSBkb2N1bWVudC4KICAgICAv
LyBNYWtlIHN1cmUgdGhlIFVSTCBpcyBzdGlsbCBzYWZlIHRvIGxvYWQuCi0gICAgYm9vbCBzdWNj
ZXNzID0gYmVmb3JlTG9hZEFsbG93ZWRMb2FkICYmIGhhc1ZhbGlkQ2xhc3NJZCgpICYmIGNhbkxv
YWRVUkwodXJsKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBoYXNWYWxpZENsYXNzSWQoKSAmJiBjYW5M
b2FkVVJMKHVybCk7CiAgICAgaWYgKHN1Y2Nlc3MpCiAgICAgICAgIHN1Y2Nlc3MgPSByZXF1ZXN0
T2JqZWN0KHVybCwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKICAgICBp
ZiAoIXN1Y2Nlc3MgJiYgaGFzRmFsbGJhY2tDb250ZW50KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAkocmV2aXNpb24gMjg3NTI1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
NywyOSArMTA3LDggQEAgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIEhUTUxQbHVnSW5FbGVtZQog
ICAgIHJldHVybiBtX2luc3RhbmNlLmdldCgpOwogfQogCi1ib29sIEhUTUxQbHVnSW5FbGVtZW50
OjpndWFyZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
Ci17Ci0gICAgLy8gRklYTUU6IE91ciBjdXJyZW50IHBsdWctaW4gbG9hZGluZyBkZXNpZ24gY2Fu
J3QgZ3VhcmFudGVlIHRoZSBmb2xsb3dpbmcKLSAgICAvLyBhc3NlcnRpb24gaXMgdHJ1ZSwgc2lu
Y2UgcGx1Zy1pbiBsb2FkaW5nIGNhbiBiZSBpbml0aWF0ZWQgZHVyaW5nIGxheW91dCwKLSAgICAv
LyBhbmQgc3luY2hyb25vdXMgbGF5b3V0IGNhbiBiZSBpbml0aWF0ZWQgaW4gYSBiZWZvcmVsb2Fk
IGV2ZW50IGhhbmRsZXIhCi0gICAgLy8gU2VlIDxodHRwOi8vd2Via2l0Lm9yZy9iLzcxMjY0Pi4K
LSAgICAvLyBBU1NFUlQoIW1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyKTsKLSAgICBtX2luQmVm
b3JlTG9hZEV2ZW50SGFuZGxlciA9IHRydWU7Ci0gICAgLy8gc3RhdGljX2Nhc3QgaXMgdXNlZCB0
byBhdm9pZCBhIGNvbXBpbGUgZXJyb3Igc2luY2UgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQKLSAg
ICAvLyBpcyBpbnRlbnRpb25hbGx5IHVuZGVmaW5lZCBvbiB0aGlzIGNsYXNzLgotICAgIGJvb2wg
YmVmb3JlTG9hZEFsbG93ZWRMb2FkID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50
Kj4odGhpcyktPmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHNvdXJjZVVSTCk7Ci0gICAgbV9pbkJl
Zm9yZUxvYWRFdmVudEhhbmRsZXIgPSBmYWxzZTsKLSAgICByZXR1cm4gYmVmb3JlTG9hZEFsbG93
ZWRMb2FkOwotfQotCiBXaWRnZXQqIEhUTUxQbHVnSW5FbGVtZW50OjpwbHVnaW5XaWRnZXQoUGx1
Z2luTG9hZGluZ1BvbGljeSBsb2FkUG9saWN5KSBjb25zdAogewotICAgIGlmIChtX2luQmVmb3Jl
TG9hZEV2ZW50SGFuZGxlcikgewotICAgICAgICAvLyBUaGUgcGx1Zy1pbiBoYXNuJ3QgbG9hZGVk
IHlldCwgYW5kIGl0IG1ha2VzIG5vIHNlbnNlIHRvIHRyeSB0byBsb2FkIGlmIGJlZm9yZWxvYWQg
aGFuZGxlciBoYXBwZW5lZCB0byB0b3VjaCB0aGUgcGx1Zy1pbiBlbGVtZW50LgotICAgICAgICAv
LyBUaGF0IHdvdWxkIHJlY3Vyc2l2ZWx5IGNhbGwgYmVmb3JlbG9hZCBmb3IgdGhlIHNhbWUgZWxl
bWVudC4KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAgICAgUmVuZGVyV2lkZ2V0
KiByZW5kZXJXaWRnZXQgPSBsb2FkUG9saWN5ID09IFBsdWdpbkxvYWRpbmdQb2xpY3k6OkxvYWQg
PyByZW5kZXJXaWRnZXRMb2FkaW5nUGx1Z2luKCkgOiB0aGlzLT5yZW5kZXJXaWRnZXQoKTsKICAg
ICBpZiAoIXJlbmRlcldpZGdldCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCShyZXZpc2lvbiAyODc1MjUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTkzLDkgKzkzLDYgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRv
d1Jvb3QmKSBmaW5hbDsKIAotICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIHVzZSBndWFyZGVkRGlz
cGF0Y2hCZWZvcmVMb2FkRXZlbnQgaW5zdGVhZCBvZiBjYWxsaW5nIGRpc3BhdGNoQmVmb3JlTG9h
ZEV2ZW50IGRpcmVjdGx5LgotICAgIGJvb2wgZ3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKLQogICAgIC8vIFRoaXMgd2lsbCBsb2FkIHRoZSBw
bHVnaW4gaWYgbmVjZXNzYXJ5LgogICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRn
ZXRMb2FkaW5nUGx1Z2luKCkgY29uc3Q7CiAKQEAgLTEwMyw4ICsxMDAsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3dhcFJlbmRlcmVyVGltZXJGaXJlZCgpOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCi0g
ICAgYm9vbCBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkg
PSBkZWxldGU7IC8vIEdlbmVyYXRlIGEgY29tcGlsZSBlcnJvciBpZiBzb21lb25lIGNhbGxzIHRo
aXMgYnkgbWlzdGFrZS4KLQogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IGZpbmFsOwog
CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBmaW5h
bDsKQEAgLTExNCw3ICsxMDksNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxKU0M6OkJpbmRpbmdz
OjpJbnN0YW5jZT4gbV9pbnN0YW5jZTsKICAgICBUaW1lciBtX3N3YXBSZW5kZXJlclRpbWVyOwog
ICAgIGJvb2wgbV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzIHsgZmFsc2UgfTsKLSAgICBib29sIG1f
aW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyIHsgZmFsc2UgfTsKICAgICBEaXNwbGF5U3RhdGUgbV9k
aXNwbGF5U3RhdGUgeyBQbGF5aW5nIH07CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5jcHAJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyOSw3ICsyMjks
NyBAQCBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmNhbkxvYWRVUkwoY29uc3QgCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQo
dXJsLnN0cmluZygpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBIVE1MVHJhY2tFbGVt
ZW50OjpkaWRDb21wbGV0ZUxvYWQoTG9hZFN0YXR1cyBzdGF0dXMpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAkocmV2aXNpb24gMjg3NTI1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw5ICsx
NDIsNiBAQCB2b2lkIEltYWdlSW5wdXRUeXBlOjphdHRhY2goKQogICAgIGlmICghcmVuZGVyZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpbWFnZUxvYWRlci5oYXNQZW5kaW5nQmVmb3Jl
TG9hZEV2ZW50KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGF1dG8mIGltYWdlUmVzb3VyY2Ug
PSByZW5kZXJlci0+aW1hZ2VSZXNvdXJjZSgpOwogICAgIGltYWdlUmVzb3VyY2Uuc2V0Q2FjaGVk
SW1hZ2UoaW1hZ2VMb2FkZXIuaW1hZ2UoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMjg3NTI1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyMSw3ICsxMjIxLDYgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdChGcmFtZQogewogICAgIEZSQU1FTE9BREVS
X1JFTEVBU0VfTE9HKFJlc291cmNlTG9hZGluZywgImxvYWRGcmFtZVJlcXVlc3Q6IGZyYW1lIGxv
YWQgc3RhcnRlZCIpOwogCi0gICAgLy8gUHJvdGVjdCBmcmFtZSBmcm9tIGdldHRpbmcgYmxvd24g
YXdheSBpbnNpZGUgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgaW4gbG9hZFdpdGhEb2N1bWVudExv
YWRlci4KICAgICBSZWYgcHJvdGVjdGVkRnJhbWUgeyBtX2ZyYW1lIH07CiAKICAgICBVUkwgdXJs
ID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKQEAgLTEyNTksMTAgKzEyNTgsMTAg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdChGcmFtZQogICAgIGF1dG8gY29t
cGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBSZWYgeyBtX2ZyYW1lIH0s
IGZvcm1TdGF0ZSA9IFdlYWtQdHIgeyBmb3JtU3RhdGUgfSwgZnJhbWVOYW1lID0gcmVxdWVzdC5m
cmFtZU5hbWUoKV0gewogICAgICAgICAvLyBGSVhNRTogSXQncyBwb3NzaWJsZSB0aGlzIHRhcmdl
dEZyYW1lIHdpbGwgbm90IGJlIHRoZSBzYW1lIGZyYW1lIHRoYXQgd2FzIHRhcmdldGVkIGJ5IHRo
ZSBhY3R1YWwKICAgICAgICAgLy8gbG9hZCBpZiBmcmFtZSBuYW1lcyBoYXZlIGNoYW5nZWQuCi0g
ICAgICAgIEZyYW1lKiBzb3VyY2VGcmFtZSA9IGZvcm1TdGF0ZSA/IGZvcm1TdGF0ZS0+c291cmNl
RG9jdW1lbnQoKS5mcmFtZSgpIDogJm1fZnJhbWU7CisgICAgICAgIFJlZlB0ciBzb3VyY2VGcmFt
ZSA9IGZvcm1TdGF0ZSA/IGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS5mcmFtZSgpIDogJm1f
ZnJhbWU7CiAgICAgICAgIGlmICghc291cmNlRnJhbWUpCiAgICAgICAgICAgICBzb3VyY2VGcmFt
ZSA9ICZtX2ZyYW1lOwotICAgICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBzb3VyY2VGcmFtZS0+
bG9hZGVyKCkuZmluZEZyYW1lRm9yTmF2aWdhdGlvbihmcmFtZU5hbWUpOworICAgICAgICBSZWZQ
dHIgdGFyZ2V0RnJhbWUgPSBzb3VyY2VGcmFtZS0+bG9hZGVyKCkuZmluZEZyYW1lRm9yTmF2aWdh
dGlvbihmcmFtZU5hbWUpOwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUgJiYgdGFyZ2V0RnJhbWUg
IT0gc291cmNlRnJhbWUpIHsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gdGFyZ2V0RnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5mb2N1cygpOwpAQCAt
MTYxMSwxOSArMTYxMCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2Fk
ZXIKICAgICBpZiAobG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9uKCkuaXNFbXB0eSgpKQogICAgICAg
ICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oeyAqbV9mcmFtZS5kb2N1bWVudCgpLCBsb2Fk
ZXItPnJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24sIHBvbGljeUNoZWNr
ZXIoKS5sb2FkVHlwZSgpLCBpc0Zvcm1TdWJtaXNzaW9uIH0pOwogCi0gICAgaWYgKEVsZW1lbnQq
IG93bmVyRWxlbWVudCA9IG1fZnJhbWUub3duZXJFbGVtZW50KCkpIHsKLSAgICAgICAgLy8gV2Ug
c2tpcCBkaXNwYXRjaGluZyB0aGUgYmVmb3JlbG9hZCBldmVudCBpZiB3ZSd2ZSBhbHJlYWR5Ci0g
ICAgICAgIC8vIGNvbW1pdHRlZCBhIHJlYWwgZG9jdW1lbnQgbG9hZCBiZWNhdXNlIHRoZSBldmVu
dCB3b3VsZCBsZWFrCi0gICAgICAgIC8vIHN1YnNlcXVlbnQgYWN0aXZpdHkgYnkgdGhlIGZyYW1l
IHdoaWNoIHRoZSBwYXJlbnQgZnJhbWUgaXNuJ3QKLSAgICAgICAgLy8gc3VwcG9zZWQgdG8gbGVh
cm4uIEZvciBleGFtcGxlLCBpZiB0aGUgY2hpbGQgZnJhbWUgbmF2aWdhdGVkIHRvCi0gICAgICAg
IC8vIGEgbmV3IFVSTCwgdGhlIHBhcmVudCBmcmFtZSBzaG91bGRuJ3QgbGVhcm4gdGhlIFVSTC4K
LSAgICAgICAgaWYgKCFtX3N0YXRlTWFjaGluZS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExv
YWQoKQotICAgICAgICAgICAgJiYgIW93bmVyRWxlbWVudC0+ZGlzcGF0Y2hCZWZvcmVMb2FkRXZl
bnQobG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkpKSB7Ci0gICAgICAgICAgICBjb250
aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kobG9hZGVyLT5yZXF1ZXN0KCksIGZvcm1TdGF0
ZS5nZXQoKSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjpJZ25vcmVMb2FkLCBhbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkwpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
fQotCiAgICAgbV9mcmFtZS5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuY2FuY2VsKE5ld0xvYWRJblBy
b2dyZXNzOjpZZXMpOwogCiAgICAgaWYgKHNob3VsZFRyZWF0Q3VycmVudExvYWRBc0NvbnRpbnVp
bmdMb2FkKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAkocmV2
aXNpb24gMjg3NTI1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzAsMTIgKzcwLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgVmFsdWVD
aGVjazxXZWJDb3JlOjpJbQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBJbWFnZUV2
ZW50U2VuZGVyJiBiZWZvcmVMb2FkRXZlbnRTZW5kZXIoKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxJbWFnZUV2ZW50U2VuZGVyPiBzZW5kZXIoZXZlbnROYW1lcygpLmJlZm9yZWxvYWRF
dmVudCk7Ci0gICAgcmV0dXJuIHNlbmRlcjsKLX0KLQogc3RhdGljIEltYWdlRXZlbnRTZW5kZXIm
IGxvYWRFdmVudFNlbmRlcigpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEltYWdlRXZl
bnRTZW5kZXI+IHNlbmRlcihldmVudE5hbWVzKCkubG9hZEV2ZW50KTsKQEAgLTk4LDcgKzkyLDYg
QEAgSW1hZ2VMb2FkZXI6OkltYWdlTG9hZGVyKEVsZW1lbnQmIGVsZW1lbgogICAgIDogbV9lbGVt
ZW50KGVsZW1lbnQpCiAgICAgLCBtX2ltYWdlKG51bGxwdHIpCiAgICAgLCBtX2RlcmVmRWxlbWVu
dFRpbWVyKCp0aGlzLCAmSW1hZ2VMb2FkZXI6OnRpbWVyRmlyZWQpCi0gICAgLCBtX2hhc1BlbmRp
bmdCZWZvcmVMb2FkRXZlbnQoZmFsc2UpCiAgICAgLCBtX2hhc1BlbmRpbmdMb2FkRXZlbnQoZmFs
c2UpCiAgICAgLCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50KGZhbHNlKQogICAgICwgbV9pbWFnZUNv
bXBsZXRlKHRydWUpCkBAIC0xMTIsMTAgKzEwNSw2IEBAIEltYWdlTG9hZGVyOjp+SW1hZ2VMb2Fk
ZXIoKQogICAgIGlmIChtX2ltYWdlKQogICAgICAgICBtX2ltYWdlLT5yZW1vdmVDbGllbnQoKnRo
aXMpOwogCi0gICAgQVNTRVJUKG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCB8fCAhYmVmb3Jl
TG9hZEV2ZW50U2VuZGVyKCkuaGFzUGVuZGluZ0V2ZW50cygqdGhpcykpOwotICAgIGlmIChtX2hh
c1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQpCi0gICAgICAgIGJlZm9yZUxvYWRFdmVudFNlbmRlcigp
LmNhbmNlbEV2ZW50KCp0aGlzKTsKLQogICAgIEFTU0VSVChtX2hhc1BlbmRpbmdMb2FkRXZlbnQg
fHwgIWxvYWRFdmVudFNlbmRlcigpLmhhc1BlbmRpbmdFdmVudHMoKnRoaXMpKTsKICAgICBpZiAo
bV9oYXNQZW5kaW5nTG9hZEV2ZW50KQogICAgICAgICBsb2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxF
dmVudCgqdGhpcyk7CkBAIC0xNDAsMTAgKzEyOSw2IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OmNsZWFy
SW1hZ2VXaXRob3V0Q29uc2kKICAgICBDYWNoZWRJbWFnZSogb2xkSW1hZ2UgPSBtX2ltYWdlLmdl
dCgpOwogICAgIGlmIChvbGRJbWFnZSkgewogICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKLSAg
ICAgICAgaWYgKG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCkgewotICAgICAgICAgICAgYmVm
b3JlTG9hZEV2ZW50U2VuZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwotICAgICAgICAgICAgbV9o
YXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50ID0gZmFsc2U7Ci0gICAgICAgIH0KICAgICAgICAgaWYg
KG1faGFzUGVuZGluZ0xvYWRFdmVudCkgewogICAgICAgICAgICAgbG9hZEV2ZW50U2VuZGVyKCku
Y2FuY2VsRXZlbnQoKnRoaXMpOwogICAgICAgICAgICAgbV9oYXNQZW5kaW5nTG9hZEV2ZW50ID0g
ZmFsc2U7CkBAIC0yMzcsMTAgKzIyMiw2IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21F
bGVtZW50KFJlbGUKIAogICAgIENhY2hlZEltYWdlKiBvbGRJbWFnZSA9IG1faW1hZ2UuZ2V0KCk7
CiAgICAgaWYgKG5ld0ltYWdlICE9IG9sZEltYWdlIHx8IHJlbGV2YW50TXV0YXRpb24gPT0gUmVs
ZXZhbnRNdXRhdGlvbjo6WWVzKSB7Ci0gICAgICAgIGlmIChtX2hhc1BlbmRpbmdCZWZvcmVMb2Fk
RXZlbnQpIHsKLSAgICAgICAgICAgIGJlZm9yZUxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50
KCp0aGlzKTsKLSAgICAgICAgICAgIG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCA9IGZhbHNl
OwotICAgICAgICB9CiAgICAgICAgIGlmIChtX2hhc1BlbmRpbmdMb2FkRXZlbnQpIHsKICAgICAg
ICAgICAgIGxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKICAgICAgICAgICAg
IG1faGFzUGVuZGluZ0xvYWRFdmVudCA9IGZhbHNlOwpAQCAtMjU2LDE3ICsyMzcsMTEgQEAgdm9p
ZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQoUmVsZQogICAgICAgICB9CiAKICAgICAg
ICAgbV9pbWFnZSA9IG5ld0ltYWdlOwotICAgICAgICBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZl
bnQgPSAhZG9jdW1lbnQuaXNJbWFnZURvY3VtZW50KCkgJiYgbmV3SW1hZ2U7CiAgICAgICAgIG1f
aGFzUGVuZGluZ0xvYWRFdmVudCA9IG5ld0ltYWdlOwogICAgICAgICBtX2ltYWdlQ29tcGxldGUg
PSAhbmV3SW1hZ2U7CiAKICAgICAgICAgaWYgKG5ld0ltYWdlKSB7Ci0gICAgICAgICAgICBpZiAo
IWRvY3VtZW50LmlzSW1hZ2VEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFkb2N1
bWVudC5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkJFRk9SRUxPQURfTElTVEVORVIpKQotICAg
ICAgICAgICAgICAgICAgICBkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGJlZm9yZUxvYWRFdmVudFNlbmRl
cigpLmRpc3BhdGNoRXZlbnRTb29uKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmlzSW1hZ2VEb2N1bWVudCgpKQogICAgICAgICAgICAgICAgIHVw
ZGF0ZVJlbmRlcmVyKCk7CiAKICAgICAgICAgICAgIGlmIChtX2xhenlJbWFnZUxvYWRTdGF0ZSA9
PSBMYXp5SW1hZ2VMb2FkU3RhdGU6OkRlZmVycmVkKQpAQCAtMzM1LDggKzMxMCw3IEBAIHZvaWQg
SW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFIKICAgICB9CiAKICAgICBtX2ltYWdl
Q29tcGxldGUgPSB0cnVlOwotICAgIGlmICghaGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgpKQot
ICAgICAgICB1cGRhdGVSZW5kZXJlcigpOworICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiAKICAgICBp
ZiAoIW1faGFzUGVuZGluZ0xvYWRFdmVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg5LDUwICs0
NjMsMTQgQEAgdm9pZCBJbWFnZUxvYWRlcjo6dGltZXJGaXJlZCgpCiAKIHZvaWQgSW1hZ2VMb2Fk
ZXI6OmRpc3BhdGNoUGVuZGluZ0V2ZW50KEltYWdlRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQog
ewotICAgIEFTU0VSVChldmVudFNlbmRlciA9PSAmYmVmb3JlTG9hZEV2ZW50U2VuZGVyKCkgfHwg
ZXZlbnRTZW5kZXIgPT0gJmxvYWRFdmVudFNlbmRlcigpIHx8IGV2ZW50U2VuZGVyID09ICZlcnJv
ckV2ZW50U2VuZGVyKCkpOworICAgIEFTU0VSVChldmVudFNlbmRlciA9PSAmbG9hZEV2ZW50U2Vu
ZGVyKCkgfHwgZXZlbnRTZW5kZXIgPT0gJmVycm9yRXZlbnRTZW5kZXIoKSk7CiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlID0gZXZlbnRTZW5kZXItPmV2ZW50VHlwZSgpOwotICAgIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCkKLSAgICAgICAgZGlz
cGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCk7CiAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkubG9hZEV2ZW50KQogICAgICAgICBkaXNwYXRjaFBlbmRpbmdMb2FkRXZlbnQoKTsK
ICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KQogICAgICAgICBk
aXNwYXRjaFBlbmRpbmdFcnJvckV2ZW50KCk7CiB9CiAKLXZvaWQgSW1hZ2VMb2FkZXI6OmRpc3Bh
dGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgpCi17Ci0gICAgaWYgKCFtX2hhc1BlbmRpbmdCZWZv
cmVMb2FkRXZlbnQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIW1faW1hZ2UpCi0gICAgICAg
IHJldHVybjsKLSAgICBpZiAoIWVsZW1lbnQoKS5kb2N1bWVudCgpLmhhc0xpdmluZ1JlbmRlclRy
ZWUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCA9
IGZhbHNlOwotICAgIFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudCA9IGVsZW1lbnQoKS5k
b2N1bWVudCgpOwotICAgIGlmIChlbGVtZW50KCkuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQobV9p
bWFnZS0+dXJsKCkuc3RyaW5nKCkpKSB7Ci0gICAgICAgIGJvb2wgZGlkRXZlbnRMaXN0ZW5lckRp
c2Nvbm5lY3RUaGlzRWxlbWVudCA9ICFlbGVtZW50KCkuaXNDb25uZWN0ZWQoKSB8fCAmZWxlbWVu
dCgpLmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIoKTsKLSAgICAgICAgaWYgKGRp
ZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0VGhpc0VsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIAotICAgICAgICB1cGRhdGVSZW5kZXJlcigpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIGlmIChtX2ltYWdlKSB7Ci0gICAgICAgIG1faW1hZ2UtPnJlbW92ZUNsaWVudCgq
dGhpcyk7Ci0gICAgICAgIG1faW1hZ2UgPSBudWxscHRyOwotICAgIH0KLQotICAgIGxvYWRFdmVu
dFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKLSAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQg
PSBmYWxzZTsKLSAgICAKLSAgICBpZiAoaXM8SFRNTE9iamVjdEVsZW1lbnQ+KGVsZW1lbnQoKSkp
Ci0gICAgICAgIGRvd25jYXN0PEhUTUxPYmplY3RFbGVtZW50PihlbGVtZW50KCkpLnJlbmRlckZh
bGxiYWNrQ29udGVudCgpOwotCi0gICAgLy8gT25seSBjb25zaWRlciB1cGRhdGluZyB0aGUgcHJv
dGVjdGlvbiByZWYtY291bnQgb2YgdGhlIEVsZW1lbnQgaW1tZWRpYXRlbHkgYmVmb3JlIHJldHVy
bmluZwotICAgIC8vIGZyb20gdGhpcyBmdW5jdGlvbiBhcyBkb2luZyBzbyBtaWdodCByZXN1bHQg
aW4gdGhlIGRlc3RydWN0aW9uIG9mIHRoaXMgSW1hZ2VMb2FkZXIuCi0gICAgdXBkYXRlZEhhc1Bl
bmRpbmdFdmVudCgpOwotfQotCiB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdMb2Fk
RXZlbnQoKQogewogICAgIGlmICghbV9oYXNQZW5kaW5nTG9hZEV2ZW50KQpAQCAtNTYyLDExICs1
MDAsNiBAQCB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdFcnJvckV2CiAgICAgdXBk
YXRlZEhhc1BlbmRpbmdFdmVudCgpOwogfQogCi12b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBl
bmRpbmdCZWZvcmVMb2FkRXZlbnRzKFBhZ2UqIHBhZ2UpCi17Ci0gICAgYmVmb3JlTG9hZEV2ZW50
U2VuZGVyKCkuZGlzcGF0Y2hQZW5kaW5nRXZlbnRzKHBhZ2UpOwotfQotCiB2b2lkIEltYWdlTG9h
ZGVyOjpkaXNwYXRjaFBlbmRpbmdMb2FkRXZlbnRzKFBhZ2UqIHBhZ2UpCiB7CiAgICAgbG9hZEV2
ZW50U2VuZGVyKCkuZGlzcGF0Y2hQZW5kaW5nRXZlbnRzKHBhZ2UpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmgJKHJldmlzaW9uIDI4NzUyNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMiArNzAsMTAgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRMb2FkTWFudWFsbHkoYm9vbCBsb2FkTWFudWFsbHkpIHsg
bV9sb2FkTWFudWFsbHkgPSBsb2FkTWFudWFsbHk7IH0KIAotICAgIGJvb2wgaGFzUGVuZGluZ0Jl
Zm9yZUxvYWRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVu
dDsgfQogICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQ
ZW5kaW5nTG9hZEV2ZW50IHx8IG1faGFzUGVuZGluZ0Vycm9yRXZlbnQ7IH0KIAogICAgIHZvaWQg
ZGlzcGF0Y2hQZW5kaW5nRXZlbnQoSW1hZ2VFdmVudFNlbmRlciopOwogCi0gICAgc3RhdGljIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50cyhQYWdlKik7CiAgICAgc3RhdGljIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50cyhQYWdlKik7CiAgICAgc3RhdGljIHZvaWQgZGlz
cGF0Y2hQZW5kaW5nRXJyb3JFdmVudHMoUGFnZSopOwogCkBAIC05OCw3ICs5Niw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHVwZGF0ZWRIYXNQZW5kaW5nRXZlbnQoKTsKIAotICAgIHZvaWQgZGlz
cGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCk7CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdM
b2FkRXZlbnQoKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0Vycm9yRXZlbnQoKTsKIApAQCAt
MTIzLDcgKzEyMCw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcHJvdGVjdGVk
RWxlbWVudDsKICAgICBBdG9tU3RyaW5nIG1fZmFpbGVkTG9hZFVSTDsKICAgICBWZWN0b3I8UmVm
UHRyPERlZmVycmVkUHJvbWlzZT4+IG1fZGVjb2RpbmdQcm9taXNlczsKLSAgICBib29sIG1faGFz
UGVuZGluZ0JlZm9yZUxvYWRFdmVudCA6IDE7CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdMb2FkRXZl
bnQgOiAxOwogICAgIGJvb2wgbV9oYXNQZW5kaW5nRXJyb3JFdmVudCA6IDE7CiAgICAgYm9vbCBt
X2ltYWdlQ29tcGxldGUgOiAxOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkocmV2
aXNpb24gMjg3NTI1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMjAsMTQgKzMyMCw2IEBAIExhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250
cm9sVUlFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1MZWdh
Y3lCZWZvcmVMb2FkRXZlbnRFbmFibGVkOgotICBjb21tZW50OiA+LQotICAgIEZJTVhFOiBUaGlz
IGRvZXMgbm90IGFwcGVhciB0byBldmVyIGJlIHNldCB0byB0cnVlLiBSZW1vdmUgb25jZSB2ZXJp
ZmllZC4KLSAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViQ29yZToKLSAgICAg
IGRlZmF1bHQ6IGZhbHNlCi0KIExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDoKICAgdHlwZTogU3Ry
aW5nCiAgIGRlZmF1bHRWYWx1ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCShyZXZpc2lvbiAyODc1MjUpCisrKyBTb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTI0LDkgKzEyNCw2IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChSZWZQdHI8U3QK
ICAgICB9CiAKICAgICBkb1dyaXRlKHNvdXJjZSk7Ci0KLSAgICAvLyBBZnRlciBwYXJzaW5nLCBk
aXNwYXRjaCBpbWFnZSBiZWZvcmVsb2FkIGV2ZW50cy4KLSAgICBJbWFnZUxvYWRlcjo6ZGlzcGF0
Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50cyhudWxscHRyKTsKIH0KIAogdm9pZCBYTUxEb2N1bWVu
dFBhcnNlcjo6aGFuZGxlRXJyb3IoWE1MRXJyb3JzOjpFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hh
ciogbSwgVGV4dFBvc2l0aW9uIHBvc2l0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448203</attachid>
            <date>2022-01-02 21:28:39 -0800</date>
            <delta_ts>2022-01-02 23:22:06 -0800</delta_ts>
            <desc>Fixed the test</desc>
            <filename>bug-234804-20220102212838.patch</filename>
            <type>text/plain</type>
            <size>51661</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU1ZjY2ZjlmMzI1NmI4
NzJkZGVmZGIyNjdiNzU5ODFmOWJkZTZiOC4uNjkzNjY1OGU0MTEwNjQ1NjY3MTY0N2FlOTNmYzJl
ODVhMjJjNzcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIyLTAxLTAyICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0ZSBjb2RlIGZvciBi
ZWZvcmVsb2FkIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQ4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBEZWxldGUgY29kZSBmb3IgYmVmb3JlbG9hZCBldmVudCBhcyB0aGUgZXZlbnQgaGFzIGJl
ZW4gZGlzYWJsZWQgc3VjY2Vzc2Z1bGx5IGluIHIyNjE5NDYuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50Lmg6IFJlbW92ZWQuCisgICAgICAg
ICogZG9tL0JlZm9yZUxvYWRFdmVudC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdENsb3NlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRMaXN0ZW5lclR5cGVJZk5lZWRlZCk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hCZWZv
cmVMb2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICog
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCk6IG1faXNIYW5kbGluZ0JlZm9yZUxvYWQg
aXMgbmV2ZXIgdHJ1ZS4KKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg6Cisg
ICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
RWxlbWVudDo6cmVxdWVzdENsYXNzaWNTY3JpcHQpOiBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBh
bHdheXMgcmV0dXJuZWQgdHJ1ZQorICAgICAgICB3aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMgZGlz
YWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2Ny
aXB0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCk6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOiBUaGVyZSBpcyBuZXZlciBhIHBlbmRp
bmcgYmVmb3JlbG9hZCBldmVudC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnNob3VsZExvYWRMaW5rKTogZGlz
cGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVybmVkIHRydWUKKyAgICAgICAgd2hlbiBi
ZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRp
YVJlc291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpz
ZWxlY3ROZXh0U291cmNlQ2hpbGQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojp1cGRhdGVX
aWRnZXQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpndWFyZGVkRGlzcGF0Y2hCZWZvcmVM
b2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6
OnBsdWdpbldpZGdldCBjb25zdCk6IG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyIGlzIG5ldmVy
IHRydWUuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVt
ZW50OjpjYW5Mb2FkVVJMKTogZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVybmVk
IHRydWUgd2hlbgorICAgICAgICBiZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAgICAg
ICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1
dFR5cGU6OmF0dGFjaCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdCk6IFJlbW92
ZWQgdGhlIGNvbW1lbnQgcmVmZXJyaW5nIHRvIGJlZm9yZWxvYWQgZXZlbnQKKyAgICAgICAgYnV0
IGtlZXAgUmVmIHNpbmNlIHdlJ3JlIGNhbGxpbmcgYSBidW5jaCBvZiBmdW5jdGlvbnMgd2l0aCBt
X2ZyYW1lIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRXaXRoRG9jdW1lbnRMb2FkZXIpOiBEZWxldGVkIGEgYmxvY2sgb2Ygbm8tb3AgY29kZSBzaW5j
ZQorICAgICAgICBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBhbHdheXMgcmV0dXJuZWQgdHJ1ZSB3
aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMgZGlzYWJsZWQuCisgICAgICAgICogbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJlZm9yZUxvYWRFdmVudFNlbmRlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6SW1hZ2VMb2FkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6On5JbWFnZUxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUxvYWRlcjo6Y2xlYXJJbWFnZVdpdGhvdXRDb25zaWRlcmluZ1BlbmRpbmdMb2Fk
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5n
QmVmb3JlTG9hZEV2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0JlZm9yZUxvYWRF
dmVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCk6IEFkZGVkIGEgbWlzc2luZyBzZXR0aW5ncyBjaGVjay4K
KyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjphcHBlbmQpOgorCiAyMDIyLTAxLTAyICBEaWVnbyBQ
aW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVW5yZXZpZXdl
ZCBidWlsZCBmaXggYWZ0ZXIgcjI4NzUxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0OWMwMTAx
NmNmMzg3ZDI0OGYxNGIxMTQwYzI4NGNjMDI0ZGU0ZmQ3Li4zYzg4ZTdhMDUxNDZhNjRjYTdjNjhm
M2ZjMWE2MmM0YzY1NmQzMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODQzLDcgKzg0Myw2
IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgZG9tL0FkZEV2ZW50TGlzdGVu
ZXJPcHRpb25zLmlkbAogICAgIGRvbS9BbmltYXRpb25FdmVudC5pZGwKICAgICBkb20vQXR0ci5p
ZGwKLSAgICBkb20vQmVmb3JlTG9hZEV2ZW50LmlkbAogICAgIGRvbS9CZWZvcmVVbmxvYWRFdmVu
dC5pZGwKICAgICBkb20vQnJvYWRjYXN0Q2hhbm5lbC5pZGwKICAgICBkb20vQ0RBVEFTZWN0aW9u
LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
aW5kZXggZDZjYWMwYjRhYTVhMTJjMmYyYjJjYWU3NTBiOTUyZjZkZTlmMzgyOC4uNWZkOGExMGI3
NWEzNjg0OTFjOWY2MTRkYmE5MjQyNWJmOGNiMTRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC05OTAsNyArOTkwLDYgQEAgJChQUk9K
RUNUX0RJUikvZG9tL0Fic3RyYWN0UmFuZ2UuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQWRkRXZl
bnRMaXN0ZW5lck9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQW5pbWF0aW9uRXZlbnQu
aWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQXR0ci5pZGwKLSQoUFJPSkVDVF9ESVIpL2RvbS9CZWZv
cmVMb2FkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaWRs
CiAkKFBST0pFQ1RfRElSKS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5pZGwKICQoUFJPSkVDVF9ESVIp
L2RvbS9DREFUQVNlY3Rpb24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGU4MjQ3Yjc4ZjJjMTI2YWFlYWFmNmQxNjFkYjA4Mjkz
MTZjM2RkYTkuLjhiZGE2ODZlZjc5MzBjZjg1MWQ1ZDY1YmExNWM1M2UzNTc0NTNiNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0y
NjQsOCArMjY0LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNCYXNlQXVkaW9Db250ZXh0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNCYXNlQXVkaW9Db250ZXh0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmFzaWNDcmVkZW50aWFsLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCYXNpY0NyZWRlbnRpYWwuaAot
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCZWZvcmVMb2Fk
RXZlbnQuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0JlZm9yZUxvYWRFdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0JlZm9yZVVubG9hZEV2ZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCZWZvcmVVbmxvYWRFdmVudC5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0JpcXVhZEZpbHRlck5vZGUuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0OWFkYmMyNDM2MGIxNjllY2ExZTMyMzM2
MDIzNTA5NjQ1OTNhZTYyLi5kNDc0MmY3YTQ0ZTFiN2FjYWM0ZjQ0ZDU1NjllZTk1Y2E4Yzk0ZTJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTg0OCw3ICs4NDgsNiBAQCBKU19C
SU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvZG9tL0FkZEV2ZW50TGlzdGVuZXJPcHRp
b25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQW5pbWF0aW9uRXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9BdHRyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vQmVmb3JlTG9hZEV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vQ0RBVEFTZWN0aW9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJkNWE3NDc5Y2IzOWU0NmNj
OTEwNDAwZjRlZTM4NDkzMjRjNzUzMWYuLmUxNDEyYzQwZTYyNGUyY2M3ODYwNGQ0NzE0ODExMGFl
MTI4MjJmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04OTgsNyArODk4LDYgQEAgZG9tL0FjdGl2ZURP
TU9iamVjdC5jcHAKIGRvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uY3BwCiBkb20vQW5pbWF0
aW9uRXZlbnQuY3BwCiBkb20vQXR0ci5jcHAKLWRvbS9CZWZvcmVMb2FkRXZlbnQuY3BwCiBkb20v
QmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwCiBkb20vQmVmb3JlVW5sb2FkRXZlbnQuY3BwCiBk
b20vQm91bmRhcnlQb2ludC5jcHAKQEAgLTI5MDYsNyArMjkwNSw2IEBAIEpTQXV0b21hdGlvblJh
dGUuY3BwCiBKU0JhclByb3AuY3BwCiBKU0Jhc2VBdWRpb0NvbnRleHQuY3BwCiBKU0Jhc2ljQ3Jl
ZGVudGlhbC5jcHAKLUpTQmVmb3JlTG9hZEV2ZW50LmNwcAogSlNCZWZvcmVVbmxvYWRFdmVudC5j
cHAKIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAKIEpTQmlxdWFkRmlsdGVyT3B0aW9ucy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAzYzllYzI1YzBhOTI0NjA2YWUyZWIzMjc2NGExNzhkZGNjOTQ0M2Y4Li4wMTY2YjI0M2JjNzVm
M2Q5YmM3ZDhjMzRmNDA1ZjE3YWQyYjFiNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MjEzLDggKzQyMTMsNiBAQAogCQlC
QzhDOEZBRTBERENEMzFCMDBCNTkyRjQgLyogUmVuZGVyU3R5bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEM4RkFDMEREQ0QzMUIwMEI1OTJGNCAv
KiBSZW5kZXJTdHlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDOTI2RjgxMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFtZVNldEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTI2
RjdGMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnQuaCAqLzsgfTsKIAkJ
QkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NDM5QzIxMTZDRjQ5NDAwNDhDNzUw
IC8qIEpTTm9kZUN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDOTQ2MkQ4MTA3QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTQ2MkQ3
MTA3QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLzsgfTsKLQkJQkM5NDYzNDgx
MDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0NjM0NzEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCAqLzsgfTsKIAkJQkM5NEQxNEYwQzI3NUM2ODAwNkJDNjE3IC8q
IEpTSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM5NEQxNEQwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5oICovOyB9OwogCQlCQzk0
RDE1NDBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NEQxNTEwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rv
cnkuaCAqLzsgfTsKIAkJQkM5NkRCNDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVs
T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Qzk2REI0MjBGM0E4ODBFMDA1NzNDQjMgLyogUmVuZGVyQm94TW9kZWxPYmplY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUzNjksMTAgKzE1
MzY3LDYgQEAKIAkJQkM5MjZGN0UwQzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRnJh
bWVTZXRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5MjZGN0Yw
QzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRnJhbWVTZXRFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDOTQzOUMyMTE2Q0Y0OTQwMDQ4Qzc1MCAvKiBKU05vZGVDdXN0
b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOb2RlQ3VzdG9tLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MkNCMTA3QTdBMzkwMDg1NzE5MyAvKiBC
ZWZvcmVMb2FkRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJlZm9yZUxvYWRFdmVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MkQ3MTA3QTdCNEMwMDg1
NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmVmb3JlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2
MzQ1MTA3QTkzNEIwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JlZm9yZUxvYWRFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MzQ3MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9y
ZUxvYWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JlZm9yZUxv
YWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk0RDEwNzBDMjc0Rjg4
MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TY3JlZW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDOTREMTRDMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSGlzdG9yeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDOTREMTREMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hp
c3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSGlzdG9yeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcyNTgsNyArMTcyNTIsNiBAQAogCQlFM0JG
MTlFMTIyQUYyRjU1MDA5Qzk5MjYgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUUzMjJBRjJGQTUwMDlDOTkyNiAvKiBPdmVy
Y29uc3RyYWluZWRFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE92ZXJjb25zdHJh
aW5lZEVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlF
NDIyQUYyRkNGMDA5Qzk5MjYgLyogQ2xvc2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
bG9zZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTNCRjE5RTUyMkFG
MkZGNDAwOUM5OTI2IC8qIEJlZm9yZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
ZWZvcmVMb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlF
NjIyQUYzMDJBMDA5Qzk5MjYgLyogSGFzaENoYW5nZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhhc2hDaGFuZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
QkYxOUU3MjJBRjMwOUYwMDlDOTkyNiAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0MwNDEyRDI1NENBMjlCMDAyMUQwRTYgLyog
U3lzdGVtU291bmRNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5
c3RlbVNvdW5kTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc2Njcs
OCArMjc2NjAsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMzE5ODQ4MDMxQTFFNkI1RDAwQTEz
MzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuY3BwICovLAogCQkJCTMxOTg0ODA0MUExRTZCNUQwMEEx
MzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi8sCi0JCQkJQkM5NDYzNDUxMDdBOTM0QjAwODU3
MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmNwcCAqLywKLQkJCQlCQzk0NjM0NzEwN0E5MzY2MDA4
NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCAqLywKIAkJCQk4MjI1NDMyQ0E5RDRCNENGNDYy
OEVDN0YgLyogSlNCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8sCiAJCQkJMjlFMDRBMjdCRUQyRjgx
Rjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCAqLywKIAkJCQk4MzZEMDMyRDFEQThB
MTMyMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5jcHAgKi8sCkBAIC0zMjA3Nyw5ICszMjA2
OCw2IEBACiAJCQkJQThDNEE3RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAqLywKIAkJCQk5
M0VFQzFFNTA5QzI4Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8sCiAJCQkJQThDNEE3RjkwOUQ1
NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5oICovLAotCQkJCUUzQkYxOUU1MjJBRjJGRjQwMDlD
OTkyNiAvKiBCZWZvcmVMb2FkRXZlbnQuY3BwICovLAotCQkJCUJDOTQ2MkQ3MTA3QTdCNEMwMDg1
NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLywKLQkJCQlCQzk0NjJDQjEwN0E3QTM5MDA4NTcx
OTMgLyogQmVmb3JlTG9hZEV2ZW50LmlkbCAqLywKIAkJCQlBQjIzQTMyNTA5QkJBN0QwMDA2N0ND
NTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwICovLAogCQkJCUFCMjNBMzI2MDlCQkE3
RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oICovLAogCQkJCTg1MDMxQjI2
MEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8sCkBAIC0zMzQ2OSw3
ICszMzQ1Nyw2IEBACiAJCQkJNzE1NkJDQTEyMUNBMzUwRjAwNTM0Mzk3IC8qIEJhc2ljRWZmZWN0
VGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlGQkQ2QUY4QTE1RUYyNURGMDA4QjcxMTAgLyog
QmFzaWNTaGFwZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkJENkFGOEMxNUVGMjYw
NDAwOEI3MTEwIC8qIEJhc2ljU2hhcGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzk0NjJEODEw
N0E3QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
QjIzQTMyODA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDMxQjNEMEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMjQwRDAwNkMxRDAwRUY2RjI2IC8qIEJp
ZGlDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTM1MDI5LDcgKzM1MDE2LDYgQEAKIAkJCQk1
N0RDRUQ5ODIxNDg4MjE2MDAxNkI4NDcgLyogSlNBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1N0M3QTY5RjFFNTc5MTc4MDBDNjdENzEgLyogSlNCYXNpY0Ny
ZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAv
KiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZD
MTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
RjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFMkQ5OUNFMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCmluZGV4IDIzM2E4Y2FmZTM0MzNiOTljMTY1NzkyZmMwMWZkOWEzNzA4ZmYyYzguLjkyYWNj
ODg4YTU2Y2MyN2I2YzUyNDAwNmUwYzRmZGJhZThmMzhmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTYyLDcgKzYyLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvclJlc3BvbnNlKSBcCiAgICAgbWFjcm8o
QmFzZUF1ZGlvQ29udGV4dCkgXAotICAgIG1hY3JvKEJlZm9yZUxvYWRFdmVudCkgXAogICAgIG1h
Y3JvKEJsb2JFdmVudCkgXAogICAgIG1hY3JvKEJyb2FkY2FzdENoYW5uZWwpIFwKICAgICBtYWNy
byhDYWNoZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWRiZTUwOGJmMzA0MTliMDBlNzlmMzg4NmQxNTIxMzI3OWVk
M2FkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQmVmb3JlTG9hZEV2ZW50LmgiCi0KLSNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCZWZvcmVMb2FkRXZlbnQpOwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDlhN2Q0MjFmM2E0NWM5NDZmOWJlNDNhMzlmMTc4ZjZiYWIzNWJl
M2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQmVmb3JlTG9hZEV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEJlZm9yZUxvYWRF
dmVudCk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxCZWZvcmVMb2FkRXZlbnQ+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHVybCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJl
Zm9yZUxvYWRFdmVudCh1cmwpKTsKLSAgICB9Ci0KLSAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5p
dCB7Ci0gICAgICAgIFN0cmluZyB1cmw7Ci0gICAgfTsKLQotICAgIHN0YXRpYyBSZWY8QmVmb3Jl
TG9hZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5p
dGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmVmb3JlTG9hZEV2ZW50KHR5cGUsIGluaXRpYWxp
emVyLCBpc1RydXN0ZWQpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0
IHsgcmV0dXJuIG1fdXJsOyB9Ci0KLSAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJlZm9yZUxvYWRFdmVudEludGVyZmFjZVR5cGU7IH0K
LQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiB1
cmwpCi0gICAgICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCwgQ2FuQnVi
YmxlOjpObywgSXNDYW5jZWxhYmxlOjpZZXMpCi0gICAgICAgICwgbV91cmwodXJsKQotICAgIHsK
LSAgICB9Ci0KLSAgICBCZWZvcmVMb2FkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCi0gICAgICAgIDogRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKLSAgICAgICAgLCBtX3VybChpbml0aWFs
aXplci51cmwpCi0gICAgewotICAgIH0KLQotICAgIFN0cmluZyBtX3VybDsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVM
b2FkRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzMjA5YWNhNWRlMzkwZDM0YjQ1MWY3N2E2ZWM3
YWVhMjIyNzk1YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqCi0gKi8KLQotWwotICAgIEVuYWJsZWRCeVNldHRpbmc9TGVnYWN5QmVmb3JlTG9hZEV2ZW50
RW5hYmxlZCwKLSAgICBFeHBvc2VkPVdpbmRvdwotXSBpbnRlcmZhY2UgQmVmb3JlTG9hZEV2ZW50
IDogRXZlbnQgewotICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBCZWZv
cmVMb2FkRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB1cmw7Ci19OwotCi1kaWN0aW9uYXJ5IEJlZm9yZUxvYWRFdmVudEluaXQgOiBF
dmVudEluaXQgewotICAgIERPTVN0cmluZyB1cmwgPSAiIjsKLX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA0MmRhY2QyZGQ1Y2UzZTVmNjIzMzNhMjE2MmNjMzc2NzQ2ZThmYjg5Li5mNTlm
MDUxYmY0MzY4M2ZkZTZmODMzMjhiODA0MjY0Mjc1NjFlZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTMxNzksNyArMzE3OSw2IEBAIHZvaWQgRG9jdW1lbnQ6OmltcGxpY2l0Q2xvc2Uo
KQogICAgICAgICAvLyBGb3Igbm93LCBvbmx5IGRvIHRoaXMgd2hlbiB0aGVyZSBpcyBhIEZyYW1l
LCBvdGhlcndpc2UgdGhpcyBjb3VsZCBjYXVzZSBKUyByZWVudHJhbmN5CiAgICAgICAgIC8vIGJl
bG93IFNWRyBmb250IHBhcnNpbmcsIGZvciBleGFtcGxlLiA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTM2MjY5PgogICAgICAgICBpZiAoYXV0byogY3VycmVudFBhZ2UgPSBwYWdlKCkpIHsKLSAgICAg
ICAgICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnRzKGN1cnJl
bnRQYWdlKTsKICAgICAgICAgICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdMb2FkRXZl
bnRzKGN1cnJlbnRQYWdlKTsKICAgICAgICAgICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRp
bmdFcnJvckV2ZW50cyhjdXJyZW50UGFnZSk7CiAgICAgICAgICAgICBIVE1MTGlua0VsZW1lbnQ6
OmRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudHMoY3VycmVudFBhZ2UpOwpAQCAtNTI4Miw4ICs1Mjgx
LDYgQEAgdm9pZCBEb2N1bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRvbVN0
cmluZyYgZXZlbnRUeXBlKQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoQU5JTUFUSU9OSVRFUkFU
SU9OX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndl
YmtpdFRyYW5zaXRpb25FbmRFdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5z
aXRpb25lbmRFdmVudCkKICAgICAgICAgYWRkTGlzdGVuZXJUeXBlKFRSQU5TSVRJT05FTkRfTElT
VEVORVIpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYmVmb3JlbG9h
ZEV2ZW50KQotICAgICAgICBhZGRMaXN0ZW5lclR5cGUoQkVGT1JFTE9BRF9MSVNURU5FUik7CiAg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCkKICAgICAg
ICAgYWRkTGlzdGVuZXJUeXBlKFNDUk9MTF9MSVNURU5FUik7CiAgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRtb3VzZWZvcmNld2lsbGJlZ2luRXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCmluZGV4IDgwNWQwY2I1NmE0MGE5MmZhZDIyYjc3ZDdlZGZjMTZhZDY1NTRm
NzIuLjllOWI3YTBjOGU4ZTYwN2QwMTVmYTM0ODlhZDA1ZmZmMzcxMTk3ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCkBAIC04OTgsMTMgKzg5OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIEFOSU1BVElP
TlNUQVJUX0xJU1RFTkVSICAgICAgICAgICAgICA9IDEgPDwgOCwKICAgICAgICAgQU5JTUFUSU9O
SVRFUkFUSU9OX0xJU1RFTkVSICAgICAgICAgID0gMSA8PCA5LAogICAgICAgICBUUkFOU0lUSU9O
RU5EX0xJU1RFTkVSICAgICAgICAgICAgICAgPSAxIDw8IDEwLAotICAgICAgICBCRUZPUkVMT0FE
X0xJU1RFTkVSICAgICAgICAgICAgICAgICAgPSAxIDw8IDExLAotICAgICAgICBTQ1JPTExfTElT
VEVORVIgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEyLAotICAgICAgICBGT1JDRVdJTExC
RUdJTl9MSVNURU5FUiAgICAgICAgICAgICAgPSAxIDw8IDEzLAotICAgICAgICBGT1JDRUNIQU5H
RURfTElTVEVORVIgICAgICAgICAgICAgICAgPSAxIDw8IDE0LAotICAgICAgICBGT1JDRURPV05f
TElTVEVORVIgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE1LAotICAgICAgICBGT1JDRVVQX0xJ
U1RFTkVSICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE2LAotICAgICAgICBSRVNJWkVfTElT
VEVORVIgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE3CisgICAgICAgIFNDUk9MTF9MSVNU
RU5FUiAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTEsCisgICAgICAgIEZPUkNFV0lMTEJF
R0lOX0xJU1RFTkVSICAgICAgICAgICAgICA9IDEgPDwgMTIsCisgICAgICAgIEZPUkNFQ0hBTkdF
RF9MSVNURU5FUiAgICAgICAgICAgICAgICA9IDEgPDwgMTMsCisgICAgICAgIEZPUkNFRE9XTl9M
SVNURU5FUiAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTQsCisgICAgICAgIEZPUkNFVVBfTElT
VEVORVIgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTUsCisgICAgICAgIFJFU0laRV9MSVNU
RU5FUiAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTYKICAgICB9OwogCiAgICAgYm9vbCBo
YXNMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgY29uc3QgeyByZXR1cm4g
KG1fbGlzdGVuZXJUeXBlcyAmIGxpc3RlbmVyVHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KaW5kZXggMmUzYTE2ZDdhZTYxODdjMGE4OTI3YTA0ZjAyZmU3ZmYzZjZmZGIzMy4uNTljN2Vm
YjlhZDU5NzRiNGIyMzViM2I2Mjc2NDEyZTVhNWU4NzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KQEAgLTcsNyArNyw2IEBAIEV2ZW50cyBpbnRlcmZhY2VOYW1lPUV2ZW50CiBIVE1MRXZl
bnRzIGludGVyZmFjZU5hbWU9RXZlbnQKIEFuaW1hdGlvbkV2ZW50CiBBbmltYXRpb25QbGF5YmFj
a0V2ZW50Ci1CZWZvcmVMb2FkRXZlbnQKIEJlZm9yZVVubG9hZEV2ZW50CiBDbGlwYm9hcmRFdmVu
dAogQ2xvc2VFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDUxZTBhY2EzNDQ0OWZjM2MzZDY1OWIy
NjRjZjg4NWFiMzNmN2Y4Y2QuLmY5ODJlNDE1ZmJkNWZhOWUwOGYzYmFkNjk4MmY0NmM0ZTBhYzJh
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdHRyLmgiCi0jaW5jbHVkZSAiQmVmb3JlTG9hZEV2ZW50
LmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIgogI2luY2x1ZGUgIkNvbW1v
blZNLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIgpAQCAtNDIs
NiArNDEsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnRUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJFdmVu
dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFyZWFFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCkBAIC0yNDExLDIwICsyNDExLDYg
QEAgdm9pZCBOb2RlOjpkaXNwYXRjaERPTUFjdGl2YXRlRXZlbnQoRXZlbnQmIHVuZGVybHlpbmdD
bGlja0V2ZW50KQogICAgICAgICB1bmRlcmx5aW5nQ2xpY2tFdmVudC5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogfQogCi1ib29sIE5vZGU6OmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQotewotICAgIGlmICghZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxlZ2FjeUJl
Zm9yZUxvYWRFdmVudEVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAo
IWRvY3VtZW50KCkuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpCRUZPUkVMT0FEX0xJU1RFTkVS
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBSZWY8Tm9kZT4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7Ci0gICAgYXV0byBldmVudCA9IEJlZm9yZUxvYWRFdmVudDo6Y3JlYXRlKHNvdXJjZVVS
TCk7Ci0gICAgZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgcmV0dXJuICFldmVudC0+ZGVmYXVs
dFByZXZlbnRlZCgpOwotfQotCiB2b2lkIE5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudCgpCiB7CiAg
ICAgZGlzcGF0Y2hTY29wZWRFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBFdmVu
dDo6SXNDb21wb3NlZDo6WWVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBiNDU4ZGE5YTMzMzVhYjFhNmNm
MTMxYTk4OTM2ZmQ4NTMwMjMxYzJmLi45Y2U4ODFmYzFiYzdlZDhjNjI3Y2Y3Yzk1MGQyNTE2NWVm
M2ZhNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTQ3OCw4ICs0NzgsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGFsbG93c0RvdWJsZVRhcEdlc3R1cmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAjZW5kaWYKIAotICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpOwotCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaElucHV0RXZl
bnQoKTsKIAogICAgIC8vIFBlcmZvcm0gdGhlIGRlZmF1bHQgYWN0aW9uIGZvciBhbiBldmVudC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggM2Uw
ZjdlNTQzNWVhMzdmYzZiOWRjZmI0MWZlMzYxODUyNWYyZGYxMC4uMThkODc3MmJlZWE0YjM2OGJl
ZjQzOWM5ZWY1OThhMDFjYzZmOTczNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAKQEAgLTg1LDEwICs4NSw2IEBAIFJlZjxOb2RlPiBQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwg
Q2xvCiAKIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogewot
ICAgIC8vIFByZXZlbnQgcmVjdXJzaXZlIGxvYWRpbmcgb2Ygc3R5bGVzaGVldC4KLSAgICBpZiAo
bV9pc0hhbmRsaW5nQmVmb3JlTG9hZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fdGFy
Z2V0ID09ICJ4bWwtc3R5bGVzaGVldCIgJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIHBhcmVudE5v
ZGUoKSA9PSAmZG9jdW1lbnQoKSkgewogICAgICAgICAvLyBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIveG1sLXN0eWxlc2hlZXQvCiAgICAgICAgIC8vICMjIyBzdXBwb3J0IHN0eWxlc2hlZXQgaW5j
bHVkZWQgaW4gYSBmcmFnbWVudCBvZiB0aGlzIChvciBhbm90aGVyKSBkb2N1bWVudApAQCAtMTQz
LDEyICsxMzksNiBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0
KCkKIAogICAgICAgICAgICAgU3RyaW5nIHVybCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJl
Zikuc3RyaW5nKCk7CiAKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJv
b2w+IGNoYW5nZShtX2lzSGFuZGxpbmdCZWZvcmVMb2FkLCB0cnVlKTsKLSAgICAgICAgICAgIGlm
ICghZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQodXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGJvb2wgZGlkRXZlbnRMaXN0ZW5lckRpc2Nv
bm5lY3RUaGlzRWxlbWVudCA9ICFpc0Nvbm5lY3RlZCgpIHx8ICZkb2N1bWVudCgpICE9IG9yaWdp
bmFsRG9jdW1lbnQucHRyKCk7CiAgICAgICAgICAgICBpZiAoZGlkRXZlbnRMaXN0ZW5lckRpc2Nv
bm5lY3RUaGlzRWxlbWVudCkKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKaW5kZXggNTRkY2Y3NTgxMjRlNTQ3MzdkMGRm
MDFmODIxNGY0NTMxMjk3ZGY5OC4uNjQwZGM0YzlkOWEwMjg3NDE0ZmY3MjlhOWJiYWQzODJmMjc2
OWMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaApAQCAt
ODksNyArODksNiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShYU0xUKQogICAgIGJvb2wgbV9pc1hT
TCB7IGZhbHNlIH07CiAjZW5kaWYKLSAgICBib29sIG1faXNIYW5kbGluZ0JlZm9yZUxvYWQgeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCmluZGV4IDIzOTJhM2FhZWY1ZTk4YWY3ZjM5Y2M5ODQzOWRjYTY1YTdhNWEz
MWYuLjBmODI2YTg2M2RlMjIyZmZjMDkxZmZlMGY0OTRkYjljYjM4OWI0YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTI4MSw5ICsyODEsNyBAQCBib29sIFNjcmlwdEVs
ZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0
aW9uLCBMZWdhYwogCiBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RDbGFzc2ljU2NyaXB0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKQogewotICAgIFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1
bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7Ci0gICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hC
ZWZvcmVMb2FkRXZlbnQoc291cmNlVVJMKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJl
ZiBvcmlnaW5hbERvY3VtZW50ID0gbV9lbGVtZW50LmRvY3VtZW50KCk7CiAgICAgYm9vbCBkaWRF
dmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50ID0gIW1fZWxlbWVudC5pc0Nvbm5lY3Rl
ZCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpOwog
ICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0zMzMsOSArMzMxLDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1
ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikK
IAogICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgewogICAgICAgICBTdHJpbmcgc291cmNl
VVJMID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKLSAgICAgICAgUmVmPERvY3VtZW50PiBvcmln
aW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKLSAgICAgICAgaWYgKCFtX2VsZW1l
bnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVVJMKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgUmVmIG9yaWdpbmFsRG9jdW1lbnQgPSBtX2VsZW1lbnQuZG9jdW1l
bnQoKTsKIAogICAgICAgICBib29sIGRpZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0VGhpc0VsZW1l
bnQgPSAhbV9lbGVtZW50LmlzQ29ubmVjdGVkKCkgfHwgJm1fZWxlbWVudC5kb2N1bWVudCgpICE9
IG9yaWdpbmFsRG9jdW1lbnQucHRyKCk7CiAgICAgICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlz
Y29ubmVjdFRoaXNFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5j
cHAKaW5kZXggY2VmNmQyYmE3MzgwNWU2YTAzYzBmNzhiNjFhNDQ5YzFlNWVjMzQ0My4uMzNhN2U5
MDdlOTBlMDQ2NDRlYjBkZThiZjQyZWQzNzFmNGU5NDFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC0xNjEsMTYgKzE2MSw2IEBAIHZvaWQgSFRNTEVtYmVk
RWxlbWVudDo6dXBkYXRlV2lkZ2V0KENyZWF0ZVBsdWdpbnMgY3JlYXRlUGx1Z2lucykKICAgICBw
YXJhbWV0ZXJzRm9yUGx1Z2luKHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKIAogICAgIFJlZjxI
VE1MRW1iZWRFbGVtZW50PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsgLy8gTG9hZGluZyB0aGUgcGx1
Z2luIG1pZ2h0IHJlbW92ZSB1cyBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICBib29sIGJlZm9yZUxv
YWRBbGxvd2VkTG9hZCA9IGd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudChtX3VybCk7Ci0g
ICAgaWYgKCFiZWZvcmVMb2FkQWxsb3dlZExvYWQpIHsKLSAgICAgICAgaWYgKGlzPFBsdWdpbkRv
Y3VtZW50Pihkb2N1bWVudCgpKSkgewotICAgICAgICAgICAgLy8gUGx1Z2lucyBpbnNpZGUgcGx1
Z2luIGRvY3VtZW50cyBsb2FkIGRpZmZlcmVudGx5IHRoYW4gb3RoZXIgcGx1Z2lucy4gQnkgdGhl
IHRpbWUKLSAgICAgICAgICAgIC8vIHdlIGFyZSBoZXJlIGluIGEgcGx1Z2luIGRvY3VtZW50LCB0
aGUgbG9hZCBvZiB0aGUgcGx1Z2luICh3aGljaCBpcyB0aGUgcGx1Z2luIGRvY3VtZW50J3MKLSAg
ICAgICAgICAgIC8vIG1haW4gcmVzb3VyY2UpIGhhcyBhbHJlYWR5IHN0YXJ0ZWQuIFdlIG5lZWQg
dG8gZXhwbGljaXRseSBjYW5jZWwgdGhlIG1haW4gcmVzb3VyY2UgbG9hZCBoZXJlLgotICAgICAg
ICAgICAgZG93bmNhc3Q8UGx1Z2luRG9jdW1lbnQ+KGRvY3VtZW50KCkpLmNhbmNlbE1hbnVhbFBs
dWdpbkxvYWQoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGlmICgh
cmVuZGVyZXIoKSkgLy8gRG8gbm90IGxvYWQgdGhlIHBsdWdpbiBpZiBiZWZvcmVsb2FkIHJlbW92
ZWQgdGhpcyBlbGVtZW50IG9yIGl0cyByZW5kZXJlci4KICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3N2M5OGY1ZTA0NTk3NmY5
OTdjNTg5YmExYWM0M2M1ZmRmMWFiMjgzLi4xMTE4NjUzMDVmY2QxYWFlYjIwODg4Yjk1NTQ2ZmRl
OTZjNmU0ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAg
LTM4Miw4ICszODIsNiBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVy
cygpCiB7CiAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIoKSkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAobV9pbWFnZUxvYWRlci0+aGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgp
KQotICAgICAgICByZXR1cm47CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICB1
cGRhdGVJbWFnZUNvbnRyb2xzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAKaW5kZXggNTllODMxNzk5MDAwNjBlMjQxZmIwNDYzNWUwNGZmMjg4NzhlM2VlMy4uZTFlODY2
Nzc5ODE0NTYyZDEzZWFkNTI2ZDcwODhkZjJhNzJkMDIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjEwLDggKzIxMCw2IEBAIHZvaWQgSFRNTExpbmtFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nCiBib29sIEhUTUxMaW5rRWxlbWVudDo6c2hvdWxkTG9hZExpbmsoKQogewogICAgIFJl
ZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudCA9IGRvY3VtZW50KCk7Ci0gICAgaWYgKCFkaXNw
YXRjaEJlZm9yZUxvYWRFdmVudChnZXROb25FbXB0eVVSTEF0dHJpYnV0ZShocmVmQXR0cikuc3Ry
aW5nKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gQSBiZWZvcmVsb2FkIGhhbmRs
ZXIgbWlnaHQgaGF2ZSByZW1vdmVkIHVzIGZyb20gdGhlIGRvY3VtZW50IG9yIGNoYW5nZWQgdGhl
IGRvY3VtZW50LgogICAgIGlmICghaXNDb25uZWN0ZWQoKSB8fCAmZG9jdW1lbnQoKSAhPSBvcmln
aW5hbERvY3VtZW50LnB0cigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4OTg4OWRmNzY5MTFjNmM2MmY4YTkwNmRk
MWUwYmNlYmY2YzJmMjNmLi4yYThmYmMxM2NiNzllYTAwZmViNTE4OTA2MTRmYjgzYTk2NDM1YTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE0MDYsNyAr
MTQwNiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAo
IWlzU2FmZVRvTG9hZFVSTChhYnNvbHV0ZVVSTCwgQ29tcGxhaW4pIHx8ICFkaXNwYXRjaEJlZm9y
ZUxvYWRFdmVudChhYnNvbHV0ZVVSTC5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIGlmICghaXNT
YWZlVG9Mb2FkVVJMKGFic29sdXRlVVJMLCBDb21wbGFpbikpIHsKICAgICAgICAgICAgICAgICBt
ZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3Ip
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTQ4ODMsNyArNDg4
Myw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVu
dFR5cGUqIGNvbnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAgICAgICAgIH0KIAogICAgICAgICAvLyBJ
cyBpdCBzYWZlIHRvIGxvYWQgdGhpcyB1cmw/Ci0gICAgICAgIGlmICghaXNTYWZlVG9Mb2FkVVJM
KG1lZGlhVVJMLCBhY3Rpb25JZkludmFsaWQpIHx8ICFkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCht
ZWRpYVVSTC5zdHJpbmcoKSkpCisgICAgICAgIGlmICghaXNTYWZlVG9Mb2FkVVJMKG1lZGlhVVJM
LCBhY3Rpb25JZkludmFsaWQpKQogICAgICAgICAgICAgZ290byBDaGVja0FnYWluOwogCiAgICAg
ICAgIC8vIEEgJ2JlZm9yZWxvYWQnIGV2ZW50IGhhbmRsZXIgY2FuIG11dGF0ZSB0aGUgRE9NLCBz
byBjaGVjayB0byBzZWUgaWYgdGhlIHNvdXJjZSBlbGVtZW50IGlzIHN0aWxsIGEgY2hpbGQgbm9k
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNjNiZmE3
ZWQxM2QwYWIxZjI0MTJlNzhhMGNlMTI2OWM2NTRhYzU2MS4uZTc1NzQxM2MwODIxZTdiMWM2MzA3
NDYyMWViNzY2MTI3NWM4ZDkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKQEAgLTI3NiwxNCArMjc2LDEzIEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnVw
ZGF0ZVdpZGdldChDcmVhdGVQbHVnaW5zIGNyZWF0ZVBsdWdpbnMpCiAKICAgICBzZXROZWVkc1dp
ZGdldFVwZGF0ZShmYWxzZSk7CiAKLSAgICBSZWY8SFRNTE9iamVjdEVsZW1lbnQ+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOyAvLyBiZWZvcmVsb2FkIGFuZCBwbHVnaW4gbG9hZGluZyBjYW4gbWFrZSBh
cmJpdHJhcnkgRE9NIG11dGF0aW9ucy4KLSAgICBib29sIGJlZm9yZUxvYWRBbGxvd2VkTG9hZCA9
IGd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudCh1cmwpOworICAgIFJlZiBwcm90ZWN0ZWRU
aGlzID0gKnRoaXM7IC8vIHBsdWdpbiBsb2FkaW5nIGNhbiBtYWtlIGFyYml0cmFyeSBET00gbXV0
YXRpb25zLgogICAgIGlmICghcmVuZGVyZXIoKSkgLy8gRG8gbm90IGxvYWQgdGhlIHBsdWdpbiBp
ZiBiZWZvcmVsb2FkIHJlbW92ZWQgdGhpcyBlbGVtZW50IG9yIGl0cyByZW5kZXJlci4KICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gRGlzcGF0Y2hpbmcgYSBiZWZvcmVMb2FkIGV2ZW50IGNvdWxk
IGhhdmUgZXhlY3V0ZWQgY29kZSB0aGF0IGNoYW5nZWQgdGhlIGRvY3VtZW50LgogICAgIC8vIE1h
a2Ugc3VyZSB0aGUgVVJMIGlzIHN0aWxsIHNhZmUgdG8gbG9hZC4KLSAgICBib29sIHN1Y2Nlc3Mg
PSBiZWZvcmVMb2FkQWxsb3dlZExvYWQgJiYgaGFzVmFsaWRDbGFzc0lkKCkgJiYgY2FuTG9hZFVS
TCh1cmwpOworICAgIGJvb2wgc3VjY2VzcyA9IGhhc1ZhbGlkQ2xhc3NJZCgpICYmIGNhbkxvYWRV
UkwodXJsKTsKICAgICBpZiAoc3VjY2VzcykKICAgICAgICAgc3VjY2VzcyA9IHJlcXVlc3RPYmpl
Y3QodXJsLCBzZXJ2aWNlVHlwZSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwogICAgIGlmICgh
c3VjY2VzcyAmJiBoYXNGYWxsYmFja0NvbnRlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHAKaW5kZXggYzdmMTVmNTE3NjU5M2M0ZGEwMDI5ZjBhYmQ1MmQ2Yjdk
YWI5NmIzYS4uOGRhYTY2OGNkNjA2ZmIyYWY2M2U3YThhYjY1MzQ0ODA1YzZiMTBmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNywyOSArMTA3LDgg
QEAgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIEhUTUxQbHVnSW5FbGVtZW50OjpiaW5kaW5nc0lu
c3RhbmNlKCkKICAgICByZXR1cm4gbV9pbnN0YW5jZS5nZXQoKTsKIH0KIAotYm9vbCBIVE1MUGx1
Z0luRWxlbWVudDo6Z3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKQotewotICAgIC8vIEZJWE1FOiBPdXIgY3VycmVudCBwbHVnLWluIGxvYWRpbmcg
ZGVzaWduIGNhbid0IGd1YXJhbnRlZSB0aGUgZm9sbG93aW5nCi0gICAgLy8gYXNzZXJ0aW9uIGlz
IHRydWUsIHNpbmNlIHBsdWctaW4gbG9hZGluZyBjYW4gYmUgaW5pdGlhdGVkIGR1cmluZyBsYXlv
dXQsCi0gICAgLy8gYW5kIHN5bmNocm9ub3VzIGxheW91dCBjYW4gYmUgaW5pdGlhdGVkIGluIGEg
YmVmb3JlbG9hZCBldmVudCBoYW5kbGVyIQotICAgIC8vIFNlZSA8aHR0cDovL3dlYmtpdC5vcmcv
Yi83MTI2ND4uCi0gICAgLy8gQVNTRVJUKCFtX2luQmVmb3JlTG9hZEV2ZW50SGFuZGxlcik7Ci0g
ICAgbV9pbkJlZm9yZUxvYWRFdmVudEhhbmRsZXIgPSB0cnVlOwotICAgIC8vIHN0YXRpY19jYXN0
IGlzIHVzZWQgdG8gYXZvaWQgYSBjb21waWxlIGVycm9yIHNpbmNlIGRpc3BhdGNoQmVmb3JlTG9h
ZEV2ZW50Ci0gICAgLy8gaXMgaW50ZW50aW9uYWxseSB1bmRlZmluZWQgb24gdGhpcyBjbGFzcy4K
LSAgICBib29sIGJlZm9yZUxvYWRBbGxvd2VkTG9hZCA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93
bmVyRWxlbWVudCo+KHRoaXMpLT5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVUkwpOwot
ICAgIG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyID0gZmFsc2U7Ci0gICAgcmV0dXJuIGJlZm9y
ZUxvYWRBbGxvd2VkTG9hZDsKLX0KLQogV2lkZ2V0KiBIVE1MUGx1Z0luRWxlbWVudDo6cGx1Z2lu
V2lkZ2V0KFBsdWdpbkxvYWRpbmdQb2xpY3kgbG9hZFBvbGljeSkgY29uc3QKIHsKLSAgICBpZiAo
bV9pbkJlZm9yZUxvYWRFdmVudEhhbmRsZXIpIHsKLSAgICAgICAgLy8gVGhlIHBsdWctaW4gaGFz
bid0IGxvYWRlZCB5ZXQsIGFuZCBpdCBtYWtlcyBubyBzZW5zZSB0byB0cnkgdG8gbG9hZCBpZiBi
ZWZvcmVsb2FkIGhhbmRsZXIgaGFwcGVuZWQgdG8gdG91Y2ggdGhlIHBsdWctaW4gZWxlbWVudC4K
LSAgICAgICAgLy8gVGhhdCB3b3VsZCByZWN1cnNpdmVseSBjYWxsIGJlZm9yZWxvYWQgZm9yIHRo
ZSBzYW1lIGVsZW1lbnQuCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQogICAgIFJl
bmRlcldpZGdldCogcmVuZGVyV2lkZ2V0ID0gbG9hZFBvbGljeSA9PSBQbHVnaW5Mb2FkaW5nUG9s
aWN5OjpMb2FkID8gcmVuZGVyV2lkZ2V0TG9hZGluZ1BsdWdpbigpIDogdGhpcy0+cmVuZGVyV2lk
Z2V0KCk7CiAgICAgaWYgKCFyZW5kZXJXaWRnZXQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCmluZGV4IGUxOTVkN2Q3MThmOWMx
MjFiMjI2MjBkZDhhM2RiNzgxNGVjMmVjODMuLjA5YjA0MTI1OTUxZDk2OTA2OTg4NzBiNmFjNGZj
ZDE0MGI0Mzg1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKQEAg
LTkzLDkgKzkzLDYgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRv
d1Jvb3QmKSBmaW5hbDsKIAotICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIHVzZSBndWFyZGVkRGlz
cGF0Y2hCZWZvcmVMb2FkRXZlbnQgaW5zdGVhZCBvZiBjYWxsaW5nIGRpc3BhdGNoQmVmb3JlTG9h
ZEV2ZW50IGRpcmVjdGx5LgotICAgIGJvb2wgZ3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKLQogICAgIC8vIFRoaXMgd2lsbCBsb2FkIHRoZSBw
bHVnaW4gaWYgbmVjZXNzYXJ5LgogICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRn
ZXRMb2FkaW5nUGx1Z2luKCkgY29uc3Q7CiAKQEAgLTEwMyw4ICsxMDAsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3dhcFJlbmRlcmVyVGltZXJGaXJlZCgpOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCi0g
ICAgYm9vbCBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkg
PSBkZWxldGU7IC8vIEdlbmVyYXRlIGEgY29tcGlsZSBlcnJvciBpZiBzb21lb25lIGNhbGxzIHRo
aXMgYnkgbWlzdGFrZS4KLQogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IGZpbmFsOwog
CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBmaW5h
bDsKQEAgLTExNCw3ICsxMDksNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxKU0M6OkJpbmRpbmdz
OjpJbnN0YW5jZT4gbV9pbnN0YW5jZTsKICAgICBUaW1lciBtX3N3YXBSZW5kZXJlclRpbWVyOwog
ICAgIGJvb2wgbV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzIHsgZmFsc2UgfTsKLSAgICBib29sIG1f
aW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyIHsgZmFsc2UgfTsKICAgICBEaXNwbGF5U3RhdGUgbV9k
aXNwbGF5U3RhdGUgeyBQbGF5aW5nIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmNwcAppbmRleCA3MTAxOTUxYjU2ODgwMjkyMjA4ODFiNjU5ZjhlZDQ2M2VjMjlm
M2IzLi44MTdlMGE0OGIzYzNkNjdhYjFiYWM5NDU1ZTI0NjNjNWZjYTE3NThiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCBib29s
IEhUTUxUcmFja0VsZW1lbnQ6OmNhbkxvYWRVUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQo
dXJsLnN0cmluZygpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBIVE1MVHJhY2tFbGVt
ZW50OjpkaWRDb21wbGV0ZUxvYWQoTG9hZFN0YXR1cyBzdGF0dXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGYyOGEzNGEzY2NjZjVlMWZiYzM0YzY3MGEzMzdmOTc0
NzJkYmIwMGQuLjdiMjQwZTQ3N2QzZjlhMDU3MTYyYmZhMTIxZDFmYjhhM2E5NTU4NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNDIsOSArMTQyLDYgQEAgdm9p
ZCBJbWFnZUlucHV0VHlwZTo6YXR0YWNoKCkKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAoaW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgp
KQotICAgICAgICByZXR1cm47Ci0KICAgICBhdXRvJiBpbWFnZVJlc291cmNlID0gcmVuZGVyZXIt
PmltYWdlUmVzb3VyY2UoKTsKICAgICBpbWFnZVJlc291cmNlLnNldENhY2hlZEltYWdlKGltYWdl
TG9hZGVyLmltYWdlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCBmZGM5N2RjNDYyYzg3NTI2YWExODhmNzk2OGQ2MGEwYzgzZDY4MGQ5Li42YTEzYmQxY2ZkNDAw
NGYwM2M2NzBlZTNjOWE0MTgyMmU2ZjZlNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTEyMjEsNyArMTIyMSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRGcmFt
ZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIEV2ZW50KiBldmVudCwgUmVmCiB7
CiAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0coUmVzb3VyY2VMb2FkaW5nLCAibG9hZEZyYW1l
UmVxdWVzdDogZnJhbWUgbG9hZCBzdGFydGVkIik7CiAKLSAgICAvLyBQcm90ZWN0IGZyYW1lIGZy
b20gZ2V0dGluZyBibG93biBhd2F5IGluc2lkZSBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBpbiBs
b2FkV2l0aERvY3VtZW50TG9hZGVyLgogICAgIFJlZiBwcm90ZWN0ZWRGcmFtZSB7IG1fZnJhbWUg
fTsKIAogICAgIFVSTCB1cmwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwpAQCAt
MTI1OSwxMCArMTI1OCwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1ZXN0KEZy
YW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJlZgogICAgIGF1dG8gY29t
cGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBSZWYgeyBtX2ZyYW1lIH0s
IGZvcm1TdGF0ZSA9IFdlYWtQdHIgeyBmb3JtU3RhdGUgfSwgZnJhbWVOYW1lID0gcmVxdWVzdC5m
cmFtZU5hbWUoKV0gewogICAgICAgICAvLyBGSVhNRTogSXQncyBwb3NzaWJsZSB0aGlzIHRhcmdl
dEZyYW1lIHdpbGwgbm90IGJlIHRoZSBzYW1lIGZyYW1lIHRoYXQgd2FzIHRhcmdldGVkIGJ5IHRo
ZSBhY3R1YWwKICAgICAgICAgLy8gbG9hZCBpZiBmcmFtZSBuYW1lcyBoYXZlIGNoYW5nZWQuCi0g
ICAgICAgIEZyYW1lKiBzb3VyY2VGcmFtZSA9IGZvcm1TdGF0ZSA/IGZvcm1TdGF0ZS0+c291cmNl
RG9jdW1lbnQoKS5mcmFtZSgpIDogJm1fZnJhbWU7CisgICAgICAgIFJlZlB0ciBzb3VyY2VGcmFt
ZSA9IGZvcm1TdGF0ZSA/IGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS5mcmFtZSgpIDogJm1f
ZnJhbWU7CiAgICAgICAgIGlmICghc291cmNlRnJhbWUpCiAgICAgICAgICAgICBzb3VyY2VGcmFt
ZSA9ICZtX2ZyYW1lOwotICAgICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBzb3VyY2VGcmFtZS0+
bG9hZGVyKCkuZmluZEZyYW1lRm9yTmF2aWdhdGlvbihmcmFtZU5hbWUpOworICAgICAgICBSZWZQ
dHIgdGFyZ2V0RnJhbWUgPSBzb3VyY2VGcmFtZS0+bG9hZGVyKCkuZmluZEZyYW1lRm9yTmF2aWdh
dGlvbihmcmFtZU5hbWUpOwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUgJiYgdGFyZ2V0RnJhbWUg
IT0gc291cmNlRnJhbWUpIHsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gdGFyZ2V0RnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5mb2N1cygpOwpAQCAt
MTYxMSwxOSArMTYxMCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2Fk
ZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgaWYgKGxvYWRl
ci0+dHJpZ2dlcmluZ0FjdGlvbigpLmlzRW1wdHkoKSkKICAgICAgICAgbG9hZGVyLT5zZXRUcmln
Z2VyaW5nQWN0aW9uKHsgKm1fZnJhbWUuZG9jdW1lbnQoKSwgbG9hZGVyLT5yZXF1ZXN0KCksIElu
aXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duLCBwb2xpY3lDaGVja2VyKCkubG9hZFR5cGUoKSwg
aXNGb3JtU3VibWlzc2lvbiB9KTsKIAotICAgIGlmIChFbGVtZW50KiBvd25lckVsZW1lbnQgPSBt
X2ZyYW1lLm93bmVyRWxlbWVudCgpKSB7Ci0gICAgICAgIC8vIFdlIHNraXAgZGlzcGF0Y2hpbmcg
dGhlIGJlZm9yZWxvYWQgZXZlbnQgaWYgd2UndmUgYWxyZWFkeQotICAgICAgICAvLyBjb21taXR0
ZWQgYSByZWFsIGRvY3VtZW50IGxvYWQgYmVjYXVzZSB0aGUgZXZlbnQgd291bGQgbGVhawotICAg
ICAgICAvLyBzdWJzZXF1ZW50IGFjdGl2aXR5IGJ5IHRoZSBmcmFtZSB3aGljaCB0aGUgcGFyZW50
IGZyYW1lIGlzbid0Ci0gICAgICAgIC8vIHN1cHBvc2VkIHRvIGxlYXJuLiBGb3IgZXhhbXBsZSwg
aWYgdGhlIGNoaWxkIGZyYW1lIG5hdmlnYXRlZCB0bwotICAgICAgICAvLyBhIG5ldyBVUkwsIHRo
ZSBwYXJlbnQgZnJhbWUgc2hvdWxkbid0IGxlYXJuIHRoZSBVUkwuCi0gICAgICAgIGlmICghbV9z
dGF0ZU1hY2hpbmUuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkKLSAgICAgICAgICAg
ICYmICFvd25lckVsZW1lbnQtPmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGxvYWRlci0+cmVxdWVz
dCgpLnVybCgpLnN0cmluZygpKSkgewotICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KGxvYWRlci0+cmVxdWVzdCgpLCBmb3JtU3RhdGUuZ2V0KCksIE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbjo6SWdub3JlTG9hZCwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQogICAgIG1fZnJhbWUu
bmF2aWdhdGlvblNjaGVkdWxlcigpLmNhbmNlbChOZXdMb2FkSW5Qcm9ncmVzczo6WWVzKTsKIAog
ICAgIGlmIChzaG91bGRUcmVhdEN1cnJlbnRMb2FkQXNDb250aW51aW5nTG9hZCgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBkNTA2ZjQ0NzkzYWIxMjc0NGU2ZWZm
NjkxNGUwOWY3ODJkNDgxYWZkLi4zYjhhYmIyYzA1ZDc3NTdkM2JlZWJlODhlMTZmODVlNmE2OTFk
YmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTcwLDEyICs3MCw2
IEBAIHRlbXBsYXRlPD4gc3RydWN0IFZhbHVlQ2hlY2s8V2ViQ29yZTo6SW1hZ2VMb2FkZXIqPiB7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEltYWdlRXZlbnRTZW5kZXImIGJlZm9y
ZUxvYWRFdmVudFNlbmRlcigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEltYWdlRXZl
bnRTZW5kZXI+IHNlbmRlcihldmVudE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50KTsKLSAgICByZXR1
cm4gc2VuZGVyOwotfQotCiBzdGF0aWMgSW1hZ2VFdmVudFNlbmRlciYgbG9hZEV2ZW50U2VuZGVy
KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SW1hZ2VFdmVudFNlbmRlcj4gc2VuZGVy
KGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpOwpAQCAtOTgsNyArOTIsNiBAQCBJbWFnZUxvYWRlcjo6
SW1hZ2VMb2FkZXIoRWxlbWVudCYgZWxlbWVudCkKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQog
ICAgICwgbV9pbWFnZShudWxscHRyKQogICAgICwgbV9kZXJlZkVsZW1lbnRUaW1lcigqdGhpcywg
JkltYWdlTG9hZGVyOjp0aW1lckZpcmVkKQotICAgICwgbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2
ZW50KGZhbHNlKQogICAgICwgbV9oYXNQZW5kaW5nTG9hZEV2ZW50KGZhbHNlKQogICAgICwgbV9o
YXNQZW5kaW5nRXJyb3JFdmVudChmYWxzZSkKICAgICAsIG1faW1hZ2VDb21wbGV0ZSh0cnVlKQpA
QCAtMTEyLDEwICsxMDUsNiBAQCBJbWFnZUxvYWRlcjo6fkltYWdlTG9hZGVyKCkKICAgICBpZiAo
bV9pbWFnZSkKICAgICAgICAgbV9pbWFnZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIAotICAgIEFT
U0VSVChtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQgfHwgIWJlZm9yZUxvYWRFdmVudFNlbmRl
cigpLmhhc1BlbmRpbmdFdmVudHMoKnRoaXMpKTsKLSAgICBpZiAobV9oYXNQZW5kaW5nQmVmb3Jl
TG9hZEV2ZW50KQotICAgICAgICBiZWZvcmVMb2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgq
dGhpcyk7Ci0KICAgICBBU1NFUlQobV9oYXNQZW5kaW5nTG9hZEV2ZW50IHx8ICFsb2FkRXZlbnRT
ZW5kZXIoKS5oYXNQZW5kaW5nRXZlbnRzKCp0aGlzKSk7CiAgICAgaWYgKG1faGFzUGVuZGluZ0xv
YWRFdmVudCkKICAgICAgICAgbG9hZEV2ZW50U2VuZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwpA
QCAtMTQwLDEwICsxMjksNiBAQCB2b2lkIEltYWdlTG9hZGVyOjpjbGVhckltYWdlV2l0aG91dENv
bnNpZGVyaW5nUGVuZGluZ0xvYWRFdmVudCgpCiAgICAgQ2FjaGVkSW1hZ2UqIG9sZEltYWdlID0g
bV9pbWFnZS5nZXQoKTsKICAgICBpZiAob2xkSW1hZ2UpIHsKICAgICAgICAgbV9pbWFnZSA9IG51
bGxwdHI7Ci0gICAgICAgIGlmIChtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQpIHsKLSAgICAg
ICAgICAgIGJlZm9yZUxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKLSAgICAg
ICAgICAgIG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCA9IGZhbHNlOwotICAgICAgICB9CiAg
ICAgICAgIGlmIChtX2hhc1BlbmRpbmdMb2FkRXZlbnQpIHsKICAgICAgICAgICAgIGxvYWRFdmVu
dFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKICAgICAgICAgICAgIG1faGFzUGVuZGluZ0xv
YWRFdmVudCA9IGZhbHNlOwpAQCAtMjM3LDEwICsyMjIsNiBAQCB2b2lkIEltYWdlTG9hZGVyOjp1
cGRhdGVGcm9tRWxlbWVudChSZWxldmFudE11dGF0aW9uIHJlbGV2YW50TXV0YXRpb24pCiAKICAg
ICBDYWNoZWRJbWFnZSogb2xkSW1hZ2UgPSBtX2ltYWdlLmdldCgpOwogICAgIGlmIChuZXdJbWFn
ZSAhPSBvbGRJbWFnZSB8fCByZWxldmFudE11dGF0aW9uID09IFJlbGV2YW50TXV0YXRpb246Olll
cykgewotICAgICAgICBpZiAobV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KSB7Ci0gICAgICAg
ICAgICBiZWZvcmVMb2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7Ci0gICAgICAg
ICAgICBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQgPSBmYWxzZTsKLSAgICAgICAgfQogICAg
ICAgICBpZiAobV9oYXNQZW5kaW5nTG9hZEV2ZW50KSB7CiAgICAgICAgICAgICBsb2FkRXZlbnRT
ZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7CiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdMb2Fk
RXZlbnQgPSBmYWxzZTsKQEAgLTI1NiwxNyArMjM3LDExIEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVw
ZGF0ZUZyb21FbGVtZW50KFJlbGV2YW50TXV0YXRpb24gcmVsZXZhbnRNdXRhdGlvbikKICAgICAg
ICAgfQogCiAgICAgICAgIG1faW1hZ2UgPSBuZXdJbWFnZTsKLSAgICAgICAgbV9oYXNQZW5kaW5n
QmVmb3JlTG9hZEV2ZW50ID0gIWRvY3VtZW50LmlzSW1hZ2VEb2N1bWVudCgpICYmIG5ld0ltYWdl
OwogICAgICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBuZXdJbWFnZTsKICAgICAgICAgbV9p
bWFnZUNvbXBsZXRlID0gIW5ld0ltYWdlOwogCiAgICAgICAgIGlmIChuZXdJbWFnZSkgewotICAg
ICAgICAgICAgaWYgKCFkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQoKSkgewotICAgICAgICAgICAg
ICAgIGlmICghZG9jdW1lbnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpCRUZPUkVMT0FEX0xJ
U1RFTkVSKSkKLSAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2
ZW50KCk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBiZWZvcmVM
b2FkRXZlbnRTZW5kZXIoKS5kaXNwYXRjaEV2ZW50U29vbigqdGhpcyk7Ci0gICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQoKSkKICAgICAg
ICAgICAgICAgICB1cGRhdGVSZW5kZXJlcigpOwogCiAgICAgICAgICAgICBpZiAobV9sYXp5SW1h
Z2VMb2FkU3RhdGUgPT0gTGF6eUltYWdlTG9hZFN0YXRlOjpEZWZlcnJlZCkKQEAgLTMzNSw4ICsz
MTAsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYg
cmVzb3VyY2UsIGNvbnN0IE5ldHdvcmtMb2FkTWV0cgogICAgIH0KIAogICAgIG1faW1hZ2VDb21w
bGV0ZSA9IHRydWU7Ci0gICAgaWYgKCFoYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkpCi0gICAg
ICAgIHVwZGF0ZVJlbmRlcmVyKCk7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKIAogICAgIGlmICgh
bV9oYXNQZW5kaW5nTG9hZEV2ZW50KQogICAgICAgICByZXR1cm47CkBAIC00ODksNTAgKzQ2Mywx
NCBAQCB2b2lkIEltYWdlTG9hZGVyOjp0aW1lckZpcmVkKCkKIAogdm9pZCBJbWFnZUxvYWRlcjo6
ZGlzcGF0Y2hQZW5kaW5nRXZlbnQoSW1hZ2VFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCiB7Ci0g
ICAgQVNTRVJUKGV2ZW50U2VuZGVyID09ICZiZWZvcmVMb2FkRXZlbnRTZW5kZXIoKSB8fCBldmVu
dFNlbmRlciA9PSAmbG9hZEV2ZW50U2VuZGVyKCkgfHwgZXZlbnRTZW5kZXIgPT0gJmVycm9yRXZl
bnRTZW5kZXIoKSk7CisgICAgQVNTRVJUKGV2ZW50U2VuZGVyID09ICZsb2FkRXZlbnRTZW5kZXIo
KSB8fCBldmVudFNlbmRlciA9PSAmZXJyb3JFdmVudFNlbmRlcigpKTsKICAgICBjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUgPSBldmVudFNlbmRlci0+ZXZlbnRUeXBlKCk7Ci0gICAgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50KQotICAgICAgICBkaXNwYXRj
aFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKTsKICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5sb2FkRXZlbnQpCiAgICAgICAgIGRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudCgpOwogICAg
IGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQpCiAgICAgICAgIGRpc3Bh
dGNoUGVuZGluZ0Vycm9yRXZlbnQoKTsKIH0KIAotdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQ
ZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkKLXsKLSAgICBpZiAoIW1faGFzUGVuZGluZ0JlZm9yZUxv
YWRFdmVudCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghbV9pbWFnZSkKLSAgICAgICAgcmV0
dXJuOwotICAgIGlmICghZWxlbWVudCgpLmRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgp
KQotICAgICAgICByZXR1cm47Ci0gICAgbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50ID0gZmFs
c2U7Ci0gICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50ID0gZWxlbWVudCgpLmRvY3Vt
ZW50KCk7Ci0gICAgaWYgKGVsZW1lbnQoKS5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChtX2ltYWdl
LT51cmwoKS5zdHJpbmcoKSkpIHsKLSAgICAgICAgYm9vbCBkaWRFdmVudExpc3RlbmVyRGlzY29u
bmVjdFRoaXNFbGVtZW50ID0gIWVsZW1lbnQoKS5pc0Nvbm5lY3RlZCgpIHx8ICZlbGVtZW50KCku
ZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpOwotICAgICAgICBpZiAoZGlkRXZl
bnRMaXN0ZW5lckRpc2Nvbm5lY3RUaGlzRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgCi0gICAgICAgIHVwZGF0ZVJlbmRlcmVyKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgaWYgKG1faW1hZ2UpIHsKLSAgICAgICAgbV9pbWFnZS0+cmVtb3ZlQ2xpZW50KCp0aGlz
KTsKLSAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7Ci0gICAgfQotCi0gICAgbG9hZEV2ZW50U2Vu
ZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwotICAgIG1faGFzUGVuZGluZ0xvYWRFdmVudCA9IGZh
bHNlOwotICAgIAotICAgIGlmIChpczxIVE1MT2JqZWN0RWxlbWVudD4oZWxlbWVudCgpKSkKLSAg
ICAgICAgZG93bmNhc3Q8SFRNTE9iamVjdEVsZW1lbnQ+KGVsZW1lbnQoKSkucmVuZGVyRmFsbGJh
Y2tDb250ZW50KCk7Ci0KLSAgICAvLyBPbmx5IGNvbnNpZGVyIHVwZGF0aW5nIHRoZSBwcm90ZWN0
aW9uIHJlZi1jb3VudCBvZiB0aGUgRWxlbWVudCBpbW1lZGlhdGVseSBiZWZvcmUgcmV0dXJuaW5n
Ci0gICAgLy8gZnJvbSB0aGlzIGZ1bmN0aW9uIGFzIGRvaW5nIHNvIG1pZ2h0IHJlc3VsdCBpbiB0
aGUgZGVzdHJ1Y3Rpb24gb2YgdGhpcyBJbWFnZUxvYWRlci4KLSAgICB1cGRhdGVkSGFzUGVuZGlu
Z0V2ZW50KCk7Ci19Ci0KIHZvaWQgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0xvYWRFdmVu
dCgpCiB7CiAgICAgaWYgKCFtX2hhc1BlbmRpbmdMb2FkRXZlbnQpCkBAIC01NjIsMTEgKzUwMCw2
IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0Vycm9yRXZlbnQoKQogICAgIHVw
ZGF0ZWRIYXNQZW5kaW5nRXZlbnQoKTsKIH0KIAotdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQ
ZW5kaW5nQmVmb3JlTG9hZEV2ZW50cyhQYWdlKiBwYWdlKQotewotICAgIGJlZm9yZUxvYWRFdmVu
dFNlbmRlcigpLmRpc3BhdGNoUGVuZGluZ0V2ZW50cyhwYWdlKTsKLX0KLQogdm9pZCBJbWFnZUxv
YWRlcjo6ZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50cyhQYWdlKiBwYWdlKQogewogICAgIGxvYWRF
dmVudFNlbmRlcigpLmRpc3BhdGNoUGVuZGluZ0V2ZW50cyhwYWdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmgKaW5kZXggOGE5NmYwZDUyNjc0NDUxOWQzMTEzMTY4MWM1ZWNmZGE5MmY3
ZmIxNi4uNjEyOTU1ZDBmMWU4NzQ4NGY0N2JjZjllOGVhNDdiYzBkYTkwODllNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKQEAgLTcwLDEyICs3MCwxMCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldExvYWRNYW51YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX2xvYWRNYW51YWxs
eSA9IGxvYWRNYW51YWxseTsgfQogCi0gICAgYm9vbCBoYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50OyB9CiAgICAgYm9v
bCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZl
bnQgfHwgbV9oYXNQZW5kaW5nRXJyb3JFdmVudDsgfQogCiAgICAgdm9pZCBkaXNwYXRjaFBlbmRp
bmdFdmVudChJbWFnZUV2ZW50U2VuZGVyKik7CiAKLSAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBl
bmRpbmdCZWZvcmVMb2FkRXZlbnRzKFBhZ2UqKTsKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBl
bmRpbmdMb2FkRXZlbnRzKFBhZ2UqKTsKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBlbmRpbmdF
cnJvckV2ZW50cyhQYWdlKik7CiAKQEAgLTk4LDcgKzk2LDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgdXBkYXRlZEhhc1BlbmRpbmdFdmVudCgpOwogCi0gICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdC
ZWZvcmVMb2FkRXZlbnQoKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudCgpOwog
ICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nRXJyb3JFdmVudCgpOwogCkBAIC0xMjMsNyArMTIwLDYg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RWxlbWVudD4gbV9wcm90ZWN0ZWRFbGVtZW50OwogICAg
IEF0b21TdHJpbmcgbV9mYWlsZWRMb2FkVVJMOwogICAgIFZlY3RvcjxSZWZQdHI8RGVmZXJyZWRQ
cm9taXNlPj4gbV9kZWNvZGluZ1Byb21pc2VzOwotICAgIGJvb2wgbV9oYXNQZW5kaW5nQmVmb3Jl
TG9hZEV2ZW50IDogMTsKICAgICBib29sIG1faGFzUGVuZGluZ0xvYWRFdmVudCA6IDE7CiAgICAg
Ym9vbCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50IDogMTsKICAgICBib29sIG1faW1hZ2VDb21wbGV0
ZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMmFlNzBjYjFkYTg0ZThjYWQz
ZWNjYzBjOWZmZWY0MzZmOGU4OWY2MC4uZDc4YTM0NmFkOWQ2MjJjZjAwMDU5NzVlMjkxMmQyNDAy
MDU0YjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMzIwLDE0ICszMjAsNiBA
QCBMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZDoKICAgICBXZWJDb3JlOgog
ICAgICAgZGVmYXVsdDogZmFsc2UKIAotTGVnYWN5QmVmb3JlTG9hZEV2ZW50RW5hYmxlZDoKLSAg
Y29tbWVudDogPi0KLSAgICBGSU1YRTogVGhpcyBkb2VzIG5vdCBhcHBlYXIgdG8gZXZlciBiZSBz
ZXQgdG8gdHJ1ZS4gUmVtb3ZlIG9uY2UgdmVyaWZpZWQuCi0gIHR5cGU6IGJvb2wKLSAgZGVmYXVs
dFZhbHVlOgotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVBhdGg6CiAgIHR5cGU6IFN0cmluZwogICBkZWZhdWx0VmFsdWU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCBmOTIxM2UyZjM1NzE0OGYxNDBj
NGQ0MTBkMGUxMTQxN2Q3NmYwYjkyLi42NGJkYWIwZDU5MjFiMWM3NTJhZmRkMjEzMDUwZThiM2Iz
NjEwYWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTQ4
NSw2ICs0ODUsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgYm9vbCBzaG93Qm9yZGVyRm9ySW5jb21wbGV0ZUltYWdlID0gc2V0dGluZ3Mo
KS5pbmNvbXBsZXRlSW1hZ2VCb3JkZXJFbmFibGVkKCk7CiAgICAgaWYgKCFpbWFnZVJlc291cmNl
KCkuY2FjaGVkSW1hZ2UoKSB8fCBpc0RlZmVycmVkSW1hZ2UoZWxlbWVudCgpKSB8fCBzaG91bGRE
aXNwbGF5QnJva2VuSW1hZ2VJY29uKCkpIHsKICAgICAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9
PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm47CkBAIC00OTIsNyAr
NDkzLDggQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgaWYgKHBhaW50SW5mby5w
aGFzZSA9PSBQYWludFBoYXNlOjpGb3JlZ3JvdW5kKQogICAgICAgICAgICAgcGFnZSgpLmFkZFJl
bGV2YW50VW5wYWludGVkT2JqZWN0KHRoaXMsIHZpc3VhbE92ZXJmbG93UmVjdCgpKTsKIAotICAg
ICAgICBwYWludEluY29tcGxldGVJbWFnZU91dGxpbmUocGFpbnRJbmZvLCBwYWludE9mZnNldCwg
bWlzc2luZ0ltYWdlQm9yZGVyV2lkdGgpOworICAgICAgICBpZiAoc2hvd0JvcmRlckZvckluY29t
cGxldGVJbWFnZSkKKyAgICAgICAgICAgIHBhaW50SW5jb21wbGV0ZUltYWdlT3V0bGluZShwYWlu
dEluZm8sIHBhaW50T2Zmc2V0LCBtaXNzaW5nSW1hZ2VCb3JkZXJXaWR0aCk7CiAKICAgICAgICAg
aWYgKGNvbnRlbnRTaXplLndpZHRoKCkgPiAyICYmIGNvbnRlbnRTaXplLmhlaWdodCgpID4gMikg
ewogICAgICAgICAgICAgTGF5b3V0VW5pdCBsZWZ0Qm9yZGVyID0gYm9yZGVyTGVmdCgpOwpAQCAt
NTU0LDggKzU1Niw2IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgaWYgKGNvbnRlbnRT
aXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBzaG93Qm9yZGVyRm9y
SW5jb21wbGV0ZUltYWdlID0gc2V0dGluZ3MoKS5pbmNvbXBsZXRlSW1hZ2VCb3JkZXJFbmFibGVk
KCk7Ci0KICAgICBSZWZQdHI8SW1hZ2U+IGltZyA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZShmbG9v
cmVkSW50U2l6ZShjb250ZW50U2l6ZSkpOwogICAgIGlmICghaW1nIHx8IGltZy0+aXNOdWxsKCkp
IHsKICAgICAgICAgaWYgKHNob3dCb3JkZXJGb3JJbmNvbXBsZXRlSW1hZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDdlNmJmNGFh
MDM2NTFhZDYxNzlhMmJiNDk3ZjBhYjMwOGZjZWE1NjYuLjJlZmIzNTE1ODBkMmU3Nzk3ZWM2MTE4
ODQ4NGU1MDkyOWRkYWNlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
WE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xMjQsOSArMTI0LDYgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6YXBwZW5kKFJlZlB0cjxTdHJpbmdJbXBsPiYmIGlucHV0U291cmNlKQogICAgIH0KIAog
ICAgIGRvV3JpdGUoc291cmNlKTsKLQotICAgIC8vIEFmdGVyIHBhcnNpbmcsIGRpc3BhdGNoIGlt
YWdlIGJlZm9yZWxvYWQgZXZlbnRzLgotICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdC
ZWZvcmVMb2FkRXZlbnRzKG51bGxwdHIpOwogfQogCiB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpo
YW5kbGVFcnJvcihYTUxFcnJvcnM6OkVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtLCBUZXh0
UG9zaXRpb24gcG9zaXRpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448211</attachid>
            <date>2022-01-02 23:22:10 -0800</date>
            <delta_ts>2022-01-28 22:26:22 -0800</delta_ts>
            <desc>Fixed the test</desc>
            <filename>bug-234804-20220102232209.patch</filename>
            <type>text/plain</type>
            <size>51695</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU1ZjY2ZjlmMzI1NmI4
NzJkZGVmZGIyNjdiNzU5ODFmOWJkZTZiOC4uNjkzNjY1OGU0MTEwNjQ1NjY3MTY0N2FlOTNmYzJl
ODVhMjJjNzcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIyLTAxLTAyICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0ZSBjb2RlIGZvciBi
ZWZvcmVsb2FkIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQ4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBEZWxldGUgY29kZSBmb3IgYmVmb3JlbG9hZCBldmVudCBhcyB0aGUgZXZlbnQgaGFzIGJl
ZW4gZGlzYWJsZWQgc3VjY2Vzc2Z1bGx5IGluIHIyNjE5NDYuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50Lmg6IFJlbW92ZWQuCisgICAgICAg
ICogZG9tL0JlZm9yZUxvYWRFdmVudC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdENsb3NlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRMaXN0ZW5lclR5cGVJZk5lZWRlZCk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hCZWZv
cmVMb2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICog
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCk6IG1faXNIYW5kbGluZ0JlZm9yZUxvYWQg
aXMgbmV2ZXIgdHJ1ZS4KKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg6Cisg
ICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
RWxlbWVudDo6cmVxdWVzdENsYXNzaWNTY3JpcHQpOiBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBh
bHdheXMgcmV0dXJuZWQgdHJ1ZQorICAgICAgICB3aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMgZGlz
YWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2Ny
aXB0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCk6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOiBUaGVyZSBpcyBuZXZlciBhIHBlbmRp
bmcgYmVmb3JlbG9hZCBldmVudC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnNob3VsZExvYWRMaW5rKTogZGlz
cGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVybmVkIHRydWUKKyAgICAgICAgd2hlbiBi
ZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRp
YVJlc291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpz
ZWxlY3ROZXh0U291cmNlQ2hpbGQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojp1cGRhdGVX
aWRnZXQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpndWFyZGVkRGlzcGF0Y2hCZWZvcmVM
b2FkRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6
OnBsdWdpbldpZGdldCBjb25zdCk6IG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyIGlzIG5ldmVy
IHRydWUuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVt
ZW50OjpjYW5Mb2FkVVJMKTogZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgYWx3YXlzIHJldHVybmVk
IHRydWUgd2hlbgorICAgICAgICBiZWZvcmVsb2FkIGV2ZW50IGlzIGRpc2FibGVkLgorICAgICAg
ICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1
dFR5cGU6OmF0dGFjaCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdCk6IFJlbW92
ZWQgdGhlIGNvbW1lbnQgcmVmZXJyaW5nIHRvIGJlZm9yZWxvYWQgZXZlbnQKKyAgICAgICAgYnV0
IGtlZXAgUmVmIHNpbmNlIHdlJ3JlIGNhbGxpbmcgYSBidW5jaCBvZiBmdW5jdGlvbnMgd2l0aCBt
X2ZyYW1lIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRXaXRoRG9jdW1lbnRMb2FkZXIpOiBEZWxldGVkIGEgYmxvY2sgb2Ygbm8tb3AgY29kZSBzaW5j
ZQorICAgICAgICBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBhbHdheXMgcmV0dXJuZWQgdHJ1ZSB3
aGVuIGJlZm9yZWxvYWQgZXZlbnQgaXMgZGlzYWJsZWQuCisgICAgICAgICogbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJlZm9yZUxvYWRFdmVudFNlbmRlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6SW1hZ2VMb2FkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6On5JbWFnZUxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUxvYWRlcjo6Y2xlYXJJbWFnZVdpdGhvdXRDb25zaWRlcmluZ1BlbmRpbmdMb2Fk
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5n
QmVmb3JlTG9hZEV2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0JlZm9yZUxvYWRF
dmVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCk6IEFkZGVkIGEgbWlzc2luZyBzZXR0aW5ncyBjaGVjay4K
KyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjphcHBlbmQpOgorCiAyMDIyLTAxLTAyICBEaWVnbyBQ
aW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVW5yZXZpZXdl
ZCBidWlsZCBmaXggYWZ0ZXIgcjI4NzUxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0OWMwMTAx
NmNmMzg3ZDI0OGYxNGIxMTQwYzI4NGNjMDI0ZGU0ZmQ3Li4zYzg4ZTdhMDUxNDZhNjRjYTdjNjhm
M2ZjMWE2MmM0YzY1NmQzMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODQzLDcgKzg0Myw2
IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgZG9tL0FkZEV2ZW50TGlzdGVu
ZXJPcHRpb25zLmlkbAogICAgIGRvbS9BbmltYXRpb25FdmVudC5pZGwKICAgICBkb20vQXR0ci5p
ZGwKLSAgICBkb20vQmVmb3JlTG9hZEV2ZW50LmlkbAogICAgIGRvbS9CZWZvcmVVbmxvYWRFdmVu
dC5pZGwKICAgICBkb20vQnJvYWRjYXN0Q2hhbm5lbC5pZGwKICAgICBkb20vQ0RBVEFTZWN0aW9u
LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
aW5kZXggZDZjYWMwYjRhYTVhMTJjMmYyYjJjYWU3NTBiOTUyZjZkZTlmMzgyOC4uNWZkOGExMGI3
NWEzNjg0OTFjOWY2MTRkYmE5MjQyNWJmOGNiMTRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC05OTAsNyArOTkwLDYgQEAgJChQUk9K
RUNUX0RJUikvZG9tL0Fic3RyYWN0UmFuZ2UuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQWRkRXZl
bnRMaXN0ZW5lck9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQW5pbWF0aW9uRXZlbnQu
aWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQXR0ci5pZGwKLSQoUFJPSkVDVF9ESVIpL2RvbS9CZWZv
cmVMb2FkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaWRs
CiAkKFBST0pFQ1RfRElSKS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5pZGwKICQoUFJPSkVDVF9ESVIp
L2RvbS9DREFUQVNlY3Rpb24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGU4MjQ3Yjc4ZjJjMTI2YWFlYWFmNmQxNjFkYjA4Mjkz
MTZjM2RkYTkuLjhiZGE2ODZlZjc5MzBjZjg1MWQ1ZDY1YmExNWM1M2UzNTc0NTNiNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0y
NjQsOCArMjY0LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNCYXNlQXVkaW9Db250ZXh0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNCYXNlQXVkaW9Db250ZXh0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmFzaWNDcmVkZW50aWFsLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCYXNpY0NyZWRlbnRpYWwuaAot
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCZWZvcmVMb2Fk
RXZlbnQuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0JlZm9yZUxvYWRFdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0JlZm9yZVVubG9hZEV2ZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNCZWZvcmVVbmxvYWRFdmVudC5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0JpcXVhZEZpbHRlck5vZGUuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0OWFkYmMyNDM2MGIxNjllY2ExZTMyMzM2
MDIzNTA5NjQ1OTNhZTYyLi5kNDc0MmY3YTQ0ZTFiN2FjYWM0ZjQ0ZDU1NjllZTk1Y2E4Yzk0ZTJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTg0OCw3ICs4NDgsNiBAQCBKU19C
SU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvZG9tL0FkZEV2ZW50TGlzdGVuZXJPcHRp
b25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQW5pbWF0aW9uRXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9BdHRyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vQmVmb3JlTG9hZEV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vQ0RBVEFTZWN0aW9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJkNWE3NDc5Y2IzOWU0NmNj
OTEwNDAwZjRlZTM4NDkzMjRjNzUzMWYuLmUxNDEyYzQwZTYyNGUyY2M3ODYwNGQ0NzE0ODExMGFl
MTI4MjJmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04OTgsNyArODk4LDYgQEAgZG9tL0FjdGl2ZURP
TU9iamVjdC5jcHAKIGRvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uY3BwCiBkb20vQW5pbWF0
aW9uRXZlbnQuY3BwCiBkb20vQXR0ci5jcHAKLWRvbS9CZWZvcmVMb2FkRXZlbnQuY3BwCiBkb20v
QmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwCiBkb20vQmVmb3JlVW5sb2FkRXZlbnQuY3BwCiBk
b20vQm91bmRhcnlQb2ludC5jcHAKQEAgLTI5MDYsNyArMjkwNSw2IEBAIEpTQXV0b21hdGlvblJh
dGUuY3BwCiBKU0JhclByb3AuY3BwCiBKU0Jhc2VBdWRpb0NvbnRleHQuY3BwCiBKU0Jhc2ljQ3Jl
ZGVudGlhbC5jcHAKLUpTQmVmb3JlTG9hZEV2ZW50LmNwcAogSlNCZWZvcmVVbmxvYWRFdmVudC5j
cHAKIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAKIEpTQmlxdWFkRmlsdGVyT3B0aW9ucy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAzYzllYzI1YzBhOTI0NjA2YWUyZWIzMjc2NGExNzhkZGNjOTQ0M2Y4Li4wMTY2YjI0M2JjNzVm
M2Q5YmM3ZDhjMzRmNDA1ZjE3YWQyYjFiNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MjEzLDggKzQyMTMsNiBAQAogCQlC
QzhDOEZBRTBERENEMzFCMDBCNTkyRjQgLyogUmVuZGVyU3R5bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEM4RkFDMEREQ0QzMUIwMEI1OTJGNCAv
KiBSZW5kZXJTdHlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDOTI2RjgxMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFtZVNldEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTI2
RjdGMEMwNTUyNDcwMDgyNzc2QiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnQuaCAqLzsgfTsKIAkJ
QkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NDM5QzIxMTZDRjQ5NDAwNDhDNzUw
IC8qIEpTTm9kZUN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDOTQ2MkQ4MTA3QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTQ2MkQ3
MTA3QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLzsgfTsKLQkJQkM5NDYzNDgx
MDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0NjM0NzEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCAqLzsgfTsKIAkJQkM5NEQxNEYwQzI3NUM2ODAwNkJDNjE3IC8q
IEpTSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM5NEQxNEQwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5oICovOyB9OwogCQlCQzk0
RDE1NDBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NEQxNTEwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rv
cnkuaCAqLzsgfTsKIAkJQkM5NkRCNDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVs
T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Qzk2REI0MjBGM0E4ODBFMDA1NzNDQjMgLyogUmVuZGVyQm94TW9kZWxPYmplY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUzNjksMTAgKzE1
MzY3LDYgQEAKIAkJQkM5MjZGN0UwQzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRnJh
bWVTZXRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5MjZGN0Yw
QzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRnJhbWVTZXRFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDOTQzOUMyMTE2Q0Y0OTQwMDQ4Qzc1MCAvKiBKU05vZGVDdXN0
b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOb2RlQ3VzdG9tLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MkNCMTA3QTdBMzkwMDg1NzE5MyAvKiBC
ZWZvcmVMb2FkRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJlZm9yZUxvYWRFdmVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MkQ3MTA3QTdCNEMwMDg1
NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmVmb3JlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2
MzQ1MTA3QTkzNEIwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JlZm9yZUxvYWRFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDOTQ2MzQ3MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9y
ZUxvYWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JlZm9yZUxv
YWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk0RDEwNzBDMjc0Rjg4
MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TY3JlZW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDOTREMTRDMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSGlzdG9yeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDOTREMTREMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hp
c3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSGlzdG9yeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcyNTgsNyArMTcyNTIsNiBAQAogCQlFM0JG
MTlFMTIyQUYyRjU1MDA5Qzk5MjYgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUUzMjJBRjJGQTUwMDlDOTkyNiAvKiBPdmVy
Y29uc3RyYWluZWRFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE92ZXJjb25zdHJh
aW5lZEVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlF
NDIyQUYyRkNGMDA5Qzk5MjYgLyogQ2xvc2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
bG9zZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTNCRjE5RTUyMkFG
MkZGNDAwOUM5OTI2IC8qIEJlZm9yZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
ZWZvcmVMb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlF
NjIyQUYzMDJBMDA5Qzk5MjYgLyogSGFzaENoYW5nZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhhc2hDaGFuZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
QkYxOUU3MjJBRjMwOUYwMDlDOTkyNiAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0MwNDEyRDI1NENBMjlCMDAyMUQwRTYgLyog
U3lzdGVtU291bmRNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5
c3RlbVNvdW5kTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc2Njcs
OCArMjc2NjAsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMzE5ODQ4MDMxQTFFNkI1RDAwQTEz
MzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuY3BwICovLAogCQkJCTMxOTg0ODA0MUExRTZCNUQwMEEx
MzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi8sCi0JCQkJQkM5NDYzNDUxMDdBOTM0QjAwODU3
MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmNwcCAqLywKLQkJCQlCQzk0NjM0NzEwN0E5MzY2MDA4
NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCAqLywKIAkJCQk4MjI1NDMyQ0E5RDRCNENGNDYy
OEVDN0YgLyogSlNCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8sCiAJCQkJMjlFMDRBMjdCRUQyRjgx
Rjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCAqLywKIAkJCQk4MzZEMDMyRDFEQThB
MTMyMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5jcHAgKi8sCkBAIC0zMjA3Nyw5ICszMjA2
OCw2IEBACiAJCQkJQThDNEE3RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAqLywKIAkJCQk5
M0VFQzFFNTA5QzI4Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8sCiAJCQkJQThDNEE3RjkwOUQ1
NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5oICovLAotCQkJCUUzQkYxOUU1MjJBRjJGRjQwMDlD
OTkyNiAvKiBCZWZvcmVMb2FkRXZlbnQuY3BwICovLAotCQkJCUJDOTQ2MkQ3MTA3QTdCNEMwMDg1
NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaCAqLywKLQkJCQlCQzk0NjJDQjEwN0E3QTM5MDA4NTcx
OTMgLyogQmVmb3JlTG9hZEV2ZW50LmlkbCAqLywKIAkJCQlBQjIzQTMyNTA5QkJBN0QwMDA2N0ND
NTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwICovLAogCQkJCUFCMjNBMzI2MDlCQkE3
RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oICovLAogCQkJCTg1MDMxQjI2
MEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8sCkBAIC0zMzQ2OSw3
ICszMzQ1Nyw2IEBACiAJCQkJNzE1NkJDQTEyMUNBMzUwRjAwNTM0Mzk3IC8qIEJhc2ljRWZmZWN0
VGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlGQkQ2QUY4QTE1RUYyNURGMDA4QjcxMTAgLyog
QmFzaWNTaGFwZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkJENkFGOEMxNUVGMjYw
NDAwOEI3MTEwIC8qIEJhc2ljU2hhcGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzk0NjJEODEw
N0E3QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
QjIzQTMyODA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDMxQjNEMEE0NEVGQzcwMEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMjQwRDAwNkMxRDAwRUY2RjI2IC8qIEJp
ZGlDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTM1MDI5LDcgKzM1MDE2LDYgQEAKIAkJCQk1
N0RDRUQ5ODIxNDg4MjE2MDAxNkI4NDcgLyogSlNBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1N0M3QTY5RjFFNTc5MTc4MDBDNjdENzEgLyogSlNCYXNpY0Ny
ZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAv
KiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZD
MTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
RjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFMkQ5OUNFMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCmluZGV4IDIzM2E4Y2FmZTM0MzNiOTljMTY1NzkyZmMwMWZkOWEzNzA4ZmYyYzguLjkyYWNj
ODg4YTU2Y2MyN2I2YzUyNDAwNmUwYzRmZGJhZThmMzhmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTYyLDcgKzYyLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlKSBcCiAgICAgbWFjcm8oQXV0aGVudGljYXRvclJlc3BvbnNlKSBcCiAgICAgbWFjcm8o
QmFzZUF1ZGlvQ29udGV4dCkgXAotICAgIG1hY3JvKEJlZm9yZUxvYWRFdmVudCkgXAogICAgIG1h
Y3JvKEJsb2JFdmVudCkgXAogICAgIG1hY3JvKEJyb2FkY2FzdENoYW5uZWwpIFwKICAgICBtYWNy
byhDYWNoZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWRiZTUwOGJmMzA0MTliMDBlNzlmMzg4NmQxNTIxMzI3OWVk
M2FkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQmVmb3JlTG9hZEV2ZW50LmgiCi0KLSNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCZWZvcmVMb2FkRXZlbnQpOwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDlhN2Q0MjFmM2E0NWM5NDZmOWJlNDNhMzlmMTc4ZjZiYWIzNWJl
M2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQmVmb3JlTG9hZEV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEJlZm9yZUxvYWRF
dmVudCk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxCZWZvcmVMb2FkRXZlbnQ+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHVybCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJl
Zm9yZUxvYWRFdmVudCh1cmwpKTsKLSAgICB9Ci0KLSAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5p
dCB7Ci0gICAgICAgIFN0cmluZyB1cmw7Ci0gICAgfTsKLQotICAgIHN0YXRpYyBSZWY8QmVmb3Jl
TG9hZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5p
dGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmVmb3JlTG9hZEV2ZW50KHR5cGUsIGluaXRpYWxp
emVyLCBpc1RydXN0ZWQpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0
IHsgcmV0dXJuIG1fdXJsOyB9Ci0KLSAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJlZm9yZUxvYWRFdmVudEludGVyZmFjZVR5cGU7IH0K
LQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiB1
cmwpCi0gICAgICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCwgQ2FuQnVi
YmxlOjpObywgSXNDYW5jZWxhYmxlOjpZZXMpCi0gICAgICAgICwgbV91cmwodXJsKQotICAgIHsK
LSAgICB9Ci0KLSAgICBCZWZvcmVMb2FkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCi0gICAgICAgIDogRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKLSAgICAgICAgLCBtX3VybChpbml0aWFs
aXplci51cmwpCi0gICAgewotICAgIH0KLQotICAgIFN0cmluZyBtX3VybDsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVM
b2FkRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzMjA5YWNhNWRlMzkwZDM0YjQ1MWY3N2E2ZWM3
YWVhMjIyNzk1YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqCi0gKi8KLQotWwotICAgIEVuYWJsZWRCeVNldHRpbmc9TGVnYWN5QmVmb3JlTG9hZEV2ZW50
RW5hYmxlZCwKLSAgICBFeHBvc2VkPVdpbmRvdwotXSBpbnRlcmZhY2UgQmVmb3JlTG9hZEV2ZW50
IDogRXZlbnQgewotICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBCZWZv
cmVMb2FkRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB1cmw7Ci19OwotCi1kaWN0aW9uYXJ5IEJlZm9yZUxvYWRFdmVudEluaXQgOiBF
dmVudEluaXQgewotICAgIERPTVN0cmluZyB1cmwgPSAiIjsKLX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA0MmRhY2QyZGQ1Y2UzZTVmNjIzMzNhMjE2MmNjMzc2NzQ2ZThmYjg5Li5mNTlm
MDUxYmY0MzY4M2ZkZTZmODMzMjhiODA0MjY0Mjc1NjFlZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTMxNzksNyArMzE3OSw2IEBAIHZvaWQgRG9jdW1lbnQ6OmltcGxpY2l0Q2xvc2Uo
KQogICAgICAgICAvLyBGb3Igbm93LCBvbmx5IGRvIHRoaXMgd2hlbiB0aGVyZSBpcyBhIEZyYW1l
LCBvdGhlcndpc2UgdGhpcyBjb3VsZCBjYXVzZSBKUyByZWVudHJhbmN5CiAgICAgICAgIC8vIGJl
bG93IFNWRyBmb250IHBhcnNpbmcsIGZvciBleGFtcGxlLiA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTM2MjY5PgogICAgICAgICBpZiAoYXV0byogY3VycmVudFBhZ2UgPSBwYWdlKCkpIHsKLSAgICAg
ICAgICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnRzKGN1cnJl
bnRQYWdlKTsKICAgICAgICAgICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdMb2FkRXZl
bnRzKGN1cnJlbnRQYWdlKTsKICAgICAgICAgICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRp
bmdFcnJvckV2ZW50cyhjdXJyZW50UGFnZSk7CiAgICAgICAgICAgICBIVE1MTGlua0VsZW1lbnQ6
OmRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudHMoY3VycmVudFBhZ2UpOwpAQCAtNTI4Miw4ICs1Mjgx
LDYgQEAgdm9pZCBEb2N1bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRvbVN0
cmluZyYgZXZlbnRUeXBlKQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoQU5JTUFUSU9OSVRFUkFU
SU9OX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndl
YmtpdFRyYW5zaXRpb25FbmRFdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5z
aXRpb25lbmRFdmVudCkKICAgICAgICAgYWRkTGlzdGVuZXJUeXBlKFRSQU5TSVRJT05FTkRfTElT
VEVORVIpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYmVmb3JlbG9h
ZEV2ZW50KQotICAgICAgICBhZGRMaXN0ZW5lclR5cGUoQkVGT1JFTE9BRF9MSVNURU5FUik7CiAg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCkKICAgICAg
ICAgYWRkTGlzdGVuZXJUeXBlKFNDUk9MTF9MSVNURU5FUik7CiAgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRtb3VzZWZvcmNld2lsbGJlZ2luRXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCmluZGV4IDgwNWQwY2I1NmE0MGE5MmZhZDIyYjc3ZDdlZGZjMTZhZDY1NTRm
NzIuLjllOWI3YTBjOGU4ZTYwN2QwMTVmYTM0ODlhZDA1ZmZmMzcxMTk3ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCkBAIC04OTgsMTMgKzg5OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIEFOSU1BVElP
TlNUQVJUX0xJU1RFTkVSICAgICAgICAgICAgICA9IDEgPDwgOCwKICAgICAgICAgQU5JTUFUSU9O
SVRFUkFUSU9OX0xJU1RFTkVSICAgICAgICAgID0gMSA8PCA5LAogICAgICAgICBUUkFOU0lUSU9O
RU5EX0xJU1RFTkVSICAgICAgICAgICAgICAgPSAxIDw8IDEwLAotICAgICAgICBCRUZPUkVMT0FE
X0xJU1RFTkVSICAgICAgICAgICAgICAgICAgPSAxIDw8IDExLAotICAgICAgICBTQ1JPTExfTElT
VEVORVIgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEyLAotICAgICAgICBGT1JDRVdJTExC
RUdJTl9MSVNURU5FUiAgICAgICAgICAgICAgPSAxIDw8IDEzLAotICAgICAgICBGT1JDRUNIQU5H
RURfTElTVEVORVIgICAgICAgICAgICAgICAgPSAxIDw8IDE0LAotICAgICAgICBGT1JDRURPV05f
TElTVEVORVIgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE1LAotICAgICAgICBGT1JDRVVQX0xJ
U1RFTkVSICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE2LAotICAgICAgICBSRVNJWkVfTElT
VEVORVIgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE3CisgICAgICAgIFNDUk9MTF9MSVNU
RU5FUiAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTEsCisgICAgICAgIEZPUkNFV0lMTEJF
R0lOX0xJU1RFTkVSICAgICAgICAgICAgICA9IDEgPDwgMTIsCisgICAgICAgIEZPUkNFQ0hBTkdF
RF9MSVNURU5FUiAgICAgICAgICAgICAgICA9IDEgPDwgMTMsCisgICAgICAgIEZPUkNFRE9XTl9M
SVNURU5FUiAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTQsCisgICAgICAgIEZPUkNFVVBfTElT
VEVORVIgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTUsCisgICAgICAgIFJFU0laRV9MSVNU
RU5FUiAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTYKICAgICB9OwogCiAgICAgYm9vbCBo
YXNMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgY29uc3QgeyByZXR1cm4g
KG1fbGlzdGVuZXJUeXBlcyAmIGxpc3RlbmVyVHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KaW5kZXggMmUzYTE2ZDdhZTYxODdjMGE4OTI3YTA0ZjAyZmU3ZmYzZjZmZGIzMy4uNTljN2Vm
YjlhZDU5NzRiNGIyMzViM2I2Mjc2NDEyZTVhNWU4NzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KQEAgLTcsNyArNyw2IEBAIEV2ZW50cyBpbnRlcmZhY2VOYW1lPUV2ZW50CiBIVE1MRXZl
bnRzIGludGVyZmFjZU5hbWU9RXZlbnQKIEFuaW1hdGlvbkV2ZW50CiBBbmltYXRpb25QbGF5YmFj
a0V2ZW50Ci1CZWZvcmVMb2FkRXZlbnQKIEJlZm9yZVVubG9hZEV2ZW50CiBDbGlwYm9hcmRFdmVu
dAogQ2xvc2VFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDUxZTBhY2EzNDQ0OWZjM2MzZDY1OWIy
NjRjZjg4NWFiMzNmN2Y4Y2QuLmY5ODJlNDE1ZmJkNWZhOWUwOGYzYmFkNjk4MmY0NmM0ZTBhYzJh
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdHRyLmgiCi0jaW5jbHVkZSAiQmVmb3JlTG9hZEV2ZW50
LmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIgogI2luY2x1ZGUgIkNvbW1v
blZNLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIgpAQCAtNDIs
NiArNDEsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnRUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJFdmVu
dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFyZWFFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCkBAIC0yNDExLDIwICsyNDExLDYg
QEAgdm9pZCBOb2RlOjpkaXNwYXRjaERPTUFjdGl2YXRlRXZlbnQoRXZlbnQmIHVuZGVybHlpbmdD
bGlja0V2ZW50KQogICAgICAgICB1bmRlcmx5aW5nQ2xpY2tFdmVudC5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogfQogCi1ib29sIE5vZGU6OmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQotewotICAgIGlmICghZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxlZ2FjeUJl
Zm9yZUxvYWRFdmVudEVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAo
IWRvY3VtZW50KCkuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpCRUZPUkVMT0FEX0xJU1RFTkVS
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBSZWY8Tm9kZT4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7Ci0gICAgYXV0byBldmVudCA9IEJlZm9yZUxvYWRFdmVudDo6Y3JlYXRlKHNvdXJjZVVS
TCk7Ci0gICAgZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgcmV0dXJuICFldmVudC0+ZGVmYXVs
dFByZXZlbnRlZCgpOwotfQotCiB2b2lkIE5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudCgpCiB7CiAg
ICAgZGlzcGF0Y2hTY29wZWRFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBFdmVu
dDo6SXNDb21wb3NlZDo6WWVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBiNDU4ZGE5YTMzMzVhYjFhNmNm
MTMxYTk4OTM2ZmQ4NTMwMjMxYzJmLi45Y2U4ODFmYzFiYzdlZDhjNjI3Y2Y3Yzk1MGQyNTE2NWVm
M2ZhNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTQ3OCw4ICs0NzgsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGFsbG93c0RvdWJsZVRhcEdlc3R1cmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAjZW5kaWYKIAotICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpOwotCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaElucHV0RXZl
bnQoKTsKIAogICAgIC8vIFBlcmZvcm0gdGhlIGRlZmF1bHQgYWN0aW9uIGZvciBhbiBldmVudC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggM2Uw
ZjdlNTQzNWVhMzdmYzZiOWRjZmI0MWZlMzYxODUyNWYyZGYxMC4uMThkODc3MmJlZWE0YjM2OGJl
ZjQzOWM5ZWY1OThhMDFjYzZmOTczNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAKQEAgLTg1LDEwICs4NSw2IEBAIFJlZjxOb2RlPiBQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwg
Q2xvCiAKIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogewot
ICAgIC8vIFByZXZlbnQgcmVjdXJzaXZlIGxvYWRpbmcgb2Ygc3R5bGVzaGVldC4KLSAgICBpZiAo
bV9pc0hhbmRsaW5nQmVmb3JlTG9hZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fdGFy
Z2V0ID09ICJ4bWwtc3R5bGVzaGVldCIgJiYgZG9jdW1lbnQoKS5mcmFtZSgpICYmIHBhcmVudE5v
ZGUoKSA9PSAmZG9jdW1lbnQoKSkgewogICAgICAgICAvLyBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIveG1sLXN0eWxlc2hlZXQvCiAgICAgICAgIC8vICMjIyBzdXBwb3J0IHN0eWxlc2hlZXQgaW5j
bHVkZWQgaW4gYSBmcmFnbWVudCBvZiB0aGlzIChvciBhbm90aGVyKSBkb2N1bWVudApAQCAtMTQz
LDEyICsxMzksNiBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0
KCkKIAogICAgICAgICAgICAgU3RyaW5nIHVybCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJl
Zikuc3RyaW5nKCk7CiAKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJv
b2w+IGNoYW5nZShtX2lzSGFuZGxpbmdCZWZvcmVMb2FkLCB0cnVlKTsKLSAgICAgICAgICAgIGlm
ICghZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQodXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGJvb2wgZGlkRXZlbnRMaXN0ZW5lckRpc2Nv
bm5lY3RUaGlzRWxlbWVudCA9ICFpc0Nvbm5lY3RlZCgpIHx8ICZkb2N1bWVudCgpICE9IG9yaWdp
bmFsRG9jdW1lbnQucHRyKCk7CiAgICAgICAgICAgICBpZiAoZGlkRXZlbnRMaXN0ZW5lckRpc2Nv
bm5lY3RUaGlzRWxlbWVudCkKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKaW5kZXggNTRkY2Y3NTgxMjRlNTQ3MzdkMGRm
MDFmODIxNGY0NTMxMjk3ZGY5OC4uNjQwZGM0YzlkOWEwMjg3NDE0ZmY3MjlhOWJiYWQzODJmMjc2
OWMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaApAQCAt
ODksNyArODksNiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShYU0xUKQogICAgIGJvb2wgbV9pc1hT
TCB7IGZhbHNlIH07CiAjZW5kaWYKLSAgICBib29sIG1faXNIYW5kbGluZ0JlZm9yZUxvYWQgeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCmluZGV4IDIzOTJhM2FhZWY1ZTk4YWY3ZjM5Y2M5ODQzOWRjYTY1YTdhNWEz
MWYuLjBmODI2YTg2M2RlMjIyZmZjMDkxZmZlMGY0OTRkYjljYjM4OWI0YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTI4MSw5ICsyODEsNyBAQCBib29sIFNjcmlwdEVs
ZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0
aW9uLCBMZWdhYwogCiBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RDbGFzc2ljU2NyaXB0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKQogewotICAgIFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1
bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7Ci0gICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hC
ZWZvcmVMb2FkRXZlbnQoc291cmNlVVJMKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJl
ZiBvcmlnaW5hbERvY3VtZW50ID0gbV9lbGVtZW50LmRvY3VtZW50KCk7CiAgICAgYm9vbCBkaWRF
dmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50ID0gIW1fZWxlbWVudC5pc0Nvbm5lY3Rl
ZCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpOwog
ICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0zMzMsOSArMzMxLDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1
ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikK
IAogICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgewogICAgICAgICBTdHJpbmcgc291cmNl
VVJMID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKLSAgICAgICAgUmVmPERvY3VtZW50PiBvcmln
aW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKLSAgICAgICAgaWYgKCFtX2VsZW1l
bnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVVJMKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgUmVmIG9yaWdpbmFsRG9jdW1lbnQgPSBtX2VsZW1lbnQuZG9jdW1l
bnQoKTsKIAogICAgICAgICBib29sIGRpZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0VGhpc0VsZW1l
bnQgPSAhbV9lbGVtZW50LmlzQ29ubmVjdGVkKCkgfHwgJm1fZWxlbWVudC5kb2N1bWVudCgpICE9
IG9yaWdpbmFsRG9jdW1lbnQucHRyKCk7CiAgICAgICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlz
Y29ubmVjdFRoaXNFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5j
cHAKaW5kZXggY2VmNmQyYmE3MzgwNWU2YTAzYzBmNzhiNjFhNDQ5YzFlNWVjMzQ0My4uMzNhN2U5
MDdlOTBlMDQ2NDRlYjBkZThiZjQyZWQzNzFmNGU5NDFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC0xNjEsMTYgKzE2MSw2IEBAIHZvaWQgSFRNTEVtYmVk
RWxlbWVudDo6dXBkYXRlV2lkZ2V0KENyZWF0ZVBsdWdpbnMgY3JlYXRlUGx1Z2lucykKICAgICBw
YXJhbWV0ZXJzRm9yUGx1Z2luKHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKIAogICAgIFJlZjxI
VE1MRW1iZWRFbGVtZW50PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsgLy8gTG9hZGluZyB0aGUgcGx1
Z2luIG1pZ2h0IHJlbW92ZSB1cyBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICBib29sIGJlZm9yZUxv
YWRBbGxvd2VkTG9hZCA9IGd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudChtX3VybCk7Ci0g
ICAgaWYgKCFiZWZvcmVMb2FkQWxsb3dlZExvYWQpIHsKLSAgICAgICAgaWYgKGlzPFBsdWdpbkRv
Y3VtZW50Pihkb2N1bWVudCgpKSkgewotICAgICAgICAgICAgLy8gUGx1Z2lucyBpbnNpZGUgcGx1
Z2luIGRvY3VtZW50cyBsb2FkIGRpZmZlcmVudGx5IHRoYW4gb3RoZXIgcGx1Z2lucy4gQnkgdGhl
IHRpbWUKLSAgICAgICAgICAgIC8vIHdlIGFyZSBoZXJlIGluIGEgcGx1Z2luIGRvY3VtZW50LCB0
aGUgbG9hZCBvZiB0aGUgcGx1Z2luICh3aGljaCBpcyB0aGUgcGx1Z2luIGRvY3VtZW50J3MKLSAg
ICAgICAgICAgIC8vIG1haW4gcmVzb3VyY2UpIGhhcyBhbHJlYWR5IHN0YXJ0ZWQuIFdlIG5lZWQg
dG8gZXhwbGljaXRseSBjYW5jZWwgdGhlIG1haW4gcmVzb3VyY2UgbG9hZCBoZXJlLgotICAgICAg
ICAgICAgZG93bmNhc3Q8UGx1Z2luRG9jdW1lbnQ+KGRvY3VtZW50KCkpLmNhbmNlbE1hbnVhbFBs
dWdpbkxvYWQoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGlmICgh
cmVuZGVyZXIoKSkgLy8gRG8gbm90IGxvYWQgdGhlIHBsdWdpbiBpZiBiZWZvcmVsb2FkIHJlbW92
ZWQgdGhpcyBlbGVtZW50IG9yIGl0cyByZW5kZXJlci4KICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3N2M5OGY1ZTA0NTk3NmY5
OTdjNTg5YmExYWM0M2M1ZmRmMWFiMjgzLi4xMTE4NjUzMDVmY2QxYWFlYjIwODg4Yjk1NTQ2ZmRl
OTZjNmU0ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAg
LTM4Miw4ICszODIsNiBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVy
cygpCiB7CiAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIoKSkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAobV9pbWFnZUxvYWRlci0+aGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgp
KQotICAgICAgICByZXR1cm47CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICB1
cGRhdGVJbWFnZUNvbnRyb2xzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAKaW5kZXggNTllODMxNzk5MDAwNjBlMjQxZmIwNDYzNWUwNGZmMjg4NzhlM2VlMy4uZTFlODY2
Nzc5ODE0NTYyZDEzZWFkNTI2ZDcwODhkZjJhNzJkMDIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjEwLDggKzIxMCw2IEBAIHZvaWQgSFRNTExpbmtFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nCiBib29sIEhUTUxMaW5rRWxlbWVudDo6c2hvdWxkTG9hZExpbmsoKQogewogICAgIFJl
ZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudCA9IGRvY3VtZW50KCk7Ci0gICAgaWYgKCFkaXNw
YXRjaEJlZm9yZUxvYWRFdmVudChnZXROb25FbXB0eVVSTEF0dHJpYnV0ZShocmVmQXR0cikuc3Ry
aW5nKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gQSBiZWZvcmVsb2FkIGhhbmRs
ZXIgbWlnaHQgaGF2ZSByZW1vdmVkIHVzIGZyb20gdGhlIGRvY3VtZW50IG9yIGNoYW5nZWQgdGhl
IGRvY3VtZW50LgogICAgIGlmICghaXNDb25uZWN0ZWQoKSB8fCAmZG9jdW1lbnQoKSAhPSBvcmln
aW5hbERvY3VtZW50LnB0cigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4OTg4OWRmNzY5MTFjNmM2MmY4YTkwNmRk
MWUwYmNlYmY2YzJmMjNmLi4yYThmYmMxM2NiNzllYTAwZmViNTE4OTA2MTRmYjgzYTk2NDM1YTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE0MDYsNyAr
MTQwNiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAo
IWlzU2FmZVRvTG9hZFVSTChhYnNvbHV0ZVVSTCwgQ29tcGxhaW4pIHx8ICFkaXNwYXRjaEJlZm9y
ZUxvYWRFdmVudChhYnNvbHV0ZVVSTC5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIGlmICghaXNT
YWZlVG9Mb2FkVVJMKGFic29sdXRlVVJMLCBDb21wbGFpbikpIHsKICAgICAgICAgICAgICAgICBt
ZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3Ip
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTQ4ODMsNyArNDg4
Myw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVu
dFR5cGUqIGNvbnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAgICAgICAgIH0KIAogICAgICAgICAvLyBJ
cyBpdCBzYWZlIHRvIGxvYWQgdGhpcyB1cmw/Ci0gICAgICAgIGlmICghaXNTYWZlVG9Mb2FkVVJM
KG1lZGlhVVJMLCBhY3Rpb25JZkludmFsaWQpIHx8ICFkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCht
ZWRpYVVSTC5zdHJpbmcoKSkpCisgICAgICAgIGlmICghaXNTYWZlVG9Mb2FkVVJMKG1lZGlhVVJM
LCBhY3Rpb25JZkludmFsaWQpKQogICAgICAgICAgICAgZ290byBDaGVja0FnYWluOwogCiAgICAg
ICAgIC8vIEEgJ2JlZm9yZWxvYWQnIGV2ZW50IGhhbmRsZXIgY2FuIG11dGF0ZSB0aGUgRE9NLCBz
byBjaGVjayB0byBzZWUgaWYgdGhlIHNvdXJjZSBlbGVtZW50IGlzIHN0aWxsIGEgY2hpbGQgbm9k
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNjNiZmE3
ZWQxM2QwYWIxZjI0MTJlNzhhMGNlMTI2OWM2NTRhYzU2MS4uZTc1NzQxM2MwODIxZTdiMWM2MzA3
NDYyMWViNzY2MTI3NWM4ZDkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKQEAgLTI3NiwxNCArMjc2LDEzIEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnVw
ZGF0ZVdpZGdldChDcmVhdGVQbHVnaW5zIGNyZWF0ZVBsdWdpbnMpCiAKICAgICBzZXROZWVkc1dp
ZGdldFVwZGF0ZShmYWxzZSk7CiAKLSAgICBSZWY8SFRNTE9iamVjdEVsZW1lbnQ+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOyAvLyBiZWZvcmVsb2FkIGFuZCBwbHVnaW4gbG9hZGluZyBjYW4gbWFrZSBh
cmJpdHJhcnkgRE9NIG11dGF0aW9ucy4KLSAgICBib29sIGJlZm9yZUxvYWRBbGxvd2VkTG9hZCA9
IGd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudCh1cmwpOworICAgIFJlZiBwcm90ZWN0ZWRU
aGlzID0gKnRoaXM7IC8vIHBsdWdpbiBsb2FkaW5nIGNhbiBtYWtlIGFyYml0cmFyeSBET00gbXV0
YXRpb25zLgogICAgIGlmICghcmVuZGVyZXIoKSkgLy8gRG8gbm90IGxvYWQgdGhlIHBsdWdpbiBp
ZiBiZWZvcmVsb2FkIHJlbW92ZWQgdGhpcyBlbGVtZW50IG9yIGl0cyByZW5kZXJlci4KICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gRGlzcGF0Y2hpbmcgYSBiZWZvcmVMb2FkIGV2ZW50IGNvdWxk
IGhhdmUgZXhlY3V0ZWQgY29kZSB0aGF0IGNoYW5nZWQgdGhlIGRvY3VtZW50LgogICAgIC8vIE1h
a2Ugc3VyZSB0aGUgVVJMIGlzIHN0aWxsIHNhZmUgdG8gbG9hZC4KLSAgICBib29sIHN1Y2Nlc3Mg
PSBiZWZvcmVMb2FkQWxsb3dlZExvYWQgJiYgaGFzVmFsaWRDbGFzc0lkKCkgJiYgY2FuTG9hZFVS
TCh1cmwpOworICAgIGJvb2wgc3VjY2VzcyA9IGhhc1ZhbGlkQ2xhc3NJZCgpICYmIGNhbkxvYWRV
UkwodXJsKTsKICAgICBpZiAoc3VjY2VzcykKICAgICAgICAgc3VjY2VzcyA9IHJlcXVlc3RPYmpl
Y3QodXJsLCBzZXJ2aWNlVHlwZSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwogICAgIGlmICgh
c3VjY2VzcyAmJiBoYXNGYWxsYmFja0NvbnRlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHAKaW5kZXggYzdmMTVmNTE3NjU5M2M0ZGEwMDI5ZjBhYmQ1MmQ2Yjdk
YWI5NmIzYS4uOGRhYTY2OGNkNjA2ZmIyYWY2M2U3YThhYjY1MzQ0ODA1YzZiMTBmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNywyOSArMTA3LDgg
QEAgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIEhUTUxQbHVnSW5FbGVtZW50OjpiaW5kaW5nc0lu
c3RhbmNlKCkKICAgICByZXR1cm4gbV9pbnN0YW5jZS5nZXQoKTsKIH0KIAotYm9vbCBIVE1MUGx1
Z0luRWxlbWVudDo6Z3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKQotewotICAgIC8vIEZJWE1FOiBPdXIgY3VycmVudCBwbHVnLWluIGxvYWRpbmcg
ZGVzaWduIGNhbid0IGd1YXJhbnRlZSB0aGUgZm9sbG93aW5nCi0gICAgLy8gYXNzZXJ0aW9uIGlz
IHRydWUsIHNpbmNlIHBsdWctaW4gbG9hZGluZyBjYW4gYmUgaW5pdGlhdGVkIGR1cmluZyBsYXlv
dXQsCi0gICAgLy8gYW5kIHN5bmNocm9ub3VzIGxheW91dCBjYW4gYmUgaW5pdGlhdGVkIGluIGEg
YmVmb3JlbG9hZCBldmVudCBoYW5kbGVyIQotICAgIC8vIFNlZSA8aHR0cDovL3dlYmtpdC5vcmcv
Yi83MTI2ND4uCi0gICAgLy8gQVNTRVJUKCFtX2luQmVmb3JlTG9hZEV2ZW50SGFuZGxlcik7Ci0g
ICAgbV9pbkJlZm9yZUxvYWRFdmVudEhhbmRsZXIgPSB0cnVlOwotICAgIC8vIHN0YXRpY19jYXN0
IGlzIHVzZWQgdG8gYXZvaWQgYSBjb21waWxlIGVycm9yIHNpbmNlIGRpc3BhdGNoQmVmb3JlTG9h
ZEV2ZW50Ci0gICAgLy8gaXMgaW50ZW50aW9uYWxseSB1bmRlZmluZWQgb24gdGhpcyBjbGFzcy4K
LSAgICBib29sIGJlZm9yZUxvYWRBbGxvd2VkTG9hZCA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93
bmVyRWxlbWVudCo+KHRoaXMpLT5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVUkwpOwot
ICAgIG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyID0gZmFsc2U7Ci0gICAgcmV0dXJuIGJlZm9y
ZUxvYWRBbGxvd2VkTG9hZDsKLX0KLQogV2lkZ2V0KiBIVE1MUGx1Z0luRWxlbWVudDo6cGx1Z2lu
V2lkZ2V0KFBsdWdpbkxvYWRpbmdQb2xpY3kgbG9hZFBvbGljeSkgY29uc3QKIHsKLSAgICBpZiAo
bV9pbkJlZm9yZUxvYWRFdmVudEhhbmRsZXIpIHsKLSAgICAgICAgLy8gVGhlIHBsdWctaW4gaGFz
bid0IGxvYWRlZCB5ZXQsIGFuZCBpdCBtYWtlcyBubyBzZW5zZSB0byB0cnkgdG8gbG9hZCBpZiBi
ZWZvcmVsb2FkIGhhbmRsZXIgaGFwcGVuZWQgdG8gdG91Y2ggdGhlIHBsdWctaW4gZWxlbWVudC4K
LSAgICAgICAgLy8gVGhhdCB3b3VsZCByZWN1cnNpdmVseSBjYWxsIGJlZm9yZWxvYWQgZm9yIHRo
ZSBzYW1lIGVsZW1lbnQuCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQogICAgIFJl
bmRlcldpZGdldCogcmVuZGVyV2lkZ2V0ID0gbG9hZFBvbGljeSA9PSBQbHVnaW5Mb2FkaW5nUG9s
aWN5OjpMb2FkID8gcmVuZGVyV2lkZ2V0TG9hZGluZ1BsdWdpbigpIDogdGhpcy0+cmVuZGVyV2lk
Z2V0KCk7CiAgICAgaWYgKCFyZW5kZXJXaWRnZXQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCmluZGV4IGUxOTVkN2Q3MThmOWMx
MjFiMjI2MjBkZDhhM2RiNzgxNGVjMmVjODMuLjA5YjA0MTI1OTUxZDk2OTA2OTg4NzBiNmFjNGZj
ZDE0MGI0Mzg1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKQEAg
LTkzLDkgKzkzLDYgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRv
d1Jvb3QmKSBmaW5hbDsKIAotICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIHVzZSBndWFyZGVkRGlz
cGF0Y2hCZWZvcmVMb2FkRXZlbnQgaW5zdGVhZCBvZiBjYWxsaW5nIGRpc3BhdGNoQmVmb3JlTG9h
ZEV2ZW50IGRpcmVjdGx5LgotICAgIGJvb2wgZ3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKLQogICAgIC8vIFRoaXMgd2lsbCBsb2FkIHRoZSBw
bHVnaW4gaWYgbmVjZXNzYXJ5LgogICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRn
ZXRMb2FkaW5nUGx1Z2luKCkgY29uc3Q7CiAKQEAgLTEwMyw4ICsxMDAsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3dhcFJlbmRlcmVyVGltZXJGaXJlZCgpOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCi0g
ICAgYm9vbCBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkg
PSBkZWxldGU7IC8vIEdlbmVyYXRlIGEgY29tcGlsZSBlcnJvciBpZiBzb21lb25lIGNhbGxzIHRo
aXMgYnkgbWlzdGFrZS4KLQogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IGZpbmFsOwog
CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBmaW5h
bDsKQEAgLTExNCw3ICsxMDksNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxKU0M6OkJpbmRpbmdz
OjpJbnN0YW5jZT4gbV9pbnN0YW5jZTsKICAgICBUaW1lciBtX3N3YXBSZW5kZXJlclRpbWVyOwog
ICAgIGJvb2wgbV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzIHsgZmFsc2UgfTsKLSAgICBib29sIG1f
aW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyIHsgZmFsc2UgfTsKICAgICBEaXNwbGF5U3RhdGUgbV9k
aXNwbGF5U3RhdGUgeyBQbGF5aW5nIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmNwcAppbmRleCA3MTAxOTUxYjU2ODgwMjkyMjA4ODFiNjU5ZjhlZDQ2M2VjMjlm
M2IzLi44MTdlMGE0OGIzYzNkNjdhYjFiYWM5NDU1ZTI0NjNjNWZjYTE3NThiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCBib29s
IEhUTUxUcmFja0VsZW1lbnQ6OmNhbkxvYWRVUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQo
dXJsLnN0cmluZygpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBIVE1MVHJhY2tFbGVt
ZW50OjpkaWRDb21wbGV0ZUxvYWQoTG9hZFN0YXR1cyBzdGF0dXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGYyOGEzNGEzY2NjZjVlMWZiYzM0YzY3MGEzMzdmOTc0
NzJkYmIwMGQuLjdiMjQwZTQ3N2QzZjlhMDU3MTYyYmZhMTIxZDFmYjhhM2E5NTU4NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNDIsOSArMTQyLDYgQEAgdm9p
ZCBJbWFnZUlucHV0VHlwZTo6YXR0YWNoKCkKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAoaW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgp
KQotICAgICAgICByZXR1cm47Ci0KICAgICBhdXRvJiBpbWFnZVJlc291cmNlID0gcmVuZGVyZXIt
PmltYWdlUmVzb3VyY2UoKTsKICAgICBpbWFnZVJlc291cmNlLnNldENhY2hlZEltYWdlKGltYWdl
TG9hZGVyLmltYWdlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCBmZGM5N2RjNDYyYzg3NTI2YWExODhmNzk2OGQ2MGEwYzgzZDY4MGQ5Li42YTEzYmQxY2ZkNDAw
NGYwM2M2NzBlZTNjOWE0MTgyMmU2ZjZlNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTEyMjEsNyArMTIyMSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRGcmFt
ZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIEV2ZW50KiBldmVudCwgUmVmCiB7
CiAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0coUmVzb3VyY2VMb2FkaW5nLCAibG9hZEZyYW1l
UmVxdWVzdDogZnJhbWUgbG9hZCBzdGFydGVkIik7CiAKLSAgICAvLyBQcm90ZWN0IGZyYW1lIGZy
b20gZ2V0dGluZyBibG93biBhd2F5IGluc2lkZSBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBpbiBs
b2FkV2l0aERvY3VtZW50TG9hZGVyLgogICAgIFJlZiBwcm90ZWN0ZWRGcmFtZSB7IG1fZnJhbWUg
fTsKIAogICAgIFVSTCB1cmwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwpAQCAt
MTI1OSwxMCArMTI1OCwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1ZXN0KEZy
YW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJlZgogICAgIGF1dG8gY29t
cGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBSZWYgeyBtX2ZyYW1lIH0s
IGZvcm1TdGF0ZSA9IFdlYWtQdHIgeyBmb3JtU3RhdGUgfSwgZnJhbWVOYW1lID0gcmVxdWVzdC5m
cmFtZU5hbWUoKV0gewogICAgICAgICAvLyBGSVhNRTogSXQncyBwb3NzaWJsZSB0aGlzIHRhcmdl
dEZyYW1lIHdpbGwgbm90IGJlIHRoZSBzYW1lIGZyYW1lIHRoYXQgd2FzIHRhcmdldGVkIGJ5IHRo
ZSBhY3R1YWwKICAgICAgICAgLy8gbG9hZCBpZiBmcmFtZSBuYW1lcyBoYXZlIGNoYW5nZWQuCi0g
ICAgICAgIEZyYW1lKiBzb3VyY2VGcmFtZSA9IGZvcm1TdGF0ZSA/IGZvcm1TdGF0ZS0+c291cmNl
RG9jdW1lbnQoKS5mcmFtZSgpIDogJm1fZnJhbWU7CisgICAgICAgIFJlZlB0ciBzb3VyY2VGcmFt
ZSA9IGZvcm1TdGF0ZSA/IGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS5mcmFtZSgpIDogJm1f
ZnJhbWU7CiAgICAgICAgIGlmICghc291cmNlRnJhbWUpCiAgICAgICAgICAgICBzb3VyY2VGcmFt
ZSA9ICZtX2ZyYW1lOwotICAgICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBzb3VyY2VGcmFtZS0+
bG9hZGVyKCkuZmluZEZyYW1lRm9yTmF2aWdhdGlvbihmcmFtZU5hbWUpOworICAgICAgICBSZWZQ
dHIgdGFyZ2V0RnJhbWUgPSBzb3VyY2VGcmFtZS0+bG9hZGVyKCkuZmluZEZyYW1lRm9yTmF2aWdh
dGlvbihmcmFtZU5hbWUpOwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUgJiYgdGFyZ2V0RnJhbWUg
IT0gc291cmNlRnJhbWUpIHsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gdGFyZ2V0RnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5mb2N1cygpOwpAQCAt
MTYxMSwxOSArMTYxMCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2Fk
ZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgaWYgKGxvYWRl
ci0+dHJpZ2dlcmluZ0FjdGlvbigpLmlzRW1wdHkoKSkKICAgICAgICAgbG9hZGVyLT5zZXRUcmln
Z2VyaW5nQWN0aW9uKHsgKm1fZnJhbWUuZG9jdW1lbnQoKSwgbG9hZGVyLT5yZXF1ZXN0KCksIElu
aXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duLCBwb2xpY3lDaGVja2VyKCkubG9hZFR5cGUoKSwg
aXNGb3JtU3VibWlzc2lvbiB9KTsKIAotICAgIGlmIChFbGVtZW50KiBvd25lckVsZW1lbnQgPSBt
X2ZyYW1lLm93bmVyRWxlbWVudCgpKSB7Ci0gICAgICAgIC8vIFdlIHNraXAgZGlzcGF0Y2hpbmcg
dGhlIGJlZm9yZWxvYWQgZXZlbnQgaWYgd2UndmUgYWxyZWFkeQotICAgICAgICAvLyBjb21taXR0
ZWQgYSByZWFsIGRvY3VtZW50IGxvYWQgYmVjYXVzZSB0aGUgZXZlbnQgd291bGQgbGVhawotICAg
ICAgICAvLyBzdWJzZXF1ZW50IGFjdGl2aXR5IGJ5IHRoZSBmcmFtZSB3aGljaCB0aGUgcGFyZW50
IGZyYW1lIGlzbid0Ci0gICAgICAgIC8vIHN1cHBvc2VkIHRvIGxlYXJuLiBGb3IgZXhhbXBsZSwg
aWYgdGhlIGNoaWxkIGZyYW1lIG5hdmlnYXRlZCB0bwotICAgICAgICAvLyBhIG5ldyBVUkwsIHRo
ZSBwYXJlbnQgZnJhbWUgc2hvdWxkbid0IGxlYXJuIHRoZSBVUkwuCi0gICAgICAgIGlmICghbV9z
dGF0ZU1hY2hpbmUuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkKLSAgICAgICAgICAg
ICYmICFvd25lckVsZW1lbnQtPmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGxvYWRlci0+cmVxdWVz
dCgpLnVybCgpLnN0cmluZygpKSkgewotICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KGxvYWRlci0+cmVxdWVzdCgpLCBmb3JtU3RhdGUuZ2V0KCksIE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbjo6SWdub3JlTG9hZCwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQogICAgIG1fZnJhbWUu
bmF2aWdhdGlvblNjaGVkdWxlcigpLmNhbmNlbChOZXdMb2FkSW5Qcm9ncmVzczo6WWVzKTsKIAog
ICAgIGlmIChzaG91bGRUcmVhdEN1cnJlbnRMb2FkQXNDb250aW51aW5nTG9hZCgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBkNTA2ZjQ0NzkzYWIxMjc0NGU2ZWZm
NjkxNGUwOWY3ODJkNDgxYWZkLi4zYjhhYmIyYzA1ZDc3NTdkM2JlZWJlODhlMTZmODVlNmE2OTFk
YmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTcwLDEyICs3MCw2
IEBAIHRlbXBsYXRlPD4gc3RydWN0IFZhbHVlQ2hlY2s8V2ViQ29yZTo6SW1hZ2VMb2FkZXIqPiB7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEltYWdlRXZlbnRTZW5kZXImIGJlZm9y
ZUxvYWRFdmVudFNlbmRlcigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEltYWdlRXZl
bnRTZW5kZXI+IHNlbmRlcihldmVudE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50KTsKLSAgICByZXR1
cm4gc2VuZGVyOwotfQotCiBzdGF0aWMgSW1hZ2VFdmVudFNlbmRlciYgbG9hZEV2ZW50U2VuZGVy
KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SW1hZ2VFdmVudFNlbmRlcj4gc2VuZGVy
KGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpOwpAQCAtOTgsNyArOTIsNiBAQCBJbWFnZUxvYWRlcjo6
SW1hZ2VMb2FkZXIoRWxlbWVudCYgZWxlbWVudCkKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQog
ICAgICwgbV9pbWFnZShudWxscHRyKQogICAgICwgbV9kZXJlZkVsZW1lbnRUaW1lcigqdGhpcywg
JkltYWdlTG9hZGVyOjp0aW1lckZpcmVkKQotICAgICwgbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2
ZW50KGZhbHNlKQogICAgICwgbV9oYXNQZW5kaW5nTG9hZEV2ZW50KGZhbHNlKQogICAgICwgbV9o
YXNQZW5kaW5nRXJyb3JFdmVudChmYWxzZSkKICAgICAsIG1faW1hZ2VDb21wbGV0ZSh0cnVlKQpA
QCAtMTEyLDEwICsxMDUsNiBAQCBJbWFnZUxvYWRlcjo6fkltYWdlTG9hZGVyKCkKICAgICBpZiAo
bV9pbWFnZSkKICAgICAgICAgbV9pbWFnZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIAotICAgIEFT
U0VSVChtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQgfHwgIWJlZm9yZUxvYWRFdmVudFNlbmRl
cigpLmhhc1BlbmRpbmdFdmVudHMoKnRoaXMpKTsKLSAgICBpZiAobV9oYXNQZW5kaW5nQmVmb3Jl
TG9hZEV2ZW50KQotICAgICAgICBiZWZvcmVMb2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgq
dGhpcyk7Ci0KICAgICBBU1NFUlQobV9oYXNQZW5kaW5nTG9hZEV2ZW50IHx8ICFsb2FkRXZlbnRT
ZW5kZXIoKS5oYXNQZW5kaW5nRXZlbnRzKCp0aGlzKSk7CiAgICAgaWYgKG1faGFzUGVuZGluZ0xv
YWRFdmVudCkKICAgICAgICAgbG9hZEV2ZW50U2VuZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwpA
QCAtMTQwLDEwICsxMjksNiBAQCB2b2lkIEltYWdlTG9hZGVyOjpjbGVhckltYWdlV2l0aG91dENv
bnNpZGVyaW5nUGVuZGluZ0xvYWRFdmVudCgpCiAgICAgQ2FjaGVkSW1hZ2UqIG9sZEltYWdlID0g
bV9pbWFnZS5nZXQoKTsKICAgICBpZiAob2xkSW1hZ2UpIHsKICAgICAgICAgbV9pbWFnZSA9IG51
bGxwdHI7Ci0gICAgICAgIGlmIChtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQpIHsKLSAgICAg
ICAgICAgIGJlZm9yZUxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKLSAgICAg
ICAgICAgIG1faGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCA9IGZhbHNlOwotICAgICAgICB9CiAg
ICAgICAgIGlmIChtX2hhc1BlbmRpbmdMb2FkRXZlbnQpIHsKICAgICAgICAgICAgIGxvYWRFdmVu
dFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKICAgICAgICAgICAgIG1faGFzUGVuZGluZ0xv
YWRFdmVudCA9IGZhbHNlOwpAQCAtMjM3LDEwICsyMjIsNiBAQCB2b2lkIEltYWdlTG9hZGVyOjp1
cGRhdGVGcm9tRWxlbWVudChSZWxldmFudE11dGF0aW9uIHJlbGV2YW50TXV0YXRpb24pCiAKICAg
ICBDYWNoZWRJbWFnZSogb2xkSW1hZ2UgPSBtX2ltYWdlLmdldCgpOwogICAgIGlmIChuZXdJbWFn
ZSAhPSBvbGRJbWFnZSB8fCByZWxldmFudE11dGF0aW9uID09IFJlbGV2YW50TXV0YXRpb246Olll
cykgewotICAgICAgICBpZiAobV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KSB7Ci0gICAgICAg
ICAgICBiZWZvcmVMb2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7Ci0gICAgICAg
ICAgICBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQgPSBmYWxzZTsKLSAgICAgICAgfQogICAg
ICAgICBpZiAobV9oYXNQZW5kaW5nTG9hZEV2ZW50KSB7CiAgICAgICAgICAgICBsb2FkRXZlbnRT
ZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7CiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdMb2Fk
RXZlbnQgPSBmYWxzZTsKQEAgLTI1NiwxNyArMjM3LDExIEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVw
ZGF0ZUZyb21FbGVtZW50KFJlbGV2YW50TXV0YXRpb24gcmVsZXZhbnRNdXRhdGlvbikKICAgICAg
ICAgfQogCiAgICAgICAgIG1faW1hZ2UgPSBuZXdJbWFnZTsKLSAgICAgICAgbV9oYXNQZW5kaW5n
QmVmb3JlTG9hZEV2ZW50ID0gIWRvY3VtZW50LmlzSW1hZ2VEb2N1bWVudCgpICYmIG5ld0ltYWdl
OwogICAgICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBuZXdJbWFnZTsKICAgICAgICAgbV9p
bWFnZUNvbXBsZXRlID0gIW5ld0ltYWdlOwogCiAgICAgICAgIGlmIChuZXdJbWFnZSkgewotICAg
ICAgICAgICAgaWYgKCFkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQoKSkgewotICAgICAgICAgICAg
ICAgIGlmICghZG9jdW1lbnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpCRUZPUkVMT0FEX0xJ
U1RFTkVSKSkKLSAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2
ZW50KCk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBiZWZvcmVM
b2FkRXZlbnRTZW5kZXIoKS5kaXNwYXRjaEV2ZW50U29vbigqdGhpcyk7Ci0gICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQoKSkKICAgICAg
ICAgICAgICAgICB1cGRhdGVSZW5kZXJlcigpOwogCiAgICAgICAgICAgICBpZiAobV9sYXp5SW1h
Z2VMb2FkU3RhdGUgPT0gTGF6eUltYWdlTG9hZFN0YXRlOjpEZWZlcnJlZCkKQEAgLTMzNSw4ICsz
MTAsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYg
cmVzb3VyY2UsIGNvbnN0IE5ldHdvcmtMb2FkTWV0cgogICAgIH0KIAogICAgIG1faW1hZ2VDb21w
bGV0ZSA9IHRydWU7Ci0gICAgaWYgKCFoYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkpCi0gICAg
ICAgIHVwZGF0ZVJlbmRlcmVyKCk7CisgICAgdXBkYXRlUmVuZGVyZXIoKTsKIAogICAgIGlmICgh
bV9oYXNQZW5kaW5nTG9hZEV2ZW50KQogICAgICAgICByZXR1cm47CkBAIC00ODksNTAgKzQ2Mywx
NCBAQCB2b2lkIEltYWdlTG9hZGVyOjp0aW1lckZpcmVkKCkKIAogdm9pZCBJbWFnZUxvYWRlcjo6
ZGlzcGF0Y2hQZW5kaW5nRXZlbnQoSW1hZ2VFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCiB7Ci0g
ICAgQVNTRVJUKGV2ZW50U2VuZGVyID09ICZiZWZvcmVMb2FkRXZlbnRTZW5kZXIoKSB8fCBldmVu
dFNlbmRlciA9PSAmbG9hZEV2ZW50U2VuZGVyKCkgfHwgZXZlbnRTZW5kZXIgPT0gJmVycm9yRXZl
bnRTZW5kZXIoKSk7CisgICAgQVNTRVJUKGV2ZW50U2VuZGVyID09ICZsb2FkRXZlbnRTZW5kZXIo
KSB8fCBldmVudFNlbmRlciA9PSAmZXJyb3JFdmVudFNlbmRlcigpKTsKICAgICBjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUgPSBldmVudFNlbmRlci0+ZXZlbnRUeXBlKCk7Ci0gICAgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50KQotICAgICAgICBkaXNwYXRj
aFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKTsKICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5sb2FkRXZlbnQpCiAgICAgICAgIGRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudCgpOwogICAg
IGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQpCiAgICAgICAgIGRpc3Bh
dGNoUGVuZGluZ0Vycm9yRXZlbnQoKTsKIH0KIAotdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQ
ZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkKLXsKLSAgICBpZiAoIW1faGFzUGVuZGluZ0JlZm9yZUxv
YWRFdmVudCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghbV9pbWFnZSkKLSAgICAgICAgcmV0
dXJuOwotICAgIGlmICghZWxlbWVudCgpLmRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgp
KQotICAgICAgICByZXR1cm47Ci0gICAgbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50ID0gZmFs
c2U7Ci0gICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50ID0gZWxlbWVudCgpLmRvY3Vt
ZW50KCk7Ci0gICAgaWYgKGVsZW1lbnQoKS5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChtX2ltYWdl
LT51cmwoKS5zdHJpbmcoKSkpIHsKLSAgICAgICAgYm9vbCBkaWRFdmVudExpc3RlbmVyRGlzY29u
bmVjdFRoaXNFbGVtZW50ID0gIWVsZW1lbnQoKS5pc0Nvbm5lY3RlZCgpIHx8ICZlbGVtZW50KCku
ZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpOwotICAgICAgICBpZiAoZGlkRXZl
bnRMaXN0ZW5lckRpc2Nvbm5lY3RUaGlzRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgCi0gICAgICAgIHVwZGF0ZVJlbmRlcmVyKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgaWYgKG1faW1hZ2UpIHsKLSAgICAgICAgbV9pbWFnZS0+cmVtb3ZlQ2xpZW50KCp0aGlz
KTsKLSAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7Ci0gICAgfQotCi0gICAgbG9hZEV2ZW50U2Vu
ZGVyKCkuY2FuY2VsRXZlbnQoKnRoaXMpOwotICAgIG1faGFzUGVuZGluZ0xvYWRFdmVudCA9IGZh
bHNlOwotICAgIAotICAgIGlmIChpczxIVE1MT2JqZWN0RWxlbWVudD4oZWxlbWVudCgpKSkKLSAg
ICAgICAgZG93bmNhc3Q8SFRNTE9iamVjdEVsZW1lbnQ+KGVsZW1lbnQoKSkucmVuZGVyRmFsbGJh
Y2tDb250ZW50KCk7Ci0KLSAgICAvLyBPbmx5IGNvbnNpZGVyIHVwZGF0aW5nIHRoZSBwcm90ZWN0
aW9uIHJlZi1jb3VudCBvZiB0aGUgRWxlbWVudCBpbW1lZGlhdGVseSBiZWZvcmUgcmV0dXJuaW5n
Ci0gICAgLy8gZnJvbSB0aGlzIGZ1bmN0aW9uIGFzIGRvaW5nIHNvIG1pZ2h0IHJlc3VsdCBpbiB0
aGUgZGVzdHJ1Y3Rpb24gb2YgdGhpcyBJbWFnZUxvYWRlci4KLSAgICB1cGRhdGVkSGFzUGVuZGlu
Z0V2ZW50KCk7Ci19Ci0KIHZvaWQgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0xvYWRFdmVu
dCgpCiB7CiAgICAgaWYgKCFtX2hhc1BlbmRpbmdMb2FkRXZlbnQpCkBAIC01NjIsMTEgKzUwMCw2
IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0Vycm9yRXZlbnQoKQogICAgIHVw
ZGF0ZWRIYXNQZW5kaW5nRXZlbnQoKTsKIH0KIAotdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQ
ZW5kaW5nQmVmb3JlTG9hZEV2ZW50cyhQYWdlKiBwYWdlKQotewotICAgIGJlZm9yZUxvYWRFdmVu
dFNlbmRlcigpLmRpc3BhdGNoUGVuZGluZ0V2ZW50cyhwYWdlKTsKLX0KLQogdm9pZCBJbWFnZUxv
YWRlcjo6ZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50cyhQYWdlKiBwYWdlKQogewogICAgIGxvYWRF
dmVudFNlbmRlcigpLmRpc3BhdGNoUGVuZGluZ0V2ZW50cyhwYWdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmgKaW5kZXggOGE5NmYwZDUyNjc0NDUxOWQzMTEzMTY4MWM1ZWNmZGE5MmY3
ZmIxNi4uNjEyOTU1ZDBmMWU4NzQ4NGY0N2JjZjllOGVhNDdiYzBkYTkwODllNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKQEAgLTcwLDEyICs3MCwxMCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldExvYWRNYW51YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX2xvYWRNYW51YWxs
eSA9IGxvYWRNYW51YWxseTsgfQogCi0gICAgYm9vbCBoYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50OyB9CiAgICAgYm9v
bCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZl
bnQgfHwgbV9oYXNQZW5kaW5nRXJyb3JFdmVudDsgfQogCiAgICAgdm9pZCBkaXNwYXRjaFBlbmRp
bmdFdmVudChJbWFnZUV2ZW50U2VuZGVyKik7CiAKLSAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBl
bmRpbmdCZWZvcmVMb2FkRXZlbnRzKFBhZ2UqKTsKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBl
bmRpbmdMb2FkRXZlbnRzKFBhZ2UqKTsKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBlbmRpbmdF
cnJvckV2ZW50cyhQYWdlKik7CiAKQEAgLTk4LDcgKzk2LDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgdXBkYXRlZEhhc1BlbmRpbmdFdmVudCgpOwogCi0gICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdC
ZWZvcmVMb2FkRXZlbnQoKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRFdmVudCgpOwog
ICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nRXJyb3JFdmVudCgpOwogCkBAIC0xMjMsNyArMTIwLDYg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RWxlbWVudD4gbV9wcm90ZWN0ZWRFbGVtZW50OwogICAg
IEF0b21TdHJpbmcgbV9mYWlsZWRMb2FkVVJMOwogICAgIFZlY3RvcjxSZWZQdHI8RGVmZXJyZWRQ
cm9taXNlPj4gbV9kZWNvZGluZ1Byb21pc2VzOwotICAgIGJvb2wgbV9oYXNQZW5kaW5nQmVmb3Jl
TG9hZEV2ZW50IDogMTsKICAgICBib29sIG1faGFzUGVuZGluZ0xvYWRFdmVudCA6IDE7CiAgICAg
Ym9vbCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50IDogMTsKICAgICBib29sIG1faW1hZ2VDb21wbGV0
ZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMmFlNzBjYjFkYTg0ZThjYWQz
ZWNjYzBjOWZmZWY0MzZmOGU4OWY2MC4uZDc4YTM0NmFkOWQ2MjJjZjAwMDU5NzVlMjkxMmQyNDAy
MDU0YjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMzIwLDE0ICszMjAsNiBA
QCBMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZDoKICAgICBXZWJDb3JlOgog
ICAgICAgZGVmYXVsdDogZmFsc2UKIAotTGVnYWN5QmVmb3JlTG9hZEV2ZW50RW5hYmxlZDoKLSAg
Y29tbWVudDogPi0KLSAgICBGSU1YRTogVGhpcyBkb2VzIG5vdCBhcHBlYXIgdG8gZXZlciBiZSBz
ZXQgdG8gdHJ1ZS4gUmVtb3ZlIG9uY2UgdmVyaWZpZWQuCi0gIHR5cGU6IGJvb2wKLSAgZGVmYXVs
dFZhbHVlOgotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVBhdGg6CiAgIHR5cGU6IFN0cmluZwogICBkZWZhdWx0VmFsdWU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCBmOTIxM2UyZjM1NzE0OGYxNDBj
NGQ0MTBkMGUxMTQxN2Q3NmYwYjkyLi4wMDlhZTFmMzc5MTE0M2U3YmE5MTk4MmI4OTQ0OTI4ZWZi
OTkwMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTQ4
NSw2ICs0ODUsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgYm9vbCBzaG93Qm9yZGVyRm9ySW5jb21wbGV0ZUltYWdlID0gc2V0dGluZ3Mo
KS5pbmNvbXBsZXRlSW1hZ2VCb3JkZXJFbmFibGVkKCk7CiAgICAgaWYgKCFpbWFnZVJlc291cmNl
KCkuY2FjaGVkSW1hZ2UoKSB8fCBpc0RlZmVycmVkSW1hZ2UoZWxlbWVudCgpKSB8fCBzaG91bGRE
aXNwbGF5QnJva2VuSW1hZ2VJY29uKCkpIHsKICAgICAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9
PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm47CkBAIC00OTIsNyAr
NDkzLDggQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgaWYgKHBhaW50SW5mby5w
aGFzZSA9PSBQYWludFBoYXNlOjpGb3JlZ3JvdW5kKQogICAgICAgICAgICAgcGFnZSgpLmFkZFJl
bGV2YW50VW5wYWludGVkT2JqZWN0KHRoaXMsIHZpc3VhbE92ZXJmbG93UmVjdCgpKTsKIAotICAg
ICAgICBwYWludEluY29tcGxldGVJbWFnZU91dGxpbmUocGFpbnRJbmZvLCBwYWludE9mZnNldCwg
bWlzc2luZ0ltYWdlQm9yZGVyV2lkdGgpOworICAgICAgICBpZiAoc2hvd0JvcmRlckZvckluY29t
cGxldGVJbWFnZSB8fCBzaG91bGREaXNwbGF5QnJva2VuSW1hZ2VJY29uKCkpCisgICAgICAgICAg
ICBwYWludEluY29tcGxldGVJbWFnZU91dGxpbmUocGFpbnRJbmZvLCBwYWludE9mZnNldCwgbWlz
c2luZ0ltYWdlQm9yZGVyV2lkdGgpOwogCiAgICAgICAgIGlmIChjb250ZW50U2l6ZS53aWR0aCgp
ID4gMiAmJiBjb250ZW50U2l6ZS5oZWlnaHQoKSA+IDIpIHsKICAgICAgICAgICAgIExheW91dFVu
aXQgbGVmdEJvcmRlciA9IGJvcmRlckxlZnQoKTsKQEAgLTU1NCw4ICs1NTYsNiBAQCB2b2lkIFJl
bmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZgogICAgIGlmIChjb250ZW50U2l6ZS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGJvb2wgc2hvd0JvcmRlckZvckluY29tcGxldGVJbWFnZSA9IHNldHRp
bmdzKCkuaW5jb21wbGV0ZUltYWdlQm9yZGVyRW5hYmxlZCgpOwotCiAgICAgUmVmUHRyPEltYWdl
PiBpbWcgPSBpbWFnZVJlc291cmNlKCkuaW1hZ2UoZmxvb3JlZEludFNpemUoY29udGVudFNpemUp
KTsKICAgICBpZiAoIWltZyB8fCBpbWctPmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChzaG93Qm9y
ZGVyRm9ySW5jb21wbGV0ZUltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA3ZTZiZjRhYTAzNjUxYWQ2MTc5YTJiYjQ5N2YwYWIz
MDhmY2VhNTY2Li4yZWZiMzUxNTgwZDJlNzc5N2VjNjExODg0ODRlNTA5MjlkZGFjZTUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAt
MTI0LDkgKzEyNCw2IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChSZWZQdHI8U3Ry
aW5nSW1wbD4mJiBpbnB1dFNvdXJjZSkKICAgICB9CiAKICAgICBkb1dyaXRlKHNvdXJjZSk7Ci0K
LSAgICAvLyBBZnRlciBwYXJzaW5nLCBkaXNwYXRjaCBpbWFnZSBiZWZvcmVsb2FkIGV2ZW50cy4K
LSAgICBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50cyhudWxscHRy
KTsKIH0KIAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6aGFuZGxlRXJyb3IoWE1MRXJyb3JzOjpF
cnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbSwgVGV4dFBvc2l0aW9uIHBvc2l0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450322</attachid>
            <date>2022-01-29 01:02:06 -0800</date>
            <delta_ts>2022-01-29 02:36:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234804-20220129010205.patch</filename>
            <type>text/plain</type>
            <size>42834</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U5NWUxN2ZlNTEzZjU0
NTJmMGU4ZTczYWE2ZWJiYjhiYzhmZWUxZC4uZGQ3Yjc2NGVkNzZkYzIwM2EwMzU5MmJiNWZmMzEz
OWMyODIxM2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIyLTAxLTI5ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlbGV0ZSBtb3N0IGNvZGUg
Zm9yIGJlZm9yZWxvYWQgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNDgwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERlbGV0ZSBjb2RlIGZvciBiZWZvcmVsb2FkIGV2ZW50IGFzIHRoZSBldmVu
dCBoYXMgYmVlbiBkaXNhYmxlZCBzdWNjZXNzZnVsbHkgaW4gcjI2MTk0Ni4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9CZWZvcmVMb2FkRXZlbnQu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9CZWZvcmVMb2FkRXZlbnQuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZExpc3RlbmVy
VHlwZUlmTmVlZGVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20v
RXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCk6IERlbGV0ZWQuCisgICAgICAgICogZG9t
L05vZGUuaDoKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KTogbV9p
c0hhbmRsaW5nQmVmb3JlTG9hZCBpcyBuZXZlciB0cnVlLgorICAgICAgICAqIGRvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0Q2xhc3NpY1NjcmlwdCk6IGRpc3Bh
dGNoQmVmb3JlTG9hZEV2ZW50IGFsd2F5cyByZXR1cm5lZCB0cnVlCisgICAgICAgIHdoZW4gYmVm
b3JlbG9hZCBldmVudCBpcyBkaXNhYmxlZCwgYW5kIHRoZSBlbGVtZW50IGlzIGFsd2F5cyBjb25u
ZWN0ZWQgaGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1
bGVTY3JpcHQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6dXBkYXRlV2lkZ2V0KTogRGVsZXRl
ZCB0aGUgbm8tb3AgY29kZS4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnNob3VsZExvYWRMaW5rKToKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQpOgorICAgICAgICAqIGh0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6
OnVwZGF0ZVdpZGdldCk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6Z3VhcmRlZERpc3BhdGNoQmVmb3Jl
TG9hZEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50
OjpwbHVnaW5XaWRnZXQgY29uc3QpOiBtX2luQmVmb3JlTG9hZEV2ZW50SGFuZGxlciBpcyBuZXZl
ciB0cnVlLgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxl
bWVudDo6Y2FuTG9hZFVSTCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKTogRGVs
ZXRlZCB0aGUgbm8tb3AgY29kZS4KKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogRG9jdW1l
bnQgd2lsbCBuZXZlciBoYXZlIGJlZm9yZWxvYWQgZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgYnV0
IGtlZXAgdGhlIGNhbGwgdG8gZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50IHNpbmNlIHdl
IGRlcGVuZCBvbiBpdCB1cGRhdGluZyByZW5kZXJlci4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
TG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQpOiBLZWVwIHRoZSBvbmx5IHNp
ZGUgZWZmZWN0IGxlZnQgd2hpY2ggaXMKKyAgICAgICAgdG8gdXBkYXRlIHRoZSByZW5kZXJlci4K
KyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdz
LnlhbWw6IERlbGV0ZWQgdGhlIG9wdGlvbiB0byBlbmFibGUgYmVmb3JlbG9hZCBldmVudC4KKwog
MjAyMi0wMS0yOCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdIFVucmV2aWV3ZWQsIGZpeCBub24tdW5pZmllZCBidWlsZCBhZnRlciByMjg4NzU5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDBiYmY3MzE5ZGU2MzA4OGFjODJiNWM4YzM1MjBkNGE0
MmNlMWYyODEuLjE0OTliNGEyMTIxZTY3NGRmYmI5MDRkOThmNzgwOTAyMTg0NzVlYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC04NDUsNyArODQ1LDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBkb20vQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaWRsCiAgICAgZG9tL0Fu
aW1hdGlvbkV2ZW50LmlkbAogICAgIGRvbS9BdHRyLmlkbAotICAgIGRvbS9CZWZvcmVMb2FkRXZl
bnQuaWRsCiAgICAgZG9tL0JlZm9yZVVubG9hZEV2ZW50LmlkbAogICAgIGRvbS9Ccm9hZGNhc3RD
aGFubmVsLmlkbAogICAgIGRvbS9DREFUQVNlY3Rpb24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBmOGIzNmI4MTFkNzFhOWQyMWM4
NzBjMTEzNGJhYzQ4MTE4NjBhMGRmLi5jYzg5YzllYjNlMWE5ODk5YzkzODNiMDk2MjI2NjZmMGVk
NzgyMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTk5Miw3ICs5OTIsNiBAQCAkKFBST0pFQ1RfRElSKS9kb20vQWJzdHJhY3RSYW5n
ZS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy5pZGwKICQo
UFJPSkVDVF9ESVIpL2RvbS9BbmltYXRpb25FdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9B
dHRyLmlkbAotJChQUk9KRUNUX0RJUikvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwKICQoUFJPSkVD
VF9ESVIpL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9Ccm9h
ZGNhc3RDaGFubmVsLmlkbAogJChQUk9KRUNUX0RJUikvZG9tL0NEQVRBU2VjdGlvbi5pZGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXgg
Y2UxNDU4YmE3NzkyZGViODRkNmRkYWQ4YzUyNzBiNmFlYTNhMDNlYy4uY2QzMzUyNzliOWQzYmM2
NTc3NDVjNTdlNDIwZGRmMWQyMzY2NjFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI2Niw4ICsyNjYsNiBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Jhc2VBdWRpb0NvbnRleHQuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Jhc2VBdWRp
b0NvbnRleHQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNCYXNpY0NyZWRlbnRpYWwuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0Jhc2ljQ3JlZGVudGlhbC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0JlZm9yZUxvYWRFdmVudC5jcHAKLSQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmVmb3JlTG9hZEV2ZW50LmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmVmb3JlVW5sb2FkRXZl
bnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Jl
Zm9yZVVubG9hZEV2ZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQmlxdWFkRmlsdGVyTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDk2M2ZjNTZjMTcxY2U5NDNjYTA0ZDhjNzhmYjA1MzFlYjk5OTM0MTEuLjViMzg5MTAz
MGUwNWVjZDBmMDQ1M2U1MjFhMmExMzQ1NDg0MTMxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtODUwLDcgKzg1MCw2IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChX
ZWJDb3JlKS9kb20vQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9BbmltYXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0F0dHIuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9CZWZvcmVVbmxvYWRFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0Jyb2FkY2Fz
dENoYW5uZWwuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggZWQ3OWQ0NWZjOTU3N2EzNTUxMzFjOWEyOTIxN2Q3MmI3MDhiZDA0ZS4u
NDc0ZmNjODhhZTljMmExNjc1MTU5M2YwYmY4YTZlNzMwZTQ3ZWMzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTkwMyw3ICs5MDMsNiBAQCBkb20vQWN0aXZlRE9NT2JqZWN0LmNwcAogZG9tL0FsbERlc2Nl
bmRhbnRzQ29sbGVjdGlvbi5jcHAKIGRvbS9BbmltYXRpb25FdmVudC5jcHAKIGRvbS9BdHRyLmNw
cAotZG9tL0JlZm9yZUxvYWRFdmVudC5jcHAKIGRvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5j
cHAKIGRvbS9CZWZvcmVVbmxvYWRFdmVudC5jcHAKIGRvbS9Cb3VuZGFyeVBvaW50LmNwcApAQCAt
MjkxNyw3ICsyOTE2LDYgQEAgSlNBdXRvbWF0aW9uUmF0ZS5jcHAKIEpTQmFyUHJvcC5jcHAKIEpT
QmFzZUF1ZGlvQ29udGV4dC5jcHAKIEpTQmFzaWNDcmVkZW50aWFsLmNwcAotSlNCZWZvcmVMb2Fk
RXZlbnQuY3BwCiBKU0JlZm9yZVVubG9hZEV2ZW50LmNwcAogSlNCaXF1YWRGaWx0ZXJOb2RlLmNw
cAogSlNCaXF1YWRGaWx0ZXJPcHRpb25zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiN2JkODA4M2I5Nzk1NzA0M2NiZjg4
ZWE4MGI2ZWU5NjU3NjdjMDQuLjBkZjU1MTU1Y2Y5YmU2ZDI5MjI3YzYwYjYwMzA2Yjk5YzlhY2Y3
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTQyMjYsOCArNDIyNiw2IEBACiAJCUJDOEM4RkFFMEREQ0QzMUIwMEI1OTJGNCAv
KiBSZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM4QzhGQUMwRERDRDMxQjAwQjU5MkY0IC8qIFJlbmRlclN0eWxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM5MjZGODEwQzA1NTI0
NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5MjZGN0YwQzA1NTI0NzAwODI3NzZCIC8qIEpT
SFRNTEZyYW1lU2V0RWxlbWVudC5oICovOyB9OwogCQlCQzk0MzlDMzExNkNGNDk0MDA0OEM3NTAg
LyogSlNOb2RlQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzk0MzlDMjExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkM5NDYyRDgxMDdB
N0I0QzAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NDYyRDcxMDdBN0I0QzAwODU3MTkzIC8qIEJlZm9y
ZUxvYWRFdmVudC5oICovOyB9OwotCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZv
cmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDOTQ2MzQ3MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oICovOyB9
OwogCQlCQzk0RDE0RjBDMjc1QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0RDE0RDBDMjc1QzY4MDA2QkM2
MTcgLyogSlNIaXN0b3J5LmggKi87IH07CiAJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBI
aXN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Qzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oICovOyB9OwogCQlCQzk2REI0MzBG
M0E4ODBFMDA1NzNDQjMgLyogUmVuZGVyQm94TW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTZEQjQyMEYzQTg4MEUwMDU3M0NCMyAv
KiBSZW5kZXJCb3hNb2RlbE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xNTQ0MiwxMCArMTU0NDAsNiBAQAogCQlCQzkyNkY3RTBDMDU1
MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzkyNkY3RjBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1M
RnJhbWVTZXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hU
TUxGcmFtZVNldEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5NDM5
QzIxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU05vZGVDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQkM5NDYyQ0IxMDdBN0EzOTAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQmVmb3JlTG9hZEV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkM5NDYyRDcxMDdBN0I0QzAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCZWZvcmVMb2FkRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM5NDYzNDUxMDdBOTM0QjAwODU3MTkzIC8qIEpT
QmVmb3JlTG9hZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQmVmb3JlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM5
NDYzNDcxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmVmb3JlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDOTREMTA3MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVl
bk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9y
bVNjcmVlbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5NEQxNEMwQzI3
NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNIaXN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM5NEQxNEQwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNIaXN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNzMzOCw3ICsxNzMzMiw2IEBACiAJCUUzQkYxOUUxMjJBRjJGNTUwMDlDOTkyNiAvKiBY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNCRjE5RTMyMkFGMkZBNTAwOUM5OTI2IC8qIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUU0MjJBRjJGQ0YwMDlDOTkyNiAvKiBDbG9z
ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsb3NlRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlFM0JGMTlFNTIyQUYyRkY0MDA5Qzk5MjYgLyogQmVmb3JlTG9h
ZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJlZm9yZUxvYWRFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUU2MjJBRjMwMkEwMDlDOTkyNiAvKiBIYXNo
Q2hhbmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGFzaENoYW5nZUV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCRjE5RTcyMkFGMzA5RjAwOUM5OTI2IC8q
IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzQzA0MTJEMjU0Q0EyOUIwMDIxRDBFNiAvKiBTeXN0ZW1Tb3VuZE1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtU291bmRNYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzc4OSw4ICsyNzc4Miw2IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQkzMTk4NDgwMzFBMUU2QjVEMDBBMTMzMTggLyogSlNBbmltYXRpb25FdmVudC5j
cHAgKi8sCiAJCQkJMzE5ODQ4MDQxQTFFNkI1RDAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQu
aCAqLywKLQkJCQlCQzk0NjM0NTEwN0E5MzRCMDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQu
Y3BwICovLAotCQkJCUJDOTQ2MzQ3MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVu
dC5oICovLAogCQkJCTgyMjU0MzJDQTlENEI0Q0Y0NjI4RUM3RiAvKiBKU0JlZm9yZVVubG9hZEV2
ZW50LmNwcCAqLywKIAkJCQkyOUUwNEEyN0JFRDJGODFGOThFOTAyMkIgLyogSlNCZWZvcmVVbmxv
YWRFdmVudC5oICovLAogCQkJCTgzNkQwMzJEMURBOEExMzIwMEZGRDk2QiAvKiBKU0NsaXBib2Fy
ZEV2ZW50LmNwcCAqLywKQEAgLTMyMjAyLDkgKzMyMTkzLDYgQEAKIAkJCQlBOEM0QTdGQjA5RDU2
MzI3MDAwM0FDOEQgLyogQXR0ci5oICovLAogCQkJCTkzRUVDMUU1MDlDMjg3NzcwMEM1MTVEMSAv
KiBBdHRyLmlkbCAqLywKIAkJCQlBOEM0QTdGOTA5RDU2MzI3MDAwM0FDOEQgLyogQXR0cmlidXRl
LmggKi8sCi0JCQkJRTNCRjE5RTUyMkFGMkZGNDAwOUM5OTI2IC8qIEJlZm9yZUxvYWRFdmVudC5j
cHAgKi8sCi0JCQkJQkM5NDYyRDcxMDdBN0I0QzAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5o
ICovLAotCQkJCUJDOTQ2MkNCMTA3QTdBMzkwMDg1NzE5MyAvKiBCZWZvcmVMb2FkRXZlbnQuaWRs
ICovLAogCQkJCUFCMjNBMzI1MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRF
dmVudC5jcHAgKi8sCiAJCQkJQUIyM0EzMjYwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50LmggKi8sCiAJCQkJODUwMzFCMjYwQTQ0RUZDNzAwRjk5MkUwIC8qIEJlZm9y
ZVVubG9hZEV2ZW50LmNwcCAqLywKQEAgLTMzNTg5LDcgKzMzNTc3LDYgQEAKIAkJCQk3MTU2QkNB
MTIxQ0EzNTBGMDA1MzQzOTcgLyogQmFzaWNFZmZlY3RUaW1pbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZCRDZBRjhBMTVFRjI1REYwMDhCNzExMCAvKiBCYXNpY1NoYXBlRnVuY3Rpb25zLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGQkQ2QUY4QzE1RUYyNjA0MDA4QjcxMTAgLyogQmFzaWNTaGFwZXMu
aCBpbiBIZWFkZXJzICovLAotCQkJCUJDOTQ2MkQ4MTA3QTdCNEMwMDg1NzE5MyAvKiBCZWZvcmVM
b2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFCMjNBMzI4MDlCQkE3RDAwMDY3Q0M1MyAv
KiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCM0Qw
QTQ0RUZDNzAwRjk5MkUwIC8qIEJlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREEyNDBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaUNvbnRleHQuaCBpbiBIZWFkZXJzICov
LApAQCAtMzUxNTQsNyArMzUxNDEsNiBAQAogCQkJCTU3RENFRDk4MjE0ODgyMTYwMDE2Qjg0NyAv
KiBKU0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAw
MEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QzdB
NjlGMUU1NzkxNzgwMEM2N0Q3MSAvKiBKU0Jhc2ljQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RkE0NDU0RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVVbmxv
YWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRGMDlEQzkxMzk5QjYyMjAwNjg4RTVCIC8q
IEpTQmlxdWFkRmlsdGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUyRDk5Q0UxMEUyQkJE
QTAwNDk2MzM3IC8qIEpTQmxvYi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggMjMzYThjYWZlMzQzM2I5
OWMxNjU3OTJmYzAxZmQ5YTM3MDhmZjJjOC4uOTJhY2M4ODhhNTZjYzI3YjZjNTI0MDA2ZTBjNGZk
YmFlOGYzOGY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaApAQCAtNjIsNyArNjIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpIFwKICAgICBtYWNybyhBdXRo
ZW50aWNhdG9yUmVzcG9uc2UpIFwKICAgICBtYWNybyhCYXNlQXVkaW9Db250ZXh0KSBcCi0gICAg
bWFjcm8oQmVmb3JlTG9hZEV2ZW50KSBcCiAgICAgbWFjcm8oQmxvYkV2ZW50KSBcCiAgICAgbWFj
cm8oQnJvYWRjYXN0Q2hhbm5lbCkgXAogICAgIG1hY3JvKENhY2hlKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9CZWZvcmVMb2FkRXZlbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGJl
NTA4YmYzMDQxOWIwMGU3OWYzODg2ZDE1MjEzMjc5ZWQzYWRmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVMb2Fk
RXZlbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJCZWZvcmVMb2FkRXZlbnQuaCIKLQotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KEJlZm9yZUxvYWRFdmVudCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9CZWZvcmVMb2FkRXZlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE3ZDQy
MWYzYTQ1Yzk0NmY5YmU0M2EzOWYxNzhmNmJhYjM1YmUzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2
ZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRl
ICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBCZWZvcmVMb2FkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewotICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoQmVmb3JlTG9hZEV2ZW50KTsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEJlZm9yZUxvYWRFdmVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmVmb3JlTG9hZEV2ZW50KHVybCkpOwotICAg
IH0KLQotICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKLSAgICAgICAgU3RyaW5nIHVybDsK
LSAgICB9OwotCi0gICAgc3RhdGljIFJlZjxCZWZvcmVMb2FkRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBCZWZvcmVMb2FkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwotICAgIH0K
LQotICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KLQotICAg
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
QmVmb3JlTG9hZEV2ZW50SW50ZXJmYWNlVHlwZTsgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0
IEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHVybCkKLSAgICAgICAgOiBFdmVudChldmVu
dE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50LCBDYW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6Olll
cykKLSAgICAgICAgLCBtX3VybCh1cmwpCi0gICAgewotICAgIH0KLQotICAgIEJlZm9yZUxvYWRF
dmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNU
cnVzdGVkIGlzVHJ1c3RlZCkKLSAgICAgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKQotICAgICAgICAsIG1fdXJsKGluaXRpYWxpemVyLnVybCkKLSAgICB7Ci0gICAgfQot
Ci0gICAgU3RyaW5nIG1fdXJsOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTMyMDlhY2E1ZGUzOTBkMzRiNDUxZjc3YTZlYzdhZWEyMjI3OTViYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVm
b3JlTG9hZEV2ZW50LmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi1bCi0gICAgRW5hYmxl
ZEJ5U2V0dGluZz1MZWdhY3lCZWZvcmVMb2FkRXZlbnRFbmFibGVkLAotICAgIEV4cG9zZWQ9V2lu
ZG93Ci1dIGludGVyZmFjZSBCZWZvcmVMb2FkRXZlbnQgOiBFdmVudCB7Ci0gICAgY29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEJlZm9yZUxvYWRFdmVudEluaXQgZXZlbnRJbml0
RGljdCk7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVybDsKLX07Ci0KLWRp
Y3Rpb25hcnkgQmVmb3JlTG9hZEV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7Ci0gICAgRE9NU3RyaW5n
IHVybCA9ICIiOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI1YTQxNWFlYjc3NjMz
ODA3ODc0YmY5NmY5ZTY5ODEzOGEzODUxZTQuLmFjNTY0YjFlODc2NjJhZmVkZWY2MmQ5M2IwNDMx
N2M0MTkzMTBiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTIyMCw4ICs1MjIwLDYg
QEAgdm9pZCBEb2N1bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlKQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoRE9NQ0hBUkFDVEVSREFUQU1P
RElGSUVEX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
Lm92ZXJmbG93Y2hhbmdlZEV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoT1ZFUkZMT1dD
SEFOR0VEX0xJU1RFTkVSKTsKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LmJlZm9yZWxvYWRFdmVudCkKLSAgICAgICAgYWRkTGlzdGVuZXJUeXBlKEJFRk9SRUxPQURfTElT
VEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZl
bnQpCiAgICAgICAgIGFkZExpc3RlbmVyVHlwZShTQ1JPTExfTElTVEVORVIpOwogICAgIGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdpbGxiZWdpbkV2
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBlOWJjMDcxY2Y4ZmI5NWVhZjNhNTMyMzFhMTMy
ODBmMWJiYjQ3NGI3Li44MDE4NDFhN2JjZTlkYTEyNTVmNTZiMTcyNDllODBkMWRlY2IzMTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtODkxLDcgKzg5MSw3IEBAIHB1YmxpYzoKICAgICAvLyBk
aXNwYXRjaCBldmVudHMgdW5uZWNlc3NhcmlseQogICAgIC8vIEZJWE1FOiBDb25zaWRlciB1c2lu
ZyBPcHRpb25TZXQuCiAgICAgZW51bSBMaXN0ZW5lclR5cGUgewotICAgICAgICBET01TVUJUUkVF
TU9ESUZJRURfTElTVEVORVIgICAgICAgICAgPSAxLAorICAgICAgICBET01TVUJUUkVFTU9ESUZJ
RURfTElTVEVORVIgICAgICAgICAgPSAxIDw8IDAsCiAgICAgICAgIERPTU5PREVJTlNFUlRFRF9M
SVNURU5FUiAgICAgICAgICAgICA9IDEgPDwgMSwKICAgICAgICAgRE9NTk9ERVJFTU9WRURfTElT
VEVORVIgICAgICAgICAgICAgID0gMSA8PCAyLAogICAgICAgICBET01OT0RFUkVNT1ZFREZST01E
T0NVTUVOVF9MSVNURU5FUiAgPSAxIDw8IDMsCkBAIC04OTksMTQgKzg5OSwxMyBAQCBwdWJsaWM6
CiAgICAgICAgIERPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9MSVNURU5FUiAgICA9IDEgPDwgNSwK
ICAgICAgICAgT1ZFUkZMT1dDSEFOR0VEX0xJU1RFTkVSICAgICAgICAgICAgID0gMSA8PCA2LAog
ICAgICAgICBUUkFOU0lUSU9ORU5EX0xJU1RFTkVSICAgICAgICAgICAgICAgPSAxIDw8IDcsCi0g
ICAgICAgIEJFRk9SRUxPQURfTElTVEVORVIgICAgICAgICAgICAgICAgICA9IDEgPDwgOCwKLSAg
ICAgICAgU0NST0xMX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA5LAotICAg
ICAgICBGT1JDRVdJTExCRUdJTl9MSVNURU5FUiAgICAgICAgICAgICAgPSAxIDw8IDEwLAotICAg
ICAgICBGT1JDRUNIQU5HRURfTElTVEVORVIgICAgICAgICAgICAgICAgPSAxIDw8IDExLAotICAg
ICAgICBGT1JDRURPV05fTElTVEVORVIgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEyLAotICAg
ICAgICBGT1JDRVVQX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEzLAotICAg
ICAgICBGT0NVU0lOX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE0LAotICAg
ICAgICBGT0NVU09VVF9MSVNURU5FUiAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDE1LAorICAg
ICAgICBTQ1JPTExfTElTVEVORVIgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDgsCisgICAg
ICAgIEZPUkNFV0lMTEJFR0lOX0xJU1RFTkVSICAgICAgICAgICAgICA9IDEgPDwgOSwKKyAgICAg
ICAgRk9SQ0VDSEFOR0VEX0xJU1RFTkVSICAgICAgICAgICAgICAgID0gMSA8PCAxMCwKKyAgICAg
ICAgRk9SQ0VET1dOX0xJU1RFTkVSICAgICAgICAgICAgICAgICAgID0gMSA8PCAxMSwKKyAgICAg
ICAgRk9SQ0VVUF9MSVNURU5FUiAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxMiwKKyAgICAg
ICAgRk9DVVNJTl9MSVNURU5FUiAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxMywKKyAgICAg
ICAgRk9DVVNPVVRfTElTVEVORVIgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxNCwKICAgICB9
OwogCiAgICAgYm9vbCBoYXNMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkg
Y29uc3QgeyByZXR1cm4gKG1fbGlzdGVuZXJUeXBlcyAmIGxpc3RlbmVyVHlwZSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggMTY1ZmFlOWFhNmNkMzdjNjIzNmI4OWUwZDgyZGEwNmJm
MGE0NGYyNi4uNTk5OWNjNzk2MTRhZDUxMGIxMTEwMjZjNWJiODNlYWM0Y2NjNmQ3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTcsNyArNyw3IEBAIEV2ZW50cyBpbnRlcmZhY2VOYW1l
PUV2ZW50CiBIVE1MRXZlbnRzIGludGVyZmFjZU5hbWU9RXZlbnQKIEFuaW1hdGlvbkV2ZW50CiBB
bmltYXRpb25QbGF5YmFja0V2ZW50Ci1CZWZvcmVMb2FkRXZlbnQKK0JlZm9yZUxvYWRFdmVudCBp
bnRlcmZhY2VOYW1lPUV2ZW50CiBCZWZvcmVVbmxvYWRFdmVudAogQ2xpcGJvYXJkRXZlbnQKIENs
b3NlRXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA2NWU2YWIyNDU2MjY3NTYxZDRhOTIxZDFmNDA0
MTZiN2NjMzc4YWFhLi5jZDJhYzY0NWQxNWEwYWVhZWIwODA0ZWUwMzQ0ZGUyMTdmMjhhMDE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiQXR0ci5oIgotI2luY2x1ZGUgIkJlZm9yZUxvYWRFdmVudC5oIgog
I2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJDb21tb25WTS5o
IgogI2luY2x1ZGUgIkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaCIKQEAgLTQyLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiRXZlbnREaXNw
YXRjaGVyLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgpAQCAtMjQwOSwyMCArMjQwOSw2IEBAIHZv
aWQgTm9kZTo6ZGlzcGF0Y2hET01BY3RpdmF0ZUV2ZW50KEV2ZW50JiB1bmRlcmx5aW5nQ2xpY2tF
dmVudCkKICAgICAgICAgdW5kZXJseWluZ0NsaWNrRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsK
IH0KIAotYm9vbCBOb2RlOjpkaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCkKLXsKLSAgICBpZiAoIWRvY3VtZW50KCkuc2V0dGluZ3MoKS5sZWdhY3lCZWZvcmVM
b2FkRXZlbnRFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFkb2N1
bWVudCgpLmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6QkVGT1JFTE9BRF9MSVNURU5FUikpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgUmVmPE5vZGU+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwotICAgIGF1dG8gZXZlbnQgPSBCZWZvcmVMb2FkRXZlbnQ6OmNyZWF0ZShzb3VyY2VVUkwpOwot
ICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgIHJldHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKTsKLX0KLQogdm9pZCBOb2RlOjpkaXNwYXRjaElucHV0RXZlbnQoKQogewogICAgIGRp
c3BhdGNoU2NvcGVkRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwg
RXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgRXZlbnQ6Oklz
Q29tcG9zZWQ6OlllcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYjQ1OGRhOWEzMzM1YWIxYTZjZjEzMWE5
ODkzNmZkODUzMDIzMWMyZi4uOWNlODgxZmMxYmM3ZWQ4YzYyN2NmN2M5NTBkMjUxNjVlZjNmYTYy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCkBAIC00NzgsOCArNDc4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd3NEb3VibGVUYXBHZXN0dXJlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogI2Vu
ZGlmCiAKLSAgICBib29sIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hJbnB1dEV2ZW50KCk7
CiAKICAgICAvLyBQZXJmb3JtIHRoZSBkZWZhdWx0IGFjdGlvbiBmb3IgYW4gZXZlbnQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IDNlMGY3ZTU0
MzVlYTM3ZmM2YjlkY2ZiNDFmZTM2MTg1MjVmMmRmMTAuLjE4ZDg3NzJiZWVhNGIzNjhiZWY0Mzlj
OWVmNTk4YTAxY2M2Zjk3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwCkBAIC04NSwxMCArODUsNiBAQCBSZWY8Tm9kZT4gUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsbwog
CiB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KCkKIHsKLSAgICAv
LyBQcmV2ZW50IHJlY3Vyc2l2ZSBsb2FkaW5nIG9mIHN0eWxlc2hlZXQuCi0gICAgaWYgKG1faXNI
YW5kbGluZ0JlZm9yZUxvYWQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChtX3RhcmdldCA9
PSAieG1sLXN0eWxlc2hlZXQiICYmIGRvY3VtZW50KCkuZnJhbWUoKSAmJiBwYXJlbnROb2RlKCkg
PT0gJmRvY3VtZW50KCkpIHsKICAgICAgICAgLy8gc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL3ht
bC1zdHlsZXNoZWV0LwogICAgICAgICAvLyAjIyMgc3VwcG9ydCBzdHlsZXNoZWV0IGluY2x1ZGVk
IGluIGEgZnJhZ21lbnQgb2YgdGhpcyAob3IgYW5vdGhlcikgZG9jdW1lbnQKQEAgLTE0MywxMiAr
MTM5LDYgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAK
ICAgICAgICAgICAgIFN0cmluZyB1cmwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKGhyZWYpLnN0
cmluZygpOwogCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBj
aGFuZ2UobV9pc0hhbmRsaW5nQmVmb3JlTG9hZCwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAoIWRp
c3BhdGNoQmVmb3JlTG9hZEV2ZW50KHVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotCiAgICAgICAgICAgICBib29sIGRpZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0
VGhpc0VsZW1lbnQgPSAhaXNDb25uZWN0ZWQoKSB8fCAmZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERv
Y3VtZW50LnB0cigpOwogICAgICAgICAgICAgaWYgKGRpZEV2ZW50TGlzdGVuZXJEaXNjb25uZWN0
VGhpc0VsZW1lbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCmluZGV4IDU0ZGNmNzU4MTI0ZTU0NzM3ZDBkZjAxZjgy
MTRmNDUzMTI5N2RmOTguLjY0MGRjNGM5ZDlhMDI4NzQxNGZmNzI5YTliYmFkMzgyZjI3NjljMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKQEAgLTg5LDcg
Kzg5LDYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoWFNMVCkKICAgICBib29sIG1faXNYU0wgeyBm
YWxzZSB9OwogI2VuZGlmCi0gICAgYm9vbCBtX2lzSGFuZGxpbmdCZWZvcmVMb2FkIHsgZmFsc2Ug
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCBlZjU5MzI1MjQ4YzZjODFlNGI3Zjc3MDFhYjU4YTliNjkzOWQzYzQ4Li4z
MmM1NjJmYWJjMjE3YTI2ODk1OGM5N2M5OTY0NjhlNzhjNTk1MTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yODUsMTMgKzI4NSw3IEBAIGJvb2wgU2NyaXB0RWxlbWVu
dDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24s
IExlZ2FjCiAKIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdENsYXNzaWNTY3JpcHQoY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50
KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKLSAgICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9y
ZUxvYWRFdmVudChzb3VyY2VVUkwpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYm9vbCBk
aWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50ID0gIW1fZWxlbWVudC5pc0Nvbm5l
Y3RlZCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigp
OwotICAgIGlmIChkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50KQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KKyAgICBBU1NFUlQobV9lbGVtZW50LmlzQ29ubmVjdGVkKCkpOwog
ICAgIEFTU0VSVCghbV9sb2FkYWJsZVNjcmlwdCk7CiAgICAgaWYgKCFzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVVJMKS5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byBz
Y3JpcHQgPSBMb2FkYWJsZUNsYXNzaWNTY3JpcHQ6OmNyZWF0ZSgKQEAgLTMzNiwxNSArMzMwLDkg
QEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3Np
dGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICAgICAgY3Jvc3NPcmlnaW5Nb2RlID0gU2Ny
aXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXI6OmRlZmF1bHRDcm9zc09yaWdpbk1vZGVGb3JN
b2R1bGU7CiAKICAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpIHsKLSAgICAgICAgU3RyaW5n
IHNvdXJjZVVSTCA9IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCk7Ci0gICAgICAgIFJlZjxEb2N1bWVu
dD4gb3JpZ2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7Ci0gICAgICAgIGlmICgh
bV9lbGVtZW50LmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHNvdXJjZVVSTCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgYm9vbCBkaWRFdmVudExpc3RlbmVyRGlzY29ubmVj
dFRoaXNFbGVtZW50ID0gIW1fZWxlbWVudC5pc0Nvbm5lY3RlZCgpIHx8ICZtX2VsZW1lbnQuZG9j
dW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpOwotICAgICAgICBpZiAoZGlkRXZlbnRM
aXN0ZW5lckRpc2Nvbm5lY3RUaGlzRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgQVNTRVJUKG1fZWxlbWVudC5pc0Nvbm5lY3RlZCgpKTsKIAorICAgICAgICBTdHJp
bmcgc291cmNlVVJMID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKICAgICAgICAgaWYgKHN0cmlw
TGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VVUkwpLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50KCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCBjZWY2ZDJiYTcz
ODA1ZTZhMDNjMGY3OGI2MWE0NDljMWU1ZWMzNDQzLi4zM2E3ZTkwN2U5MGUwNDY0NGViMGRlOGJm
NDJlZDM3MWY0ZTk0MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5j
cHAKQEAgLTE2MSwxNiArMTYxLDYgQEAgdm9pZCBIVE1MRW1iZWRFbGVtZW50Ojp1cGRhdGVXaWRn
ZXQoQ3JlYXRlUGx1Z2lucyBjcmVhdGVQbHVnaW5zKQogICAgIHBhcmFtZXRlcnNGb3JQbHVnaW4o
cGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwogCiAgICAgUmVmPEhUTUxFbWJlZEVsZW1lbnQ+IHBy
b3RlY3RlZFRoaXMoKnRoaXMpOyAvLyBMb2FkaW5nIHRoZSBwbHVnaW4gbWlnaHQgcmVtb3ZlIHVz
IGZyb20gdGhlIGRvY3VtZW50LgotICAgIGJvb2wgYmVmb3JlTG9hZEFsbG93ZWRMb2FkID0gZ3Vh
cmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KG1fdXJsKTsKLSAgICBpZiAoIWJlZm9yZUxvYWRB
bGxvd2VkTG9hZCkgewotICAgICAgICBpZiAoaXM8UGx1Z2luRG9jdW1lbnQ+KGRvY3VtZW50KCkp
KSB7Ci0gICAgICAgICAgICAvLyBQbHVnaW5zIGluc2lkZSBwbHVnaW4gZG9jdW1lbnRzIGxvYWQg
ZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwbHVnaW5zLiBCeSB0aGUgdGltZQotICAgICAgICAgICAg
Ly8gd2UgYXJlIGhlcmUgaW4gYSBwbHVnaW4gZG9jdW1lbnQsIHRoZSBsb2FkIG9mIHRoZSBwbHVn
aW4gKHdoaWNoIGlzIHRoZSBwbHVnaW4gZG9jdW1lbnQncwotICAgICAgICAgICAgLy8gbWFpbiBy
ZXNvdXJjZSkgaGFzIGFscmVhZHkgc3RhcnRlZC4gV2UgbmVlZCB0byBleHBsaWNpdGx5IGNhbmNl
bCB0aGUgbWFpbiByZXNvdXJjZSBsb2FkIGhlcmUuCi0gICAgICAgICAgICBkb3duY2FzdDxQbHVn
aW5Eb2N1bWVudD4oZG9jdW1lbnQoKSkuY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgaWYgKCFyZW5kZXJlcigpKSAvLyBEbyBu
b3QgbG9hZCB0aGUgcGx1Z2luIGlmIGJlZm9yZWxvYWQgcmVtb3ZlZCB0aGlzIGVsZW1lbnQgb3Ig
aXRzIHJlbmRlcmVyLgogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcAppbmRleCBiMzMzMGM4NDJhNzU4YjFjODU1ZDBkYTVkZmU2M2FjOGQ2ODBi
NTIwLi5mNWViOWZkNjNmZmJkNzFhZmEwMTcxODI5Y2MwOGYwZjcyMmU1ZDE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yMDksMTMgKzIwOSw3IEBAIHZvaWQg
SFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nCiAKIGJvb2wgSFRNTExpbmtFbGVtZW50OjpzaG91bGRMb2FkTGlu
aygpCiB7Ci0gICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50ID0gZG9jdW1lbnQoKTsK
LSAgICBpZiAoIWRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGdldE5vbkVtcHR5VVJMQXR0cmlidXRl
KGhyZWZBdHRyKS5zdHJpbmcoKSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBBIGJl
Zm9yZWxvYWQgaGFuZGxlciBtaWdodCBoYXZlIHJlbW92ZWQgdXMgZnJvbSB0aGUgZG9jdW1lbnQg
b3IgY2hhbmdlZCB0aGUgZG9jdW1lbnQuCi0gICAgaWYgKCFpc0Nvbm5lY3RlZCgpIHx8ICZkb2N1
bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQucHRyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNDb25uZWN0ZWQoKTsKIH0KIAogdm9pZCBI
VE1MTGlua0VsZW1lbnQ6OnNldENyb3NzT3JpZ2luKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZmUwYWI5OTNkMDdk
ZGM5YjJjNjM4YThkZTgzNmY4NzhiODk5MGZlNi4uZDQ5MjA0ZmQ2MzNmMGQyYzg3YjNiZjhjZWFk
MDQ0NTdhYWYwMzBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC0xNDA2LDcgKzE0MDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlh
UmVzb3VyY2UoKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgaWYgKCFpc1NhZmVUb0xvYWRVUkwoYWJzb2x1dGVVUkwsIENvbXBsYWluKSB8fCAh
ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoYWJzb2x1dGVVUkwuc3RyaW5nKCkpKSB7CisgICAgICAg
ICAgICBpZiAoIWlzU2FmZVRvTG9hZFVSTChhYnNvbHV0ZVVSTCwgQ29tcGxhaW4pKSB7CiAgICAg
ICAgICAgICAgICAgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6
OkZvcm1hdEVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBA
IC00ODg0LDcgKzQ4ODQsNyBAQCBVUkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJj
ZUNoaWxkKENvbnRlbnRUeXBlKiBjb250ZW50VHlwZSwgU3RyaW5nKiBrZQogICAgICAgICB9CiAK
ICAgICAgICAgLy8gSXMgaXQgc2FmZSB0byBsb2FkIHRoaXMgdXJsPwotICAgICAgICBpZiAoIWlz
U2FmZVRvTG9hZFVSTChtZWRpYVVSTCwgYWN0aW9uSWZJbnZhbGlkKSB8fCAhZGlzcGF0Y2hCZWZv
cmVMb2FkRXZlbnQobWVkaWFVUkwuc3RyaW5nKCkpKQorICAgICAgICBpZiAoIWlzU2FmZVRvTG9h
ZFVSTChtZWRpYVVSTCwgYWN0aW9uSWZJbnZhbGlkKSkKICAgICAgICAgICAgIGdvdG8gQ2hlY2tB
Z2FpbjsKIAogICAgICAgICAvLyBBICdiZWZvcmVsb2FkJyBldmVudCBoYW5kbGVyIGNhbiBtdXRh
dGUgdGhlIERPTSwgc28gY2hlY2sgdG8gc2VlIGlmIHRoZSBzb3VyY2UgZWxlbWVudCBpcyBzdGls
bCBhIGNoaWxkIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3Bw
CmluZGV4IDYzYmZhN2VkMTNkMGFiMWYyNDEyZTc4YTBjZTEyNjljNjU0YWM1NjEuLmRjMWI4NzNl
OTcyODg3MzNhOGY2NTVkN2I1YzEyZDg5ZDY5Y2RlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC0yNzYsMTQgKzI3NiwxMSBAQCB2b2lkIEhUTUxPYmpl
Y3RFbGVtZW50Ojp1cGRhdGVXaWRnZXQoQ3JlYXRlUGx1Z2lucyBjcmVhdGVQbHVnaW5zKQogCiAg
ICAgc2V0TmVlZHNXaWRnZXRVcGRhdGUoZmFsc2UpOwogCi0gICAgUmVmPEhUTUxPYmplY3RFbGVt
ZW50PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsgLy8gYmVmb3JlbG9hZCBhbmQgcGx1Z2luIGxvYWRp
bmcgY2FuIG1ha2UgYXJiaXRyYXJ5IERPTSBtdXRhdGlvbnMuCi0gICAgYm9vbCBiZWZvcmVMb2Fk
QWxsb3dlZExvYWQgPSBndWFyZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQodXJsKTsKLSAgICBp
ZiAoIXJlbmRlcmVyKCkpIC8vIERvIG5vdCBsb2FkIHRoZSBwbHVnaW4gaWYgYmVmb3JlbG9hZCBy
ZW1vdmVkIHRoaXMgZWxlbWVudCBvciBpdHMgcmVuZGVyZXIuCi0gICAgICAgIHJldHVybjsKKyAg
ICBSZWYgcHJvdGVjdGVkVGhpcyA9ICp0aGlzOyAvLyBQbHVnaW4gbG9hZGluZyBjYW4gbWFrZSBh
cmJpdHJhcnkgRE9NIG11dGF0aW9ucy4KIAogICAgIC8vIERpc3BhdGNoaW5nIGEgYmVmb3JlTG9h
ZCBldmVudCBjb3VsZCBoYXZlIGV4ZWN1dGVkIGNvZGUgdGhhdCBjaGFuZ2VkIHRoZSBkb2N1bWVu
dC4KICAgICAvLyBNYWtlIHN1cmUgdGhlIFVSTCBpcyBzdGlsbCBzYWZlIHRvIGxvYWQuCi0gICAg
Ym9vbCBzdWNjZXNzID0gYmVmb3JlTG9hZEFsbG93ZWRMb2FkICYmIGhhc1ZhbGlkQ2xhc3NJZCgp
ICYmIGNhbkxvYWRVUkwodXJsKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBoYXNWYWxpZENsYXNzSWQo
KSAmJiBjYW5Mb2FkVVJMKHVybCk7CiAgICAgaWYgKHN1Y2Nlc3MpCiAgICAgICAgIHN1Y2Nlc3Mg
PSByZXF1ZXN0T2JqZWN0KHVybCwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVz
KTsKICAgICBpZiAoIXN1Y2Nlc3MgJiYgaGFzRmFsbGJhY2tDb250ZW50KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IGM3ZjE1ZjUxNzY1OTNjNGRhMDAy
OWYwYWJkNTJkNmI3ZGFiOTZiM2EuLjhkYWE2NjhjZDYwNmZiMmFmNjNlN2E4YWI2NTM0NDgwNWM2
YjEwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0x
MDcsMjkgKzEwNyw4IEBAIEpTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBIVE1MUGx1Z0luRWxlbWVu
dDo6YmluZGluZ3NJbnN0YW5jZSgpCiAgICAgcmV0dXJuIG1faW5zdGFuY2UuZ2V0KCk7CiB9CiAK
LWJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKLXsKLSAgICAvLyBGSVhNRTogT3VyIGN1cnJlbnQgcGx1
Zy1pbiBsb2FkaW5nIGRlc2lnbiBjYW4ndCBndWFyYW50ZWUgdGhlIGZvbGxvd2luZwotICAgIC8v
IGFzc2VydGlvbiBpcyB0cnVlLCBzaW5jZSBwbHVnLWluIGxvYWRpbmcgY2FuIGJlIGluaXRpYXRl
ZCBkdXJpbmcgbGF5b3V0LAotICAgIC8vIGFuZCBzeW5jaHJvbm91cyBsYXlvdXQgY2FuIGJlIGlu
aXRpYXRlZCBpbiBhIGJlZm9yZWxvYWQgZXZlbnQgaGFuZGxlciEKLSAgICAvLyBTZWUgPGh0dHA6
Ly93ZWJraXQub3JnL2IvNzEyNjQ+LgotICAgIC8vIEFTU0VSVCghbV9pbkJlZm9yZUxvYWRFdmVu
dEhhbmRsZXIpOwotICAgIG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyID0gdHJ1ZTsKLSAgICAv
LyBzdGF0aWNfY2FzdCBpcyB1c2VkIHRvIGF2b2lkIGEgY29tcGlsZSBlcnJvciBzaW5jZSBkaXNw
YXRjaEJlZm9yZUxvYWRFdmVudAotICAgIC8vIGlzIGludGVudGlvbmFsbHkgdW5kZWZpbmVkIG9u
IHRoaXMgY2xhc3MuCi0gICAgYm9vbCBiZWZvcmVMb2FkQWxsb3dlZExvYWQgPSBzdGF0aWNfY2Fz
dDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPih0aGlzKS0+ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQo
c291cmNlVVJMKTsKLSAgICBtX2luQmVmb3JlTG9hZEV2ZW50SGFuZGxlciA9IGZhbHNlOwotICAg
IHJldHVybiBiZWZvcmVMb2FkQWxsb3dlZExvYWQ7Ci19Ci0KIFdpZGdldCogSFRNTFBsdWdJbkVs
ZW1lbnQ6OnBsdWdpbldpZGdldChQbHVnaW5Mb2FkaW5nUG9saWN5IGxvYWRQb2xpY3kpIGNvbnN0
CiB7Ci0gICAgaWYgKG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyKSB7Ci0gICAgICAgIC8vIFRo
ZSBwbHVnLWluIGhhc24ndCBsb2FkZWQgeWV0LCBhbmQgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gdHJ5
IHRvIGxvYWQgaWYgYmVmb3JlbG9hZCBoYW5kbGVyIGhhcHBlbmVkIHRvIHRvdWNoIHRoZSBwbHVn
LWluIGVsZW1lbnQuCi0gICAgICAgIC8vIFRoYXQgd291bGQgcmVjdXJzaXZlbHkgY2FsbCBiZWZv
cmVsb2FkIGZvciB0aGUgc2FtZSBlbGVtZW50LgotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0KICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldCA9IGxvYWRQb2xpY3kgPT0gUGx1
Z2luTG9hZGluZ1BvbGljeTo6TG9hZCA/IHJlbmRlcldpZGdldExvYWRpbmdQbHVnaW4oKSA6IHRo
aXMtPnJlbmRlcldpZGdldCgpOwogICAgIGlmICghcmVuZGVyV2lkZ2V0KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCBl
MTk1ZDdkNzE4ZjljMTIxYjIyNjIwZGQ4YTNkYjc4MTRlYzJlYzgzLi4wOWIwNDEyNTk1MWQ5Njkw
Njk4ODcwYjZhYzRmY2QxNDBiNDM4NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
RWxlbWVudC5oCkBAIC05Myw5ICs5Myw2IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQWRkVXNlckFnZW50U2hh
ZG93Um9vdChTaGFkb3dSb290JikgZmluYWw7CiAKLSAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCB1
c2UgZ3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IGluc3RlYWQgb2YgY2FsbGluZyBkaXNw
YXRjaEJlZm9yZUxvYWRFdmVudCBkaXJlY3RseS4KLSAgICBib29sIGd1YXJkZWREaXNwYXRjaEJl
Zm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0KICAgICAvLyBUaGlzIHdp
bGwgbG9hZCB0aGUgcGx1Z2luIGlmIG5lY2Vzc2FyeS4KICAgICB2aXJ0dWFsIFJlbmRlcldpZGdl
dCogcmVuZGVyV2lkZ2V0TG9hZGluZ1BsdWdpbigpIGNvbnN0OwogCkBAIC0xMDMsOCArMTAwLDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN3YXBSZW5kZXJlclRpbWVyRmlyZWQoKTsKICAgICBib29s
IHNob3VsZE92ZXJyaWRlUGx1Z2luKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKTsKIAotICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpID0gZGVsZXRlOyAvLyBHZW5lcmF0ZSBhIGNvbXBpbGUgZXJyb3IgaWYgc29t
ZW9uZSBjYWxscyB0aGlzIGJ5IG1pc3Rha2UuCi0KICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBmaW5hbDsKIAogICAgIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50
KikgY29uc3QgZmluYWw7CkBAIC0xMTQsNyArMTA5LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IG1faW5zdGFuY2U7CiAgICAgVGltZXIgbV9zd2FwUmVu
ZGVyZXJUaW1lcjsKICAgICBib29sIG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50cyB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2luQmVmb3JlTG9hZEV2ZW50SGFuZGxlciB7IGZhbHNlIH07CiAgICAgRGlz
cGxheVN0YXRlIG1fZGlzcGxheVN0YXRlIHsgUGxheWluZyB9OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggNzEwMTk1MWI1Njg4MDI5MjIwODgxYjY1
OWY4ZWQ0NjNlYzI5ZjNiMy4uODE3ZTBhNDhiM2MzZDY3YWIxYmFjOTQ1NWUyNDYzYzVmY2ExNzU4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0yMjksNyAr
MjI5LDcgQEAgYm9vbCBIVE1MVHJhY2tFbGVtZW50OjpjYW5Mb2FkVVJMKGNvbnN0IFVSTCYgdXJs
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIGRpc3BhdGNoQmVm
b3JlTG9hZEV2ZW50KHVybC5zdHJpbmcoKSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQg
SFRNTFRyYWNrRWxlbWVudDo6ZGlkQ29tcGxldGVMb2FkKExvYWRTdGF0dXMgc3RhdHVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOGUzYmU1ZjliYmNhMjEzMWM1Yzgz
MjhiNGQ5MTY3YTM2MmZhYjc4MC4uMzFmYjhhNWRmNmEwOTFhMzQzMDI2YTk5NmQ1NzUxYzc1NjJm
YzE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xNTUwLDggKzE1
NTAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogewogICAgIEZSQU1FTE9BREVSX1JFTEVB
U0VfTE9HKFJlc291cmNlTG9hZGluZywgImxvYWRXaXRoRG9jdW1lbnRMb2FkZXI6IGZyYW1lIGxv
YWQgc3RhcnRlZCIpOwogCi0gICAgLy8gUmV0YWluIGJlY2F1c2UgZGlzcGF0Y2hCZWZvcmVMb2Fk
RXZlbnQgbWF5IHJlbGVhc2UgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIGl0LgotICAgIFJlZjxGcmFt
ZT4gcHJvdGVjdChtX2ZyYW1lKTsKKyAgICBSZWYgcHJvdGVjdGVkRnJhbWUgPSBtX2ZyYW1lOwog
CiAgICAgQ29tcGxldGlvbkhhbmRsZXJDYWxsaW5nU2NvcGUgY29tcGxldGlvbkhhbmRsZXJDYWxs
ZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogCkBAIC0xNjEyLDE5ICsxNjExLDYgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciog
bG9hZGVyLCBGcmFtZUxvYWRUeXBlIHQKICAgICBpZiAobG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9u
KCkuaXNFbXB0eSgpKQogICAgICAgICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oeyAqbV9m
cmFtZS5kb2N1bWVudCgpLCBsb2FkZXItPnJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6
OlVua25vd24sIHBvbGljeUNoZWNrZXIoKS5sb2FkVHlwZSgpLCBpc0Zvcm1TdWJtaXNzaW9uIH0p
OwogCi0gICAgaWYgKEVsZW1lbnQqIG93bmVyRWxlbWVudCA9IG1fZnJhbWUub3duZXJFbGVtZW50
KCkpIHsKLSAgICAgICAgLy8gV2Ugc2tpcCBkaXNwYXRjaGluZyB0aGUgYmVmb3JlbG9hZCBldmVu
dCBpZiB3ZSd2ZSBhbHJlYWR5Ci0gICAgICAgIC8vIGNvbW1pdHRlZCBhIHJlYWwgZG9jdW1lbnQg
bG9hZCBiZWNhdXNlIHRoZSBldmVudCB3b3VsZCBsZWFrCi0gICAgICAgIC8vIHN1YnNlcXVlbnQg
YWN0aXZpdHkgYnkgdGhlIGZyYW1lIHdoaWNoIHRoZSBwYXJlbnQgZnJhbWUgaXNuJ3QKLSAgICAg
ICAgLy8gc3VwcG9zZWQgdG8gbGVhcm4uIEZvciBleGFtcGxlLCBpZiB0aGUgY2hpbGQgZnJhbWUg
bmF2aWdhdGVkIHRvCi0gICAgICAgIC8vIGEgbmV3IFVSTCwgdGhlIHBhcmVudCBmcmFtZSBzaG91
bGRuJ3QgbGVhcm4gdGhlIFVSTC4KLSAgICAgICAgaWYgKCFtX3N0YXRlTWFjaGluZS5jb21taXR0
ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKQotICAgICAgICAgICAgJiYgIW93bmVyRWxlbWVudC0+
ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQobG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkp
KSB7Ci0gICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kobG9hZGVy
LT5yZXF1ZXN0KCksIGZvcm1TdGF0ZS5nZXQoKSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjpJ
Z25vcmVMb2FkLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgbV9mcmFtZS5uYXZpZ2F0aW9uU2NoZWR1bGVy
KCkuY2FuY2VsKE5ld0xvYWRJblByb2dyZXNzOjpZZXMpOwogCiAgICAgaWYgKHNob3VsZFRyZWF0
Q3VycmVudExvYWRBc0NvbnRpbnVpbmdMb2FkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwCmluZGV4IGQ1MDZmNDQ3OTNhYjEyNzQ0ZTZlZmY2OTE0ZTA5Zjc4MmQ0ODFhZmQu
LjY3YWM4M2JmYjRmYWZjNzU0NDViNzk2OTRmOWU4ODkwOThkYWMwY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtNzAsNiArNzAsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBWYWx1ZUNoZWNrPFdlYkNvcmU6OkltYWdlTG9hZGVyKj4gewogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKy8vIEZJWE1FOiBiZWZvcmVsb2FkIGV2ZW50IG5vIGxvbmdlciBleGlzdHMuIERlbGV0
ZSB0aGlzIGNvZGUuCiBzdGF0aWMgSW1hZ2VFdmVudFNlbmRlciYgYmVmb3JlTG9hZEV2ZW50U2Vu
ZGVyKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SW1hZ2VFdmVudFNlbmRlcj4gc2Vu
ZGVyKGV2ZW50TmFtZXMoKS5iZWZvcmVsb2FkRXZlbnQpOwpAQCAtMjYxLDEyICsyNjIsOSBAQCB2
b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudChSZWxldmFudE11dGF0aW9uIHJlbGV2
YW50TXV0YXRpb24pCiAgICAgICAgIG1faW1hZ2VDb21wbGV0ZSA9ICFuZXdJbWFnZTsKIAogICAg
ICAgICBpZiAobmV3SW1hZ2UpIHsKLSAgICAgICAgICAgIGlmICghZG9jdW1lbnQuaXNJbWFnZURv
Y3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlw
ZShEb2N1bWVudDo6QkVGT1JFTE9BRF9MSVNURU5FUikpCi0gICAgICAgICAgICAgICAgICAgIGRp
c3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlTG9hZEV2ZW50U2VuZGVyKCkuZGlzcGF0Y2hFdmVudFNv
b24oKnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBpZiAoIWRvY3VtZW50
LmlzSW1hZ2VEb2N1bWVudCgpKQorICAgICAgICAgICAgICAgIGRpc3BhdGNoUGVuZGluZ0JlZm9y
ZUxvYWRFdmVudCgpOworICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHVwZGF0ZVJl
bmRlcmVyKCk7CiAKICAgICAgICAgICAgIGlmIChtX2xhenlJbWFnZUxvYWRTdGF0ZSA9PSBMYXp5
SW1hZ2VMb2FkU3RhdGU6OkRlZmVycmVkKQpAQCAtNTA4LDI5ICs1MDYsOSBAQCB2b2lkIEltYWdl
TG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKQogICAgIGlmICghZWxlbWVu
dCgpLmRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgpKQogICAgICAgICByZXR1cm47CiAg
ICAgbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50ID0gZmFsc2U7Ci0gICAgUmVmPERvY3VtZW50
PiBvcmlnaW5hbERvY3VtZW50ID0gZWxlbWVudCgpLmRvY3VtZW50KCk7Ci0gICAgaWYgKGVsZW1l
bnQoKS5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChtX2ltYWdlLT51cmwoKS5zdHJpbmcoKSkpIHsK
LSAgICAgICAgYm9vbCBkaWRFdmVudExpc3RlbmVyRGlzY29ubmVjdFRoaXNFbGVtZW50ID0gIWVs
ZW1lbnQoKS5pc0Nvbm5lY3RlZCgpIHx8ICZlbGVtZW50KCkuZG9jdW1lbnQoKSAhPSBvcmlnaW5h
bERvY3VtZW50LnB0cigpOwotICAgICAgICBpZiAoZGlkRXZlbnRMaXN0ZW5lckRpc2Nvbm5lY3RU
aGlzRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIHVwZGF0
ZVJlbmRlcmVyKCk7CisgICAgaWYgKCFlbGVtZW50KCkuaXNDb25uZWN0ZWQoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBpZiAobV9pbWFnZSkgewotICAgICAgICBtX2ltYWdlLT5yZW1v
dmVDbGllbnQoKnRoaXMpOwotICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICBsb2FkRXZlbnRTZW5kZXIoKS5jYW5jZWxFdmVudCgqdGhpcyk7Ci0gICAgbV9oYXNQZW5kaW5n
TG9hZEV2ZW50ID0gZmFsc2U7Ci0gICAgCi0gICAgaWYgKGlzPEhUTUxPYmplY3RFbGVtZW50Pihl
bGVtZW50KCkpKQotICAgICAgICBkb3duY2FzdDxIVE1MT2JqZWN0RWxlbWVudD4oZWxlbWVudCgp
KS5yZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKLQotICAgIC8vIE9ubHkgY29uc2lkZXIgdXBkYXRp
bmcgdGhlIHByb3RlY3Rpb24gcmVmLWNvdW50IG9mIHRoZSBFbGVtZW50IGltbWVkaWF0ZWx5IGJl
Zm9yZSByZXR1cm5pbmcKLSAgICAvLyBmcm9tIHRoaXMgZnVuY3Rpb24gYXMgZG9pbmcgc28gbWln
aHQgcmVzdWx0IGluIHRoZSBkZXN0cnVjdGlvbiBvZiB0aGlzIEltYWdlTG9hZGVyLgotICAgIHVw
ZGF0ZWRIYXNQZW5kaW5nRXZlbnQoKTsKKyAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCiB2b2lk
IEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdMb2FkRXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SW1hZ2VMb2FkZXIuaAppbmRleCA4YTk2ZjBkNTI2NzQ0NTE5ZDMxMTMxNjgxYzVlY2ZkYTkyZjdm
YjE2Li45YTRkNDU4YTBkNGNjMTBiZjYwZjRmNDlhY2IzMTgyMmEyZjU2MjkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldExvYWRNYW51YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX2xvYWRNYW51YWxseSA9
IGxvYWRNYW51YWxseTsgfQogCisgICAgLy8gRklYTUU6IERlbGV0ZSB0aGlzIGNvZGUuIGJlZm9y
ZWxvYWQgZXZlbnQgbm8gbG9uZ2VyIGV4aXN0cy4KICAgICBib29sIGhhc1BlbmRpbmdCZWZvcmVM
b2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQ7IH0K
ICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGlu
Z0xvYWRFdmVudCB8fCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50OyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbAppbmRleCAyODFmODgwY2U3MGQ3OGZkMWRiMGFkNWVmOTJkMWE2Nzg3NTUxNGY2
Li4wNzkxMDQwMmU5YzdhMjMyMDYzMTVjMzIzMmUyYTI0ZTc0MDBmYmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCkBAIC0zMTQsMTQgKzMxNCw2IEBAIExhbmdBdHRyaWJ1dGVBd2FyZUZv
cm1Db250cm9sVUlFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQog
Ci1MZWdhY3lCZWZvcmVMb2FkRXZlbnRFbmFibGVkOgotICBjb21tZW50OiA+LQotICAgIEZJTVhF
OiBUaGlzIGRvZXMgbm90IGFwcGVhciB0byBldmVyIGJlIHNldCB0byB0cnVlLiBSZW1vdmUgb25j
ZSB2ZXJpZmllZC4KLSAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViQ29yZToK
LSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDoKICAgdHlw
ZTogU3RyaW5nCiAgIGRlZmF1bHRWYWx1ZToK
</data>
<flag name="review"
          id="476705"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>