<?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>233175</bug_id>
          
          <creation_ts>2021-11-16 00:24:03 -0800</creation_ts>
          <short_desc>RemoteGraphicsContextGLProxyBase should not have platform-specific implementations</short_desc>
          <delta_ts>2021-11-18 12:44:03 -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>WebGL</component>
          <version>Other</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>233123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815377</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 00:24:03 -0800</bug_when>
    <thetext>RemoteGraphicsContextGLProxyBase should not have platform-specific implementations
It is a simple class mostly existing for no good reason
The concrete class RemoteGraphicsContextGLProxy has Cocoa and WC implementations. The platform-specific code should move there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815385</commentid>
    <comment_count>1</comment_count>
      <attachid>444353</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 01:02:17 -0800</bug_when>
    <thetext>Created attachment 444353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815391</commentid>
    <comment_count>2</comment_count>
      <attachid>444356</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 01:25:11 -0800</bug_when>
    <thetext>Created attachment 444356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815403</commentid>
    <comment_count>3</comment_count>
      <attachid>444359</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 01:58:21 -0800</bug_when>
    <thetext>Created attachment 444359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815430</commentid>
    <comment_count>4</comment_count>
      <attachid>444369</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 03:41:26 -0800</bug_when>
    <thetext>Created attachment 444369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815446</commentid>
    <comment_count>5</comment_count>
      <attachid>444369</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-16 06:27:32 -0800</bug_when>
    <thetext>Comment on attachment 444369
Patch

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

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:1
&gt; +Â´# Copyright (C) 2020 Apple Inc. All rights reserved.

Some junk here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815835</commentid>
    <comment_count>6</comment_count>
      <attachid>444484</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-16 23:38:11 -0800</bug_when>
    <thetext>Created attachment 444484
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816351</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-18 01:49:52 -0800</bug_when>
    <thetext>Committed r285990 (244387@main): &lt;https://commits.webkit.org/244387@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444484.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816352</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-18 01:50:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/85541122&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444353</attachid>
            <date>2021-11-16 01:02:17 -0800</date>
            <delta_ts>2021-11-16 02:04:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233175-20211116110215.patch</filename>
            <type>text/plain</type>
            <size>32263</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyZjkzMWRjYTIwM2Mw
NTE5NDBiM2JkOWM2MzAyYjRlN2M4MTM2Ni4uYjc3Yjk4OWE3NDlkNTUyN2ZkNzczMWE1OTZjOWNi
MDA0NjEwMWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTExLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2Ugc2hvdWxkIG5vdCBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIGlt
cGxlbWVudGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzMTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGZyb20gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UgdG8KKyAgICAgICAgV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5Q29jb2EgYW5kIFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLgor
ICAgICAgICBUaGUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBpcyB0cml2aWFsIGFuZCBhbnl3YXkg
dXNlZCBieSB0aGUgV2ViS2l0IHNpZGUgY29uY3JldGUgY2xhc3Nlcy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogUGxhdGZvcm1XaW5DYWlyby5jbWFrZToK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtSW5pdGlhbGl6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmFzQ1YpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJlc3Vs
dHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZVdDLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5
ZXIpOiBEZWxldGVkLgorCiAyMDIxLTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYW5vdGhlciA8bW9kZWw+IGJhY2tlbmQgYmFja2VkIGJ5IFNjZW5l
S2l0IHRvIHByb3ZlIG91dCBNb2RlbFBsYXllciBpbmZyYXN0cnVjdHVyZSBhIGJpdCBtb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDcwMzg0MWNmMjM3ZmZhM2RjN2JkYjlmMzFjYjQ4NWM2ODUzZmE4MDQuLmQ1YzRl
NWM4OTg3OTM3OTE2OGRkMWY2ZDA2MmNiYWQzNzk5YTVkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBzaG91bGQgbm90IGhh
dmUgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUg
ZnJvbSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB0bworICAgICAgICBXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYSBhbmQgV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5V0MuCisgICAgICAgIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2Rl
IGlzIHRyaXZpYWwgYW5kIGFueXdheSB1c2VkIGJ5IHRoZSBXZWJLaXQgc2lkZSBjb25jcmV0ZSBj
bGFzc2VzLgorCisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpj
cmVhdGUpOgorCiAyMDIxLTExLTE1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NTgxMi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCmluZGV4IDVkZGFkOWMyNThlMTBjNzkxODVmZWQ0OGE0
MmY3OGY3MWVjMDQxYzUuLjIxOTYyNDQwNDAwZmQ4Y2Q4OTdmMzhlZGY5NWE4ZWU0NjI5MWFhMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQpAQCAtMjUsOCArMjUsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L0RyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAogCi0gICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKLQogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IGIyODc3MTBjZGYwZGE3MDg0NjE1ZjJmMjhhMTQ3MjIyMjFhOTY0
YTEuLjFhNDY2ODZmNzhjZGNiMjM4YmFkNWYyYWMzMmE3MmM1NDE3NDYzZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dApAQCAtMzgyLDcgKzM4Miw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZVBvb2xDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSW50UmVjdENv
Y29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Q29jb2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dC5tbQotcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVU
ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGJkMWI3YTkzMmIzNTA5NzdiZjVmOTQwNWE5NjVkMDhlYTg1NjlhMmEuLjNj
ZjQ4YWQ1MmUxNDQ1YTQ1Y2M4MzEzMjJlZjgxMjg3NTMwMWQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDI2LDcgKzEx
MDI2LDYgQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1ZBTkdMRS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBFMDBDNDBFQUMg
LyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I2NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3Bl
ZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjgyMjUsNyArMjgyMjQsNiBAQAogCQkJCTFEMDA4QUE1MjYyMTA4QzAw
MEVFM0FERSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5tbSAqLywKIAkJCQkzMTY0N0ZB
ODI1MTYxNkJEMDAxMEY4RkIgLyogT3BlbkdMU29mdExpbmtDb2NvYS5oICovLAogCQkJCTMxNjQ3
RkE5MjUxNjE2QkQwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlua0NvY29hLm1tICovLAotCQkJCTdC
NjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZUNvY29hLm1tICovLAogCQkJCUNERUIzRDcyMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VCdWZm
ZXJQYXJzZXIuY3BwICovLAogCQkJCUNERUIzRDczMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VC
dWZmZXJQYXJzZXIuaCAqLywKIAkJCQlDRDhGNjY3MDI0QzBGMjA4MDAwQzQyMUMgLyogU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAKaW5kZXggOGM4Y2MyODhmMjhjYmMyNWJlNTg0NzNlMWU3OWYwNTI1ZTM0M2Y4Yy4u
Yjk0NzUzOTc3N2JmZmEwYjNhZmUyODExNTcyYjhjMWE2Y2NjNzBkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2UoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBh
dHRycykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQogewotICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOwogfQogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6flJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlKCkgPSBkZWZhdWx0OwpAQCAtMTM0LDE2ICsxMzMs
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjppbml0aWFsaXplKGNv
bnN0IFN0cmluZyYgYXZhaWxhYmxlRXh0ZW5zaQogICAgICAgICBtX3JlcXVlc3RhYmxlRXh0ZW5z
aW9ucy5hZGQoZXh0ZW5zaW9uKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShH
UkFQSElDU19MQVlFUl9XQykKLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCi17Ci19Ci0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgogI2lmICFVU0UoQU5HTEUpCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpyZWFkblBpeGVsc0VYVChHQ0dMaW50LCBHQ0dMaW50LCBH
Q0dMc2l6ZWksIEdDR0xzaXplaSwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMc2l6ZWksIEdDR0x2
b2lkKikKIHsKQEAgLTE1OSwxMCArMTQ4LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZTo6Z2V0blVuaWZvcm1pdkVYVChHQ0dMdWludCwgR0NHTGludCwgR0NHTHMKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgIVBMQVRGT1JNKENPQ09BKQotUmVm
UHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKQotewotICAgIHJldHVybiBudWxscHRyOwot
fQogI2VuZGlmCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5o
CmluZGV4IGYxZWVkNWY0YzQ2YzE4NTQzM2IwOWI3ZDY0MDQwMDc3ODkwOTE5ODkuLmY5YTg2MTg0
MmExMGRiYmI4MGJjODlkMjYwNmE4OGUwYjdmMmU3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaApAQCAtMzMsMjEgKzMzLDggQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFBMQVRGT1JNKENP
Q09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi1PQkpDX0NMQVNTIFdlYkdMTGF5ZXI7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1jbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbjsKLWNsYXNzIElPU3VyZmFjZTsKLSNlbmRpZgotCiAvLyBBIGJhc2UgY2xh
c3MgZm9yIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIHByb3h5IHNpZGUgaW1wbGVtZW50YXRpb24K
IC8vIFRoaXMgaW1wbGVtZW50cyB0aGUgcGFydHMgdGhhdCBhcmUgdXNpbmcgV2ViQ29yZSBpbnRl
cm5hbCBmdW5jdGlvbmFsaXR5OgogLy8gLSBEcmF3aW5nIGJ1ZmZlciB0cmFja2luZyBtYW5hZ2Vt
ZW50LgpAQCAtNTksNyArNDYsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBPdGhlciBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0R0w6
OmlzRW5hYmxlZDsKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmlu
YWw7CiAgICAgRXh0ZW5zaW9uc0dMJiBnZXRFeHRlbnNpb25zKCkgZmluYWw7CiAgICAgdm9pZCBz
ZXRDb250ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICBib29sIGlzR0xFUzJDb21wbGlh
bnQoKSBjb25zdCBmaW5hbDsKQEAgLTY5LDkgKzU1LDYgQEAgcHVibGljOgogICAgIEdDR0xiaXRm
aWVsZCBnZXRCdWZmZXJzVG9BdXRvQ2xlYXIoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1hcmtM
YXllckNvbXBvc2l0ZWQoKSBmaW5hbDsKIAotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKLSAgICBHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkgZmluYWw7Ci0jZW5kaWYK
ICAgICAvLyBPdGhlciBFeHRlbnNpb25HTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgRXh0ZW5zaW9u
c0dMOjppc0VuYWJsZWQ7CiAgICAgYm9vbCBzdXBwb3J0cyhjb25zdCBTdHJpbmcmKSBmaW5hbDsK
QEAgLTgzLDkgKzY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0blVuaWZvcm1mdkVYVChHQ0dM
dWludCwgR0NHTGludCwgR0NHTHNpemVpLCBHQ0dMZmxvYXQqKSBmaW5hbDsKICAgICB2b2lkIGdl
dG5Vbmlmb3JtaXZFWFQoR0NHTHVpbnQsIEdDR0xpbnQsIEdDR0xzaXplaSwgR0NHTGludCopIGZp
bmFsOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmluYWw7Ci0jZW5k
aWYKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGF2YWls
YWJsZUV4dGVuc2lvbnMsIGNvbnN0IFN0cmluZyYgcmVxdWVzdGFibGVFeHRlbnNpb25zKTsKQEAg
LTkzLDE2ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRXh0ZW5z
aW9uRW5hYmxlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU1h
cmtDb250ZXh0Q2hhbmdlZCgpID0gMDsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFp
blB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwotI2VsaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAg
IHZvaWQgc2V0UGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyQ29udGFpbmVyJiYpOwotICAgIFBs
YXRmb3JtTGF5ZXJDb250YWluZXIgbV9wbGF0Zm9ybUxheWVyOwotI2VuZGlmCiBwcml2YXRlOgot
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7Ci0KICAgICAvLyBHdWFyZGVkIGJ5IHdhaXRV
bnRpbEluaXRpYWxpemVkKCkuCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fYXZhaWxhYmxlRXh0ZW5z
aW9uczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZXF1ZXN0YWJsZUV4dGVuc2lvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDI3N2U4Zjg4ODdl
MjJhYTAyODAzYTUwMzYwZWIzZGMzMmZjNGU3ZWIuLmVhYTBhMWQ0MWY2ZTI2MDllNDAwMmZmNDI2
Zjc1NzA4ODAzYzlhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2Ft
cGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgQXRvbVN0cmluZyB0
cmFja0lEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUs
IHRyYWNrSUQpKTsgfQogICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVhdGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uID0gVmlkZW9S
b3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUsIHJvdGF0aW9uLCBtaXJyb3JlZCkpOyB9CiAg
ICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFBp
eGVsQnVmZmVyJiYpOwotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVh
dGVJbWFnZVNhbXBsZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgVmlkZW9Sb3RhdGlv
biwgYm9vbCBtaXJyb3JlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxNZWRp
YVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiYmLCBWaWRlb1JvdGF0aW9uLCBib29sIG1pcnJvcmVkKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIHNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJik7CiAg
ICAgc3RhdGljIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY2xvbmVTYW1wbGVCdWZmZXJB
bmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcyNThlODY0NWYxNDA0NjMyYmIwMjg0ZWQ4OWRmNzkw
ODNkZTEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZUNvY29hLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgiCi0KLSNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZPUk0oQ09DT0Ep
Ci0KLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCi0jaW1w
b3J0ICJXZWJHTExheWVyLmgiCi0jaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCi0jaW1w
b3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCi17Ci0gICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgbV93ZWJHTExheWVyID0gYWRvcHROUyhbW1dl
YkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZpY2VQaXhl
bFJhdGlvIGNvbnRlbnRzT3BhcXVlOiFhdHRycy5hbHBoYV0pOwotI2lmbmRlZiBOREVCVUcKLSAg
ICBbbV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOwotI2VuZGlmCi0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotfQotCi0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV93ZWJHTExheWVyLmdldCgpOwotfQotCi0jaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQotR3JhcGhpY3NDb250ZXh0R0xDViogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2U6OmFzQ1YoKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotUmVmUHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KQotewotICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rpc3BsYXlCdWZm
ZXItPnN1cmZhY2UoKSk7Ci0gICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUo
V1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBNZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246
OlVwc2lkZURvd24sIHRydWUpOwotfQotI2VuZGlmCi0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IDNj
MjJmNWQ2NGQ4OGM5N2ZiZTQ4YjJmYWY0ZDZjZDQ1ZDU3YmI0NWIuLjc2ZGEwZmUwZjQ0YTNhODQ0
MGU2NjM5ZWE5ZDdlMGE4OTYwNjg4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC8vIEEgbGF5ZXIgY2xhc3Mgc2hvd2lu
ZyBvbmUgSU9TdXJmYWNlLgotQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgorV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgogCiAtIChpZClpbml0V2l0
aERldmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6
KGJvb2wpY29udGVudHNPcGFxdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlV0MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2VXQy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMTk3MmMx
NDFjYTkwNTRkY2M5NGRiZTEyODMyYzQ2MGQ2YjdkMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIFNvbnkgSW50ZXJhY3Rp
dmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oIgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
V0VCR0wpICYmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLQotI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKLXsKLX0KLQot
UGxhdGZvcm1MYXllciogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7Ci19Ci0K
LXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5ZXIo
UGxhdGZvcm1MYXllckNvbnRhaW5lciYmIHBsYXRmb3JtTGF5ZXIpCi17Ci0gICAgbV9wbGF0Zm9y
bUxheWVyID0gV1RGTW92ZShwbGF0Zm9ybUxheWVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21h
a2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDliZWEwMjJlMzg5MWE1
NjM2OGYzZjFjZDAyZDc5ZTI2NTE3MGQxOTQuLjM1MGZkZDQ5N2VhYWFiNzExMDU5YzU0YjUwNzUw
MTViMTkzNzkzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtODIsNiArODIsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIFVJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bv
b2xXaW4uY3BwCiAgICAgVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAogCisgICAgV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcAogICAg
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAogCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvd2luL1ZpZGVvTGF5ZXJSZW1vdGVXaW4uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCAxMTQyMTY2
ZDJlMTU1ZmFiNWVlODFiZDVjYTI5YTZiZjA3ZmZjNzBhLi45Y2FkZmMwMmY0YWI2YzhiYzE2MzU4
OTIyNTczZjk5N2ZmYzQ4ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAKQEAgLTM1LDI0ICszNSwxMCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgotI2VuZGlmCi0KLSNpZiBVU0Uo
R1JBUEhJQ1NfTEFZRVJfV0MpCi0jaW5jbHVkZSAiV0NQbGF0Zm9ybUxheWVyR0NHTC5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmUHRyPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk+IFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OmNyZWF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJp
YnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCksIGF0dHJpYnV0
ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKLX0KLQogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZGVm
YXVsdFN0cmVhbVNpemUgPSAxIDw8IDIxOwogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRy
aWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQpAQCAt
NjYsOSArNTIsNiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJgogICAgIC8vIFRPRE86IFdlIG11
c3Qgd2FpdCB1bnRpbCBpbml0aWFsaXplZCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IHdlIGNhbm5v
dCByZWNlaXZlIElQQyBtZXNzYWdlcwogICAgIC8vIGR1cmluZyB3YWl0IHdoaWxlIGluIHN5bmNo
cm9ub3VzIHN0cmVhbSBzZW5kLiBTaG91bGQgYmUgZml4ZWQgYXMgcGFydCBvZiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjExLgogICAgIHdhaXRVbnRpbEluaXRp
YWxpemVkKCk7Ci0jaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAgIHNldFBsYXRmb3JtTGF5
ZXIobWFrZVVuaXF1ZTxXQ1BsYXRmb3JtTGF5ZXJHQ0dMPihtX2dyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllcikpOwotI2VuZGlmCiB9CiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6On5S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkKQEAgLTg3LDIwICs3MCw2IEBAIHZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQp
CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQot
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgpCi17
Ci0gICAgaWYgKGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gc2Vu
ZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJl
cGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVw
YXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7Ci0gICAgaWYgKCFzZW5kUmVzdWx0KSB7Ci0gICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1hcmtMYXll
ckNvbXBvc2l0ZWQoKTsKLX0KLSNlbmRpZgotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OmVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCiB7
CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKaW5kZXggZGQyZTgwYjY1ZDIzNGQ2OThlOTBjODNhMGM1ZGMzOTk1ODdkZDdhZC4u
MGJkNTYyZDgyYzI1NTk1N2Y3MjYxMmM0NGNjYzIzYzk0ZWM3YWIwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTQ3LDIwICs0NywxOSBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIC8vIGNvbnZlcnRzIHRoZSBpbnRlcmZhY2UgdG8gYSBzZXF1ZW5jZSBvZiBJUEMg
bWVzc2FnZXMgYW5kIHNlbmRzIHRoZSBtZXNzYWdlcyB0bwogLy8gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wgaW4gR1BVIHByb2Nlc3MuCiAvLyBUaGUgaW1wbGVtZW50YXRpb24gaXMgbGFyZ2VseSBn
ZW5lcmF0ZWQgYnkgcnVubmluZyBUb29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wuCi1j
bGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IGZpbmFsCitjbGFzcyBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CiAgICAgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgLCBwcml2YXRlIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICAgICAsIHB1YmxpYyBX
ZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOwotICAgIH5SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkgZmluYWw7Cisg
ICAgflJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoKTsKIAogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIG92ZXJyaWRlcy4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgLy8gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpIGZpbmFsOwotICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsK
ICAgICB1c2luZyBXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6aXNF
bmFibGVkOwogICAgIHZvaWQgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmIGV4
dGVuc2lvbikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5nZWQoKSBmaW5h
bDsKQEAgLTMxOSw2ICszMTgsOCBAQCBwdWJsaWM6CiAgICAgLy8gRW5kIG9mIGxpc3QgdXNlZCBi
eSBnZW5lcmF0ZS1ncHVwLXdlYmdsIHNjcmlwdC4KIAogcHJvdGVjdGVkOgorICAgIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cik7CisKICAgICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBvdmVycmlkZXMu
CiAgICAgdm9pZCB3YWl0VW50aWxJbml0aWFsaXplZCgpIGZpbmFsOwogCkBAIC0zNTAsNyArMzUx
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2Nvbm5lY3RHcHVQcm9jZXNzSWZOZWVkZWQoKTsK
ICAgICB2b2lkIGFiYW5kb25HcHVQcm9jZXNzKCk7CiAKLSAgICBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIEdQ
VVByb2Nlc3NDb25uZWN0aW9uKiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIGJvb2wgbV9k
aWRJbml0aWFsaXplIHsgZmFsc2UgfTsKICAgICBHQ0dMZW51bSBtX2Vycm9yV2hlbkNvbnRleHRJ
c0xvc3QgPSBOT19FUlJPUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5Q29jb2EubW0KaW5kZXggNTQ5M2ZmZTBjNzQzZDlkYzE3NGE1NmJmYzZm
MTQ5OGNkOTA5MWU3NS4uZTNkNDE2ZTQ3MWI1NGU2OTQ0NWQxZDBjYmEwZTk2OGIxY2U3NGI0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
Q29jb2EubW0KQEAgLTI4LDE0ICsyOCw2NCBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoV0VCR0wpCiAjaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2Vz
LmgiCisjaW1wb3J0IDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dy
YXBoaWNzQ29udGV4dENHLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lPU3VyZmFjZS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9NZWRpYVNhbXBsZUFWRk9iakMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViR0xM
YXllci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgpCituYW1lc3BhY2UgeworCitjbGFz
cyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EgZmluYWwgOiBwdWJsaWMgUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eSB7CitwdWJsaWM6CisgICAgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgeyByZXR1cm4gbV93ZWJHTExheWVyOyB9CisgICAgV2ViQ29yZTo6SU9TdXJmYWNlKiBkaXNw
bGF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5QnVmZmVyLmdldCgpOyB9CisKKyAg
ICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IG92ZXJyaWRlcy4KKyAgICBQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV93ZWJHTExheWVy
LmdldCgpOyB9CisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOworI2lmIEVOQUJM
RShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTENWKiBhc0NWKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorI2VuZGlmCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTYW1wbGU+IHBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmluYWw7CisjZW5kaWYKK3ByaXZhdGU6
CisgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hKEdQVVByb2Nlc3NDb25uZWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIFJldGFpblB0cjxXZWJHTExheWVyPiBtX3dlYkdM
TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gbV9kaXNwbGF5
QnVmZmVyOworICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Owor
fTsKKworUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hOjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5Q29jb2EoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0
aW9uLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0
ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCisgICAgOiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KGdwdVByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1
dGVzLCByZW5kZXJpbmdCYWNrZW5kKQoreworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmli
dXRlcygpOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIG1fd2ViR0xMYXll
ciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBpeGVsUmF0aW86
YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxwaGFdKTsKKyNp
Zm5kZWYgTkRFQlVHCisgICAgW21fd2ViR0xMYXllciBzZXROYW1lOkAiV2ViR0wgTGF5ZXIiXTsK
KyNlbmRpZgorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCitSZWZQdHI8V2ViQ29yZTo6TWVkaWFTYW1wbGU+IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlDb2NvYTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KQoreworICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rp
c3BsYXlCdWZmZXItPnN1cmZhY2UoKSk7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6
Y3JlYXRlSW1hZ2VTYW1wbGUoV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd24sIHRydWUpOworfQorI2VuZGlm
CisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hOjpwcmVwYXJlRm9yRGlz
cGxheSgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
NjEsNCArMTExLDE0IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cHJlcGFy
ZUZvckRpc3BsYXkoKQogCiB9CiAKK1JlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQoreworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVm
KG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgYXR0cmlidXRlcywgcmVuZGVyaW5n
QmFja2VuZCkpOworICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKworfQorCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eVdDLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
Y2YyOWMxNjQ0OWU3OTdkZmYzMWUxNWQ4MjY3OWYyNDY0MWY2Yjc0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5V0MuY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCisKKyNp
bmNsdWRlICJXQ1BsYXRmb3JtTGF5ZXJHQ0dMLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllci5oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2Ug
eworCitjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MgZmluYWwgOiBwdWJsaWMg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UgeworcHVibGljOgorICAgIC8vIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlIG92ZXJyaWRlcy4KKyAgICB2b2lkIHByZXBhcmVG
b3JEaXNwbGF5KCkgZmluYWw7CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fcGxhdGZvcm1MYXllci5nZXQoKTsgfQorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiBwYWludENvbXBv
c2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyNl
bmRpZgorcHJpdmF0ZToKKyAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MoR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bUxheWVyQ29udGFpbmVyIG1fcGxhdGZvcm1MYXllcjsKKyAgICBmcmllbmQgY2xhc3MgUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eTsKK307CisKK1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlXQzo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDKEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
JiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5k
KQorICAgIDogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShncHVQcm9jZXNzQ29ubmVjdGlv
biwgYXR0cmlidXRlcywgcmVuZGVyaW5nQmFja2VuZCkKKyAgICAsIG1fcGxhdGZvcm1MYXllciht
YWtlVW5pcXVlPFdDUGxhdGZvcm1MYXllckdDR0w+KG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlm
aWVyKSkKK3sKK30KKwordm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJl
Rm9yRGlzcGxheSgpCit7CisgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7CisgICAgaWYgKCFzZW5kUmVz
dWx0KSB7CisgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIG1hcmtMYXllckNvbXBvc2l0ZWQoKTsKK30KKworfQorCitSZWZQdHI8UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywg
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQyhXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLCBhdHRyaWJ1dGVzLCBy
ZW5kZXJpbmdCYWNrZW5kKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVz
c2FnZXMuaW4KaW5kZXggMjVmMjdmZWE4M2RlN2I1NmZjYWZkOGQxZjhmMzhhMzQ3YWIwNmNiZC4u
YzFhMmQxMDY5OTI3Yzg2NTBlYzZhZGQ0NDVkNmZlMTlkZDNlZTRjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5tZXNzYWdlcy5pbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK8K0IyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Cg==
</data>
<flag name="commit-queue"
          id="469353"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444356</attachid>
            <date>2021-11-16 01:25:11 -0800</date>
            <delta_ts>2021-11-16 02:41:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233175-20211116112509.patch</filename>
            <type>text/plain</type>
            <size>32394</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyZjkzMWRjYTIwM2Mw
NTE5NDBiM2JkOWM2MzAyYjRlN2M4MTM2Ni4uYjc3Yjk4OWE3NDlkNTUyN2ZkNzczMWE1OTZjOWNi
MDA0NjEwMWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTExLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2Ugc2hvdWxkIG5vdCBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIGlt
cGxlbWVudGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzMTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGZyb20gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UgdG8KKyAgICAgICAgV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5Q29jb2EgYW5kIFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLgor
ICAgICAgICBUaGUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBpcyB0cml2aWFsIGFuZCBhbnl3YXkg
dXNlZCBieSB0aGUgV2ViS2l0IHNpZGUgY29uY3JldGUgY2xhc3Nlcy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogUGxhdGZvcm1XaW5DYWlyby5jbWFrZToK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtSW5pdGlhbGl6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmFzQ1YpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJlc3Vs
dHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZVdDLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5
ZXIpOiBEZWxldGVkLgorCiAyMDIxLTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYW5vdGhlciA8bW9kZWw+IGJhY2tlbmQgYmFja2VkIGJ5IFNjZW5l
S2l0IHRvIHByb3ZlIG91dCBNb2RlbFBsYXllciBpbmZyYXN0cnVjdHVyZSBhIGJpdCBtb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDcwMzg0MWNmMjM3ZmZhM2RjN2JkYjlmMzFjYjQ4NWM2ODUzZmE4MDQuLmQ1YzRl
NWM4OTg3OTM3OTE2OGRkMWY2ZDA2MmNiYWQzNzk5YTVkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBzaG91bGQgbm90IGhh
dmUgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUg
ZnJvbSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB0bworICAgICAgICBXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYSBhbmQgV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5V0MuCisgICAgICAgIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2Rl
IGlzIHRyaXZpYWwgYW5kIGFueXdheSB1c2VkIGJ5IHRoZSBXZWJLaXQgc2lkZSBjb25jcmV0ZSBj
bGFzc2VzLgorCisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpj
cmVhdGUpOgorCiAyMDIxLTExLTE1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NTgxMi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCmluZGV4IDVkZGFkOWMyNThlMTBjNzkxODVmZWQ0OGE0
MmY3OGY3MWVjMDQxYzUuLjIxOTYyNDQwNDAwZmQ4Y2Q4OTdmMzhlZGY5NWE4ZWU0NjI5MWFhMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQpAQCAtMjUsOCArMjUsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L0RyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAogCi0gICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKLQogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IGIyODc3MTBjZGYwZGE3MDg0NjE1ZjJmMjhhMTQ3MjIyMjFhOTY0
YTEuLjFhNDY2ODZmNzhjZGNiMjM4YmFkNWYyYWMzMmE3MmM1NDE3NDYzZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dApAQCAtMzgyLDcgKzM4Miw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZVBvb2xDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSW50UmVjdENv
Y29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Q29jb2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dC5tbQotcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVU
ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGJkMWI3YTkzMmIzNTA5NzdiZjVmOTQwNWE5NjVkMDhlYTg1NjlhMmEuLjNj
ZjQ4YWQ1MmUxNDQ1YTQ1Y2M4MzEzMjJlZjgxMjg3NTMwMWQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDI2LDcgKzEx
MDI2LDYgQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1ZBTkdMRS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBFMDBDNDBFQUMg
LyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I2NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3Bl
ZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjgyMjUsNyArMjgyMjQsNiBAQAogCQkJCTFEMDA4QUE1MjYyMTA4QzAw
MEVFM0FERSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5tbSAqLywKIAkJCQkzMTY0N0ZB
ODI1MTYxNkJEMDAxMEY4RkIgLyogT3BlbkdMU29mdExpbmtDb2NvYS5oICovLAogCQkJCTMxNjQ3
RkE5MjUxNjE2QkQwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlua0NvY29hLm1tICovLAotCQkJCTdC
NjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZUNvY29hLm1tICovLAogCQkJCUNERUIzRDcyMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VCdWZm
ZXJQYXJzZXIuY3BwICovLAogCQkJCUNERUIzRDczMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VC
dWZmZXJQYXJzZXIuaCAqLywKIAkJCQlDRDhGNjY3MDI0QzBGMjA4MDAwQzQyMUMgLyogU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAKaW5kZXggOGM4Y2MyODhmMjhjYmMyNWJlNTg0NzNlMWU3OWYwNTI1ZTM0M2Y4Yy4u
Yjk0NzUzOTc3N2JmZmEwYjNhZmUyODExNTcyYjhjMWE2Y2NjNzBkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2UoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBh
dHRycykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQogewotICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOwogfQogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6flJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlKCkgPSBkZWZhdWx0OwpAQCAtMTM0LDE2ICsxMzMs
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjppbml0aWFsaXplKGNv
bnN0IFN0cmluZyYgYXZhaWxhYmxlRXh0ZW5zaQogICAgICAgICBtX3JlcXVlc3RhYmxlRXh0ZW5z
aW9ucy5hZGQoZXh0ZW5zaW9uKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShH
UkFQSElDU19MQVlFUl9XQykKLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCi17Ci19Ci0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgogI2lmICFVU0UoQU5HTEUpCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpyZWFkblBpeGVsc0VYVChHQ0dMaW50LCBHQ0dMaW50LCBH
Q0dMc2l6ZWksIEdDR0xzaXplaSwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMc2l6ZWksIEdDR0x2
b2lkKikKIHsKQEAgLTE1OSwxMCArMTQ4LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZTo6Z2V0blVuaWZvcm1pdkVYVChHQ0dMdWludCwgR0NHTGludCwgR0NHTHMKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgIVBMQVRGT1JNKENPQ09BKQotUmVm
UHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKQotewotICAgIHJldHVybiBudWxscHRyOwot
fQogI2VuZGlmCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5o
CmluZGV4IGYxZWVkNWY0YzQ2YzE4NTQzM2IwOWI3ZDY0MDQwMDc3ODkwOTE5ODkuLmY5YTg2MTg0
MmExMGRiYmI4MGJjODlkMjYwNmE4OGUwYjdmMmU3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaApAQCAtMzMsMjEgKzMzLDggQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFBMQVRGT1JNKENP
Q09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi1PQkpDX0NMQVNTIFdlYkdMTGF5ZXI7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1jbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbjsKLWNsYXNzIElPU3VyZmFjZTsKLSNlbmRpZgotCiAvLyBBIGJhc2UgY2xh
c3MgZm9yIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIHByb3h5IHNpZGUgaW1wbGVtZW50YXRpb24K
IC8vIFRoaXMgaW1wbGVtZW50cyB0aGUgcGFydHMgdGhhdCBhcmUgdXNpbmcgV2ViQ29yZSBpbnRl
cm5hbCBmdW5jdGlvbmFsaXR5OgogLy8gLSBEcmF3aW5nIGJ1ZmZlciB0cmFja2luZyBtYW5hZ2Vt
ZW50LgpAQCAtNTksNyArNDYsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBPdGhlciBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0R0w6
OmlzRW5hYmxlZDsKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmlu
YWw7CiAgICAgRXh0ZW5zaW9uc0dMJiBnZXRFeHRlbnNpb25zKCkgZmluYWw7CiAgICAgdm9pZCBz
ZXRDb250ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICBib29sIGlzR0xFUzJDb21wbGlh
bnQoKSBjb25zdCBmaW5hbDsKQEAgLTY5LDkgKzU1LDYgQEAgcHVibGljOgogICAgIEdDR0xiaXRm
aWVsZCBnZXRCdWZmZXJzVG9BdXRvQ2xlYXIoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1hcmtM
YXllckNvbXBvc2l0ZWQoKSBmaW5hbDsKIAotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKLSAgICBHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkgZmluYWw7Ci0jZW5kaWYK
ICAgICAvLyBPdGhlciBFeHRlbnNpb25HTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgRXh0ZW5zaW9u
c0dMOjppc0VuYWJsZWQ7CiAgICAgYm9vbCBzdXBwb3J0cyhjb25zdCBTdHJpbmcmKSBmaW5hbDsK
QEAgLTgzLDkgKzY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0blVuaWZvcm1mdkVYVChHQ0dM
dWludCwgR0NHTGludCwgR0NHTHNpemVpLCBHQ0dMZmxvYXQqKSBmaW5hbDsKICAgICB2b2lkIGdl
dG5Vbmlmb3JtaXZFWFQoR0NHTHVpbnQsIEdDR0xpbnQsIEdDR0xzaXplaSwgR0NHTGludCopIGZp
bmFsOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmluYWw7Ci0jZW5k
aWYKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGF2YWls
YWJsZUV4dGVuc2lvbnMsIGNvbnN0IFN0cmluZyYgcmVxdWVzdGFibGVFeHRlbnNpb25zKTsKQEAg
LTkzLDE2ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRXh0ZW5z
aW9uRW5hYmxlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU1h
cmtDb250ZXh0Q2hhbmdlZCgpID0gMDsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFp
blB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwotI2VsaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAg
IHZvaWQgc2V0UGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyQ29udGFpbmVyJiYpOwotICAgIFBs
YXRmb3JtTGF5ZXJDb250YWluZXIgbV9wbGF0Zm9ybUxheWVyOwotI2VuZGlmCiBwcml2YXRlOgot
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7Ci0KICAgICAvLyBHdWFyZGVkIGJ5IHdhaXRV
bnRpbEluaXRpYWxpemVkKCkuCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fYXZhaWxhYmxlRXh0ZW5z
aW9uczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZXF1ZXN0YWJsZUV4dGVuc2lvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDI3N2U4Zjg4ODdl
MjJhYTAyODAzYTUwMzYwZWIzZGMzMmZjNGU3ZWIuLmVhYTBhMWQ0MWY2ZTI2MDllNDAwMmZmNDI2
Zjc1NzA4ODAzYzlhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2Ft
cGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgQXRvbVN0cmluZyB0
cmFja0lEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUs
IHRyYWNrSUQpKTsgfQogICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVhdGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uID0gVmlkZW9S
b3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUsIHJvdGF0aW9uLCBtaXJyb3JlZCkpOyB9CiAg
ICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFBp
eGVsQnVmZmVyJiYpOwotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVh
dGVJbWFnZVNhbXBsZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgVmlkZW9Sb3RhdGlv
biwgYm9vbCBtaXJyb3JlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxNZWRp
YVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiYmLCBWaWRlb1JvdGF0aW9uLCBib29sIG1pcnJvcmVkKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIHNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJik7CiAg
ICAgc3RhdGljIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY2xvbmVTYW1wbGVCdWZmZXJB
bmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcyNThlODY0NWYxNDA0NjMyYmIwMjg0ZWQ4OWRmNzkw
ODNkZTEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZUNvY29hLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgiCi0KLSNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZPUk0oQ09DT0Ep
Ci0KLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCi0jaW1w
b3J0ICJXZWJHTExheWVyLmgiCi0jaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCi0jaW1w
b3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCi17Ci0gICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgbV93ZWJHTExheWVyID0gYWRvcHROUyhbW1dl
YkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZpY2VQaXhl
bFJhdGlvIGNvbnRlbnRzT3BhcXVlOiFhdHRycy5hbHBoYV0pOwotI2lmbmRlZiBOREVCVUcKLSAg
ICBbbV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOwotI2VuZGlmCi0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotfQotCi0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV93ZWJHTExheWVyLmdldCgpOwotfQotCi0jaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQotR3JhcGhpY3NDb250ZXh0R0xDViogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2U6OmFzQ1YoKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotUmVmUHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KQotewotICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rpc3BsYXlCdWZm
ZXItPnN1cmZhY2UoKSk7Ci0gICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUo
V1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBNZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246
OlVwc2lkZURvd24sIHRydWUpOwotfQotI2VuZGlmCi0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IDNj
MjJmNWQ2NGQ4OGM5N2ZiZTQ4YjJmYWY0ZDZjZDQ1ZDU3YmI0NWIuLjc2ZGEwZmUwZjQ0YTNhODQ0
MGU2NjM5ZWE5ZDdlMGE4OTYwNjg4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC8vIEEgbGF5ZXIgY2xhc3Mgc2hvd2lu
ZyBvbmUgSU9TdXJmYWNlLgotQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgorV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgogCiAtIChpZClpbml0V2l0
aERldmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6
KGJvb2wpY29udGVudHNPcGFxdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlV0MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2VXQy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMTk3MmMx
NDFjYTkwNTRkY2M5NGRiZTEyODMyYzQ2MGQ2YjdkMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIFNvbnkgSW50ZXJhY3Rp
dmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oIgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
V0VCR0wpICYmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLQotI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKLXsKLX0KLQot
UGxhdGZvcm1MYXllciogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7Ci19Ci0K
LXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5ZXIo
UGxhdGZvcm1MYXllckNvbnRhaW5lciYmIHBsYXRmb3JtTGF5ZXIpCi17Ci0gICAgbV9wbGF0Zm9y
bUxheWVyID0gV1RGTW92ZShwbGF0Zm9ybUxheWVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21h
a2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDliZWEwMjJlMzg5MWE1
NjM2OGYzZjFjZDAyZDc5ZTI2NTE3MGQxOTQuLjM1MGZkZDQ5N2VhYWFiNzExMDU5YzU0YjUwNzUw
MTViMTkzNzkzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtODIsNiArODIsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIFVJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bv
b2xXaW4uY3BwCiAgICAgVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAogCisgICAgV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcAogICAg
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAogCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvd2luL1ZpZGVvTGF5ZXJSZW1vdGVXaW4uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCAxMTQyMTY2
ZDJlMTU1ZmFiNWVlODFiZDVjYTI5YTZiZjA3ZmZjNzBhLi45Y2FkZmMwMmY0YWI2YzhiYzE2MzU4
OTIyNTczZjk5N2ZmYzQ4ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAKQEAgLTM1LDI0ICszNSwxMCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgotI2VuZGlmCi0KLSNpZiBVU0Uo
R1JBUEhJQ1NfTEFZRVJfV0MpCi0jaW5jbHVkZSAiV0NQbGF0Zm9ybUxheWVyR0NHTC5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmUHRyPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk+IFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OmNyZWF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJp
YnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCksIGF0dHJpYnV0
ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKLX0KLQogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZGVm
YXVsdFN0cmVhbVNpemUgPSAxIDw8IDIxOwogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRy
aWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQpAQCAt
NjYsOSArNTIsNiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJgogICAgIC8vIFRPRE86IFdlIG11
c3Qgd2FpdCB1bnRpbCBpbml0aWFsaXplZCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IHdlIGNhbm5v
dCByZWNlaXZlIElQQyBtZXNzYWdlcwogICAgIC8vIGR1cmluZyB3YWl0IHdoaWxlIGluIHN5bmNo
cm9ub3VzIHN0cmVhbSBzZW5kLiBTaG91bGQgYmUgZml4ZWQgYXMgcGFydCBvZiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjExLgogICAgIHdhaXRVbnRpbEluaXRp
YWxpemVkKCk7Ci0jaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAgIHNldFBsYXRmb3JtTGF5
ZXIobWFrZVVuaXF1ZTxXQ1BsYXRmb3JtTGF5ZXJHQ0dMPihtX2dyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllcikpOwotI2VuZGlmCiB9CiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6On5S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkKQEAgLTg3LDIwICs3MCw2IEBAIHZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQp
CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQot
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgpCi17
Ci0gICAgaWYgKGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gc2Vu
ZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJl
cGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVw
YXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7Ci0gICAgaWYgKCFzZW5kUmVzdWx0KSB7Ci0gICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1hcmtMYXll
ckNvbXBvc2l0ZWQoKTsKLX0KLSNlbmRpZgotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OmVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCiB7
CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKaW5kZXggZGQyZTgwYjY1ZDIzNGQ2OThlOTBjODNhMGM1ZGMzOTk1ODdkZDdhZC4u
MGJkNTYyZDgyYzI1NTk1N2Y3MjYxMmM0NGNjYzIzYzk0ZWM3YWIwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTQ3LDIwICs0NywxOSBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIC8vIGNvbnZlcnRzIHRoZSBpbnRlcmZhY2UgdG8gYSBzZXF1ZW5jZSBvZiBJUEMg
bWVzc2FnZXMgYW5kIHNlbmRzIHRoZSBtZXNzYWdlcyB0bwogLy8gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wgaW4gR1BVIHByb2Nlc3MuCiAvLyBUaGUgaW1wbGVtZW50YXRpb24gaXMgbGFyZ2VseSBn
ZW5lcmF0ZWQgYnkgcnVubmluZyBUb29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wuCi1j
bGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IGZpbmFsCitjbGFzcyBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CiAgICAgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgLCBwcml2YXRlIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICAgICAsIHB1YmxpYyBX
ZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOwotICAgIH5SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkgZmluYWw7Cisg
ICAgflJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoKTsKIAogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIG92ZXJyaWRlcy4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgLy8gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpIGZpbmFsOwotICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsK
ICAgICB1c2luZyBXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6aXNF
bmFibGVkOwogICAgIHZvaWQgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmIGV4
dGVuc2lvbikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5nZWQoKSBmaW5h
bDsKQEAgLTMxOSw2ICszMTgsOCBAQCBwdWJsaWM6CiAgICAgLy8gRW5kIG9mIGxpc3QgdXNlZCBi
eSBnZW5lcmF0ZS1ncHVwLXdlYmdsIHNjcmlwdC4KIAogcHJvdGVjdGVkOgorICAgIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cik7CisKICAgICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBvdmVycmlkZXMu
CiAgICAgdm9pZCB3YWl0VW50aWxJbml0aWFsaXplZCgpIGZpbmFsOwogCkBAIC0zNTAsNyArMzUx
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2Nvbm5lY3RHcHVQcm9jZXNzSWZOZWVkZWQoKTsK
ICAgICB2b2lkIGFiYW5kb25HcHVQcm9jZXNzKCk7CiAKLSAgICBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIEdQ
VVByb2Nlc3NDb25uZWN0aW9uKiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIGJvb2wgbV9k
aWRJbml0aWFsaXplIHsgZmFsc2UgfTsKICAgICBHQ0dMZW51bSBtX2Vycm9yV2hlbkNvbnRleHRJ
c0xvc3QgPSBOT19FUlJPUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5Q29jb2EubW0KaW5kZXggNTQ5M2ZmZTBjNzQzZDlkYzE3NGE1NmJmYzZm
MTQ5OGNkOTA5MWU3NS4uMTQyNGVmOGEwZjNiZDlmNjU2NjlmZjdlODcxNjI3MmY5YTU1YWViNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
Q29jb2EubW0KQEAgLTI3LDE1ICsyNyw2OCBAQAogI2ltcG9ydCAiUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eS5oIgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wp
CisjaW1wb3J0ICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW1wb3J0ICJHUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2ltcG9ydCAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdl
cy5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9DVlV0aWxpdGll
cy5oPgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9JT1N1cmZhY2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkdMTGF5ZXIuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNF
eGNlcHRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3Bs
YXkoKQorbmFtZXNwYWNlIHsKKworY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hIGZpbmFsIDogcHVibGljIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkgeworcHVibGlj
OgorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xMYXllcjsgfQorICAg
IFdlYkNvcmU6OklPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlz
cGxheUJ1ZmZlci5nZXQoKTsgfQorCisgICAgLy8gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eSBvdmVycmlkZXMuCisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fd2ViR0xMYXllci5nZXQoKTsgfQorICAgIHZvaWQgcHJlcGFyZUZvckRp
c3BsYXkoKSBmaW5hbDsKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisg
ICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDViogYXNDVigpIGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVmUHRyPFdl
YkNvcmU6Ok1lZGlhU2FtcGxlPiBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgp
IGZpbmFsOworI2VuZGlmCitwcml2YXRlOgorICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlDb2NvYShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICBSZXRh
aW5QdHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpJT1N1cmZhY2U+IG1fZGlzcGxheUJ1ZmZlcjsKKyAgICBmcmllbmQgY2xhc3MgUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eTsKK307CisKK1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hKEdQVVByb2Nlc3NDb25u
ZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBy
ZW5kZXJpbmdCYWNrZW5kKQorICAgIDogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgYXR0cmlidXRlcywgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICBh
dXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKKyAgICBtX3dlYkdMTGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10g
aW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNP
cGFxdWU6IWF0dHJzLmFscGhhXSk7CisjaWZuZGVmIE5ERUJVRworICAgIFttX3dlYkdMTGF5ZXIg
c2V0TmFtZTpAIldlYkdMIExheWVyIl07CisjZW5kaWYKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCit9CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorUmVmUHRyPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2E6OnBhaW50Q29tcG9z
aXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkKK3sKKyAgICBpZiAoIW1fZGlzcGxheUJ1ZmZlcikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IFdlYkNvcmU6
OmNyZWF0ZUNWUGl4ZWxCdWZmZXIobV9kaXNwbGF5QnVmZmVyLT5zdXJmYWNlKCkpOworICAgIGlm
ICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFdURk1vdmUoKnBpeGVs
QnVmZmVyKSwgV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpWaWRlb1JvdGF0aW9uOjpVcHNp
ZGVEb3duLCB0cnVlKTsKK30KKyNlbmRpZgorCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHlDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYxLDQgKzExNCwxNCBAQCB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKIAogfQogCitSZWZQdHI8UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmli
dXRlcywgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAg
ICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUNvY29hKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCksIGF0dHJpYnV0ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKKyAgICBpZiAoIWNvbnRleHQtPmlz
VmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnRleHQ7Cit9
CisKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHlXQy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFkZjdmMzAxYjg0YjhhNWQ1MGJhZmQwNWI4NTQ5YzUy
YTkzZDBlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcApAQCAtMCwwICsx
LDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0
YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgVVNF
KEdSQVBISUNTX0xBWUVSX1dDKQorCisjaW5jbHVkZSAiV0NQbGF0Zm9ybUxheWVyR0NHTC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlXQyBmaW5hbCA6IHB1YmxpYyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZSB7CitwdWJsaWM6CisgICAgLy8gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Ugb3Zl
cnJpZGVzLgorICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsKKyAgICBQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wbGF0Zm9ybUxh
eWVyLmdldCgpOyB9CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6TWVkaWFTYW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmlu
YWwgeyByZXR1cm4gbnVsbHB0cjsgfQorI2VuZGlmCitwcml2YXRlOgorICAgIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlXQyhHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KTsKKworICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIgbV9wbGF0Zm9ybUxheWVyOworICAgIGZy
aWVuZCBjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OworfTsKKworUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eVdDOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBjb25zdCBHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
IHJlbmRlcmluZ0JhY2tlbmQpCisgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KGdw
dVByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKQorICAgICwg
bV9wbGF0Zm9ybUxheWVyKG1ha2VVbmlxdWU8V0NQbGF0Zm9ybUxheWVyR0NHTD4obV9ncmFwaGlj
c0NvbnRleHRHTElkZW50aWZpZXIpKQoreworfQorCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKK3sKKyAgICBpZiAoaXNDb250ZXh0TG9zdCgp
KQorICAgICAgICByZXR1cm47CisgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2Fn
ZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheSgpLCBNZXNzYWdl
czo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlByZXBhcmVGb3JEaXNwbGF5OjpSZXBseSgpKTsK
KyAgICBpZiAoIXNlbmRSZXN1bHQpIHsKKyAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOworfQorCit9CisK
K1JlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5OjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNr
ZW5kKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eVdDKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCksIGF0dHJpYnV0ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKK30KKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbgppbmRleCAyNWYyN2ZlYTgzZGU3YjU2ZmNhZmQ4ZDFm
OGYzOGEzNDdhYjA2Y2JkLi5jMWEyZDEwNjk5MjdjODY1MGVjNmFkZDQ0NWQ2ZmUxOWRkM2VlNGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorwrQjIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMK
</data>
<flag name="commit-queue"
          id="469359"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444359</attachid>
            <date>2021-11-16 01:58:21 -0800</date>
            <delta_ts>2021-11-16 03:41:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233175-20211116115820.patch</filename>
            <type>text/plain</type>
            <size>33100</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyZjkzMWRjYTIwM2Mw
NTE5NDBiM2JkOWM2MzAyYjRlN2M4MTM2Ni4uYjc3Yjk4OWE3NDlkNTUyN2ZkNzczMWE1OTZjOWNi
MDA0NjEwMWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTExLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2Ugc2hvdWxkIG5vdCBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIGlt
cGxlbWVudGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzMTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGZyb20gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UgdG8KKyAgICAgICAgV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5Q29jb2EgYW5kIFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLgor
ICAgICAgICBUaGUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBpcyB0cml2aWFsIGFuZCBhbnl3YXkg
dXNlZCBieSB0aGUgV2ViS2l0IHNpZGUgY29uY3JldGUgY2xhc3Nlcy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogUGxhdGZvcm1XaW5DYWlyby5jbWFrZToK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtSW5pdGlhbGl6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmFzQ1YpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJlc3Vs
dHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZVdDLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5
ZXIpOiBEZWxldGVkLgorCiAyMDIxLTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYW5vdGhlciA8bW9kZWw+IGJhY2tlbmQgYmFja2VkIGJ5IFNjZW5l
S2l0IHRvIHByb3ZlIG91dCBNb2RlbFBsYXllciBpbmZyYXN0cnVjdHVyZSBhIGJpdCBtb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDcwMzg0MWNmMjM3ZmZhM2RjN2JkYjlmMzFjYjQ4NWM2ODUzZmE4MDQuLmQ1YzRl
NWM4OTg3OTM3OTE2OGRkMWY2ZDA2MmNiYWQzNzk5YTVkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBzaG91bGQgbm90IGhh
dmUgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUg
ZnJvbSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB0bworICAgICAgICBXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYSBhbmQgV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5V0MuCisgICAgICAgIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2Rl
IGlzIHRyaXZpYWwgYW5kIGFueXdheSB1c2VkIGJ5IHRoZSBXZWJLaXQgc2lkZSBjb25jcmV0ZSBj
bGFzc2VzLgorCisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpj
cmVhdGUpOgorCiAyMDIxLTExLTE1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NTgxMi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCmluZGV4IDVkZGFkOWMyNThlMTBjNzkxODVmZWQ0OGE0
MmY3OGY3MWVjMDQxYzUuLjIxOTYyNDQwNDAwZmQ4Y2Q4OTdmMzhlZGY5NWE4ZWU0NjI5MWFhMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQpAQCAtMjUsOCArMjUsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L0RyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAogCi0gICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKLQogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IGIyODc3MTBjZGYwZGE3MDg0NjE1ZjJmMjhhMTQ3MjIyMjFhOTY0
YTEuLjFhNDY2ODZmNzhjZGNiMjM4YmFkNWYyYWMzMmE3MmM1NDE3NDYzZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dApAQCAtMzgyLDcgKzM4Miw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZVBvb2xDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSW50UmVjdENv
Y29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Q29jb2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dC5tbQotcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVU
ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGJkMWI3YTkzMmIzNTA5NzdiZjVmOTQwNWE5NjVkMDhlYTg1NjlhMmEuLjNj
ZjQ4YWQ1MmUxNDQ1YTQ1Y2M4MzEzMjJlZjgxMjg3NTMwMWQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDI2LDcgKzEx
MDI2LDYgQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1ZBTkdMRS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBFMDBDNDBFQUMg
LyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I2NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3Bl
ZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjgyMjUsNyArMjgyMjQsNiBAQAogCQkJCTFEMDA4QUE1MjYyMTA4QzAw
MEVFM0FERSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5tbSAqLywKIAkJCQkzMTY0N0ZB
ODI1MTYxNkJEMDAxMEY4RkIgLyogT3BlbkdMU29mdExpbmtDb2NvYS5oICovLAogCQkJCTMxNjQ3
RkE5MjUxNjE2QkQwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlua0NvY29hLm1tICovLAotCQkJCTdC
NjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZUNvY29hLm1tICovLAogCQkJCUNERUIzRDcyMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VCdWZm
ZXJQYXJzZXIuY3BwICovLAogCQkJCUNERUIzRDczMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VC
dWZmZXJQYXJzZXIuaCAqLywKIAkJCQlDRDhGNjY3MDI0QzBGMjA4MDAwQzQyMUMgLyogU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAKaW5kZXggOGM4Y2MyODhmMjhjYmMyNWJlNTg0NzNlMWU3OWYwNTI1ZTM0M2Y4Yy4u
Yjk0NzUzOTc3N2JmZmEwYjNhZmUyODExNTcyYjhjMWE2Y2NjNzBkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2UoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBh
dHRycykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQogewotICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOwogfQogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6flJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlKCkgPSBkZWZhdWx0OwpAQCAtMTM0LDE2ICsxMzMs
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjppbml0aWFsaXplKGNv
bnN0IFN0cmluZyYgYXZhaWxhYmxlRXh0ZW5zaQogICAgICAgICBtX3JlcXVlc3RhYmxlRXh0ZW5z
aW9ucy5hZGQoZXh0ZW5zaW9uKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShH
UkFQSElDU19MQVlFUl9XQykKLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCi17Ci19Ci0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgogI2lmICFVU0UoQU5HTEUpCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpyZWFkblBpeGVsc0VYVChHQ0dMaW50LCBHQ0dMaW50LCBH
Q0dMc2l6ZWksIEdDR0xzaXplaSwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMc2l6ZWksIEdDR0x2
b2lkKikKIHsKQEAgLTE1OSwxMCArMTQ4LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZTo6Z2V0blVuaWZvcm1pdkVYVChHQ0dMdWludCwgR0NHTGludCwgR0NHTHMKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgIVBMQVRGT1JNKENPQ09BKQotUmVm
UHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKQotewotICAgIHJldHVybiBudWxscHRyOwot
fQogI2VuZGlmCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5o
CmluZGV4IGYxZWVkNWY0YzQ2YzE4NTQzM2IwOWI3ZDY0MDQwMDc3ODkwOTE5ODkuLmY5YTg2MTg0
MmExMGRiYmI4MGJjODlkMjYwNmE4OGUwYjdmMmU3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaApAQCAtMzMsMjEgKzMzLDggQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFBMQVRGT1JNKENP
Q09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi1PQkpDX0NMQVNTIFdlYkdMTGF5ZXI7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1jbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbjsKLWNsYXNzIElPU3VyZmFjZTsKLSNlbmRpZgotCiAvLyBBIGJhc2UgY2xh
c3MgZm9yIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIHByb3h5IHNpZGUgaW1wbGVtZW50YXRpb24K
IC8vIFRoaXMgaW1wbGVtZW50cyB0aGUgcGFydHMgdGhhdCBhcmUgdXNpbmcgV2ViQ29yZSBpbnRl
cm5hbCBmdW5jdGlvbmFsaXR5OgogLy8gLSBEcmF3aW5nIGJ1ZmZlciB0cmFja2luZyBtYW5hZ2Vt
ZW50LgpAQCAtNTksNyArNDYsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBPdGhlciBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0R0w6
OmlzRW5hYmxlZDsKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmlu
YWw7CiAgICAgRXh0ZW5zaW9uc0dMJiBnZXRFeHRlbnNpb25zKCkgZmluYWw7CiAgICAgdm9pZCBz
ZXRDb250ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICBib29sIGlzR0xFUzJDb21wbGlh
bnQoKSBjb25zdCBmaW5hbDsKQEAgLTY5LDkgKzU1LDYgQEAgcHVibGljOgogICAgIEdDR0xiaXRm
aWVsZCBnZXRCdWZmZXJzVG9BdXRvQ2xlYXIoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1hcmtM
YXllckNvbXBvc2l0ZWQoKSBmaW5hbDsKIAotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKLSAgICBHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkgZmluYWw7Ci0jZW5kaWYK
ICAgICAvLyBPdGhlciBFeHRlbnNpb25HTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgRXh0ZW5zaW9u
c0dMOjppc0VuYWJsZWQ7CiAgICAgYm9vbCBzdXBwb3J0cyhjb25zdCBTdHJpbmcmKSBmaW5hbDsK
QEAgLTgzLDkgKzY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0blVuaWZvcm1mdkVYVChHQ0dM
dWludCwgR0NHTGludCwgR0NHTHNpemVpLCBHQ0dMZmxvYXQqKSBmaW5hbDsKICAgICB2b2lkIGdl
dG5Vbmlmb3JtaXZFWFQoR0NHTHVpbnQsIEdDR0xpbnQsIEdDR0xzaXplaSwgR0NHTGludCopIGZp
bmFsOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmluYWw7Ci0jZW5k
aWYKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGF2YWls
YWJsZUV4dGVuc2lvbnMsIGNvbnN0IFN0cmluZyYgcmVxdWVzdGFibGVFeHRlbnNpb25zKTsKQEAg
LTkzLDE2ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRXh0ZW5z
aW9uRW5hYmxlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU1h
cmtDb250ZXh0Q2hhbmdlZCgpID0gMDsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFp
blB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwotI2VsaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAg
IHZvaWQgc2V0UGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyQ29udGFpbmVyJiYpOwotICAgIFBs
YXRmb3JtTGF5ZXJDb250YWluZXIgbV9wbGF0Zm9ybUxheWVyOwotI2VuZGlmCiBwcml2YXRlOgot
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7Ci0KICAgICAvLyBHdWFyZGVkIGJ5IHdhaXRV
bnRpbEluaXRpYWxpemVkKCkuCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fYXZhaWxhYmxlRXh0ZW5z
aW9uczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZXF1ZXN0YWJsZUV4dGVuc2lvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDI3N2U4Zjg4ODdl
MjJhYTAyODAzYTUwMzYwZWIzZGMzMmZjNGU3ZWIuLmVhYTBhMWQ0MWY2ZTI2MDllNDAwMmZmNDI2
Zjc1NzA4ODAzYzlhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2Ft
cGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgQXRvbVN0cmluZyB0
cmFja0lEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUs
IHRyYWNrSUQpKTsgfQogICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVhdGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uID0gVmlkZW9S
b3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUsIHJvdGF0aW9uLCBtaXJyb3JlZCkpOyB9CiAg
ICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFBp
eGVsQnVmZmVyJiYpOwotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVh
dGVJbWFnZVNhbXBsZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgVmlkZW9Sb3RhdGlv
biwgYm9vbCBtaXJyb3JlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxNZWRp
YVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiYmLCBWaWRlb1JvdGF0aW9uLCBib29sIG1pcnJvcmVkKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIHNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJik7CiAg
ICAgc3RhdGljIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY2xvbmVTYW1wbGVCdWZmZXJB
bmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcyNThlODY0NWYxNDA0NjMyYmIwMjg0ZWQ4OWRmNzkw
ODNkZTEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZUNvY29hLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgiCi0KLSNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZPUk0oQ09DT0Ep
Ci0KLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCi0jaW1w
b3J0ICJXZWJHTExheWVyLmgiCi0jaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCi0jaW1w
b3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCi17Ci0gICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgbV93ZWJHTExheWVyID0gYWRvcHROUyhbW1dl
YkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZpY2VQaXhl
bFJhdGlvIGNvbnRlbnRzT3BhcXVlOiFhdHRycy5hbHBoYV0pOwotI2lmbmRlZiBOREVCVUcKLSAg
ICBbbV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOwotI2VuZGlmCi0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotfQotCi0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV93ZWJHTExheWVyLmdldCgpOwotfQotCi0jaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQotR3JhcGhpY3NDb250ZXh0R0xDViogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2U6OmFzQ1YoKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotUmVmUHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KQotewotICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rpc3BsYXlCdWZm
ZXItPnN1cmZhY2UoKSk7Ci0gICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUo
V1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBNZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246
OlVwc2lkZURvd24sIHRydWUpOwotfQotI2VuZGlmCi0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IDNj
MjJmNWQ2NGQ4OGM5N2ZiZTQ4YjJmYWY0ZDZjZDQ1ZDU3YmI0NWIuLjc2ZGEwZmUwZjQ0YTNhODQ0
MGU2NjM5ZWE5ZDdlMGE4OTYwNjg4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC8vIEEgbGF5ZXIgY2xhc3Mgc2hvd2lu
ZyBvbmUgSU9TdXJmYWNlLgotQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgorV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgogCiAtIChpZClpbml0V2l0
aERldmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6
KGJvb2wpY29udGVudHNPcGFxdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlV0MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2VXQy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMTk3MmMx
NDFjYTkwNTRkY2M5NGRiZTEyODMyYzQ2MGQ2YjdkMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIFNvbnkgSW50ZXJhY3Rp
dmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oIgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
V0VCR0wpICYmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLQotI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKLXsKLX0KLQot
UGxhdGZvcm1MYXllciogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7Ci19Ci0K
LXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5ZXIo
UGxhdGZvcm1MYXllckNvbnRhaW5lciYmIHBsYXRmb3JtTGF5ZXIpCi17Ci0gICAgbV9wbGF0Zm9y
bUxheWVyID0gV1RGTW92ZShwbGF0Zm9ybUxheWVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21h
a2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDliZWEwMjJlMzg5MWE1
NjM2OGYzZjFjZDAyZDc5ZTI2NTE3MGQxOTQuLjM1MGZkZDQ5N2VhYWFiNzExMDU5YzU0YjUwNzUw
MTViMTkzNzkzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtODIsNiArODIsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIFVJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bv
b2xXaW4uY3BwCiAgICAgVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAogCisgICAgV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcAogICAg
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAogCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvd2luL1ZpZGVvTGF5ZXJSZW1vdGVXaW4uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCAxMTQyMTY2
ZDJlMTU1ZmFiNWVlODFiZDVjYTI5YTZiZjA3ZmZjNzBhLi45Y2FkZmMwMmY0YWI2YzhiYzE2MzU4
OTIyNTczZjk5N2ZmYzQ4ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAKQEAgLTM1LDI0ICszNSwxMCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgotI2VuZGlmCi0KLSNpZiBVU0Uo
R1JBUEhJQ1NfTEFZRVJfV0MpCi0jaW5jbHVkZSAiV0NQbGF0Zm9ybUxheWVyR0NHTC5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmUHRyPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk+IFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OmNyZWF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJp
YnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCksIGF0dHJpYnV0
ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKLX0KLQogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZGVm
YXVsdFN0cmVhbVNpemUgPSAxIDw8IDIxOwogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRy
aWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQpAQCAt
NjYsOSArNTIsNiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJgogICAgIC8vIFRPRE86IFdlIG11
c3Qgd2FpdCB1bnRpbCBpbml0aWFsaXplZCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IHdlIGNhbm5v
dCByZWNlaXZlIElQQyBtZXNzYWdlcwogICAgIC8vIGR1cmluZyB3YWl0IHdoaWxlIGluIHN5bmNo
cm9ub3VzIHN0cmVhbSBzZW5kLiBTaG91bGQgYmUgZml4ZWQgYXMgcGFydCBvZiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjExLgogICAgIHdhaXRVbnRpbEluaXRp
YWxpemVkKCk7Ci0jaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAgIHNldFBsYXRmb3JtTGF5
ZXIobWFrZVVuaXF1ZTxXQ1BsYXRmb3JtTGF5ZXJHQ0dMPihtX2dyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllcikpOwotI2VuZGlmCiB9CiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6On5S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkKQEAgLTg3LDIwICs3MCw2IEBAIHZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQp
CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQot
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgpCi17
Ci0gICAgaWYgKGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gc2Vu
ZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJl
cGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVw
YXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7Ci0gICAgaWYgKCFzZW5kUmVzdWx0KSB7Ci0gICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1hcmtMYXll
ckNvbXBvc2l0ZWQoKTsKLX0KLSNlbmRpZgotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OmVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCiB7
CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKaW5kZXggZGQyZTgwYjY1ZDIzNGQ2OThlOTBjODNhMGM1ZGMzOTk1ODdkZDdhZC4u
NGFjMTgwOGU2NTRmNTc5YjUxMzdkNGIxOTYyY2Q0Zjk0YWI4MTFjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTQ3LDIwICs0NywxOSBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIC8vIGNvbnZlcnRzIHRoZSBpbnRlcmZhY2UgdG8gYSBzZXF1ZW5jZSBvZiBJUEMg
bWVzc2FnZXMgYW5kIHNlbmRzIHRoZSBtZXNzYWdlcyB0bwogLy8gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wgaW4gR1BVIHByb2Nlc3MuCiAvLyBUaGUgaW1wbGVtZW50YXRpb24gaXMgbGFyZ2VseSBn
ZW5lcmF0ZWQgYnkgcnVubmluZyBUb29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wuCi1j
bGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IGZpbmFsCitjbGFzcyBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CiAgICAgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgLCBwcml2YXRlIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICAgICAsIHB1YmxpYyBX
ZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOwotICAgIH5SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkgZmluYWw7Cisg
ICAgflJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoKTsKIAogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIG92ZXJyaWRlcy4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgLy8gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpIGZpbmFsOwotICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsK
ICAgICB1c2luZyBXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6aXNF
bmFibGVkOwogICAgIHZvaWQgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmIGV4
dGVuc2lvbikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5nZWQoKSBmaW5h
bDsKQEAgLTMxOSw2ICszMTgsOCBAQCBwdWJsaWM6CiAgICAgLy8gRW5kIG9mIGxpc3QgdXNlZCBi
eSBnZW5lcmF0ZS1ncHVwLXdlYmdsIHNjcmlwdC4KIAogcHJvdGVjdGVkOgorICAgIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cik7CisKICAgICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBvdmVycmlkZXMu
CiAgICAgdm9pZCB3YWl0VW50aWxJbml0aWFsaXplZCgpIGZpbmFsOwogCkBAIC0zMzgsNiArMzM5
LDcgQEAgcHJvdGVjdGVkOgogICAgIH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCk7IH0K
IAorICAgIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciB7IEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSB9OwogcHJp
dmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIHdhc0NyZWF0
ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYmLCBTdHJpbmcmJiBhdmFpbGFibGVF
eHRlbnNpb25zLCBTdHJpbmcmJiByZXF1ZXN0ZWRFeHRlbnNpb25zKTsKQEAgLTM1MCwxMSArMzUy
LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2Nvbm5lY3RHcHVQcm9jZXNzSWZOZWVkZWQoKTsK
ICAgICB2b2lkIGFiYW5kb25HcHVQcm9jZXNzKCk7CiAKLSAgICBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIEdQ
VVByb2Nlc3NDb25uZWN0aW9uKiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIGJvb2wgbV9k
aWRJbml0aWFsaXplIHsgZmFsc2UgfTsKICAgICBHQ0dMZW51bSBtX2Vycm9yV2hlbkNvbnRleHRJ
c0xvc3QgPSBOT19FUlJPUjsKLSAgICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgbV9ncmFw
aGljc0NvbnRleHRHTElkZW50aWZpZXIgeyBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI6Omdl
bmVyYXRlKCkgfTsKICAgICBJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24gbV9zdHJlYW1Db25u
ZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYS5tbQppbmRleCA1NDkzZmZlMGM3NDNkOWRjMTc0YTU2YmZjNmYxNDk4
Y2Q5MDkxZTc1Li4xNDI0ZWY4YTBmM2JkOWY2NTY2OWZmN2U4NzE2MjcyZjlhNTVhZWI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YS5tbQpAQCAtMjcsMTUgKzI3LDY4IEBACiAjaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgiCiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkKKyNp
bXBvcnQgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbXBvcnQgIkdQVVByb2Nlc3ND
b25uZWN0aW9uLmgiCiAjaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzLmgi
CisjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0lPU3VyZmFjZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVNhbXBsZUFWRk9iakMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViR0xMYXllci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgp
CituYW1lc3BhY2UgeworCitjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eg
ZmluYWwgOiBwdWJsaWMgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSB7CitwdWJsaWM6Cisg
ICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTExheWVyOyB9CisgICAgV2Vi
Q29yZTo6SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5
QnVmZmVyLmdldCgpOyB9CisKKyAgICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IG92
ZXJyaWRlcy4KKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV93ZWJHTExheWVyLmdldCgpOyB9CisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxh
eSgpIGZpbmFsOworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQorI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6TWVkaWFTYW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmlu
YWw7CisjZW5kaWYKK3ByaXZhdGU6CisgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIFJldGFpblB0
cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OklPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyOworICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5OworfTsKKworUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EoR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRl
cmluZ0JhY2tlbmQpCisgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKQoreworICAgIGF1dG8g
YXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUworICAgIG1fd2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0
V2l0aERldmljZVBpeGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1
ZTohYXR0cnMuYWxwaGFdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW21fd2ViR0xMYXllciBzZXRO
YW1lOkAiV2ViR0wgTGF5ZXIiXTsKKyNlbmRpZgorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKK30KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitSZWZQdHI8V2ViQ29yZTo6TWVkaWFT
YW1wbGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYTo6cGFpbnRDb21wb3NpdGVk
UmVzdWx0c1RvTWVkaWFTYW1wbGUoKQoreworICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6Y3Jl
YXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rpc3BsYXlCdWZmZXItPnN1cmZhY2UoKSk7CisgICAgaWYgKCFw
aXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdlYkNvcmU6
Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUoV1RGTW92ZSgqcGl4ZWxCdWZm
ZXIpLCBXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246OlVwc2lkZURv
d24sIHRydWUpOworfQorI2VuZGlmCisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUNvY29hOjpwcmVwYXJlRm9yRGlzcGxheSgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNjEsNCArMTE0LDE0IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQogCiB9CiAKK1JlZlB0cjxSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVh
dGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVz
LCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQoreworICAgIGF1
dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29j
b2EoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwg
YXR0cmlidXRlcywgcmVuZGVyaW5nQmFja2VuZCkpOworICAgIGlmICghY29udGV4dC0+aXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwor
fQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eVdDLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41MGU0Y2M1ZWM4OTE4ZTM1YWY3M2I2NzBkZDI4OGVlZDY3YzVj
NzhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy93Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MuY3BwCkBAIC0wLDAgKzEsODQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5t
ZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoR1JB
UEhJQ1NfTEFZRVJfV0MpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVHcmFw
aGljc0NvbnRleHRHTE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV0NQbGF0Zm9ybUxheWVyR0NHTC5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2Ugewor
CitjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MgZmluYWwgOiBwdWJsaWMgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSB7CitwdWJsaWM6CisgICAgLy8gUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eSBvdmVycmlkZXMuCisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgp
IGZpbmFsOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7IH0KKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0
c1RvTWVkaWFTYW1wbGUoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisjZW5kaWYKK3ByaXZh
dGU6CisgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDKEdQVVByb2Nlc3NDb25uZWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIpOworCisgICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3Bs
YXRmb3JtTGF5ZXI7CisgICAgZnJpZW5kIGNsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHk7Cit9OworCitSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0M6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlXQyhHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24sIGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKKyAgICA6IFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIGF0dHJpYnV0ZXMsIHJlbmRl
cmluZ0JhY2tlbmQpCisgICAgLCBtX3BsYXRmb3JtTGF5ZXIobWFrZVVuaXF1ZTxXQ1BsYXRmb3Jt
TGF5ZXJHQ0dMPihtX2dyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcikpCit7Cit9CisKK3ZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDOjpwcmVwYXJlRm9yRGlzcGxheSgpCit7Cisg
ICAgaWYgKGlzQ29udGV4dExvc3QoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gc2VuZFJl
c3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFy
ZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJl
Rm9yRGlzcGxheTo6UmVwbHkoKSk7CisgICAgaWYgKCFzZW5kUmVzdWx0KSB7CisgICAgICAgIG1h
cmtDb250ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1hcmtMYXllckNv
bXBvc2l0ZWQoKTsKK30KKworfQorCitSZWZQdHI8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y3JlYXRlKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywgUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQyhXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKSk7
Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4KaW5kZXggMjVm
MjdmZWE4M2RlN2I1NmZjYWZkOGQxZjhmMzhhMzQ3YWIwNmNiZC4uYzFhMmQxMDY5OTI3Yzg2NTBl
YzZhZGQ0NDVkNmZlMTlkZDNlZTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbgpA
QCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KK8K0IyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444369</attachid>
            <date>2021-11-16 03:41:26 -0800</date>
            <delta_ts>2021-11-16 23:38:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233175-20211116134124.patch</filename>
            <type>text/plain</type>
            <size>33109</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyZjkzMWRjYTIwM2Mw
NTE5NDBiM2JkOWM2MzAyYjRlN2M4MTM2Ni4uYjc3Yjk4OWE3NDlkNTUyN2ZkNzczMWE1OTZjOWNi
MDA0NjEwMWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTExLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2Ugc2hvdWxkIG5vdCBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIGlt
cGxlbWVudGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzMTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGZyb20gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UgdG8KKyAgICAgICAgV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5Q29jb2EgYW5kIFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLgor
ICAgICAgICBUaGUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBpcyB0cml2aWFsIGFuZCBhbnl3YXkg
dXNlZCBieSB0aGUgV2ViS2l0IHNpZGUgY29uY3JldGUgY2xhc3Nlcy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogUGxhdGZvcm1XaW5DYWlyby5jbWFrZToK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtSW5pdGlhbGl6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmFzQ1YpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJlc3Vs
dHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZVdDLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5
ZXIpOiBEZWxldGVkLgorCiAyMDIxLTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYW5vdGhlciA8bW9kZWw+IGJhY2tlbmQgYmFja2VkIGJ5IFNjZW5l
S2l0IHRvIHByb3ZlIG91dCBNb2RlbFBsYXllciBpbmZyYXN0cnVjdHVyZSBhIGJpdCBtb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDcwMzg0MWNmMjM3ZmZhM2RjN2JkYjlmMzFjYjQ4NWM2ODUzZmE4MDQuLmQ1YzRl
NWM4OTg3OTM3OTE2OGRkMWY2ZDA2MmNiYWQzNzk5YTVkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBzaG91bGQgbm90IGhh
dmUgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUg
ZnJvbSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB0bworICAgICAgICBXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYSBhbmQgV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5V0MuCisgICAgICAgIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2Rl
IGlzIHRyaXZpYWwgYW5kIGFueXdheSB1c2VkIGJ5IHRoZSBXZWJLaXQgc2lkZSBjb25jcmV0ZSBj
bGFzc2VzLgorCisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpj
cmVhdGUpOgorCiAyMDIxLTExLTE1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NTgxMi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCmluZGV4IDVkZGFkOWMyNThlMTBjNzkxODVmZWQ0OGE0
MmY3OGY3MWVjMDQxYzUuLjIxOTYyNDQwNDAwZmQ4Y2Q4OTdmMzhlZGY5NWE4ZWU0NjI5MWFhMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZQpAQCAtMjUsOCArMjUsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L0RyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAogCi0gICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKLQogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IGIyODc3MTBjZGYwZGE3MDg0NjE1ZjJmMjhhMTQ3MjIyMjFhOTY0
YTEuLjFhNDY2ODZmNzhjZGNiMjM4YmFkNWYyYWMzMmE3MmM1NDE3NDYzZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dApAQCAtMzgyLDcgKzM4Miw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZVBvb2xDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSW50UmVjdENv
Y29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Q29jb2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dC5tbQotcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVU
ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGJkMWI3YTkzMmIzNTA5NzdiZjVmOTQwNWE5NjVkMDhlYTg1NjlhMmEuLjNj
ZjQ4YWQ1MmUxNDQ1YTQ1Y2M4MzEzMjJlZjgxMjg3NTMwMWQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDI2LDcgKzEx
MDI2LDYgQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1ZBTkdMRS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBFMDBDNDBFQUMg
LyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I2NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3Bl
ZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjgyMjUsNyArMjgyMjQsNiBAQAogCQkJCTFEMDA4QUE1MjYyMTA4QzAw
MEVFM0FERSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5tbSAqLywKIAkJCQkzMTY0N0ZB
ODI1MTYxNkJEMDAxMEY4RkIgLyogT3BlbkdMU29mdExpbmtDb2NvYS5oICovLAogCQkJCTMxNjQ3
RkE5MjUxNjE2QkQwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlua0NvY29hLm1tICovLAotCQkJCTdC
NjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZUNvY29hLm1tICovLAogCQkJCUNERUIzRDcyMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VCdWZm
ZXJQYXJzZXIuY3BwICovLAogCQkJCUNERUIzRDczMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VC
dWZmZXJQYXJzZXIuaCAqLywKIAkJCQlDRDhGNjY3MDI0QzBGMjA4MDAwQzQyMUMgLyogU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAKaW5kZXggOGM4Y2MyODhmMjhjYmMyNWJlNTg0NzNlMWU3OWYwNTI1ZTM0M2Y4Yy4u
Yjk0NzUzOTc3N2JmZmEwYjNhZmUyODExNTcyYjhjMWE2Y2NjNzBkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2UoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBh
dHRycykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQogewotICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOwogfQogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6flJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlKCkgPSBkZWZhdWx0OwpAQCAtMTM0LDE2ICsxMzMs
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjppbml0aWFsaXplKGNv
bnN0IFN0cmluZyYgYXZhaWxhYmxlRXh0ZW5zaQogICAgICAgICBtX3JlcXVlc3RhYmxlRXh0ZW5z
aW9ucy5hZGQoZXh0ZW5zaW9uKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShH
UkFQSElDU19MQVlFUl9XQykKLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCi17Ci19Ci0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgogI2lmICFVU0UoQU5HTEUpCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpyZWFkblBpeGVsc0VYVChHQ0dMaW50LCBHQ0dMaW50LCBH
Q0dMc2l6ZWksIEdDR0xzaXplaSwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMc2l6ZWksIEdDR0x2
b2lkKikKIHsKQEAgLTE1OSwxMCArMTQ4LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZTo6Z2V0blVuaWZvcm1pdkVYVChHQ0dMdWludCwgR0NHTGludCwgR0NHTHMKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgIVBMQVRGT1JNKENPQ09BKQotUmVm
UHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKQotewotICAgIHJldHVybiBudWxscHRyOwot
fQogI2VuZGlmCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5o
CmluZGV4IGYxZWVkNWY0YzQ2YzE4NTQzM2IwOWI3ZDY0MDQwMDc3ODkwOTE5ODkuLmY5YTg2MTg0
MmExMGRiYmI4MGJjODlkMjYwNmE4OGUwYjdmMmU3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaApAQCAtMzMsMjEgKzMzLDggQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFBMQVRGT1JNKENP
Q09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi1PQkpDX0NMQVNTIFdlYkdMTGF5ZXI7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1jbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbjsKLWNsYXNzIElPU3VyZmFjZTsKLSNlbmRpZgotCiAvLyBBIGJhc2UgY2xh
c3MgZm9yIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIHByb3h5IHNpZGUgaW1wbGVtZW50YXRpb24K
IC8vIFRoaXMgaW1wbGVtZW50cyB0aGUgcGFydHMgdGhhdCBhcmUgdXNpbmcgV2ViQ29yZSBpbnRl
cm5hbCBmdW5jdGlvbmFsaXR5OgogLy8gLSBEcmF3aW5nIGJ1ZmZlciB0cmFja2luZyBtYW5hZ2Vt
ZW50LgpAQCAtNTksNyArNDYsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBPdGhlciBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0R0w6
OmlzRW5hYmxlZDsKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmlu
YWw7CiAgICAgRXh0ZW5zaW9uc0dMJiBnZXRFeHRlbnNpb25zKCkgZmluYWw7CiAgICAgdm9pZCBz
ZXRDb250ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICBib29sIGlzR0xFUzJDb21wbGlh
bnQoKSBjb25zdCBmaW5hbDsKQEAgLTY5LDkgKzU1LDYgQEAgcHVibGljOgogICAgIEdDR0xiaXRm
aWVsZCBnZXRCdWZmZXJzVG9BdXRvQ2xlYXIoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1hcmtM
YXllckNvbXBvc2l0ZWQoKSBmaW5hbDsKIAotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKLSAgICBHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkgZmluYWw7Ci0jZW5kaWYK
ICAgICAvLyBPdGhlciBFeHRlbnNpb25HTCBvdmVycmlkZXMuCiAgICAgdXNpbmcgRXh0ZW5zaW9u
c0dMOjppc0VuYWJsZWQ7CiAgICAgYm9vbCBzdXBwb3J0cyhjb25zdCBTdHJpbmcmKSBmaW5hbDsK
QEAgLTgzLDkgKzY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0blVuaWZvcm1mdkVYVChHQ0dM
dWludCwgR0NHTGludCwgR0NHTHNpemVpLCBHQ0dMZmxvYXQqKSBmaW5hbDsKICAgICB2b2lkIGdl
dG5Vbmlmb3JtaXZFWFQoR0NHTHVpbnQsIEdDR0xpbnQsIEdDR0xzaXplaSwgR0NHTGludCopIGZp
bmFsOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmluYWw7Ci0jZW5k
aWYKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGF2YWls
YWJsZUV4dGVuc2lvbnMsIGNvbnN0IFN0cmluZyYgcmVxdWVzdGFibGVFeHRlbnNpb25zKTsKQEAg
LTkzLDE2ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRXh0ZW5z
aW9uRW5hYmxlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU1h
cmtDb250ZXh0Q2hhbmdlZCgpID0gMDsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFp
blB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwotI2VsaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAg
IHZvaWQgc2V0UGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyQ29udGFpbmVyJiYpOwotICAgIFBs
YXRmb3JtTGF5ZXJDb250YWluZXIgbV9wbGF0Zm9ybUxheWVyOwotI2VuZGlmCiBwcml2YXRlOgot
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7Ci0KICAgICAvLyBHdWFyZGVkIGJ5IHdhaXRV
bnRpbEluaXRpYWxpemVkKCkuCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fYXZhaWxhYmxlRXh0ZW5z
aW9uczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZXF1ZXN0YWJsZUV4dGVuc2lvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDI3N2U4Zjg4ODdl
MjJhYTAyODAzYTUwMzYwZWIzZGMzMmZjNGU3ZWIuLmVhYTBhMWQ0MWY2ZTI2MDllNDAwMmZmNDI2
Zjc1NzA4ODAzYzlhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2Ft
cGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgQXRvbVN0cmluZyB0
cmFja0lEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUs
IHRyYWNrSUQpKTsgfQogICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVhdGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uID0gVmlkZW9S
b3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUsIHJvdGF0aW9uLCBtaXJyb3JlZCkpOyB9CiAg
ICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFBp
eGVsQnVmZmVyJiYpOwotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVh
dGVJbWFnZVNhbXBsZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgVmlkZW9Sb3RhdGlv
biwgYm9vbCBtaXJyb3JlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxNZWRp
YVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiYmLCBWaWRlb1JvdGF0aW9uLCBib29sIG1pcnJvcmVkKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIHNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJik7CiAg
ICAgc3RhdGljIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY2xvbmVTYW1wbGVCdWZmZXJB
bmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcyNThlODY0NWYxNDA0NjMyYmIwMjg0ZWQ4OWRmNzkw
ODNkZTEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZUNvY29hLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgiCi0KLSNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZPUk0oQ09DT0Ep
Ci0KLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCi0jaW1w
b3J0ICJXZWJHTExheWVyLmgiCi0jaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCi0jaW1w
b3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCi17Ci0gICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgbV93ZWJHTExheWVyID0gYWRvcHROUyhbW1dl
YkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZpY2VQaXhl
bFJhdGlvIGNvbnRlbnRzT3BhcXVlOiFhdHRycy5hbHBoYV0pOwotI2lmbmRlZiBOREVCVUcKLSAg
ICBbbV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOwotI2VuZGlmCi0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotfQotCi0KLVBsYXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV93ZWJHTExheWVyLmdldCgpOwotfQotCi0jaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQotR3JhcGhpY3NDb250ZXh0R0xDViogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2U6OmFzQ1YoKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotUmVmUHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KQotewotICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rpc3BsYXlCdWZm
ZXItPnN1cmZhY2UoKSk7Ci0gICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUo
V1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBNZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246
OlVwc2lkZURvd24sIHRydWUpOwotfQotI2VuZGlmCi0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IDNj
MjJmNWQ2NGQ4OGM5N2ZiZTQ4YjJmYWY0ZDZjZDQ1ZDU3YmI0NWIuLjc2ZGEwZmUwZjQ0YTNhODQ0
MGU2NjM5ZWE5ZDdlMGE4OTYwNjg4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC8vIEEgbGF5ZXIgY2xhc3Mgc2hvd2lu
ZyBvbmUgSU9TdXJmYWNlLgotQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgorV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgogCiAtIChpZClpbml0V2l0
aERldmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6
KGJvb2wpY29udGVudHNPcGFxdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlV0MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2VXQy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMTk3MmMx
NDFjYTkwNTRkY2M5NGRiZTEyODMyYzQ2MGQ2YjdkMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VXQy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIFNvbnkgSW50ZXJhY3Rp
dmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oIgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
V0VCR0wpICYmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLQotI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKLXsKLX0KLQot
UGxhdGZvcm1MYXllciogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7Ci19Ci0K
LXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5ZXIo
UGxhdGZvcm1MYXllckNvbnRhaW5lciYmIHBsYXRmb3JtTGF5ZXIpCi17Ci0gICAgbV9wbGF0Zm9y
bUxheWVyID0gV1RGTW92ZShwbGF0Zm9ybUxheWVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21h
a2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDliZWEwMjJlMzg5MWE1
NjM2OGYzZjFjZDAyZDc5ZTI2NTE3MGQxOTQuLjM1MGZkZDQ5N2VhYWFiNzExMDU5YzU0YjUwNzUw
MTViMTkzNzkzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtODIsNiArODIsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIFVJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bv
b2xXaW4uY3BwCiAgICAgVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAogCisgICAgV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcAogICAg
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAogCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvd2luL1ZpZGVvTGF5ZXJSZW1vdGVXaW4uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCAxMTQyMTY2
ZDJlMTU1ZmFiNWVlODFiZDVjYTI5YTZiZjA3ZmZjNzBhLi45Y2FkZmMwMmY0YWI2YzhiYzE2MzU4
OTIyNTczZjk5N2ZmYzQ4ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAKQEAgLTM1LDI0ICszNSwxMCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgotI2VuZGlmCi0KLSNpZiBVU0Uo
R1JBUEhJQ1NfTEFZRVJfV0MpCi0jaW5jbHVkZSAiV0NQbGF0Zm9ybUxheWVyR0NHTC5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmUHRyPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk+IFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OmNyZWF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJp
YnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCksIGF0dHJpYnV0
ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKLX0KLQogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZGVm
YXVsdFN0cmVhbVNpemUgPSAxIDw8IDIxOwogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRy
aWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQpAQCAt
NjYsOSArNTIsNiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJgogICAgIC8vIFRPRE86IFdlIG11
c3Qgd2FpdCB1bnRpbCBpbml0aWFsaXplZCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IHdlIGNhbm5v
dCByZWNlaXZlIElQQyBtZXNzYWdlcwogICAgIC8vIGR1cmluZyB3YWl0IHdoaWxlIGluIHN5bmNo
cm9ub3VzIHN0cmVhbSBzZW5kLiBTaG91bGQgYmUgZml4ZWQgYXMgcGFydCBvZiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjExLgogICAgIHdhaXRVbnRpbEluaXRp
YWxpemVkKCk7Ci0jaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAgIHNldFBsYXRmb3JtTGF5
ZXIobWFrZVVuaXF1ZTxXQ1BsYXRmb3JtTGF5ZXJHQ0dMPihtX2dyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllcikpOwotI2VuZGlmCiB9CiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6On5S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkKQEAgLTg3LDIwICs3MCw2IEBAIHZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQp
CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQot
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgpCi17
Ci0gICAgaWYgKGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gc2Vu
ZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJl
cGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVw
YXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7Ci0gICAgaWYgKCFzZW5kUmVzdWx0KSB7Ci0gICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1hcmtMYXll
ckNvbXBvc2l0ZWQoKTsKLX0KLSNlbmRpZgotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OmVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCiB7
CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKaW5kZXggZGQyZTgwYjY1ZDIzNGQ2OThlOTBjODNhMGM1ZGMzOTk1ODdkZDdhZC4u
NGFjMTgwOGU2NTRmNTc5YjUxMzdkNGIxOTYyY2Q0Zjk0YWI4MTFjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTQ3LDIwICs0NywxOSBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIC8vIGNvbnZlcnRzIHRoZSBpbnRlcmZhY2UgdG8gYSBzZXF1ZW5jZSBvZiBJUEMg
bWVzc2FnZXMgYW5kIHNlbmRzIHRoZSBtZXNzYWdlcyB0bwogLy8gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wgaW4gR1BVIHByb2Nlc3MuCiAvLyBUaGUgaW1wbGVtZW50YXRpb24gaXMgbGFyZ2VseSBn
ZW5lcmF0ZWQgYnkgcnVubmluZyBUb29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wuCi1j
bGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IGZpbmFsCitjbGFzcyBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CiAgICAgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgLCBwcml2YXRlIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICAgICAsIHB1YmxpYyBX
ZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOwotICAgIH5SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCkgZmluYWw7Cisg
ICAgflJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoKTsKIAogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIG92ZXJyaWRlcy4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgLy8gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpIGZpbmFsOwotICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsK
ICAgICB1c2luZyBXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6aXNF
bmFibGVkOwogICAgIHZvaWQgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmIGV4
dGVuc2lvbikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5nZWQoKSBmaW5h
bDsKQEAgLTMxOSw2ICszMTgsOCBAQCBwdWJsaWM6CiAgICAgLy8gRW5kIG9mIGxpc3QgdXNlZCBi
eSBnZW5lcmF0ZS1ncHVwLXdlYmdsIHNjcmlwdC4KIAogcHJvdGVjdGVkOgorICAgIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cik7CisKICAgICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSBvdmVycmlkZXMu
CiAgICAgdm9pZCB3YWl0VW50aWxJbml0aWFsaXplZCgpIGZpbmFsOwogCkBAIC0zMzgsNiArMzM5
LDcgQEAgcHJvdGVjdGVkOgogICAgIH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCk7IH0K
IAorICAgIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciB7IEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSB9OwogcHJp
dmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIHdhc0NyZWF0
ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYmLCBTdHJpbmcmJiBhdmFpbGFibGVF
eHRlbnNpb25zLCBTdHJpbmcmJiByZXF1ZXN0ZWRFeHRlbnNpb25zKTsKQEAgLTM1MCwxMSArMzUy
LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2Nvbm5lY3RHcHVQcm9jZXNzSWZOZWVkZWQoKTsK
ICAgICB2b2lkIGFiYW5kb25HcHVQcm9jZXNzKCk7CiAKLSAgICBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIEdQ
VVByb2Nlc3NDb25uZWN0aW9uKiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIGJvb2wgbV9k
aWRJbml0aWFsaXplIHsgZmFsc2UgfTsKICAgICBHQ0dMZW51bSBtX2Vycm9yV2hlbkNvbnRleHRJ
c0xvc3QgPSBOT19FUlJPUjsKLSAgICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgbV9ncmFw
aGljc0NvbnRleHRHTElkZW50aWZpZXIgeyBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI6Omdl
bmVyYXRlKCkgfTsKICAgICBJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24gbV9zdHJlYW1Db25u
ZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlDb2NvYS5tbQppbmRleCA1NDkzZmZlMGM3NDNkOWRjMTc0YTU2YmZjNmYxNDk4
Y2Q5MDkxZTc1Li4xNDI0ZWY4YTBmM2JkOWY2NTY2OWZmN2U4NzE2MjcyZjlhNTVhZWI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YS5tbQpAQCAtMjcsMTUgKzI3LDY4IEBACiAjaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgiCiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkKKyNp
bXBvcnQgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbXBvcnQgIkdQVVByb2Nlc3ND
b25uZWN0aW9uLmgiCiAjaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzLmgi
CisjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0lPU3VyZmFjZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVNhbXBsZUFWRk9iakMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViR0xMYXllci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSgp
CituYW1lc3BhY2UgeworCitjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eg
ZmluYWwgOiBwdWJsaWMgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSB7CitwdWJsaWM6Cisg
ICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTExheWVyOyB9CisgICAgV2Vi
Q29yZTo6SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5
QnVmZmVyLmdldCgpOyB9CisKKyAgICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IG92
ZXJyaWRlcy4KKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV93ZWJHTExheWVyLmdldCgpOyB9CisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxh
eSgpIGZpbmFsOworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQorI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6TWVkaWFTYW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkgZmlu
YWw7CisjZW5kaWYKK3ByaXZhdGU6CisgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIFJldGFpblB0
cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OklPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyOworICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5OworfTsKKworUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EoR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRl
cmluZ0JhY2tlbmQpCisgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKQoreworICAgIGF1dG8g
YXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUworICAgIG1fd2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0
V2l0aERldmljZVBpeGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1
ZTohYXR0cnMuYWxwaGFdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW21fd2ViR0xMYXllciBzZXRO
YW1lOkAiV2ViR0wgTGF5ZXIiXTsKKyNlbmRpZgorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKK30KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitSZWZQdHI8V2ViQ29yZTo6TWVkaWFT
YW1wbGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYTo6cGFpbnRDb21wb3NpdGVk
UmVzdWx0c1RvTWVkaWFTYW1wbGUoKQoreworICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6Y3Jl
YXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rpc3BsYXlCdWZmZXItPnN1cmZhY2UoKSk7CisgICAgaWYgKCFw
aXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdlYkNvcmU6
Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUoV1RGTW92ZSgqcGl4ZWxCdWZm
ZXIpLCBXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246OlVwc2lkZURv
d24sIHRydWUpOworfQorI2VuZGlmCisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUNvY29hOjpwcmVwYXJlRm9yRGlzcGxheSgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNjEsNCArMTE0LDE0IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQogCiB9CiAKK1JlZlB0cjxSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVh
dGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVz
LCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQoreworICAgIGF1
dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29j
b2EoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwg
YXR0cmlidXRlcywgcmVuZGVyaW5nQmFja2VuZCkpOworICAgIGlmICghY29udGV4dC0+aXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwor
fQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eVdDLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNGRjODE5OGUxOGVmM2RlNjM2YTQ2ZjI4YWQ5ZjNkYjNkZmQ3
YTYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy93Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MuY3BwCkBAIC0wLDAgKzEsODQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5t
ZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoR1JB
UEhJQ1NfTEFZRVJfV0MpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVHcmFw
aGljc0NvbnRleHRHTE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV0NQbGF0Zm9ybUxheWVyR0NHTC5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2Ugewor
CitjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MgZmluYWwgOiBwdWJsaWMgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSB7CitwdWJsaWM6CisgICAgLy8gUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eSBvdmVycmlkZXMuCisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgp
IGZpbmFsOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7IH0KKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0
c1RvTWVkaWFTYW1wbGUoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisjZW5kaWYKK3ByaXZh
dGU6CisgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDKEdQVVByb2Nlc3NDb25uZWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIpOworCisgICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3Bs
YXRmb3JtTGF5ZXI7CisgICAgZnJpZW5kIGNsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHk7Cit9OworCitSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0M6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlXQyhHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24sIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRl
cywgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKKyAgICA6IFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIGF0dHJpYnV0
ZXMsIHJlbmRlcmluZ0JhY2tlbmQpCisgICAgLCBtX3BsYXRmb3JtTGF5ZXIobWFrZVVuaXF1ZTxX
Q1BsYXRmb3JtTGF5ZXJHQ0dMPihtX2dyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcikpCit7Cit9
CisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDOjpwcmVwYXJlRm9yRGlzcGxh
eSgpCit7CisgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGF1
dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6UHJlcGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
OjpQcmVwYXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7CisgICAgaWYgKCFzZW5kUmVzdWx0KSB7Cisg
ICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1h
cmtMYXllckNvbXBvc2l0ZWQoKTsKK30KKworfQorCitSZWZQdHI8UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y3JlYXRlKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywgUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQyhXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdC
YWNrZW5kKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4K
aW5kZXggMjVmMjdmZWE4M2RlN2I1NmZjYWZkOGQxZjhmMzhhMzQ3YWIwNmNiZC4uYzFhMmQxMDY5
OTI3Yzg2NTBlYzZhZGQ0NDVkNmZlMTlkZDNlZTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNz
YWdlcy5pbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KK8K0IyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444484</attachid>
            <date>2021-11-16 23:38:11 -0800</date>
            <delta_ts>2021-11-18 01:49:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233175-20211117093810.patch</filename>
            <type>text/plain</type>
            <size>32459</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcxNGQ5N2NiNDk1OTE2
ZjQ5ZDc5YWUwOGIzNjBjZjhiMjM4ODJkYS4uNzNjYjUzNGQ0ZDI2OGExNzJiN2UxNGZlZDNmMjkw
N2I0NmQ0ZjQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTExLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2Ugc2hvdWxkIG5vdCBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIGlt
cGxlbWVudGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzMTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAg
ICAgICAgTW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGZyb20gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UgdG8KKyAgICAgICAgV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5Q29jb2EgYW5kIFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLgor
ICAgICAgICBUaGUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBpcyB0cml2aWFsIGFuZCBhbnl3YXkg
dXNlZCBieSB0aGUgV2ViS2l0IHNpZGUgY29uY3JldGUgY2xhc3Nlcy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogUGxhdGZvcm1XaW5DYWlyby5jbWFrZToK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtSW5pdGlhbGl6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1MYXllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmFzQ1YpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJlc3Vs
dHNUb01lZGlhU2FtcGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZVdDLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnNldFBsYXRmb3JtTGF5
ZXIpOiBEZWxldGVkLgorCiAyMDIxLTExLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgYSBtb21lbnR1bSBzY3JvbGwgYW5pbWF0aW9uIHdo
ZW4gcmVjZWl2aW5nIGEgbW9tZW50dW0gZW5kIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM4NjQ0NGExODk4
ZWQ2ODZiYmYxZGNmZjFmZDQ4NWI1YWFlNmYzOTMuLjBjZTJkZGMyOTJiMmUyNDY5NGU0MWVjZWU3
MmQwNjIzODMzNjY5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMTEtMTYgIEtp
bW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZSBzaG91bGQgbm90IGhhdmUgcGxhdGZvcm0tc3BlY2lmaWMg
aW1wbGVtZW50YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzMxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKwor
ICAgICAgICBNb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgZnJvbSBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZSB0bworICAgICAgICBXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlDb2NvYSBhbmQgV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0Mu
CisgICAgICAgIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGlzIHRyaXZpYWwgYW5kIGFueXdh
eSB1c2VkIGJ5IHRoZSBXZWJLaXQgc2lkZSBjb25jcmV0ZSBjbGFzc2VzLgorCisgICAgICAgICog
UGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHk6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVw
YXJlRm9yRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZv
ckRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3dj
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpjcmVhdGUpOgorCiAyMDIxLTExLTE2
ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBmaXggV2luQ2Fpcm8gYnVpbGQgZm9sbG93aW5nIHIyODU4ODEuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XaW5DYWlyby5jbWFrZQppbmRleCA1ZGRhZDljMjU4ZTEwYzc5MTg1ZmVkNDhhNDJm
NzhmNzFlYzA0MWM1Li4yMTk2MjQ0MDQwMGZkOGNkODk3ZjM4ZWRmOTVhOGVlNDYyOTFhYTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAgLTI1LDggKzI1LDYgQEAgbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6
ei9EcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHAKIAotICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlV0MuY3BwCi0KICAgICBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ2Fpcm9XaW4uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAppbmRleCBiMjg3NzEwY2RmMGRhNzA4NDYxNWYyZjI4YTE0NzIyMjIxYTk2NGEx
Li4xYTQ2Njg2Zjc4Y2RjYjIzOGJhZDVmMmFjMzJhNzJjNTQxNzQ2M2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKQEAgLTM4Miw3ICszODIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9J
T1N1cmZhY2VQb29sQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ludFJlY3RDb2Nv
YS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeUNvY29hLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQubW0KLXBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlCYXNlQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZl
clBhcnNlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA5YWJlMTg5ODYwZDhkYzU5YThjMDM0OGQ1NTlhNzdkNTQ5YjBjNzY1Li40ZjZm
YmQ3M2RlZWNiMDk0MWMwZTdlNTZjNGMwMjc3YzFiMGRlNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTAyNSw3ICsxMTAy
NSw2IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENW
QU5HTEUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFw
aGljc0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8q
IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRI
aWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI4MjIzLDcgKzI4MjIyLDYgQEAKIAkJCQkxRDAwOEFBNTI2MjEwOEMwMDBF
RTNBREUgLyogTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQubW0gKi8sCiAJCQkJMzE2NDdGQTgy
NTE2MTZCRDAwMTBGOEZCIC8qIE9wZW5HTFNvZnRMaW5rQ29jb2EuaCAqLywKIAkJCQkzMTY0N0ZB
OTI1MTYxNkJEMDAxMEY4RkIgLyogT3BlbkdMU29mdExpbmtDb2NvYS5tbSAqLywKLQkJCQk3QjY0
QzBCNDI1NEMzQjE2MDAwNkI0QUYgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VD
b2NvYS5tbSAqLywKIAkJCQlDREVCM0Q3MjI0QzQxQTZFMDAxRkJFRUYgLyogU291cmNlQnVmZmVy
UGFyc2VyLmNwcCAqLywKIAkJCQlDREVCM0Q3MzI0QzQxQTZFMDAxRkJFRUYgLyogU291cmNlQnVm
ZmVyUGFyc2VyLmggKi8sCiAJCQkJQ0Q4RjY2NzAyNEMwRjIwODAwMEM0MjFDIC8qIFNvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuY3BwCmluZGV4IDhjOGNjMjg4ZjI4Y2JjMjViZTU4NDczZTFlNzlmMDUyNWUzNDNmOGMuLmI5
NDc1Mzk3NzdiZmZhMGIzYWZlMjgxMTU3MmI4YzFhNmNjYzcwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAKQEAgLTQyLDcgKzQyLDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0
cnMpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRycykKIHsKLSAgICBwbGF0Zm9ybUluaXRp
YWxpemUoKTsKIH0KIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6On5SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZSgpID0gZGVmYXVsdDsKQEAgLTEzNCwxNiArMTMzLDYg
QEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6aW5pdGlhbGl6ZShjb25z
dCBTdHJpbmcmIGF2YWlsYWJsZUV4dGVuc2kKICAgICAgICAgbV9yZXF1ZXN0YWJsZUV4dGVuc2lv
bnMuYWRkKGV4dGVuc2lvbik7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoR1JB
UEhJQ1NfTEFZRVJfV0MpCi12b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQotewotfQotCi1QbGF0Zm9ybUxheWVyKiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG51bGxwdHI7Ci19Ci0jZW5kaWYKICNpZiAhVVNFKEFOR0xFKQogdm9pZCBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6cmVhZG5QaXhlbHNFWFQoR0NHTGludCwgR0NHTGludCwgR0NH
THNpemVpLCBHQ0dMc2l6ZWksIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTHNpemVpLCBHQ0dMdm9p
ZCopCiB7CkBAIC0xNTksMTAgKzE0OCw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2U6OmdldG5Vbmlmb3JtaXZFWFQoR0NHTHVpbnQsIEdDR0xpbnQsIEdDR0xzCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmICFQTEFURk9STShDT0NPQSkKLVJlZlB0
cjxNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29t
cG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0K
ICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaApp
bmRleCBmMWVlZDVmNGM0NmMxODU0MzNiMDliN2Q2NDA0MDA3Nzg5MDkxOTg5Li5mOWE4NjE4NDJh
MTBkYmJiODBiYzg5ZDI2MDZhODhlMGI3ZjJlN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlCYXNlLmgKQEAgLTMzLDIxICszMyw4IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLSNpZiBQTEFURk9STShDT0NP
QSkKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENP
Q09BKQotT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZh
Y2VTd2FwQ2hhaW47Ci1jbGFzcyBJT1N1cmZhY2U7Ci0jZW5kaWYKLQogLy8gQSBiYXNlIGNsYXNz
IGZvciBSZW1vdGVHcmFwaGljc0NvbnRleHRHTCBwcm94eSBzaWRlIGltcGxlbWVudGF0aW9uCiAv
LyBUaGlzIGltcGxlbWVudHMgdGhlIHBhcnRzIHRoYXQgYXJlIHVzaW5nIFdlYkNvcmUgaW50ZXJu
YWwgZnVuY3Rpb25hbGl0eToKIC8vIC0gRHJhd2luZyBidWZmZXIgdHJhY2tpbmcgbWFuYWdlbWVu
dC4KQEAgLTU5LDcgKzQ2LDYgQEAgcHVibGljOgogCiAgICAgLy8gT3RoZXIgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0wgb3ZlcnJpZGVzLgogICAgIHVzaW5nIEdyYXBoaWNzQ29udGV4dEdMOjpp
c0VuYWJsZWQ7Ci0gICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFs
OwogICAgIEV4dGVuc2lvbnNHTCYgZ2V0RXh0ZW5zaW9ucygpIGZpbmFsOwogICAgIHZvaWQgc2V0
Q29udGV4dFZpc2liaWxpdHkoYm9vbCkgZmluYWw7CiAgICAgYm9vbCBpc0dMRVMyQ29tcGxpYW50
KCkgY29uc3QgZmluYWw7CkBAIC02OSw5ICs1NSw2IEBAIHB1YmxpYzoKICAgICBHQ0dMYml0Zmll
bGQgZ2V0QnVmZmVyc1RvQXV0b0NsZWFyKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtYXJrTGF5
ZXJDb21wb3NpdGVkKCkgZmluYWw7CiAKLSNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgR3JhcGhpY3NDb250ZXh0R0xDViogYXNDVigpIGZpbmFsOwotI2VuZGlmCiAg
ICAgLy8gT3RoZXIgRXh0ZW5zaW9uR0wgb3ZlcnJpZGVzLgogICAgIHVzaW5nIEV4dGVuc2lvbnNH
TDo6aXNFbmFibGVkOwogICAgIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJikgZmluYWw7CkBA
IC04Myw5ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldG5Vbmlmb3JtZnZFWFQoR0NHTHVp
bnQsIEdDR0xpbnQsIEdDR0xzaXplaSwgR0NHTGZsb2F0KikgZmluYWw7CiAgICAgdm9pZCBnZXRu
VW5pZm9ybWl2RVhUKEdDR0x1aW50LCBHQ0dMaW50LCBHQ0dMc2l6ZWksIEdDR0xpbnQqKSBmaW5h
bDsKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgUmVmUHRyPE1lZGlhU2Ft
cGxlPiBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpIGZpbmFsOwotI2VuZGlm
CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBhdmFpbGFi
bGVFeHRlbnNpb25zLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RhYmxlRXh0ZW5zaW9ucyk7CkBAIC05
MywxNiArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGVuc3VyZUV4dGVuc2lv
bkVuYWJsZWQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlNYXJr
Q29udGV4dENoYW5nZWQoKSA9IDA7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5Q
dHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVyOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZh
Y2U+IG1fZGlzcGxheUJ1ZmZlcjsKLSNlbGlmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLSAgICB2
b2lkIHNldFBsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllckNvbnRhaW5lciYmKTsKLSAgICBQbGF0
Zm9ybUxheWVyQ29udGFpbmVyIG1fcGxhdGZvcm1MYXllcjsKLSNlbmRpZgogcHJpdmF0ZToKLSAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwotCiAgICAgLy8gR3VhcmRlZCBieSB3YWl0VW50
aWxJbml0aWFsaXplZCgpLgogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2F2YWlsYWJsZUV4dGVuc2lv
bnM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcmVxdWVzdGFibGVFeHRlbnNpb25zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFTYW1wbGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAppbmRleCAyNzdlOGY4ODg3ZTIy
YWEwMjgwM2E1MDM2MGViM2RjMzJmYzRlN2ViLi5lYWEwYTFkNDFmNmUyNjA5ZTQwMDJmZjQyNmY3
NTcwODgwM2M5YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNhbXBs
ZUFWRk9iakM+IGNyZWF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIEF0b21TdHJpbmcgdHJh
Y2tJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNhbXBsZUFWRk9iakMoc2FtcGxlLCB0
cmFja0lEKSk7IH0KICAgICBzdGF0aWMgUmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgVmlkZW9Sb3RhdGlvbiByb3RhdGlvbiA9IFZpZGVvUm90
YXRpb246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxzZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYVNhbXBsZUFWRk9iakMoc2FtcGxlLCByb3RhdGlvbiwgbWlycm9yZWQpKTsgfQogICAg
IHN0YXRpYyBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVhdGVJbWFnZVNhbXBsZShQaXhl
bEJ1ZmZlciYmKTsKLSAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRl
SW1hZ2VTYW1wbGUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIFZpZGVvUm90YXRpb24s
IGJvb2wgbWlycm9yZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8TWVkaWFT
YW1wbGVBVkZPYmpDPiBjcmVhdGVJbWFnZVNhbXBsZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4mJiwgVmlkZW9Sb3RhdGlvbiwgYm9vbCBtaXJyb3JlZCk7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYpOwogICAg
IHN0YXRpYyBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNsb25lU2FtcGxlQnVmZmVyQW5k
U2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3MjU4ZTg2NDVmMTQwNDYzMmJiMDI4NGVkODlkZjc5MDgz
ZGUxMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2VDb2NvYS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oIgotCi0jaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmIFBMQVRGT1JNKENPQ09BKQot
Ci0jaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgotI2ltcG9y
dCAiV2ViR0xMYXllci5oIgotI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KLQot
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0jaW1wb3J0ICJDVlV0aWxpdGllcy5oIgotI2ltcG9y
dCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci12b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQotewotICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIG1fd2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJH
TExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBpeGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxS
YXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxwaGFdKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAg
W21fd2ViR0xMYXllciBzZXROYW1lOkAiV2ViR0wgTGF5ZXIiXTsKLSNlbmRpZgotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKLX0KLQotCi1QbGF0Zm9ybUxheWVyKiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fd2ViR0xMYXllci5nZXQoKTsKLX0KLQotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKLUdyYXBoaWNzQ29udGV4dEdMQ1YqIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlOjphc0NWKCkKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgotCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLVJlZlB0cjxNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2U6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkK
LXsKLSAgICBpZiAoIW1fZGlzcGxheUJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIobV9kaXNwbGF5QnVmZmVy
LT5zdXJmYWNlKCkpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFdU
Rk1vdmUoKnBpeGVsQnVmZmVyKSwgTWVkaWFTYW1wbGVBVkZPYmpDOjpWaWRlb1JvdGF0aW9uOjpV
cHNpZGVEb3duLCB0cnVlKTsKLX0KLSNlbmRpZgotCi19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCAzYzIy
ZjVkNjRkODhjOTdmYmU0OGIyZmFmNGQ2Y2Q0NWQ1N2JiNDViLi43NmRhMGZlMGY0NGEzYTg0NDBl
NjYzOWVhOWQ3ZTBhODk2MDY4OGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCkBAIC0yOCw3ICsyOCw3IEBACiBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAvLyBBIGxheWVyIGNsYXNzIHNob3dpbmcg
b25lIElPU3VyZmFjZS4KLUBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKIAogLSAoaWQpaW5pdFdpdGhE
ZXZpY2VQaXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOihi
b29sKWNvbnRlbnRzT3BhcXVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93Yy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZVdDLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHlCYXNlV0MuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzE5NzJjMTQx
Y2E5MDU0ZGNjOTRkYmUxMjgzMmM0NjBkNmI3ZDFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dj
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlV0MuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBTb255IEludGVyYWN0aXZl
IEVudGVydGFpbm1lbnQgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCIKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdF
QkdMKSAmJiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCi0KLSNpbmNsdWRlICJUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCi17Ci19Ci0KLVBs
YXRmb3JtTGF5ZXIqIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUxh
eWVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybUxheWVyLmdldCgpOwotfQotCi12
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpzZXRQbGF0Zm9ybUxheWVyKFBs
YXRmb3JtTGF5ZXJDb250YWluZXImJiBwbGF0Zm9ybUxheWVyKQotewotICAgIG1fcGxhdGZvcm1M
YXllciA9IFdURk1vdmUocGxhdGZvcm1MYXllcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtl
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA5YmVhMDIyZTM4OTFhNTYz
NjhmM2YxY2QwMmQ3OWUyNjUxNzBkMTk0Li4zNTBmZGQ0OTdlYWFhYjcxMTA1OWM1NGI1MDc1MDE1
YjE5Mzc5MzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTgyLDYgKzgyLDcgQEAgbGlz
dChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBVSVByb2Nlc3Mvd2luL1dlYlByb2Nlc3NQb29s
V2luLmNwcAogICAgIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKIAorICAgIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHAKICAgICBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5jcHAK
IAogICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL3dpbi9WaWRlb0xheWVyUmVtb3RlV2luLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5kZXggMTE0MjE2NmQy
ZTE1NWZhYjVlZTgxYmQ1Y2EyOWE2YmYwN2ZmYzcwYS4uOWNhZGZjMDJmNGFiNmM4YmMxNjM1ODky
MjU3M2Y5OTdmZmM0ODg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHkuY3BwCkBAIC0zNSwyNCArMzUsMTAgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaD4KLSNlbmRpZgotCi0jaWYgVVNFKEdS
QVBISUNTX0xBWUVSX1dDKQotI2luY2x1ZGUgIldDUGxhdGZvcm1MYXllckdDR0wuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJl
ZlB0cjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpjcmVhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1
dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQotewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLCBhdHRyaWJ1dGVz
LCByZW5kZXJpbmdCYWNrZW5kKSk7Ci19Ci0KIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGRlZmF1
bHRTdHJlYW1TaXplID0gMSA8PCAyMTsKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24sIGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmli
dXRlcywgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKQEAgLTY2
LDkgKzUyLDYgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eShHUFVQcm9jZXNzQ29ubmVjdGlvbiYKICAgICAvLyBUT0RPOiBXZSBtdXN0
IHdhaXQgdW50aWwgaW5pdGlhbGl6ZWQsIGJlY2F1c2UgYXQgdGhlIG1vbWVudCB3ZSBjYW5ub3Qg
cmVjZWl2ZSBJUEMgbWVzc2FnZXMKICAgICAvLyBkdXJpbmcgd2FpdCB3aGlsZSBpbiBzeW5jaHJv
bm91cyBzdHJlYW0gc2VuZC4gU2hvdWxkIGJlIGZpeGVkIGFzIHBhcnQgb2YgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzIxMS4KICAgICB3YWl0VW50aWxJbml0aWFs
aXplZCgpOwotI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLSAgICBzZXRQbGF0Zm9ybUxheWVy
KG1ha2VVbmlxdWU8V0NQbGF0Zm9ybUxheWVyR0NHTD4obV9ncmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIpKTsKLSNlbmRpZgogfQogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp+UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSgpCkBAIC04NywyMCArNzAsNiBAQCB2b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQog
ICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQotewot
ICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBhdXRvIHNlbmRS
ZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlByZXBh
cmVGb3JEaXNwbGF5KCksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFy
ZUZvckRpc3BsYXk6OlJlcGx5KCkpOwotICAgIGlmICghc2VuZFJlc3VsdCkgewotICAgICAgICBt
YXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtYXJrTGF5ZXJD
b21wb3NpdGVkKCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5OjplbnN1cmVFeHRlbnNpb25FbmFibGVkKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQogewog
ICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5oCmluZGV4IGRkMmU4MGI2NWQyMzRkNjk4ZTkwYzgzYTBjNWRjMzk5NTg3ZGQ3YWQuLjRh
YzE4MDhlNjU0ZjU3OWI1MTM3ZDRiMTk2MmNkNGY5NGFiODExYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5oCkBAIC00NywyMCArNDcsMTkgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAvLyBjb252ZXJ0cyB0aGUgaW50ZXJmYWNlIHRvIGEgc2VxdWVuY2Ugb2YgSVBDIG1l
c3NhZ2VzIGFuZCBzZW5kcyB0aGUgbWVzc2FnZXMgdG8KIC8vIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMIGluIEdQVSBwcm9jZXNzLgogLy8gVGhlIGltcGxlbWVudGF0aW9uIGlzIGxhcmdlbHkgZ2Vu
ZXJhdGVkIGJ5IHJ1bm5pbmcgVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1ncHVwLXdlYmdsLgotY2xh
c3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSBmaW5hbAorY2xhc3MgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eQogICAgIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAg
ICwgcHJpdmF0ZSBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CiAgICAgLCBwdWJsaWMgV2Vi
Q29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWZQdHI8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eT4gY3JlYXRlKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKTsKLSAgICB+UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSgpIGZpbmFsOworICAg
IH5SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KCk7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciBvdmVycmlkZXMuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogICAgIC8vIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlIG92ZXJyaWRlcy4KICAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KSBmaW5hbDsKLSAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CiAg
ICAgdXNpbmcgV2ViQ29yZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OmlzRW5h
YmxlZDsKICAgICB2b2lkIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJiBleHRl
bnNpb24pIGZpbmFsOwogICAgIHZvaWQgbm90aWZ5TWFya0NvbnRleHRDaGFuZ2VkKCkgZmluYWw7
CkBAIC0zMTksNiArMzE4LDggQEAgcHVibGljOgogICAgIC8vIEVuZCBvZiBsaXN0IHVzZWQgYnkg
Z2VuZXJhdGUtZ3B1cC13ZWJnbCBzY3JpcHQuCiAKIHByb3RlY3RlZDoKKyAgICBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIp
OworCiAgICAgLy8gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Ugb3ZlcnJpZGVzLgog
ICAgIHZvaWQgd2FpdFVudGlsSW5pdGlhbGl6ZWQoKSBmaW5hbDsKIApAQCAtMzM4LDYgKzMzOSw3
IEBAIHByb3RlY3RlZDoKICAgICB9CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpOyB9CiAK
KyAgICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgbV9ncmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgeyBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIHByaXZh
dGU6CiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCiAgICAgdm9pZCB3YXNDcmVhdGVk
KGJvb2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUmJiwgU3RyaW5nJiYgYXZhaWxhYmxlRXh0
ZW5zaW9ucywgU3RyaW5nJiYgcmVxdWVzdGVkRXh0ZW5zaW9ucyk7CkBAIC0zNTAsMTEgKzM1Miw5
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNjb25uZWN0R3B1UHJvY2Vzc0lmTmVlZGVkKCk7CiAg
ICAgdm9pZCBhYmFuZG9uR3B1UHJvY2VzcygpOwogCi0gICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICBHUFVQ
cm9jZXNzQ29ubmVjdGlvbiogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKICAgICBib29sIG1fZGlk
SW5pdGlhbGl6ZSB7IGZhbHNlIH07CiAgICAgR0NHTGVudW0gbV9lcnJvcldoZW5Db250ZXh0SXNM
b3N0ID0gTk9fRVJST1I7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhp
Y3NDb250ZXh0R0xJZGVudGlmaWVyIHsgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpIH07CiAgICAgSVBDOjpTdHJlYW1DbGllbnRDb25uZWN0aW9uIG1fc3RyZWFtQ29ubmVj
dGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Q29jb2EubW0KaW5kZXggNTQ5M2ZmZTBjNzQzZDlkYzE3NGE1NmJmYzZmMTQ5OGNk
OTA5MWU3NS4uMTQyNGVmOGEwZjNiZDlmNjU2NjlmZjdlODcxNjI3MmY5YTU1YWViNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW0KQEAgLTI3LDE1ICsyNyw2OCBAQAogI2ltcG9ydCAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5oIgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpCisjaW1w
b3J0ICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW1wb3J0ICJHUFVQcm9jZXNzQ29u
bmVjdGlvbi5oIgogI2ltcG9ydCAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgor
I2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9DVlV0aWxpdGllcy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgorI2ltcG9ydCA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9J
T1N1cmZhY2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1dlYkdMTGF5ZXIuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRp
b25zLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LXZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQor
bmFtZXNwYWNlIHsKKworY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hIGZp
bmFsIDogcHVibGljIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkgeworcHVibGljOgorICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xMYXllcjsgfQorICAgIFdlYkNv
cmU6OklPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUJ1
ZmZlci5nZXQoKTsgfQorCisgICAgLy8gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSBvdmVy
cmlkZXMuCisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fd2ViR0xMYXllci5nZXQoKTsgfQorICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXko
KSBmaW5hbDsKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisgICAgV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xDViogYXNDVigpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7
IH0KKyNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVmUHRyPFdlYkNvcmU6
Ok1lZGlhU2FtcGxlPiBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpIGZpbmFs
OworI2VuZGlmCitwcml2YXRlOgorICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICBSZXRhaW5QdHI8
V2ViR0xMYXllcj4gbV93ZWJHTExheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
T1N1cmZhY2U+IG1fZGlzcGxheUJ1ZmZlcjsKKyAgICBmcmllbmQgY2xhc3MgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTsKK307CisKK1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hKEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJp
bmdCYWNrZW5kKQorICAgIDogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShncHVQcm9jZXNz
Q29ubmVjdGlvbiwgYXR0cmlidXRlcywgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICBhdXRvIGF0
dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKKyAgICBtX3dlYkdMTGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdp
dGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6
IWF0dHJzLmFscGhhXSk7CisjaWZuZGVmIE5ERUJVRworICAgIFttX3dlYkdMTGF5ZXIgc2V0TmFt
ZTpAIldlYkdMIExheWVyIl07CisjZW5kaWYKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2E6OnBhaW50Q29tcG9zaXRlZFJl
c3VsdHNUb01lZGlhU2FtcGxlKCkKK3sKKyAgICBpZiAoIW1fZGlzcGxheUJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IFdlYkNvcmU6OmNyZWF0
ZUNWUGl4ZWxCdWZmZXIobV9kaXNwbGF5QnVmZmVyLT5zdXJmYWNlKCkpOworICAgIGlmICghcGl4
ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBXZWJDb3JlOjpN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFdURk1vdmUoKnBpeGVsQnVmZmVy
KSwgV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3du
LCB0cnVlKTsKK30KKyNlbmRpZgorCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlD
b2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTYxLDQgKzExNCwxNCBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKIAogfQogCitSZWZQdHI8UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywg
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICBhdXRv
IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29h
KFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCksIGF0
dHJpYnV0ZXMsIHJlbmRlcmluZ0JhY2tlbmQpKTsKKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnRleHQ7Cit9CisKK30K
KwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlX
Qy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTRkYzgxOThlMThlZjNkZTYzNmE0NmYyOGFkOWYzZGIzZGZkN2E2
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3Mvd2MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDLmNwcApAQCAtMCwwICsxLDg0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVu
dCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgVVNFKEdSQVBI
SUNTX0xBWUVSX1dDKQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldDUGxhdGZvcm1MYXllckdDR0wuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIHsKKwor
Y2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDIGZpbmFsIDogcHVibGljIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkgeworcHVibGljOgorICAgIC8vIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkgb3ZlcnJpZGVzLgorICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBm
aW5hbDsKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9wbGF0Zm9ybUxheWVyLmdldCgpOyB9CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTYW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b01lZGlhU2FtcGxlKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorI2VuZGlmCitwcml2YXRl
OgorICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQyhHUFVQcm9jZXNzQ29ubmVjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYsIFJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKTsKKworICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIgbV9wbGF0
Zm9ybUxheWVyOworICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OworfTsKKworUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eVdDOjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5V0MoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9u
LCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMs
IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCisgICAgOiBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5KGdwdVByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVz
LCByZW5kZXJpbmdCYWNrZW5kKQorICAgICwgbV9wbGF0Zm9ybUxheWVyKG1ha2VVbmlxdWU8V0NQ
bGF0Zm9ybUxheWVyR0NHTD4obV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIpKQoreworfQor
Cit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlXQzo6cHJlcGFyZUZvckRpc3BsYXko
KQoreworICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRv
IHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OlByZXBhcmVGb3JEaXNwbGF5KCksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6
UHJlcGFyZUZvckRpc3BsYXk6OlJlcGx5KCkpOworICAgIGlmICghc2VuZFJlc3VsdCkgeworICAg
ICAgICBtYXJrQ29udGV4dExvc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtYXJr
TGF5ZXJDb21wb3NpdGVkKCk7Cit9CisKK30KKworUmVmUHRyPFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmNyZWF0ZShjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5V0MoV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgYXR0cmlidXRlcywgcmVuZGVyaW5nQmFj
a2VuZCkpOworfQorCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>