<?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>246948</bug_id>
          
          <creation_ts>2022-10-24 07:45:54 -0700</creation_ts>
          <short_desc>[MQ4] Make the evaluation function a part of the FeatureSchema</short_desc>
          <delta_ts>2022-10-26 05:38:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>
          
          <blocked>180234</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youssefdevelops</cc>
    
    <cc>y_soliman</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1907801</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-10-24 07:45:54 -0700</bug_when>
    <thetext>More power to FeatureSchemas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1907802</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-10-24 07:46:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/101500034&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1907804</commentid>
    <comment_count>2</comment_count>
      <attachid>463198</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-10-24 08:10:46 -0700</bug_when>
    <thetext>Created attachment 463198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1907833</commentid>
    <comment_count>3</comment_count>
      <attachid>463200</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-10-24 10:18:46 -0700</bug_when>
    <thetext>Created attachment 463200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1907983</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-24 22:58:33 -0700</bug_when>
    <thetext>Committed 255944@main (6dd2f9259742): &lt;https://commits.webkit.org/255944@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 463200.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463198</attachid>
            <date>2022-10-24 08:10:46 -0700</date>
            <delta_ts>2022-10-24 10:18:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246948-20221024181045.patch</filename>
            <type>text/plain</type>
            <size>29222</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSAwMDYyNmZmNTExY2U2ZTAwYzYzYzZhOWRkM2IwMTFjZjNkY2VkNTU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBNb24sIDI0IE9jdCAyMDIyIDE3OjQ2OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gW01RNF0g
TWFrZSB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbiBhIHBhcnQgb2YgdGhlCiBGZWF0dXJlU2NoZW1h
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY5NDgKIDxyZGFyOi8v
cHJvYmxlbS8xMDE1MDAwMzQ+LgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpNYWtlIEZl
YXR1cmVTY2hlbWEgcmVzcG9uc2libGUgb2YgZG9pbmcgdGhlIGFjdHVhbCBmZWF0dXJlIGV2YWx1
YXRpb24uCgoqIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0OgoqIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnkuY3BwOgooV2ViQ29yZTo6Q1E6OnJlcXVpcmVkQXhlc0ZvckZlYXR1cmUpOgoo
V2ViQ29yZTo6Q1E6OkZlYXR1cmVTY2hlbWFzOjp3aWR0aCk6IERlbGV0ZWQuCihXZWJDb3JlOjpD
UTo6RmVhdHVyZVNjaGVtYXM6OmhlaWdodCk6IERlbGV0ZWQuCihXZWJDb3JlOjpDUTo6RmVhdHVy
ZVNjaGVtYXM6OmlubGluZVNpemUpOiBEZWxldGVkLgooV2ViQ29yZTo6Q1E6OkZlYXR1cmVTY2hl
bWFzOjpibG9ja1NpemUpOiBEZWxldGVkLgooV2ViQ29yZTo6Q1E6OkZlYXR1cmVTY2hlbWFzOjph
c3BlY3RSYXRpbyk6IERlbGV0ZWQuCihXZWJDb3JlOjpDUTo6RmVhdHVyZVNjaGVtYXM6Om9yaWVu
dGF0aW9uKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJz
ZXIuY3BwOgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9Db250YWluZXJRdWVyeUZlYXR1cmVz
LmNwcDogQWRkZWQuCihXZWJDb3JlOjpDUTo6RmVhdHVyZXM6OlNpemVGZWF0dXJlU2NoZW1hOjpT
aXplRmVhdHVyZVNjaGVtYSk6CihXZWJDb3JlOjpDUTo6RmVhdHVyZXM6OndpZHRoKToKKFdlYkNv
cmU6OkNROjpGZWF0dXJlczo6aGVpZ2h0KToKKFdlYkNvcmU6OkNROjpGZWF0dXJlczo6aW5saW5l
U2l6ZSk6CihXZWJDb3JlOjpDUTo6RmVhdHVyZXM6OmJsb2NrU2l6ZSk6CihXZWJDb3JlOjpDUTo6
RmVhdHVyZXM6OmFzcGVjdFJhdGlvKToKKFdlYkNvcmU6OkNROjpGZWF0dXJlczo6b3JpZW50YXRp
b24pOgoKTW92ZSBjb250YWluZXIgcXVlcnkgRmVhdHVyZVNjaGVtYXMgdG8gYSBmaWxlIG9mIHRo
ZWlyIG93biBhbmQgYWRkIGV2YWx1YXRpb24gZnVuY3Rpb25zLgoKKiBTb3VyY2UvV2ViQ29yZS9j
c3MvcXVlcnkvQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3IuaDoKKFdlYkNvcmU6Ok1ROjpH
ZW5lcmljTWVkaWFRdWVyeUV2YWx1YXRvcjxDb25jcmV0ZUV2YWx1YXRvcj46OmV2YWx1YXRlRmVh
dHVyZSBjb25zdCk6CigpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5l
cmljTWVkaWFRdWVyeVR5cGVzLmg6CihXZWJDb3JlOjpNUTo6RmVhdHVyZVNjaGVtYTo6ZXZhbHVh
dGUgY29uc3QpOgooV2ViQ29yZTo6TVE6OkZlYXR1cmVTY2hlbWE6OkZlYXR1cmVTY2hlbWEpOgoq
IFNvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcDoKKFdlYkNv
cmU6OlN0eWxlOjpDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZmVhdHVyZUV2YWx1YXRpb25Db250
ZXh0Rm9yUXVlcnkgY29uc3QpOgooV2ViQ29yZTo6U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVh
dG9yOjpldmFsdWF0ZUZlYXR1cmUgY29uc3QpOiBEZWxldGVkLgoKRXZhbHVhdGlvbiBtb3ZlcyB0
byB0aGUgZ2VuZXJpYyBjb2RlLgoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVy
eUV2YWx1YXRvci5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAg
ICAgICAgICB8ICAgMSArCiAuLi4vV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogfCAgIDYgKwogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcCAgICAg
ICAgIHwgIDUyICstLS0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIu
Y3BwICAgfCAgMTMgKy0KIC4uLi9jc3MvcXVlcnkvQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5jcHAg
ICAgICB8IDE3NyArKysrKysrKysrKysrKysrKysKIC4uLi9jc3MvcXVlcnkvQ29udGFpbmVyUXVl
cnlGZWF0dXJlcy5oICAgICAgICB8ICA0MSArKysrCiAuLi4vY3NzL3F1ZXJ5L0dlbmVyaWNNZWRp
YVF1ZXJ5RXZhbHVhdG9yLmggICAgfCAgMTcgKy0KIC4uLi9jc3MvcXVlcnkvR2VuZXJpY01lZGlh
UXVlcnlUeXBlcy5oICAgICAgICB8ICAyNSArKy0KIC4uLi9XZWJDb3JlL3N0eWxlL0NvbnRhaW5l
clF1ZXJ5RXZhbHVhdG9yLmNwcCB8ICA2MyArLS0tLS0tCiAuLi4vV2ViQ29yZS9zdHlsZS9Db250
YWluZXJRdWVyeUV2YWx1YXRvci5oICAgfCAgIDQgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDI3OCBp
bnNlcnRpb25zKCspLCAxMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYkNvcmUvY3NzL3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVhdHVyZXMu
aAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMGU0YTI4ZWViODAzLi45ZTEyODgxMWVlYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC04ODIsNiArODgyLDcgQEAgY3NzL3BhcnNlci9MZWdhY3lNZWRpYVF1ZXJ5UGFy
c2VyLmNwcAogY3NzL3BhcnNlci9NZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcAogY3NzL3BhcnNl
ci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKIGNzcy9wYXJzZXIvU2l6ZXNDYWxjUGFyc2VyLmNw
cAorY3NzL3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuY3BwCiBjc3MvcXVlcnkvR2VuZXJp
Y01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCiBjc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlQYXJz
ZXIuY3BwCiBjc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlTZXJpYWxpemF0aW9uLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDBiZTEwNDJkNzNhOS4uNzY4OGZmM2Y0ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTE4LDYgKzU1MTgsNyBAQAogCQlF
NDUzMjJBQzE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1MzIyQUExNDBDRTI2NzAwNUEwRjky
IC8qIFNlbGVjdG9yUXVlcnkuaCAqLzsgfTsKIAkJRTQ1NUE1NzEyOEZENzNGMzAwQjZFQTc2IC8q
IE1lZGlhUXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0NTVBNTcwMjhGRDczRjMwMEI2RUE3NiAvKiBNZWRpYVF1ZXJ5RXZhbHVh
dG9yLmggKi87IH07CiAJCUU0NTVBNTgyMjhGRThEOEQwMEI2RUE3NiAvKiBNZWRpYVF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDU1QTU4MTI4
RkU4RDhEMDBCNkVBNzYgLyogTWVkaWFRdWVyeS5oICovOyB9OworCQlFNDU1QTU5NDI5MDI4Nzg5
MDBCNkVBNzYgLyogQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1NUE1OTMyOTAyODc4ODAwQjZFQTc2IC8qIENv
bnRhaW5lclF1ZXJ5RmVhdHVyZXMuaCAqLzsgfTsKIAkJRTQ1QTZDNzcyNDE3QkE1OTAwNkU0Q0Q1
IC8qIFBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDVBNkM3NjI0MTdCQTU5MDA2RTRDRDUgLyogUHNl
dWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJRTQ1QkE2QUEyMzc0OTI2QzAw
NERGQzA3IC8qIE1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1QkE2QTgyMzc0OTI2QjAwNERGQzA3IC8qIE1h
dGNoZWREZWNsYXJhdGlvbnNDYWNoZS5oICovOyB9OwogCQlFNDVCQTZCNjIzNzYyMkEzMDA0REZD
MDcgLyogU3R5bGVBZGp1c3Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQ1QkE2QjUyMzc2MjI5RjAwNERGQzA3IC8qIFN0eWxlQWRqdXN0ZXIuaCAq
LzsgfTsKQEAgLTE4MDI4LDYgKzE4MDI5LDggQEAKIAkJRTQ1NUE1NkYyOEZENzNFQjAwQjZFQTc2
IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NTVBNTcwMjhG
RDczRjMwMEI2RUE3NiAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlFdmFsdWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTQ1NUE1ODEyOEZFOEQ4RDAwQjZFQTc2IC8qIE1lZGlhUXVlcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNDU1QTU5MTI5MDI4Nzc4MDBCNkVBNzYgLyogQ29udGFpbmVyUXVl
cnlGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250
YWluZXJRdWVyeUZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQ1
NUE1OTMyOTAyODc4ODAwQjZFQTc2IC8qIENvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDVBNkM3MzI0MTdCQTRDMDA2RTRDRDUgLyogUHNl
dWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDVBNkM3NjI0MTdCQTU5MDA2RTRDRDUgLyogUHNldWRvQ2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQ1QkE2QTgyMzc0OTI2QjAwNERGQzA3IC8qIE1hdGNoZWREZWNsYXJhdGlvbnNDYWNo
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRjaGVkRGVjbGFyYXRpb25z
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyNTA3LDYgKzMyNTEwLDgg
QEAKIAkJRTREQTVFM0UyOEEyODY3MzAwODQ5QkNGIC8qIHF1ZXJ5ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFNDU1QTU5MTI5MDI4Nzc4MDBCNkVBNzYg
LyogQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5jcHAgKi8sCisJCQkJRTQ1NUE1OTMyOTAyODc4ODAw
QjZFQTc2IC8qIENvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuaCAqLywKIAkJCQlFNERBNUU1NTI4QTUw
MDVFMDA4NDlCQ0YgLyogR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovLAogCQkJCUU0
REE1RTNGMjhBMjg4RjgwMDg0OUJDRiAvKiBHZW5lcmljTWVkaWFRdWVyeUV2YWx1YXRvci5oICov
LAogCQkJCUU0REE1RTQ1MjhBM0FGNTQwMDg0OUJDRiAvKiBHZW5lcmljTWVkaWFRdWVyeVBhcnNl
ci5jcHAgKi8sCkBAIC0zNTAwMSw2ICszNTAwNiw3IEBACiAJCQkJRTFBMTQ3MDgxMTEwMkIxNTAw
RUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NEYxNTczOTI3QjkyNjE1MDBCMzMwRDggLyogQ29udGFpbmVyUXVlcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0QUFCMzg3MjdBQTk1RDcwMDlGNTg5OSAvKiBDb250YWluZXJRdWVyeUV2YWx1YXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ1NUE1OTQyOTAyODc4OTAwQjZFQTc2IC8qIENvbnRh
aW5lclF1ZXJ5RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RjE1NzQxMjdCOTNCNzcw
MEIzMzBEOCAvKiBDb250YWluZXJRdWVyeVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZC
NUUyMTQyMjFGMjQ1MzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1RUI5ODEwRTgyMDcyNTAwQjI1OTY1IC8qIENvbnRlbnREYXRhLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVy
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwCmluZGV4IDVlOTE0
NzhlNGU3ZC4uMWUyMmU3MmVlZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5j
cHAKQEAgLTI3LDY1ICsyNywyNSBAQAogCiAjaW5jbHVkZSAiQ1NTTWFya3VwLmgiCiAjaW5jbHVk
ZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDb250YWluZXJRdWVyeUZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiR2VuZXJpY01lZGlhUXVlcnlTZXJpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgQ1EgewotbmFtZXNwYWNlIEZlYXR1cmVTY2hl
bWFzIHsKLQotdXNpbmcgbmFtZXNwYWNlIE1ROwotCi1jb25zdCBGZWF0dXJlU2NoZW1hJiB3aWR0
aCgpCi17Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxGZWF0dXJlU2NoZW1h
PiBzY2hlbWEgeyBGZWF0dXJlU2NoZW1hIHsgIndpZHRoIl9zLCBGZWF0dXJlU2NoZW1hOjpUeXBl
OjpSYW5nZSwgeyBGZWF0dXJlU2NoZW1hOjpWYWx1ZVR5cGU6Okxlbmd0aCB9LCB7IH0gfSB9Owot
ICAgIHJldHVybiBzY2hlbWE7Ci19Ci0KLWNvbnN0IEZlYXR1cmVTY2hlbWEmIGhlaWdodCgpCi17
Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxGZWF0dXJlU2NoZW1hPiBzY2hl
bWEgeyBGZWF0dXJlU2NoZW1hIHsgImhlaWdodCJfcywgRmVhdHVyZVNjaGVtYTo6VHlwZTo6UmFu
Z2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpMZW5ndGggfSwgeyB9IH0gfTsKLSAgICBy
ZXR1cm4gc2NoZW1hOwotfQotCi1jb25zdCBGZWF0dXJlU2NoZW1hJiBpbmxpbmVTaXplKCkKLXsK
LSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPEZlYXR1cmVTY2hlbWE+IHNjaGVt
YSB7IEZlYXR1cmVTY2hlbWEgeyAiaW5saW5lLXNpemUiX3MsIEZlYXR1cmVTY2hlbWE6OlR5cGU6
OlJhbmdlLCB7IEZlYXR1cmVTY2hlbWE6OlZhbHVlVHlwZTo6TGVuZ3RoIH0sIHsgfSB9IH07Ci0g
ICAgcmV0dXJuIHNjaGVtYTsKLX0KLQotY29uc3QgRmVhdHVyZVNjaGVtYSYgYmxvY2tTaXplKCkK
LXsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPEZlYXR1cmVTY2hlbWE+IHNj
aGVtYSB7IEZlYXR1cmVTY2hlbWEgeyAiYmxvY2stc2l6ZSJfcywgRmVhdHVyZVNjaGVtYTo6VHlw
ZTo6UmFuZ2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpMZW5ndGggfSwgeyB9IH0gfTsK
LSAgICByZXR1cm4gc2NoZW1hOwotfQotCi1jb25zdCBGZWF0dXJlU2NoZW1hJiBhc3BlY3RSYXRp
bygpCi17Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxGZWF0dXJlU2NoZW1h
PiBzY2hlbWEgeyBGZWF0dXJlU2NoZW1hIHsgImFzcGVjdC1yYXRpbyJfcywgRmVhdHVyZVNjaGVt
YTo6VHlwZTo6UmFuZ2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpSYXRpbyB9LCB7IH0g
fSB9OwotICAgIHJldHVybiBzY2hlbWE7Ci19Ci0KLWNvbnN0IEZlYXR1cmVTY2hlbWEmIG9yaWVu
dGF0aW9uKCkKLXsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPEZlYXR1cmVT
Y2hlbWE+IHNjaGVtYSB7IEZlYXR1cmVTY2hlbWEgeyAib3JpZW50YXRpb24iX3MsIEZlYXR1cmVT
Y2hlbWE6OlR5cGU6OkRpc2NyZXRlLCB7IH0sIHsgQ1NTVmFsdWVQb3J0cmFpdCwgQ1NTVmFsdWVM
YW5kc2NhcGUgfSB9IH07Ci0gICAgcmV0dXJuIHNjaGVtYTsKLX0KLQotfQogCiBPcHRpb25TZXQ8
QXhpcz4gcmVxdWlyZWRBeGVzRm9yRmVhdHVyZShjb25zdCBNUTo6RmVhdHVyZSYgZmVhdHVyZSkK
IHsKLSAgICBpZiAoZmVhdHVyZS5zY2hlbWEgPT0gJkZlYXR1cmVTY2hlbWFzOjp3aWR0aCgpKQor
ICAgIGlmIChmZWF0dXJlLnNjaGVtYSA9PSAmRmVhdHVyZXM6OndpZHRoKCkpCiAgICAgICAgIHJl
dHVybiB7IEF4aXM6OldpZHRoIH07Ci0gICAgaWYgKGZlYXR1cmUuc2NoZW1hID09ICZGZWF0dXJl
U2NoZW1hczo6aGVpZ2h0KCkpCisgICAgaWYgKGZlYXR1cmUuc2NoZW1hID09ICZGZWF0dXJlczo6
aGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiB7IEF4aXM6OkhlaWdodCB9OwotICAgIGlmIChmZWF0
dXJlLnNjaGVtYSA9PSAmRmVhdHVyZVNjaGVtYXM6OmlubGluZVNpemUoKSkKKyAgICBpZiAoZmVh
dHVyZS5zY2hlbWEgPT0gJkZlYXR1cmVzOjppbmxpbmVTaXplKCkpCiAgICAgICAgIHJldHVybiB7
IEF4aXM6OklubGluZSB9OwotICAgIGlmIChmZWF0dXJlLnNjaGVtYSA9PSAmRmVhdHVyZVNjaGVt
YXM6OmJsb2NrU2l6ZSgpKQorICAgIGlmIChmZWF0dXJlLnNjaGVtYSA9PSAmRmVhdHVyZXM6OmJs
b2NrU2l6ZSgpKQogICAgICAgICByZXR1cm4geyBBeGlzOjpCbG9jayB9OwotICAgIGlmIChmZWF0
dXJlLnNjaGVtYSA9PSAmRmVhdHVyZVNjaGVtYXM6OmFzcGVjdFJhdGlvKCkgfHwgZmVhdHVyZS5z
Y2hlbWEgPT0gJkZlYXR1cmVTY2hlbWFzOjpvcmllbnRhdGlvbigpKQorICAgIGlmIChmZWF0dXJl
LnNjaGVtYSA9PSAmRmVhdHVyZXM6OmFzcGVjdFJhdGlvKCkgfHwgZmVhdHVyZS5zY2hlbWEgPT0g
JkZlYXR1cmVzOjpvcmllbnRhdGlvbigpKQogICAgICAgICByZXR1cm4geyBBeGlzOjpJbmxpbmUs
IEF4aXM6OkJsb2NrIH07CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q29udGFpbmVyUXVlcnlQYXJzZXIuY3BwCmluZGV4IGI1NzlhOTAwZjE4Ny4uM2FlZmQ3NjA5MjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ29udGFpbmVyUXVlcnlGZWF0
dXJlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDEyICszNiwxMiBAQCB1c2lu
ZyBuYW1lc3BhY2UgTVE7CiBWZWN0b3I8Y29uc3QgRmVhdHVyZVNjaGVtYSo+IENvbnRhaW5lclF1
ZXJ5UGFyc2VyOjpmZWF0dXJlU2NoZW1hcygpCiB7CiAgICAgcmV0dXJuIHsKLSAgICAgICAgJkNR
OjpGZWF0dXJlU2NoZW1hczo6d2lkdGgoKSwKLSAgICAgICAgJkNROjpGZWF0dXJlU2NoZW1hczo6
aGVpZ2h0KCksCi0gICAgICAgICZDUTo6RmVhdHVyZVNjaGVtYXM6OmlubGluZVNpemUoKSwKLSAg
ICAgICAgJkNROjpGZWF0dXJlU2NoZW1hczo6YmxvY2tTaXplKCksCi0gICAgICAgICZDUTo6RmVh
dHVyZVNjaGVtYXM6OmFzcGVjdFJhdGlvKCksCi0gICAgICAgICZDUTo6RmVhdHVyZVNjaGVtYXM6
Om9yaWVudGF0aW9uKCksCisgICAgICAgICZDUTo6RmVhdHVyZXM6OndpZHRoKCksCisgICAgICAg
ICZDUTo6RmVhdHVyZXM6OmhlaWdodCgpLAorICAgICAgICAmQ1E6OkZlYXR1cmVzOjppbmxpbmVT
aXplKCksCisgICAgICAgICZDUTo6RmVhdHVyZXM6OmJsb2NrU2l6ZSgpLAorICAgICAgICAmQ1E6
OkZlYXR1cmVzOjphc3BlY3RSYXRpbygpLAorICAgICAgICAmQ1E6OkZlYXR1cmVzOjpvcmllbnRh
dGlvbigpLAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVy
eS9Db250YWluZXJRdWVyeUZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9D
b250YWluZXJRdWVyeUZlYXR1cmVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjBlZGQ0YTkzZjFhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9xdWVyeS9Db250YWluZXJRdWVyeUZlYXR1cmVzLmNwcApAQCAtMCwwICsxLDE3NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlOjpDUTo6RmVhdHVyZXMgeworCit1c2luZyBu
YW1lc3BhY2UgTVE7CisKK3N0cnVjdCBTaXplRmVhdHVyZVNjaGVtYSA6IHB1YmxpYyBGZWF0dXJl
U2NoZW1hIHsKKyAgICBTaXplRmVhdHVyZVNjaGVtYShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBU
eXBlIHR5cGUsIE9wdGlvblNldDxWYWx1ZVR5cGU+IHZhbHVlVHlwZXMsIFZlY3RvcjxDU1NWYWx1
ZUlEPiB2YWx1ZUlkZW50aWZpZXJzID0geyB9KQorICAgICAgICA6IEZlYXR1cmVTY2hlbWEobmFt
ZSwgdHlwZSwgdmFsdWVUeXBlcywgdmFsdWVJZGVudGlmaWVycykKKyAgICB7IH0KKworICAgIEV2
YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0
IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCYgY29udGV4dCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7
CisgICAgICAgIC8vICJJZiB0aGUgcXVlcnkgY29udGFpbmVyIGRvZXMgbm90IGhhdmUgYSBwcmlu
Y2lwYWwgYm94LCBvciB0aGUgcHJpbmNpcGFsIGJveCBpcyBub3QgYSBsYXlvdXQgY29udGFpbm1l
bnQgYm94LAorICAgICAgICAvLyBvciB0aGUgcXVlcnkgY29udGFpbmVyIGRvZXMgbm90IHN1cHBv
cnQgY29udGFpbmVyIHNpemUgcXVlcmllcyBvbiB0aGUgcmVsZXZhbnQgYXhlcywgdGhlbiB0aGUg
cmVzdWx0IG9mCisgICAgICAgIC8vIGV2YWx1YXRpbmcgdGhlIHNpemUgZmVhdHVyZSBpcyB1bmtu
b3duLiIKKyAgICAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLTMv
I3NpemUtY29udGFpbmVyCisgICAgICAgIGlmICghaXM8UmVuZGVyQm94Pihjb250ZXh0LnJlbmRl
cmVyKSkKKyAgICAgICAgICAgIHJldHVybiBNUTo6RXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsK
KworICAgICAgICBhdXRvJiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckJveD4oKmNvbnRleHQu
cmVuZGVyZXIpOworCisgICAgICAgIGF1dG8gaGFzRWxpZ2libGVDb250YWlubWVudCA9IFsmXSB7
CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLnNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBzd2l0Y2ggKHJl
bmRlcmVyLnN0eWxlKCkuY29udGFpbmVyVHlwZSgpKSB7CisgICAgICAgICAgICBjYXNlIENvbnRh
aW5lclR5cGU6OklubGluZVNpemU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLnNo
b3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCk7CisgICAgICAgICAgICBjYXNlIENvbnRh
aW5lclR5cGU6OlNpemU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLnNob3VsZEFw
cGx5U2l6ZUNvbnRhaW5tZW50KCk7CisgICAgICAgICAgICBjYXNlIENvbnRhaW5lclR5cGU6Ok5v
cm1hbDoKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH07CisKKyAgICAg
ICAgaWYgKCFoYXNFbGlnaWJsZUNvbnRhaW5tZW50KCkpCisgICAgICAgICAgICByZXR1cm4gTVE6
OkV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CisKKyAgICAgICAgcmV0dXJuIGV2YWx1YXRlKGZl
YXR1cmUsIHJlbmRlcmVyLCBjb250ZXh0LmNvbnZlcnNpb25EYXRhKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6OkZlYXR1cmUmLCBjb25z
dCBSZW5kZXJCb3gmLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJikgY29uc3QgPSAw
OworfTsKKworY29uc3QgRmVhdHVyZVNjaGVtYSYgd2lkdGgoKQoreworICAgIHN0cnVjdCBTY2hl
bWEgOiBwdWJsaWMgU2l6ZUZlYXR1cmVTY2hlbWEgeworICAgICAgICBTY2hlbWEoKQorICAgICAg
ICAgICAgOiBTaXplRmVhdHVyZVNjaGVtYSgid2lkdGgiX3MsIEZlYXR1cmVTY2hlbWE6OlR5cGU6
OlJhbmdlLCB7IEZlYXR1cmVTY2hlbWE6OlZhbHVlVHlwZTo6TGVuZ3RoIH0gKQorICAgICAgICB7
IH0KKworICAgICAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlKGNvbnN0IE1ROjpGZWF0dXJl
JiBmZWF0dXJlLCBjb25zdCBSZW5kZXJCb3gmIHJlbmRlcmVyLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGV2YWx1YXRlTGVuZ3RoRmVhdHVyZShmZWF0dXJlLCByZW5kZXJl
ci5jb250ZW50V2lkdGgoKSwgY29udmVyc2lvbkRhdGEpOworICAgICAgICB9CisgICAgfTsKKwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8U2NoZW1hPiBzY2hlbWE7CisgICAg
cmV0dXJuIHNjaGVtYTsKK30KKworY29uc3QgRmVhdHVyZVNjaGVtYSYgaGVpZ2h0KCkKK3sKKyAg
ICBzdHJ1Y3QgU2NoZW1hIDogcHVibGljIFNpemVGZWF0dXJlU2NoZW1hIHsKKyAgICAgICAgU2No
ZW1hKCkKKyAgICAgICAgICAgIDogU2l6ZUZlYXR1cmVTY2hlbWEoImhlaWdodCJfcywgRmVhdHVy
ZVNjaGVtYTo6VHlwZTo6UmFuZ2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpMZW5ndGgg
fSApCisgICAgICAgIHsgfQorCisgICAgICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29u
c3QgTVE6OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIsIGNvbnN0
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhKSBjb25zdCBvdmVycmlk
ZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZXZhbHVhdGVMZW5ndGhGZWF0dXJlKGZl
YXR1cmUsIHJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKSwgY29udmVyc2lvbkRhdGEpOworICAgICAg
ICB9CisgICAgfTsKKworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8U2NoZW1h
PiBzY2hlbWE7CisgICAgcmV0dXJuIHNjaGVtYTsKK30KKworY29uc3QgRmVhdHVyZVNjaGVtYSYg
aW5saW5lU2l6ZSgpCit7CisgICAgc3RydWN0IFNjaGVtYSA6IHB1YmxpYyBTaXplRmVhdHVyZVNj
aGVtYSB7CisgICAgICAgIFNjaGVtYSgpCisgICAgICAgICAgICA6IFNpemVGZWF0dXJlU2NoZW1h
KCJpbmxpbmUtc2l6ZSJfcywgRmVhdHVyZVNjaGVtYTo6VHlwZTo6UmFuZ2UsIHsgRmVhdHVyZVNj
aGVtYTo6VmFsdWVUeXBlOjpMZW5ndGggfSApCisgICAgICAgIHsgfQorCisgICAgICAgIEV2YWx1
YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0IFJl
bmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZl
cnNpb25EYXRhKSBjb25zdCBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
ZXZhbHVhdGVMZW5ndGhGZWF0dXJlKGZlYXR1cmUsIHJlbmRlcmVyLmNvbnRlbnRMb2dpY2FsV2lk
dGgoKSwgY29udmVyc2lvbkRhdGEpOworICAgICAgICB9CisgICAgfTsKKworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8U2NoZW1hPiBzY2hlbWE7CisgICAgcmV0dXJuIHNjaGVt
YTsKK30KKworY29uc3QgRmVhdHVyZVNjaGVtYSYgYmxvY2tTaXplKCkKK3sKKyAgICBzdHJ1Y3Qg
U2NoZW1hIDogcHVibGljIFNpemVGZWF0dXJlU2NoZW1hIHsKKyAgICAgICAgU2NoZW1hKCkKKyAg
ICAgICAgICAgIDogU2l6ZUZlYXR1cmVTY2hlbWEoImJsb2NrLXNpemUiX3MsIEZlYXR1cmVTY2hl
bWE6OlR5cGU6OlJhbmdlLCB7IEZlYXR1cmVTY2hlbWE6OlZhbHVlVHlwZTo6TGVuZ3RoIH0gKQor
ICAgICAgICB7IH0KKworICAgICAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlKGNvbnN0IE1R
OjpGZWF0dXJlJiBmZWF0dXJlLCBjb25zdCBSZW5kZXJCb3gmIHJlbmRlcmVyLCBjb25zdCBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSkgY29uc3Qgb3ZlcnJpZGUKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGV2YWx1YXRlTGVuZ3RoRmVhdHVyZShmZWF0dXJl
LCByZW5kZXJlci5jb250ZW50TG9naWNhbEhlaWdodCgpLCBjb252ZXJzaW9uRGF0YSk7CisgICAg
ICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxTY2hl
bWE+IHNjaGVtYTsKKyAgICByZXR1cm4gc2NoZW1hOworfQorCitjb25zdCBGZWF0dXJlU2NoZW1h
JiBhc3BlY3RSYXRpbygpCit7CisgICAgc3RydWN0IFNjaGVtYSA6IHB1YmxpYyBTaXplRmVhdHVy
ZVNjaGVtYSB7CisgICAgICAgIFNjaGVtYSgpCisgICAgICAgICAgICA6IFNpemVGZWF0dXJlU2No
ZW1hKCJhc3BlY3QtcmF0aW8iX3MsIEZlYXR1cmVTY2hlbWE6OlR5cGU6OlJhbmdlLCB7IEZlYXR1
cmVTY2hlbWE6OlZhbHVlVHlwZTo6UmF0aW8gfSApCisgICAgICAgIHsgfQorCisgICAgICAgIEV2
YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmKSBj
b25zdCBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvIGJveFJhdGlvID0gcmVu
ZGVyZXIuY29udGVudFdpZHRoKCkudG9Eb3VibGUoKSAvIHJlbmRlcmVyLmNvbnRlbnRIZWlnaHQo
KS50b0RvdWJsZSgpOworICAgICAgICAgICAgcmV0dXJuIGV2YWx1YXRlUmF0aW9GZWF0dXJlKGZl
YXR1cmUsIGJveFJhdGlvKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPFNjaGVtYT4gc2NoZW1hOworICAgIHJldHVybiBzY2hlbWE7Cit9
CisKK2NvbnN0IEZlYXR1cmVTY2hlbWEmIG9yaWVudGF0aW9uKCkKK3sKKyAgICBzdHJ1Y3QgU2No
ZW1hIDogcHVibGljIFNpemVGZWF0dXJlU2NoZW1hIHsKKyAgICAgICAgU2NoZW1hKCkKKyAgICAg
ICAgICAgIDogU2l6ZUZlYXR1cmVTY2hlbWEoIm9yaWVudGF0aW9uIl9zLCBGZWF0dXJlU2NoZW1h
OjpUeXBlOjpEaXNjcmV0ZSwgeyB9LCB7IENTU1ZhbHVlUG9ydHJhaXQsIENTU1ZhbHVlTGFuZHNj
YXBlIH0pCisgICAgICAgIHsgfQorCisgICAgICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUo
Y29uc3QgTVE6OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIsIGNv
bnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmKSBjb25zdCBvdmVycmlkZQorICAgICAgICB7
CisgICAgICAgICAgICBib29sIGlzUG9ydHJhaXQgPSByZW5kZXJlci5jb250ZW50SGVpZ2h0KCkg
Pj0gcmVuZGVyZXIuY29udGVudFdpZHRoKCk7CisgICAgICAgICAgICByZXR1cm4gZXZhbHVhdGVE
aXNjcmV0ZUZlYXR1cmUoZmVhdHVyZSwgaXNQb3J0cmFpdCA/IENTU1ZhbHVlUG9ydHJhaXQgOiBD
U1NWYWx1ZUxhbmRzY2FwZSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxTY2hlbWE+IHNjaGVtYTsKKyAgICByZXR1cm4gc2NoZW1hOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvQ29udGFpbmVyUXVl
cnlGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVh
dHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ5Nzk4ZGI2
ZWQzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9Db250YWlu
ZXJRdWVyeUZlYXR1cmVzLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbnRhaW5lclF1ZXJ5RXZhbHVh
dG9yLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlOjpD
USB7CisKK25hbWVzcGFjZSBGZWF0dXJlcyB7Citjb25zdCBNUTo6RmVhdHVyZVNjaGVtYSYgd2lk
dGgoKTsKK2NvbnN0IE1ROjpGZWF0dXJlU2NoZW1hJiBoZWlnaHQoKTsKK2NvbnN0IE1ROjpGZWF0
dXJlU2NoZW1hJiBpbmxpbmVTaXplKCk7Citjb25zdCBNUTo6RmVhdHVyZVNjaGVtYSYgYmxvY2tT
aXplKCk7Citjb25zdCBNUTo6RmVhdHVyZVNjaGVtYSYgYXNwZWN0UmF0aW8oKTsKK2NvbnN0IE1R
OjpGZWF0dXJlU2NoZW1hJiBvcmllbnRhdGlvbigpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3IuaAppbmRleCAz
NDYzNDYwNTk1MDUuLjZmYTA4NWY3YzE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKQEAgLTM1LDggKzM1LDYgQEAg
Y2xhc3MgUmVuZGVyRWxlbWVudDsKIAogbmFtZXNwYWNlIE1RIHsKIAotZW51bSBjbGFzcyBFdmFs
dWF0aW9uUmVzdWx0IDogdWludDhfdCB7IEZhbHNlLCBUcnVlLCBVbmtub3duIH07Ci0KIEV2YWx1
YXRpb25SZXN1bHQgZXZhbHVhdGVMZW5ndGhGZWF0dXJlKGNvbnN0IEZlYXR1cmUmLCBMYXlvdXRV
bml0LCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJik7CiBFdmFsdWF0aW9uUmVzdWx0
IGV2YWx1YXRlUmF0aW9GZWF0dXJlKGNvbnN0IEZlYXR1cmUmLCBkb3VibGUpOwogRXZhbHVhdGlv
blJlc3VsdCBldmFsdWF0ZURpc2NyZXRlRmVhdHVyZShjb25zdCBGZWF0dXJlJiwgQ1NTVmFsdWVJ
RCk7CkBAIC00NCwxMiArNDIsOSBAQCBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlRGlzY3JldGVG
ZWF0dXJlKGNvbnN0IEZlYXR1cmUmLCBDU1NWYWx1ZUlEKTsKIHRlbXBsYXRlPHR5cGVuYW1lIENv
bmNyZXRlRXZhbHVhdG9yPgogY2xhc3MgR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3IgewogcHVi
bGljOgotICAgIHN0cnVjdCBGZWF0dXJlRXZhbHVhdGlvbkNvbnRleHQgewotICAgICAgICBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhOwotICAgICAgICBjb25zdCBSZW5k
ZXJFbGVtZW50KiByZW5kZXJlciB7IG51bGxwdHIgfTsKLSAgICB9OwogICAgIEV2YWx1YXRpb25S
ZXN1bHQgZXZhbHVhdGVRdWVyeUluUGFyZW5zKGNvbnN0IFF1ZXJ5SW5QYXJlbnMmLCBjb25zdCBG
ZWF0dXJlRXZhbHVhdGlvbkNvbnRleHQmKSBjb25zdDsKICAgICBFdmFsdWF0aW9uUmVzdWx0IGV2
YWx1YXRlQ29uZGl0aW9uKGNvbnN0IENvbmRpdGlvbiYsIGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9u
Q29udGV4dCYpIGNvbnN0OworICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVGZWF0dXJlKGNv
bnN0IEZlYXR1cmUmLCBjb25zdCBGZWF0dXJlRXZhbHVhdGlvbkNvbnRleHQmKSBjb25zdDsKIAog
cHJpdmF0ZToKICAgICBjb25zdCBDb25jcmV0ZUV2YWx1YXRvciYgY29uY3JldGVFdmFsdWF0b3Io
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDb25jcmV0ZUV2YWx1YXRvciY+KCp0
aGlzKTsgfQpAQCAtMTA0LDYgKzk5LDE2IEBAIEV2YWx1YXRpb25SZXN1bHQgR2VuZXJpY01lZGlh
UXVlcnlFdmFsdWF0b3I8Q29uY3JldGVFdmFsdWF0b3I+OjpldmFsdWF0ZUNvbmRpdGlvCiAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQ29u
Y3JldGVFdmFsdWF0b3I+CitFdmFsdWF0aW9uUmVzdWx0IEdlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVh
dG9yPENvbmNyZXRlRXZhbHVhdG9yPjo6ZXZhbHVhdGVGZWF0dXJlKGNvbnN0IEZlYXR1cmUmIGZl
YXR1cmUsIGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sK
KyAgICBpZiAoIWZlYXR1cmUuc2NoZW1hKQorICAgICAgICByZXR1cm4gTVE6OkV2YWx1YXRpb25S
ZXN1bHQ6OlVua25vd247CisKKyAgICByZXR1cm4gZmVhdHVyZS5zY2hlbWEtPmV2YWx1YXRlKGZl
YXR1cmUsIGNvbnRleHQpOworfQorCisKIGlubGluZSBFdmFsdWF0aW9uUmVzdWx0IG9wZXJhdG9y
JihFdmFsdWF0aW9uUmVzdWx0IGxlZnQsIEV2YWx1YXRpb25SZXN1bHQgcmlnaHQpCiB7CiAgICAg
aWYgKGxlZnQgPT0gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93biB8fCByaWdodCA9PSBFdmFsdWF0
aW9uUmVzdWx0OjpVbmtub3duKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5
L0dlbmVyaWNNZWRpYVF1ZXJ5VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5l
cmljTWVkaWFRdWVyeVR5cGVzLmgKaW5kZXggZTAzMTU0ZmFjNjk4Li5hM2JlMzBmODYwN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVR5cGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5VHlwZXMu
aApAQCAtMjQsMTIgKzI0LDE3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlOjpNUSB7CituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlckVsZW1lbnQ7CisKK25hbWVzcGFjZSBNUSB7
CiAKIGVudW0gY2xhc3MgTG9naWNhbE9wZXJhdG9yIDogdWludDhfdCB7IEFuZCwgT3IsIE5vdCB9
OwogZW51bSBjbGFzcyBDb21wYXJpc29uT3BlcmF0b3IgOiB1aW50OF90IHsgTGVzc1RoYW4sIExl
c3NUaGFuT3JFcXVhbCwgRXF1YWwsIEdyZWF0ZXJUaGFuLCBHcmVhdGVyVGhhbk9yRXF1YWwgfTsK
QEAgLTY0LDYgKzY5LDEzIEBAIHN0cnVjdCBDb25kaXRpb24gewogICAgIFZlY3RvcjxRdWVyeUlu
UGFyZW5zPiBxdWVyaWVzOwogfTsKIAorZW51bSBjbGFzcyBFdmFsdWF0aW9uUmVzdWx0IDogdWlu
dDhfdCB7IEZhbHNlLCBUcnVlLCBVbmtub3duIH07CisKK3N0cnVjdCBGZWF0dXJlRXZhbHVhdGlv
bkNvbnRleHQgeworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGE7
CisgICAgY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgeyBudWxscHRyIH07Cit9OworCiBz
dHJ1Y3QgRmVhdHVyZVNjaGVtYSB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVE
OwogCkBAIC04MCw2ICs5MiwxNyBAQCBzdHJ1Y3QgRmVhdHVyZVNjaGVtYSB7CiAgICAgVHlwZSB0
eXBlOwogICAgIE9wdGlvblNldDxWYWx1ZVR5cGU+IHZhbHVlVHlwZXM7CiAgICAgVmVjdG9yPENT
U1ZhbHVlSUQ+IHZhbHVlSWRlbnRpZmllcnM7CisKKyAgICB2aXJ0dWFsIEV2YWx1YXRpb25SZXN1
bHQgZXZhbHVhdGUoY29uc3QgRmVhdHVyZSYsIGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4
dCYpIGNvbnN0IHsgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247IH0KKworICAgIEZl
YXR1cmVTY2hlbWEoY29uc3QgQXRvbVN0cmluZyYgbmFtZSwgVHlwZSB0eXBlLCBPcHRpb25TZXQ8
VmFsdWVUeXBlPiB2YWx1ZVR5cGVzLCBWZWN0b3I8Q1NTVmFsdWVJRD4gdmFsdWVJZGVudGlmaWVy
cykKKyAgICAgICAgOiBuYW1lKG5hbWUpCisgICAgICAgICwgdHlwZSh0eXBlKQorICAgICAgICAs
IHZhbHVlVHlwZXModmFsdWVUeXBlcykKKyAgICAgICAgLCB2YWx1ZUlkZW50aWZpZXJzKHZhbHVl
SWRlbnRpZmllcnMpCisgICAgeyB9CisgICAgdmlydHVhbCB+RmVhdHVyZVNjaGVtYSgpID0gZGVm
YXVsdDsKIH07CiAKIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1
ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA0NDQ3NzY5M2MzYTcuLmMwZDRhZWRmNmYwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVBbmNlc3Rvckl0
ZXJhdG9yLmgiCisjaW5jbHVkZSAiQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFGZWF0dXJlTmFtZXMuaCIKICNpbmNsdWRlICJN
ZWRpYUxpc3QuaCIKQEAgLTU2LDcgKzU3LDcgQEAgYm9vbCBDb250YWluZXJRdWVyeUV2YWx1YXRv
cjo6ZXZhbHVhdGUoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JiBjb250YWluZXJRdWVyeSkKICAg
ICByZXR1cm4gZXZhbHVhdGVDb25kaXRpb24oY29udGFpbmVyUXVlcnkuY29uZGl0aW9uLCAqY29u
dGV4dCkgPT0gTVE6OkV2YWx1YXRpb25SZXN1bHQ6OlRydWU7CiB9CiAKLWF1dG8gQ29udGFpbmVy
UXVlcnlFdmFsdWF0b3I6OmZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dEZvclF1ZXJ5KGNvbnN0IENR
OjpDb250YWluZXJRdWVyeSYgY29udGFpbmVyUXVlcnkpIGNvbnN0IC0+IHN0ZDo6b3B0aW9uYWw8
RmVhdHVyZUV2YWx1YXRpb25Db250ZXh0PgorYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6
ZmVhdHVyZUV2YWx1YXRpb25Db250ZXh0Rm9yUXVlcnkoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5
JiBjb250YWluZXJRdWVyeSkgY29uc3QgLT4gc3RkOjpvcHRpb25hbDxNUTo6RmVhdHVyZUV2YWx1
YXRpb25Db250ZXh0PgogewogICAgIC8vICJGb3IgZWFjaCBlbGVtZW50LCB0aGUgcXVlcnkgY29u
dGFpbmVyIHRvIGJlIHF1ZXJpZWQgaXMgc2VsZWN0ZWQgZnJvbSBhbW9uZyB0aGUgZWxlbWVudOKA
mXMKICAgICAvLyBhbmNlc3RvciBxdWVyeSBjb250YWluZXJzIHRoYXQgaGF2ZSBhIHZhbGlkIGNv
bnRhaW5lci10eXBlIGZvciBhbGwgdGhlIGNvbnRhaW5lciBmZWF0dXJlcwpAQCAtNzEsMTEgKzcy
LDExIEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmZlYXR1cmVFdmFsdWF0aW9uQ29u
dGV4dEZvclF1ZXJ5KGNvbnN0IENROjpDb250YWluCiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBpZiAoIWNvbnRhaW5lci0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIEZlYXR1cmVFdmFs
dWF0aW9uQ29udGV4dCB7IH07CisgICAgICAgIHJldHVybiBNUTo6RmVhdHVyZUV2YWx1YXRpb25D
b250ZXh0IHsgfTsKIAogICAgIGF1dG8mIHJlbmRlcmVyID0gKmNvbnRhaW5lci0+cmVuZGVyZXIo
KTsKIAotICAgIHJldHVybiBGZWF0dXJlRXZhbHVhdGlvbkNvbnRleHQgeworICAgIHJldHVybiBN
UTo6RmVhdHVyZUV2YWx1YXRpb25Db250ZXh0IHsKICAgICAgICAgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSB7IHJlbmRlcmVyLnN0eWxlKCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS5kb2N1bWVu
dEVsZW1lbnQoKS0+cmVuZGVyU3R5bGUoKSwgbnVsbHB0ciwgJnJlbmRlcmVyLnZpZXcoKSB9LAog
ICAgICAgICAmcmVuZGVyZXIKICAgICB9OwpAQCAtMTU2LDYwICsxNTcsNCBAQCBjb25zdCBFbGVt
ZW50KiBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyKE9wdGlvblNldDxD
UTo6QXhpcz4gYXhlcwogICAgIHJldHVybiB7IH07CiB9CiAKLWF1dG8gQ29udGFpbmVyUXVlcnlF
dmFsdWF0b3I6OmV2YWx1YXRlRmVhdHVyZShjb25zdCBNUTo6RmVhdHVyZSYgc2l6ZUZlYXR1cmUs
IGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCYgY29udGV4dCkgY29uc3QgLT4gTVE6OkV2
YWx1YXRpb25SZXN1bHQKLXsKLSAgICBpZiAoIXNpemVGZWF0dXJlLnNjaGVtYSkKLSAgICAgICAg
cmV0dXJuIE1ROjpFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOwotCi0gICAgLy8gIklmIHRoZSBx
dWVyeSBjb250YWluZXIgZG9lcyBub3QgaGF2ZSBhIHByaW5jaXBhbCBib3gsIG9yIHRoZSBwcmlu
Y2lwYWwgYm94IGlzIG5vdCBhIGxheW91dCBjb250YWlubWVudCBib3gsCi0gICAgLy8gb3IgdGhl
IHF1ZXJ5IGNvbnRhaW5lciBkb2VzIG5vdCBzdXBwb3J0IGNvbnRhaW5lciBzaXplIHF1ZXJpZXMg
b24gdGhlIHJlbGV2YW50IGF4ZXMsIHRoZW4gdGhlIHJlc3VsdCBvZgotICAgIC8vIGV2YWx1YXRp
bmcgdGhlIHNpemUgZmVhdHVyZSBpcyB1bmtub3duLiIKLSAgICAvLyBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWNvbnRhaW4tMy8jc2l6ZS1jb250YWluZXIKLSAgICBpZiAoIWlzPFJlbmRl
ckJveD4oY29udGV4dC5yZW5kZXJlcikpCi0gICAgICAgIHJldHVybiBNUTo6RXZhbHVhdGlvblJl
c3VsdDo6VW5rbm93bjsKLQotICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyQm94
PigqY29udGV4dC5yZW5kZXJlcik7Ci0KLSAgICBhdXRvIGhhc0VsaWdpYmxlQ29udGFpbm1lbnQg
PSBbJl0gewotICAgICAgICBpZiAoIXJlbmRlcmVyLnNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1l
bnQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgc3dpdGNoIChyZW5kZXJl
ci5zdHlsZSgpLmNvbnRhaW5lclR5cGUoKSkgewotICAgICAgICBjYXNlIENvbnRhaW5lclR5cGU6
OklubGluZVNpemU6Ci0gICAgICAgICAgICByZXR1cm4gcmVuZGVyZXIuc2hvdWxkQXBwbHlJbmxp
bmVTaXplQ29udGFpbm1lbnQoKTsKLSAgICAgICAgY2FzZSBDb250YWluZXJUeXBlOjpTaXplOgot
ICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7
Ci0gICAgICAgIGNhc2UgQ29udGFpbmVyVHlwZTo6Tm9ybWFsOgotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICB9OwotCi0gICAgaWYgKCFoYXNFbGlnaWJsZUNvbnRhaW5tZW50KCkpCi0gICAgICAgIHJl
dHVybiBNUTo6RXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsKLQotICAgIGlmIChzaXplRmVhdHVy
ZS5zY2hlbWEgPT0gJkNROjpGZWF0dXJlU2NoZW1hczo6d2lkdGgoKSkKLSAgICAgICAgcmV0dXJu
IGV2YWx1YXRlTGVuZ3RoRmVhdHVyZShzaXplRmVhdHVyZSwgcmVuZGVyZXIuY29udGVudFdpZHRo
KCksIGNvbnRleHQuY29udmVyc2lvbkRhdGEpOwotCi0gICAgaWYgKHNpemVGZWF0dXJlLnNjaGVt
YSA9PSAmQ1E6OkZlYXR1cmVTY2hlbWFzOjpoZWlnaHQoKSkKLSAgICAgICAgcmV0dXJuIGV2YWx1
YXRlTGVuZ3RoRmVhdHVyZShzaXplRmVhdHVyZSwgcmVuZGVyZXIuY29udGVudEhlaWdodCgpLCBj
b250ZXh0LmNvbnZlcnNpb25EYXRhKTsKLQotICAgIGlmIChzaXplRmVhdHVyZS5zY2hlbWEgPT0g
JkNROjpGZWF0dXJlU2NoZW1hczo6aW5saW5lU2l6ZSgpKQotICAgICAgICByZXR1cm4gZXZhbHVh
dGVMZW5ndGhGZWF0dXJlKHNpemVGZWF0dXJlLCByZW5kZXJlci5jb250ZW50TG9naWNhbFdpZHRo
KCksIGNvbnRleHQuY29udmVyc2lvbkRhdGEpOwotCi0gICAgaWYgKHNpemVGZWF0dXJlLnNjaGVt
YSA9PSAmQ1E6OkZlYXR1cmVTY2hlbWFzOjpibG9ja1NpemUoKSkKLSAgICAgICAgcmV0dXJuIGV2
YWx1YXRlTGVuZ3RoRmVhdHVyZShzaXplRmVhdHVyZSwgcmVuZGVyZXIuY29udGVudExvZ2ljYWxI
ZWlnaHQoKSwgY29udGV4dC5jb252ZXJzaW9uRGF0YSk7Ci0KLSAgICBpZiAoc2l6ZUZlYXR1cmUu
c2NoZW1hID09ICZDUTo6RmVhdHVyZVNjaGVtYXM6OmFzcGVjdFJhdGlvKCkpIHsKLSAgICAgICAg
YXV0byBib3hSYXRpbyA9IHJlbmRlcmVyLmNvbnRlbnRXaWR0aCgpLnRvRG91YmxlKCkgLyByZW5k
ZXJlci5jb250ZW50SGVpZ2h0KCkudG9Eb3VibGUoKTsKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRl
UmF0aW9GZWF0dXJlKHNpemVGZWF0dXJlLCBib3hSYXRpbyk7Ci0gICAgfQotCi0gICAgaWYgKHNp
emVGZWF0dXJlLnNjaGVtYSA9PSAmQ1E6OkZlYXR1cmVTY2hlbWFzOjpvcmllbnRhdGlvbigpKSB7
Ci0gICAgICAgIGJvb2wgaXNQb3J0cmFpdCA9IHJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKSA+PSBy
ZW5kZXJlci5jb250ZW50V2lkdGgoKTsKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRlRGlzY3JldGVG
ZWF0dXJlKHNpemVGZWF0dXJlLCBpc1BvcnRyYWl0ID8gQ1NTVmFsdWVQb3J0cmFpdCA6IENTU1Zh
bHVlTGFuZHNjYXBlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gTVE6OkV2YWx1YXRpb25SZXN1bHQ6
OlVua25vd247Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVy
eUV2YWx1YXRvci5oCmluZGV4IDE3OGFmODUxYTE3Mi4uY2UxMzk0Yjg1ODg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmgKQEAgLTQ1LDEwICs0
NSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBFbGVtZW50KiBzZWxlY3RDb250YWlu
ZXIoT3B0aW9uU2V0PENROjpBeGlzPiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBFbGVtZW50
JiwgU2VsZWN0aW9uTW9kZSA9IFNlbGVjdGlvbk1vZGU6OkVsZW1lbnQsIFNjb3BlT3JkaW5hbCA9
IFNjb3BlT3JkaW5hbDo6RWxlbWVudCwgY29uc3QgQ2FjaGVkUXVlcnlDb250YWluZXJzKiA9IG51
bGxwdHIpOwogCi0gICAgTVE6OkV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVGZWF0dXJlKGNvbnN0
IE1ROjpGZWF0dXJlJiwgY29uc3QgRmVhdHVyZUV2YWx1YXRpb25Db250ZXh0JikgY29uc3Q7Ci0K
IHByaXZhdGU6Ci0gICAgc3RkOjpvcHRpb25hbDxGZWF0dXJlRXZhbHVhdGlvbkNvbnRleHQ+IGZl
YXR1cmVFdmFsdWF0aW9uQ29udGV4dEZvclF1ZXJ5KGNvbnN0IENROjpDb250YWluZXJRdWVyeSYp
IGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8TVE6OkZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dD4g
ZmVhdHVyZUV2YWx1YXRpb25Db250ZXh0Rm9yUXVlcnkoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5
JikgY29uc3Q7CiAKICAgICBjb25zdCBSZWY8Y29uc3QgRWxlbWVudD4gbV9lbGVtZW50OwogICAg
IGNvbnN0IFNlbGVjdGlvbk1vZGUgbV9zZWxlY3Rpb25Nb2RlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463200</attachid>
            <date>2022-10-24 10:18:46 -0700</date>
            <delta_ts>2022-10-24 22:58:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246948-20221024201845.patch</filename>
            <type>text/plain</type>
            <size>29246</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBiZjM4OTU1YzZlYjFhNTI1MWEwNDVjZGQ5MjFhODRlMDYwYzE3YjNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBNb24sIDI0IE9jdCAyMDIyIDE3OjQ2OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gW01RNF0g
TWFrZSB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbiBhIHBhcnQgb2YgdGhlCiBGZWF0dXJlU2NoZW1h
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY5NDgKIDxyZGFyOi8v
cHJvYmxlbS8xMDE1MDAwMzQ+LgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpNYWtlIEZl
YXR1cmVTY2hlbWEgcmVzcG9uc2libGUgb2YgZG9pbmcgdGhlIGFjdHVhbCBmZWF0dXJlIGV2YWx1
YXRpb24uCgoqIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0OgoqIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnkuY3BwOgooV2ViQ29yZTo6Q1E6OnJlcXVpcmVkQXhlc0ZvckZlYXR1cmUpOgoo
V2ViQ29yZTo6Q1E6OkZlYXR1cmVTY2hlbWFzOjp3aWR0aCk6IERlbGV0ZWQuCihXZWJDb3JlOjpD
UTo6RmVhdHVyZVNjaGVtYXM6OmhlaWdodCk6IERlbGV0ZWQuCihXZWJDb3JlOjpDUTo6RmVhdHVy
ZVNjaGVtYXM6OmlubGluZVNpemUpOiBEZWxldGVkLgooV2ViQ29yZTo6Q1E6OkZlYXR1cmVTY2hl
bWFzOjpibG9ja1NpemUpOiBEZWxldGVkLgooV2ViQ29yZTo6Q1E6OkZlYXR1cmVTY2hlbWFzOjph
c3BlY3RSYXRpbyk6IERlbGV0ZWQuCihXZWJDb3JlOjpDUTo6RmVhdHVyZVNjaGVtYXM6Om9yaWVu
dGF0aW9uKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJz
ZXIuY3BwOgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9Db250YWluZXJRdWVyeUZlYXR1cmVz
LmNwcDogQWRkZWQuCihXZWJDb3JlOjpDUTo6RmVhdHVyZXM6OlNpemVGZWF0dXJlU2NoZW1hOjpT
aXplRmVhdHVyZVNjaGVtYSk6CihXZWJDb3JlOjpDUTo6RmVhdHVyZXM6OndpZHRoKToKKFdlYkNv
cmU6OkNROjpGZWF0dXJlczo6aGVpZ2h0KToKKFdlYkNvcmU6OkNROjpGZWF0dXJlczo6aW5saW5l
U2l6ZSk6CihXZWJDb3JlOjpDUTo6RmVhdHVyZXM6OmJsb2NrU2l6ZSk6CihXZWJDb3JlOjpDUTo6
RmVhdHVyZXM6OmFzcGVjdFJhdGlvKToKKFdlYkNvcmU6OkNROjpGZWF0dXJlczo6b3JpZW50YXRp
b24pOgoKTW92ZSBjb250YWluZXIgcXVlcnkgRmVhdHVyZVNjaGVtYXMgdG8gYSBmaWxlIG9mIHRo
ZWlyIG93biBhbmQgYWRkIGV2YWx1YXRpb24gZnVuY3Rpb25zLgoKKiBTb3VyY2UvV2ViQ29yZS9j
c3MvcXVlcnkvQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3IuaDoKKFdlYkNvcmU6Ok1ROjpH
ZW5lcmljTWVkaWFRdWVyeUV2YWx1YXRvcjxDb25jcmV0ZUV2YWx1YXRvcj46OmV2YWx1YXRlRmVh
dHVyZSBjb25zdCk6CigpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5l
cmljTWVkaWFRdWVyeVR5cGVzLmg6CihXZWJDb3JlOjpNUTo6RmVhdHVyZVNjaGVtYTo6ZXZhbHVh
dGUgY29uc3QpOgooV2ViQ29yZTo6TVE6OkZlYXR1cmVTY2hlbWE6OkZlYXR1cmVTY2hlbWEpOgoq
IFNvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcDoKKFdlYkNv
cmU6OlN0eWxlOjpDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZmVhdHVyZUV2YWx1YXRpb25Db250
ZXh0Rm9yUXVlcnkgY29uc3QpOgooV2ViQ29yZTo6U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVh
dG9yOjpldmFsdWF0ZUZlYXR1cmUgY29uc3QpOiBEZWxldGVkLgoKRXZhbHVhdGlvbiBtb3ZlcyB0
byB0aGUgZ2VuZXJpYyBjb2RlLgoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVy
eUV2YWx1YXRvci5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAg
ICAgICAgICB8ICAgMSArCiAuLi4vV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogfCAgIDYgKwogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcCAgICAg
ICAgIHwgIDUyICstLS0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIu
Y3BwICAgfCAgMTMgKy0KIC4uLi9jc3MvcXVlcnkvQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5jcHAg
ICAgICB8IDE3OCArKysrKysrKysrKysrKysrKysKIC4uLi9jc3MvcXVlcnkvQ29udGFpbmVyUXVl
cnlGZWF0dXJlcy5oICAgICAgICB8ICA0MSArKysrCiAuLi4vY3NzL3F1ZXJ5L0dlbmVyaWNNZWRp
YVF1ZXJ5RXZhbHVhdG9yLmggICAgfCAgMTcgKy0KIC4uLi9jc3MvcXVlcnkvR2VuZXJpY01lZGlh
UXVlcnlUeXBlcy5oICAgICAgICB8ICAyNSArKy0KIC4uLi9XZWJDb3JlL3N0eWxlL0NvbnRhaW5l
clF1ZXJ5RXZhbHVhdG9yLmNwcCB8ICA2MyArLS0tLS0tCiAuLi4vV2ViQ29yZS9zdHlsZS9Db250
YWluZXJRdWVyeUV2YWx1YXRvci5oICAgfCAgIDQgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDI3OSBp
bnNlcnRpb25zKCspLCAxMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYkNvcmUvY3NzL3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVhdHVyZXMu
aAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMGU0YTI4ZWViODAzLi45ZTEyODgxMWVlYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC04ODIsNiArODgyLDcgQEAgY3NzL3BhcnNlci9MZWdhY3lNZWRpYVF1ZXJ5UGFy
c2VyLmNwcAogY3NzL3BhcnNlci9NZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcAogY3NzL3BhcnNl
ci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKIGNzcy9wYXJzZXIvU2l6ZXNDYWxjUGFyc2VyLmNw
cAorY3NzL3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuY3BwCiBjc3MvcXVlcnkvR2VuZXJp
Y01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCiBjc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlQYXJz
ZXIuY3BwCiBjc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlTZXJpYWxpemF0aW9uLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDBiZTEwNDJkNzNhOS4uNzY4OGZmM2Y0ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTE4LDYgKzU1MTgsNyBAQAogCQlF
NDUzMjJBQzE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1MzIyQUExNDBDRTI2NzAwNUEwRjky
IC8qIFNlbGVjdG9yUXVlcnkuaCAqLzsgfTsKIAkJRTQ1NUE1NzEyOEZENzNGMzAwQjZFQTc2IC8q
IE1lZGlhUXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0NTVBNTcwMjhGRDczRjMwMEI2RUE3NiAvKiBNZWRpYVF1ZXJ5RXZhbHVh
dG9yLmggKi87IH07CiAJCUU0NTVBNTgyMjhGRThEOEQwMEI2RUE3NiAvKiBNZWRpYVF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDU1QTU4MTI4
RkU4RDhEMDBCNkVBNzYgLyogTWVkaWFRdWVyeS5oICovOyB9OworCQlFNDU1QTU5NDI5MDI4Nzg5
MDBCNkVBNzYgLyogQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1NUE1OTMyOTAyODc4ODAwQjZFQTc2IC8qIENv
bnRhaW5lclF1ZXJ5RmVhdHVyZXMuaCAqLzsgfTsKIAkJRTQ1QTZDNzcyNDE3QkE1OTAwNkU0Q0Q1
IC8qIFBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDVBNkM3NjI0MTdCQTU5MDA2RTRDRDUgLyogUHNl
dWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJRTQ1QkE2QUEyMzc0OTI2QzAw
NERGQzA3IC8qIE1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1QkE2QTgyMzc0OTI2QjAwNERGQzA3IC8qIE1h
dGNoZWREZWNsYXJhdGlvbnNDYWNoZS5oICovOyB9OwogCQlFNDVCQTZCNjIzNzYyMkEzMDA0REZD
MDcgLyogU3R5bGVBZGp1c3Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQ1QkE2QjUyMzc2MjI5RjAwNERGQzA3IC8qIFN0eWxlQWRqdXN0ZXIuaCAq
LzsgfTsKQEAgLTE4MDI4LDYgKzE4MDI5LDggQEAKIAkJRTQ1NUE1NkYyOEZENzNFQjAwQjZFQTc2
IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NTVBNTcwMjhG
RDczRjMwMEI2RUE3NiAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnlFdmFsdWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTQ1NUE1ODEyOEZFOEQ4RDAwQjZFQTc2IC8qIE1lZGlhUXVlcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNDU1QTU5MTI5MDI4Nzc4MDBCNkVBNzYgLyogQ29udGFpbmVyUXVl
cnlGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250
YWluZXJRdWVyeUZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQ1
NUE1OTMyOTAyODc4ODAwQjZFQTc2IC8qIENvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDVBNkM3MzI0MTdCQTRDMDA2RTRDRDUgLyogUHNl
dWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDVBNkM3NjI0MTdCQTU5MDA2RTRDRDUgLyogUHNldWRvQ2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQ1QkE2QTgyMzc0OTI2QjAwNERGQzA3IC8qIE1hdGNoZWREZWNsYXJhdGlvbnNDYWNo
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRjaGVkRGVjbGFyYXRpb25z
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyNTA3LDYgKzMyNTEwLDgg
QEAKIAkJRTREQTVFM0UyOEEyODY3MzAwODQ5QkNGIC8qIHF1ZXJ5ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFNDU1QTU5MTI5MDI4Nzc4MDBCNkVBNzYg
LyogQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5jcHAgKi8sCisJCQkJRTQ1NUE1OTMyOTAyODc4ODAw
QjZFQTc2IC8qIENvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuaCAqLywKIAkJCQlFNERBNUU1NTI4QTUw
MDVFMDA4NDlCQ0YgLyogR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovLAogCQkJCUU0
REE1RTNGMjhBMjg4RjgwMDg0OUJDRiAvKiBHZW5lcmljTWVkaWFRdWVyeUV2YWx1YXRvci5oICov
LAogCQkJCUU0REE1RTQ1MjhBM0FGNTQwMDg0OUJDRiAvKiBHZW5lcmljTWVkaWFRdWVyeVBhcnNl
ci5jcHAgKi8sCkBAIC0zNTAwMSw2ICszNTAwNiw3IEBACiAJCQkJRTFBMTQ3MDgxMTEwMkIxNTAw
RUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NEYxNTczOTI3QjkyNjE1MDBCMzMwRDggLyogQ29udGFpbmVyUXVlcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0QUFCMzg3MjdBQTk1RDcwMDlGNTg5OSAvKiBDb250YWluZXJRdWVyeUV2YWx1YXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ1NUE1OTQyOTAyODc4OTAwQjZFQTc2IC8qIENvbnRh
aW5lclF1ZXJ5RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RjE1NzQxMjdCOTNCNzcw
MEIzMzBEOCAvKiBDb250YWluZXJRdWVyeVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZC
NUUyMTQyMjFGMjQ1MzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1RUI5ODEwRTgyMDcyNTAwQjI1OTY1IC8qIENvbnRlbnREYXRhLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVy
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwCmluZGV4IDVlOTE0
NzhlNGU3ZC4uMWUyMmU3MmVlZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5j
cHAKQEAgLTI3LDY1ICsyNywyNSBAQAogCiAjaW5jbHVkZSAiQ1NTTWFya3VwLmgiCiAjaW5jbHVk
ZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDb250YWluZXJRdWVyeUZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiR2VuZXJpY01lZGlhUXVlcnlTZXJpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgQ1EgewotbmFtZXNwYWNlIEZlYXR1cmVTY2hl
bWFzIHsKLQotdXNpbmcgbmFtZXNwYWNlIE1ROwotCi1jb25zdCBGZWF0dXJlU2NoZW1hJiB3aWR0
aCgpCi17Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxGZWF0dXJlU2NoZW1h
PiBzY2hlbWEgeyBGZWF0dXJlU2NoZW1hIHsgIndpZHRoIl9zLCBGZWF0dXJlU2NoZW1hOjpUeXBl
OjpSYW5nZSwgeyBGZWF0dXJlU2NoZW1hOjpWYWx1ZVR5cGU6Okxlbmd0aCB9LCB7IH0gfSB9Owot
ICAgIHJldHVybiBzY2hlbWE7Ci19Ci0KLWNvbnN0IEZlYXR1cmVTY2hlbWEmIGhlaWdodCgpCi17
Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxGZWF0dXJlU2NoZW1hPiBzY2hl
bWEgeyBGZWF0dXJlU2NoZW1hIHsgImhlaWdodCJfcywgRmVhdHVyZVNjaGVtYTo6VHlwZTo6UmFu
Z2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpMZW5ndGggfSwgeyB9IH0gfTsKLSAgICBy
ZXR1cm4gc2NoZW1hOwotfQotCi1jb25zdCBGZWF0dXJlU2NoZW1hJiBpbmxpbmVTaXplKCkKLXsK
LSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPEZlYXR1cmVTY2hlbWE+IHNjaGVt
YSB7IEZlYXR1cmVTY2hlbWEgeyAiaW5saW5lLXNpemUiX3MsIEZlYXR1cmVTY2hlbWE6OlR5cGU6
OlJhbmdlLCB7IEZlYXR1cmVTY2hlbWE6OlZhbHVlVHlwZTo6TGVuZ3RoIH0sIHsgfSB9IH07Ci0g
ICAgcmV0dXJuIHNjaGVtYTsKLX0KLQotY29uc3QgRmVhdHVyZVNjaGVtYSYgYmxvY2tTaXplKCkK
LXsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPEZlYXR1cmVTY2hlbWE+IHNj
aGVtYSB7IEZlYXR1cmVTY2hlbWEgeyAiYmxvY2stc2l6ZSJfcywgRmVhdHVyZVNjaGVtYTo6VHlw
ZTo6UmFuZ2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpMZW5ndGggfSwgeyB9IH0gfTsK
LSAgICByZXR1cm4gc2NoZW1hOwotfQotCi1jb25zdCBGZWF0dXJlU2NoZW1hJiBhc3BlY3RSYXRp
bygpCi17Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxGZWF0dXJlU2NoZW1h
PiBzY2hlbWEgeyBGZWF0dXJlU2NoZW1hIHsgImFzcGVjdC1yYXRpbyJfcywgRmVhdHVyZVNjaGVt
YTo6VHlwZTo6UmFuZ2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpSYXRpbyB9LCB7IH0g
fSB9OwotICAgIHJldHVybiBzY2hlbWE7Ci19Ci0KLWNvbnN0IEZlYXR1cmVTY2hlbWEmIG9yaWVu
dGF0aW9uKCkKLXsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPEZlYXR1cmVT
Y2hlbWE+IHNjaGVtYSB7IEZlYXR1cmVTY2hlbWEgeyAib3JpZW50YXRpb24iX3MsIEZlYXR1cmVT
Y2hlbWE6OlR5cGU6OkRpc2NyZXRlLCB7IH0sIHsgQ1NTVmFsdWVQb3J0cmFpdCwgQ1NTVmFsdWVM
YW5kc2NhcGUgfSB9IH07Ci0gICAgcmV0dXJuIHNjaGVtYTsKLX0KLQotfQogCiBPcHRpb25TZXQ8
QXhpcz4gcmVxdWlyZWRBeGVzRm9yRmVhdHVyZShjb25zdCBNUTo6RmVhdHVyZSYgZmVhdHVyZSkK
IHsKLSAgICBpZiAoZmVhdHVyZS5zY2hlbWEgPT0gJkZlYXR1cmVTY2hlbWFzOjp3aWR0aCgpKQor
ICAgIGlmIChmZWF0dXJlLnNjaGVtYSA9PSAmRmVhdHVyZXM6OndpZHRoKCkpCiAgICAgICAgIHJl
dHVybiB7IEF4aXM6OldpZHRoIH07Ci0gICAgaWYgKGZlYXR1cmUuc2NoZW1hID09ICZGZWF0dXJl
U2NoZW1hczo6aGVpZ2h0KCkpCisgICAgaWYgKGZlYXR1cmUuc2NoZW1hID09ICZGZWF0dXJlczo6
aGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiB7IEF4aXM6OkhlaWdodCB9OwotICAgIGlmIChmZWF0
dXJlLnNjaGVtYSA9PSAmRmVhdHVyZVNjaGVtYXM6OmlubGluZVNpemUoKSkKKyAgICBpZiAoZmVh
dHVyZS5zY2hlbWEgPT0gJkZlYXR1cmVzOjppbmxpbmVTaXplKCkpCiAgICAgICAgIHJldHVybiB7
IEF4aXM6OklubGluZSB9OwotICAgIGlmIChmZWF0dXJlLnNjaGVtYSA9PSAmRmVhdHVyZVNjaGVt
YXM6OmJsb2NrU2l6ZSgpKQorICAgIGlmIChmZWF0dXJlLnNjaGVtYSA9PSAmRmVhdHVyZXM6OmJs
b2NrU2l6ZSgpKQogICAgICAgICByZXR1cm4geyBBeGlzOjpCbG9jayB9OwotICAgIGlmIChmZWF0
dXJlLnNjaGVtYSA9PSAmRmVhdHVyZVNjaGVtYXM6OmFzcGVjdFJhdGlvKCkgfHwgZmVhdHVyZS5z
Y2hlbWEgPT0gJkZlYXR1cmVTY2hlbWFzOjpvcmllbnRhdGlvbigpKQorICAgIGlmIChmZWF0dXJl
LnNjaGVtYSA9PSAmRmVhdHVyZXM6OmFzcGVjdFJhdGlvKCkgfHwgZmVhdHVyZS5zY2hlbWEgPT0g
JkZlYXR1cmVzOjpvcmllbnRhdGlvbigpKQogICAgICAgICByZXR1cm4geyBBeGlzOjpJbmxpbmUs
IEF4aXM6OkJsb2NrIH07CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q29udGFpbmVyUXVlcnlQYXJzZXIuY3BwCmluZGV4IGI1NzlhOTAwZjE4Ny4uM2FlZmQ3NjA5MjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ29udGFpbmVyUXVlcnlGZWF0
dXJlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDEyICszNiwxMiBAQCB1c2lu
ZyBuYW1lc3BhY2UgTVE7CiBWZWN0b3I8Y29uc3QgRmVhdHVyZVNjaGVtYSo+IENvbnRhaW5lclF1
ZXJ5UGFyc2VyOjpmZWF0dXJlU2NoZW1hcygpCiB7CiAgICAgcmV0dXJuIHsKLSAgICAgICAgJkNR
OjpGZWF0dXJlU2NoZW1hczo6d2lkdGgoKSwKLSAgICAgICAgJkNROjpGZWF0dXJlU2NoZW1hczo6
aGVpZ2h0KCksCi0gICAgICAgICZDUTo6RmVhdHVyZVNjaGVtYXM6OmlubGluZVNpemUoKSwKLSAg
ICAgICAgJkNROjpGZWF0dXJlU2NoZW1hczo6YmxvY2tTaXplKCksCi0gICAgICAgICZDUTo6RmVh
dHVyZVNjaGVtYXM6OmFzcGVjdFJhdGlvKCksCi0gICAgICAgICZDUTo6RmVhdHVyZVNjaGVtYXM6
Om9yaWVudGF0aW9uKCksCisgICAgICAgICZDUTo6RmVhdHVyZXM6OndpZHRoKCksCisgICAgICAg
ICZDUTo6RmVhdHVyZXM6OmhlaWdodCgpLAorICAgICAgICAmQ1E6OkZlYXR1cmVzOjppbmxpbmVT
aXplKCksCisgICAgICAgICZDUTo6RmVhdHVyZXM6OmJsb2NrU2l6ZSgpLAorICAgICAgICAmQ1E6
OkZlYXR1cmVzOjphc3BlY3RSYXRpbygpLAorICAgICAgICAmQ1E6OkZlYXR1cmVzOjpvcmllbnRh
dGlvbigpLAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVy
eS9Db250YWluZXJRdWVyeUZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9D
b250YWluZXJRdWVyeUZlYXR1cmVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjE0NWQwOGYzNDAzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9xdWVyeS9Db250YWluZXJRdWVyeUZlYXR1cmVzLmNwcApAQCAtMCwwICsxLDE3OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oIgorCisjaW5jbHVkZSAiUmVuZGVyQm94Lmgi
CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlOjpD
UTo6RmVhdHVyZXMgeworCit1c2luZyBuYW1lc3BhY2UgTVE7CisKK3N0cnVjdCBTaXplRmVhdHVy
ZVNjaGVtYSA6IHB1YmxpYyBGZWF0dXJlU2NoZW1hIHsKKyAgICBTaXplRmVhdHVyZVNjaGVtYShj
b25zdCBBdG9tU3RyaW5nJiBuYW1lLCBUeXBlIHR5cGUsIE9wdGlvblNldDxWYWx1ZVR5cGU+IHZh
bHVlVHlwZXMsIFZlY3RvcjxDU1NWYWx1ZUlEPiB2YWx1ZUlkZW50aWZpZXJzID0geyB9KQorICAg
ICAgICA6IEZlYXR1cmVTY2hlbWEobmFtZSwgdHlwZSwgdmFsdWVUeXBlcywgdmFsdWVJZGVudGlm
aWVycykKKyAgICB7IH0KKworICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6
OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCYgY29udGV4
dCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIC8vICJJZiB0aGUgcXVlcnkgY29udGFp
bmVyIGRvZXMgbm90IGhhdmUgYSBwcmluY2lwYWwgYm94LCBvciB0aGUgcHJpbmNpcGFsIGJveCBp
cyBub3QgYSBsYXlvdXQgY29udGFpbm1lbnQgYm94LAorICAgICAgICAvLyBvciB0aGUgcXVlcnkg
Y29udGFpbmVyIGRvZXMgbm90IHN1cHBvcnQgY29udGFpbmVyIHNpemUgcXVlcmllcyBvbiB0aGUg
cmVsZXZhbnQgYXhlcywgdGhlbiB0aGUgcmVzdWx0IG9mCisgICAgICAgIC8vIGV2YWx1YXRpbmcg
dGhlIHNpemUgZmVhdHVyZSBpcyB1bmtub3duLiIKKyAgICAgICAgLy8gaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzcy1jb250YWluLTMvI3NpemUtY29udGFpbmVyCisgICAgICAgIGlmICghaXM8
UmVuZGVyQm94Pihjb250ZXh0LnJlbmRlcmVyKSkKKyAgICAgICAgICAgIHJldHVybiBNUTo6RXZh
bHVhdGlvblJlc3VsdDo6VW5rbm93bjsKKworICAgICAgICBhdXRvJiByZW5kZXJlciA9IGRvd25j
YXN0PFJlbmRlckJveD4oKmNvbnRleHQucmVuZGVyZXIpOworCisgICAgICAgIGF1dG8gaGFzRWxp
Z2libGVDb250YWlubWVudCA9IFsmXSB7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLnNob3Vs
ZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBzd2l0Y2ggKHJlbmRlcmVyLnN0eWxlKCkuY29udGFpbmVyVHlwZSgpKSB7
CisgICAgICAgICAgICBjYXNlIENvbnRhaW5lclR5cGU6OklubGluZVNpemU6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlcmVyLnNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCk7
CisgICAgICAgICAgICBjYXNlIENvbnRhaW5lclR5cGU6OlNpemU6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHJlbmRlcmVyLnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7CisgICAgICAgICAg
ICBjYXNlIENvbnRhaW5lclR5cGU6Ok5vcm1hbDoKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKCFoYXNFbGlnaWJsZUNvbnRhaW5tZW50KCkp
CisgICAgICAgICAgICByZXR1cm4gTVE6OkV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CisKKyAg
ICAgICAgcmV0dXJuIGV2YWx1YXRlKGZlYXR1cmUsIHJlbmRlcmVyLCBjb250ZXh0LmNvbnZlcnNp
b25EYXRhKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUo
Y29uc3QgTVE6OkZlYXR1cmUmLCBjb25zdCBSZW5kZXJCb3gmLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJikgY29uc3QgPSAwOworfTsKKworY29uc3QgRmVhdHVyZVNjaGVtYSYgd2lk
dGgoKQoreworICAgIHN0cnVjdCBTY2hlbWEgOiBwdWJsaWMgU2l6ZUZlYXR1cmVTY2hlbWEgewor
ICAgICAgICBTY2hlbWEoKQorICAgICAgICAgICAgOiBTaXplRmVhdHVyZVNjaGVtYSgid2lkdGgi
X3MsIEZlYXR1cmVTY2hlbWE6OlR5cGU6OlJhbmdlLCB7IEZlYXR1cmVTY2hlbWE6OlZhbHVlVHlw
ZTo6TGVuZ3RoIH0gKQorICAgICAgICB7IH0KKworICAgICAgICBFdmFsdWF0aW9uUmVzdWx0IGV2
YWx1YXRlKGNvbnN0IE1ROjpGZWF0dXJlJiBmZWF0dXJlLCBjb25zdCBSZW5kZXJCb3gmIHJlbmRl
cmVyLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSkgY29u
c3Qgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGV2YWx1YXRlTGVuZ3Ro
RmVhdHVyZShmZWF0dXJlLCByZW5kZXJlci5jb250ZW50V2lkdGgoKSwgY29udmVyc2lvbkRhdGEp
OworICAgICAgICB9CisgICAgfTsKKworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8U2NoZW1hPiBzY2hlbWE7CisgICAgcmV0dXJuIHNjaGVtYTsKK30KKworY29uc3QgRmVhdHVy
ZVNjaGVtYSYgaGVpZ2h0KCkKK3sKKyAgICBzdHJ1Y3QgU2NoZW1hIDogcHVibGljIFNpemVGZWF0
dXJlU2NoZW1hIHsKKyAgICAgICAgU2NoZW1hKCkKKyAgICAgICAgICAgIDogU2l6ZUZlYXR1cmVT
Y2hlbWEoImhlaWdodCJfcywgRmVhdHVyZVNjaGVtYTo6VHlwZTo6UmFuZ2UsIHsgRmVhdHVyZVNj
aGVtYTo6VmFsdWVUeXBlOjpMZW5ndGggfSApCisgICAgICAgIHsgfQorCisgICAgICAgIEV2YWx1
YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0IFJl
bmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZl
cnNpb25EYXRhKSBjb25zdCBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
ZXZhbHVhdGVMZW5ndGhGZWF0dXJlKGZlYXR1cmUsIHJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKSwg
Y29udmVyc2lvbkRhdGEpOworICAgICAgICB9CisgICAgfTsKKworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8U2NoZW1hPiBzY2hlbWE7CisgICAgcmV0dXJuIHNjaGVtYTsKK30K
KworY29uc3QgRmVhdHVyZVNjaGVtYSYgaW5saW5lU2l6ZSgpCit7CisgICAgc3RydWN0IFNjaGVt
YSA6IHB1YmxpYyBTaXplRmVhdHVyZVNjaGVtYSB7CisgICAgICAgIFNjaGVtYSgpCisgICAgICAg
ICAgICA6IFNpemVGZWF0dXJlU2NoZW1hKCJpbmxpbmUtc2l6ZSJfcywgRmVhdHVyZVNjaGVtYTo6
VHlwZTo6UmFuZ2UsIHsgRmVhdHVyZVNjaGVtYTo6VmFsdWVUeXBlOjpMZW5ndGggfSApCisgICAg
ICAgIHsgfQorCisgICAgICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6OkZl
YXR1cmUmIGZlYXR1cmUsIGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhKSBjb25zdCBvdmVycmlkZQorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gZXZhbHVhdGVMZW5ndGhGZWF0dXJlKGZlYXR1cmUsIHJl
bmRlcmVyLmNvbnRlbnRMb2dpY2FsV2lkdGgoKSwgY29udmVyc2lvbkRhdGEpOworICAgICAgICB9
CisgICAgfTsKKworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8U2NoZW1hPiBz
Y2hlbWE7CisgICAgcmV0dXJuIHNjaGVtYTsKK30KKworY29uc3QgRmVhdHVyZVNjaGVtYSYgYmxv
Y2tTaXplKCkKK3sKKyAgICBzdHJ1Y3QgU2NoZW1hIDogcHVibGljIFNpemVGZWF0dXJlU2NoZW1h
IHsKKyAgICAgICAgU2NoZW1hKCkKKyAgICAgICAgICAgIDogU2l6ZUZlYXR1cmVTY2hlbWEoImJs
b2NrLXNpemUiX3MsIEZlYXR1cmVTY2hlbWE6OlR5cGU6OlJhbmdlLCB7IEZlYXR1cmVTY2hlbWE6
OlZhbHVlVHlwZTo6TGVuZ3RoIH0gKQorICAgICAgICB7IH0KKworICAgICAgICBFdmFsdWF0aW9u
UmVzdWx0IGV2YWx1YXRlKGNvbnN0IE1ROjpGZWF0dXJlJiBmZWF0dXJlLCBjb25zdCBSZW5kZXJC
b3gmIHJlbmRlcmVyLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiBjb252ZXJzaW9u
RGF0YSkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGV2YWx1
YXRlTGVuZ3RoRmVhdHVyZShmZWF0dXJlLCByZW5kZXJlci5jb250ZW50TG9naWNhbEhlaWdodCgp
LCBjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxTY2hlbWE+IHNjaGVtYTsKKyAgICByZXR1cm4gc2NoZW1hOwor
fQorCitjb25zdCBGZWF0dXJlU2NoZW1hJiBhc3BlY3RSYXRpbygpCit7CisgICAgc3RydWN0IFNj
aGVtYSA6IHB1YmxpYyBTaXplRmVhdHVyZVNjaGVtYSB7CisgICAgICAgIFNjaGVtYSgpCisgICAg
ICAgICAgICA6IFNpemVGZWF0dXJlU2NoZW1hKCJhc3BlY3QtcmF0aW8iX3MsIEZlYXR1cmVTY2hl
bWE6OlR5cGU6OlJhbmdlLCB7IEZlYXR1cmVTY2hlbWE6OlZhbHVlVHlwZTo6UmF0aW8gfSApCisg
ICAgICAgIHsgfQorCisgICAgICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6
OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEmKSBjb25zdCBvdmVycmlkZQorICAgICAgICB7CisgICAgICAg
ICAgICBhdXRvIGJveFJhdGlvID0gcmVuZGVyZXIuY29udGVudFdpZHRoKCkudG9Eb3VibGUoKSAv
IHJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKS50b0RvdWJsZSgpOworICAgICAgICAgICAgcmV0dXJu
IGV2YWx1YXRlUmF0aW9GZWF0dXJlKGZlYXR1cmUsIGJveFJhdGlvKTsKKyAgICAgICAgfQorICAg
IH07CisKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPFNjaGVtYT4gc2NoZW1h
OworICAgIHJldHVybiBzY2hlbWE7Cit9CisKK2NvbnN0IEZlYXR1cmVTY2hlbWEmIG9yaWVudGF0
aW9uKCkKK3sKKyAgICBzdHJ1Y3QgU2NoZW1hIDogcHVibGljIFNpemVGZWF0dXJlU2NoZW1hIHsK
KyAgICAgICAgU2NoZW1hKCkKKyAgICAgICAgICAgIDogU2l6ZUZlYXR1cmVTY2hlbWEoIm9yaWVu
dGF0aW9uIl9zLCBGZWF0dXJlU2NoZW1hOjpUeXBlOjpEaXNjcmV0ZSwgeyB9LCB7IENTU1ZhbHVl
UG9ydHJhaXQsIENTU1ZhbHVlTGFuZHNjYXBlIH0pCisgICAgICAgIHsgfQorCisgICAgICAgIEV2
YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgTVE6OkZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyZXIsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmKSBj
b25zdCBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBib29sIGlzUG9ydHJhaXQgPSBy
ZW5kZXJlci5jb250ZW50SGVpZ2h0KCkgPj0gcmVuZGVyZXIuY29udGVudFdpZHRoKCk7CisgICAg
ICAgICAgICByZXR1cm4gZXZhbHVhdGVEaXNjcmV0ZUZlYXR1cmUoZmVhdHVyZSwgaXNQb3J0cmFp
dCA/IENTU1ZhbHVlUG9ydHJhaXQgOiBDU1NWYWx1ZUxhbmRzY2FwZSk7CisgICAgICAgIH0KKyAg
ICB9OworCisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxTY2hlbWE+IHNjaGVt
YTsKKyAgICByZXR1cm4gc2NoZW1hOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcXVlcnkvQ29udGFpbmVyUXVlcnlGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3F1ZXJ5L0NvbnRhaW5lclF1ZXJ5RmVhdHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjQ5Nzk4ZGI2ZWQzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9xdWVyeS9Db250YWluZXJRdWVyeUZlYXR1cmVzLmgKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkNvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlOjpDUSB7CisKK25hbWVzcGFjZSBGZWF0dXJlcyB7Citjb25z
dCBNUTo6RmVhdHVyZVNjaGVtYSYgd2lkdGgoKTsKK2NvbnN0IE1ROjpGZWF0dXJlU2NoZW1hJiBo
ZWlnaHQoKTsKK2NvbnN0IE1ROjpGZWF0dXJlU2NoZW1hJiBpbmxpbmVTaXplKCk7Citjb25zdCBN
UTo6RmVhdHVyZVNjaGVtYSYgYmxvY2tTaXplKCk7Citjb25zdCBNUTo6RmVhdHVyZVNjaGVtYSYg
YXNwZWN0UmF0aW8oKTsKK2NvbnN0IE1ROjpGZWF0dXJlU2NoZW1hJiBvcmllbnRhdGlvbigpOwor
fTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRp
YVF1ZXJ5RXZhbHVhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlh
UXVlcnlFdmFsdWF0b3IuaAppbmRleCAzNDYzNDYwNTk1MDUuLjZmYTA4NWY3YzE3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVh
dG9yLmgKQEAgLTM1LDggKzM1LDYgQEAgY2xhc3MgUmVuZGVyRWxlbWVudDsKIAogbmFtZXNwYWNl
IE1RIHsKIAotZW51bSBjbGFzcyBFdmFsdWF0aW9uUmVzdWx0IDogdWludDhfdCB7IEZhbHNlLCBU
cnVlLCBVbmtub3duIH07Ci0KIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVMZW5ndGhGZWF0dXJl
KGNvbnN0IEZlYXR1cmUmLCBMYXlvdXRVbml0LCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhJik7CiBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlUmF0aW9GZWF0dXJlKGNvbnN0IEZlYXR1
cmUmLCBkb3VibGUpOwogRXZhbHVhdGlvblJlc3VsdCBldmFsdWF0ZURpc2NyZXRlRmVhdHVyZShj
b25zdCBGZWF0dXJlJiwgQ1NTVmFsdWVJRCk7CkBAIC00NCwxMiArNDIsOSBAQCBFdmFsdWF0aW9u
UmVzdWx0IGV2YWx1YXRlRGlzY3JldGVGZWF0dXJlKGNvbnN0IEZlYXR1cmUmLCBDU1NWYWx1ZUlE
KTsKIHRlbXBsYXRlPHR5cGVuYW1lIENvbmNyZXRlRXZhbHVhdG9yPgogY2xhc3MgR2VuZXJpY01l
ZGlhUXVlcnlFdmFsdWF0b3IgewogcHVibGljOgotICAgIHN0cnVjdCBGZWF0dXJlRXZhbHVhdGlv
bkNvbnRleHQgewotICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25E
YXRhOwotICAgICAgICBjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlciB7IG51bGxwdHIgfTsK
LSAgICB9OwogICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVRdWVyeUluUGFyZW5zKGNvbnN0
IFF1ZXJ5SW5QYXJlbnMmLCBjb25zdCBGZWF0dXJlRXZhbHVhdGlvbkNvbnRleHQmKSBjb25zdDsK
ICAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlQ29uZGl0aW9uKGNvbnN0IENvbmRpdGlvbiYs
IGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCYpIGNvbnN0OworICAgIEV2YWx1YXRpb25S
ZXN1bHQgZXZhbHVhdGVGZWF0dXJlKGNvbnN0IEZlYXR1cmUmLCBjb25zdCBGZWF0dXJlRXZhbHVh
dGlvbkNvbnRleHQmKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBjb25zdCBDb25jcmV0ZUV2YWx1
YXRvciYgY29uY3JldGVFdmFsdWF0b3IoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxjb25z
dCBDb25jcmV0ZUV2YWx1YXRvciY+KCp0aGlzKTsgfQpAQCAtMTA0LDYgKzk5LDE2IEBAIEV2YWx1
YXRpb25SZXN1bHQgR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3I8Q29uY3JldGVFdmFsdWF0b3I+
OjpldmFsdWF0ZUNvbmRpdGlvCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAordGVtcGxhdGU8dHlwZW5hbWUgQ29uY3JldGVFdmFsdWF0b3I+CitFdmFsdWF0aW9uUmVzdWx0
IEdlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9yPENvbmNyZXRlRXZhbHVhdG9yPjo6ZXZhbHVhdGVG
ZWF0dXJlKGNvbnN0IEZlYXR1cmUmIGZlYXR1cmUsIGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9uQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBpZiAoIWZlYXR1cmUuc2NoZW1hKQorICAgICAg
ICByZXR1cm4gTVE6OkV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247CisKKyAgICByZXR1cm4gZmVh
dHVyZS5zY2hlbWEtPmV2YWx1YXRlKGZlYXR1cmUsIGNvbnRleHQpOworfQorCisKIGlubGluZSBF
dmFsdWF0aW9uUmVzdWx0IG9wZXJhdG9yJihFdmFsdWF0aW9uUmVzdWx0IGxlZnQsIEV2YWx1YXRp
b25SZXN1bHQgcmlnaHQpCiB7CiAgICAgaWYgKGxlZnQgPT0gRXZhbHVhdGlvblJlc3VsdDo6VW5r
bm93biB8fCByaWdodCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5VHlwZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVR5cGVzLmgKaW5kZXggZTAzMTU0
ZmFjNjk4Li5hM2JlMzBmODYwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVy
eS9HZW5lcmljTWVkaWFRdWVyeVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5
L0dlbmVyaWNNZWRpYVF1ZXJ5VHlwZXMuaApAQCAtMjQsMTIgKzI0LDE3IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgPHd0
Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAKLW5hbWVz
cGFjZSBXZWJDb3JlOjpNUSB7CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlckVs
ZW1lbnQ7CisKK25hbWVzcGFjZSBNUSB7CiAKIGVudW0gY2xhc3MgTG9naWNhbE9wZXJhdG9yIDog
dWludDhfdCB7IEFuZCwgT3IsIE5vdCB9OwogZW51bSBjbGFzcyBDb21wYXJpc29uT3BlcmF0b3Ig
OiB1aW50OF90IHsgTGVzc1RoYW4sIExlc3NUaGFuT3JFcXVhbCwgRXF1YWwsIEdyZWF0ZXJUaGFu
LCBHcmVhdGVyVGhhbk9yRXF1YWwgfTsKQEAgLTY0LDYgKzY5LDEzIEBAIHN0cnVjdCBDb25kaXRp
b24gewogICAgIFZlY3RvcjxRdWVyeUluUGFyZW5zPiBxdWVyaWVzOwogfTsKIAorZW51bSBjbGFz
cyBFdmFsdWF0aW9uUmVzdWx0IDogdWludDhfdCB7IEZhbHNlLCBUcnVlLCBVbmtub3duIH07CisK
K3N0cnVjdCBGZWF0dXJlRXZhbHVhdGlvbkNvbnRleHQgeworICAgIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEgY29udmVyc2lvbkRhdGE7CisgICAgY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVy
ZXIgeyBudWxscHRyIH07Cit9OworCiBzdHJ1Y3QgRmVhdHVyZVNjaGVtYSB7CiAgICAgV1RGX01B
S0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwogCkBAIC04MCw2ICs5MiwxNyBAQCBzdHJ1Y3QgRmVh
dHVyZVNjaGVtYSB7CiAgICAgVHlwZSB0eXBlOwogICAgIE9wdGlvblNldDxWYWx1ZVR5cGU+IHZh
bHVlVHlwZXM7CiAgICAgVmVjdG9yPENTU1ZhbHVlSUQ+IHZhbHVlSWRlbnRpZmllcnM7CisKKyAg
ICB2aXJ0dWFsIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGUoY29uc3QgRmVhdHVyZSYsIGNvbnN0
IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIEV2YWx1YXRpb25SZXN1
bHQ6OlVua25vd247IH0KKworICAgIEZlYXR1cmVTY2hlbWEoY29uc3QgQXRvbVN0cmluZyYgbmFt
ZSwgVHlwZSB0eXBlLCBPcHRpb25TZXQ8VmFsdWVUeXBlPiB2YWx1ZVR5cGVzLCBWZWN0b3I8Q1NT
VmFsdWVJRD4gdmFsdWVJZGVudGlmaWVycykKKyAgICAgICAgOiBuYW1lKG5hbWUpCisgICAgICAg
ICwgdHlwZSh0eXBlKQorICAgICAgICAsIHZhbHVlVHlwZXModmFsdWVUeXBlcykKKyAgICAgICAg
LCB2YWx1ZUlkZW50aWZpZXJzKHZhbHVlSWRlbnRpZmllcnMpCisgICAgeyB9CisgICAgdmlydHVh
bCB+RmVhdHVyZVNjaGVtYSgpID0gZGVmYXVsdDsKIH07CiAKIH0KK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA0NDQ3NzY5M2Mz
YTcuLmMwZDRhZWRmNmYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFp
bmVyUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5l
clF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRl
ICJDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiQ29udGFpbmVyUXVl
cnlGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFGZWF0
dXJlTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKQEAgLTU2LDcgKzU3LDcgQEAgYm9v
bCBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgQ1E6OkNvbnRhaW5lclF1
ZXJ5JiBjb250YWluZXJRdWVyeSkKICAgICByZXR1cm4gZXZhbHVhdGVDb25kaXRpb24oY29udGFp
bmVyUXVlcnkuY29uZGl0aW9uLCAqY29udGV4dCkgPT0gTVE6OkV2YWx1YXRpb25SZXN1bHQ6OlRy
dWU7CiB9CiAKLWF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmZlYXR1cmVFdmFsdWF0aW9u
Q29udGV4dEZvclF1ZXJ5KGNvbnN0IENROjpDb250YWluZXJRdWVyeSYgY29udGFpbmVyUXVlcnkp
IGNvbnN0IC0+IHN0ZDo6b3B0aW9uYWw8RmVhdHVyZUV2YWx1YXRpb25Db250ZXh0PgorYXV0byBD
b250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZmVhdHVyZUV2YWx1YXRpb25Db250ZXh0Rm9yUXVlcnko
Y29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JiBjb250YWluZXJRdWVyeSkgY29uc3QgLT4gc3RkOjpv
cHRpb25hbDxNUTo6RmVhdHVyZUV2YWx1YXRpb25Db250ZXh0PgogewogICAgIC8vICJGb3IgZWFj
aCBlbGVtZW50LCB0aGUgcXVlcnkgY29udGFpbmVyIHRvIGJlIHF1ZXJpZWQgaXMgc2VsZWN0ZWQg
ZnJvbSBhbW9uZyB0aGUgZWxlbWVudOKAmXMKICAgICAvLyBhbmNlc3RvciBxdWVyeSBjb250YWlu
ZXJzIHRoYXQgaGF2ZSBhIHZhbGlkIGNvbnRhaW5lci10eXBlIGZvciBhbGwgdGhlIGNvbnRhaW5l
ciBmZWF0dXJlcwpAQCAtNzEsMTEgKzcyLDExIEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0
b3I6OmZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dEZvclF1ZXJ5KGNvbnN0IENROjpDb250YWluCiAg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAoIWNvbnRhaW5lci0+cmVuZGVyZXIoKSkKLSAg
ICAgICAgcmV0dXJuIEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCB7IH07CisgICAgICAgIHJldHVy
biBNUTo6RmVhdHVyZUV2YWx1YXRpb25Db250ZXh0IHsgfTsKIAogICAgIGF1dG8mIHJlbmRlcmVy
ID0gKmNvbnRhaW5lci0+cmVuZGVyZXIoKTsKIAotICAgIHJldHVybiBGZWF0dXJlRXZhbHVhdGlv
bkNvbnRleHQgeworICAgIHJldHVybiBNUTo6RmVhdHVyZUV2YWx1YXRpb25Db250ZXh0IHsKICAg
ICAgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSB7IHJlbmRlcmVyLnN0eWxlKCksIG1fZWxl
bWVudC0+ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyU3R5bGUoKSwgbnVsbHB0
ciwgJnJlbmRlcmVyLnZpZXcoKSB9LAogICAgICAgICAmcmVuZGVyZXIKICAgICB9OwpAQCAtMTU2
LDYwICsxNTcsNCBAQCBjb25zdCBFbGVtZW50KiBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6c2Vs
ZWN0Q29udGFpbmVyKE9wdGlvblNldDxDUTo6QXhpcz4gYXhlcwogICAgIHJldHVybiB7IH07CiB9
CiAKLWF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlRmVhdHVyZShjb25zdCBN
UTo6RmVhdHVyZSYgc2l6ZUZlYXR1cmUsIGNvbnN0IEZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dCYg
Y29udGV4dCkgY29uc3QgLT4gTVE6OkV2YWx1YXRpb25SZXN1bHQKLXsKLSAgICBpZiAoIXNpemVG
ZWF0dXJlLnNjaGVtYSkKLSAgICAgICAgcmV0dXJuIE1ROjpFdmFsdWF0aW9uUmVzdWx0OjpVbmtu
b3duOwotCi0gICAgLy8gIklmIHRoZSBxdWVyeSBjb250YWluZXIgZG9lcyBub3QgaGF2ZSBhIHBy
aW5jaXBhbCBib3gsIG9yIHRoZSBwcmluY2lwYWwgYm94IGlzIG5vdCBhIGxheW91dCBjb250YWlu
bWVudCBib3gsCi0gICAgLy8gb3IgdGhlIHF1ZXJ5IGNvbnRhaW5lciBkb2VzIG5vdCBzdXBwb3J0
IGNvbnRhaW5lciBzaXplIHF1ZXJpZXMgb24gdGhlIHJlbGV2YW50IGF4ZXMsIHRoZW4gdGhlIHJl
c3VsdCBvZgotICAgIC8vIGV2YWx1YXRpbmcgdGhlIHNpemUgZmVhdHVyZSBpcyB1bmtub3duLiIK
LSAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4tMy8jc2l6ZS1jb250
YWluZXIKLSAgICBpZiAoIWlzPFJlbmRlckJveD4oY29udGV4dC5yZW5kZXJlcikpCi0gICAgICAg
IHJldHVybiBNUTo6RXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bjsKLQotICAgIGF1dG8mIHJlbmRl
cmVyID0gZG93bmNhc3Q8UmVuZGVyQm94PigqY29udGV4dC5yZW5kZXJlcik7Ci0KLSAgICBhdXRv
IGhhc0VsaWdpYmxlQ29udGFpbm1lbnQgPSBbJl0gewotICAgICAgICBpZiAoIXJlbmRlcmVyLnNo
b3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgc3dpdGNoIChyZW5kZXJlci5zdHlsZSgpLmNvbnRhaW5lclR5cGUoKSkgewotICAg
ICAgICBjYXNlIENvbnRhaW5lclR5cGU6OklubGluZVNpemU6Ci0gICAgICAgICAgICByZXR1cm4g
cmVuZGVyZXIuc2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKTsKLSAgICAgICAgY2Fz
ZSBDb250YWluZXJUeXBlOjpTaXplOgotICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLnNob3Vs
ZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7Ci0gICAgICAgIGNhc2UgQ29udGFpbmVyVHlwZTo6Tm9y
bWFsOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9OwotCi0gICAgaWYgKCFoYXNFbGlnaWJsZUNv
bnRhaW5tZW50KCkpCi0gICAgICAgIHJldHVybiBNUTo6RXZhbHVhdGlvblJlc3VsdDo6VW5rbm93
bjsKLQotICAgIGlmIChzaXplRmVhdHVyZS5zY2hlbWEgPT0gJkNROjpGZWF0dXJlU2NoZW1hczo6
d2lkdGgoKSkKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRlTGVuZ3RoRmVhdHVyZShzaXplRmVhdHVy
ZSwgcmVuZGVyZXIuY29udGVudFdpZHRoKCksIGNvbnRleHQuY29udmVyc2lvbkRhdGEpOwotCi0g
ICAgaWYgKHNpemVGZWF0dXJlLnNjaGVtYSA9PSAmQ1E6OkZlYXR1cmVTY2hlbWFzOjpoZWlnaHQo
KSkKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRlTGVuZ3RoRmVhdHVyZShzaXplRmVhdHVyZSwgcmVu
ZGVyZXIuY29udGVudEhlaWdodCgpLCBjb250ZXh0LmNvbnZlcnNpb25EYXRhKTsKLQotICAgIGlm
IChzaXplRmVhdHVyZS5zY2hlbWEgPT0gJkNROjpGZWF0dXJlU2NoZW1hczo6aW5saW5lU2l6ZSgp
KQotICAgICAgICByZXR1cm4gZXZhbHVhdGVMZW5ndGhGZWF0dXJlKHNpemVGZWF0dXJlLCByZW5k
ZXJlci5jb250ZW50TG9naWNhbFdpZHRoKCksIGNvbnRleHQuY29udmVyc2lvbkRhdGEpOwotCi0g
ICAgaWYgKHNpemVGZWF0dXJlLnNjaGVtYSA9PSAmQ1E6OkZlYXR1cmVTY2hlbWFzOjpibG9ja1Np
emUoKSkKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRlTGVuZ3RoRmVhdHVyZShzaXplRmVhdHVyZSwg
cmVuZGVyZXIuY29udGVudExvZ2ljYWxIZWlnaHQoKSwgY29udGV4dC5jb252ZXJzaW9uRGF0YSk7
Ci0KLSAgICBpZiAoc2l6ZUZlYXR1cmUuc2NoZW1hID09ICZDUTo6RmVhdHVyZVNjaGVtYXM6OmFz
cGVjdFJhdGlvKCkpIHsKLSAgICAgICAgYXV0byBib3hSYXRpbyA9IHJlbmRlcmVyLmNvbnRlbnRX
aWR0aCgpLnRvRG91YmxlKCkgLyByZW5kZXJlci5jb250ZW50SGVpZ2h0KCkudG9Eb3VibGUoKTsK
LSAgICAgICAgcmV0dXJuIGV2YWx1YXRlUmF0aW9GZWF0dXJlKHNpemVGZWF0dXJlLCBib3hSYXRp
byk7Ci0gICAgfQotCi0gICAgaWYgKHNpemVGZWF0dXJlLnNjaGVtYSA9PSAmQ1E6OkZlYXR1cmVT
Y2hlbWFzOjpvcmllbnRhdGlvbigpKSB7Ci0gICAgICAgIGJvb2wgaXNQb3J0cmFpdCA9IHJlbmRl
cmVyLmNvbnRlbnRIZWlnaHQoKSA+PSByZW5kZXJlci5jb250ZW50V2lkdGgoKTsKLSAgICAgICAg
cmV0dXJuIGV2YWx1YXRlRGlzY3JldGVGZWF0dXJlKHNpemVGZWF0dXJlLCBpc1BvcnRyYWl0ID8g
Q1NTVmFsdWVQb3J0cmFpdCA6IENTU1ZhbHVlTGFuZHNjYXBlKTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gTVE6OkV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oCmluZGV4IDE3OGFmODUxYTE3Mi4u
Y2UxMzk0Yjg1ODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJR
dWVyeUV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5
RXZhbHVhdG9yLmgKQEAgLTQ1LDEwICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dCBFbGVtZW50KiBzZWxlY3RDb250YWluZXIoT3B0aW9uU2V0PENROjpBeGlzPiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBFbGVtZW50JiwgU2VsZWN0aW9uTW9kZSA9IFNlbGVjdGlvbk1vZGU6
OkVsZW1lbnQsIFNjb3BlT3JkaW5hbCA9IFNjb3BlT3JkaW5hbDo6RWxlbWVudCwgY29uc3QgQ2Fj
aGVkUXVlcnlDb250YWluZXJzKiA9IG51bGxwdHIpOwogCi0gICAgTVE6OkV2YWx1YXRpb25SZXN1
bHQgZXZhbHVhdGVGZWF0dXJlKGNvbnN0IE1ROjpGZWF0dXJlJiwgY29uc3QgRmVhdHVyZUV2YWx1
YXRpb25Db250ZXh0JikgY29uc3Q7Ci0KIHByaXZhdGU6Ci0gICAgc3RkOjpvcHRpb25hbDxGZWF0
dXJlRXZhbHVhdGlvbkNvbnRleHQ+IGZlYXR1cmVFdmFsdWF0aW9uQ29udGV4dEZvclF1ZXJ5KGNv
bnN0IENROjpDb250YWluZXJRdWVyeSYpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8TVE6OkZl
YXR1cmVFdmFsdWF0aW9uQ29udGV4dD4gZmVhdHVyZUV2YWx1YXRpb25Db250ZXh0Rm9yUXVlcnko
Y29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JikgY29uc3Q7CiAKICAgICBjb25zdCBSZWY8Y29uc3Qg
RWxlbWVudD4gbV9lbGVtZW50OwogICAgIGNvbnN0IFNlbGVjdGlvbk1vZGUgbV9zZWxlY3Rpb25N
b2RlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>