<?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>217710</bug_id>
          
          <creation_ts>2020-10-14 08:35:43 -0700</creation_ts>
          <short_desc>Introduce a RemoteAudioSourceProvider to receive audio samples for web audio from GPUProcess</short_desc>
          <delta_ts>2020-10-15 04:37:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217704</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697722</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 08:35:43 -0700</bug_when>
    <thetext>Introduce a RemoteAudioSourceProvider to receive audio samples for web audio from GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697725</commentid>
    <comment_count>1</comment_count>
      <attachid>411326</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 08:43:43 -0700</bug_when>
    <thetext>Created attachment 411326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697727</commentid>
    <comment_count>2</comment_count>
      <attachid>411327</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 08:48:13 -0700</bug_when>
    <thetext>Created attachment 411327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697736</commentid>
    <comment_count>3</comment_count>
      <attachid>411328</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 09:11:33 -0700</bug_when>
    <thetext>Created attachment 411328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697742</commentid>
    <comment_count>4</comment_count>
      <attachid>411331</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 09:30:29 -0700</bug_when>
    <thetext>Created attachment 411331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697811</commentid>
    <comment_count>5</comment_count>
      <attachid>411331</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-14 12:00:56 -0700</bug_when>
    <thetext>Comment on attachment 411331
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        This allows reusing WebAudioSourceProviderAVFObjC for samples coming from video playback living in GPUProcess.

s/video playback/audio playback/

&gt; Source/WebCore/platform/mediastream/mac/MediaStreamTrackAudioSourceProviderAVFObjC.h:36
&gt; +class MediaStreamTrackAudioSourceProviderAVFObjC final

Nit: it looks like this class doesn&apos;t use AVFoundation, so we could rename it. `MediaStreamTrackAudioSourceProviderCocoa` maybe?

&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:54
&gt; +class WEBCORE_EXPORT WebAudioSourceProviderAVFObjC

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698027</commentid>
    <comment_count>6</comment_count>
      <attachid>411412</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 23:54:58 -0700</bug_when>
    <thetext>Created attachment 411412
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698045</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-15 03:00:50 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698051</commentid>
    <comment_count>8</comment_count>
      <attachid>411421</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-15 03:49:51 -0700</bug_when>
    <thetext>Created attachment 411421
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698068</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-15 04:36:51 -0700</bug_when>
    <thetext>Committed r268521: &lt;https://trac.webkit.org/changeset/268521&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411421.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698069</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-15 04:37:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/70331177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411326</attachid>
            <date>2020-10-14 08:43:43 -0700</date>
            <delta_ts>2020-10-14 08:57:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217710-20201014174341.patch</filename>
            <type>text/plain</type>
            <size>39192</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYwYTE0OGEwNTQ2NjBj
NGQ0NzUwMDMyZTNiYmQ4NGYxOGYyNjY1Yi4uZjdhNWNiMjk2MzE0N2FhNTE5YjZiMjQ2MjQ1Y2Yw
NzM2NTg4ZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1
ZGlvIGZyb20gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3BsaXQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgTWVkaWFTdHJl
YW1UcmFjayBzcGVjaWZpYyBiaXRzIGluIGEgc2VwYXJhdGUgTWVkaWFTdHJlYW1UcmFja0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDIGNsYXNzLgorICAgICAgICBUaGlzIGFsbG93cyByZXVzaW5n
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIGZvciBzYW1wbGVzIGNvbWluZyBmcm9tIHZp
ZGVvIHBsYXliYWNrIGxpdmluZyBpbiBHUFVQcm9jZXNzLgorICAgICAgICBObyBjaGFuZ2Ugb2Yg
YmVoYXZpb3IuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6TWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fk1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omhhc05ld0NsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5h
YmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmguCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6cmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMpOgorCiAyMDIwLTEwLTEzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJjYW0gdmlkZW8gZnJvbSBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpIHRvIDJEIGNhbnZhcyBmYWlscyBvbiBTYWZh
cmkgb24gaVBob25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1MDgwOTViYzZhNTY3YWFkNzY0NmNjOWRlNDUxZDlk
ZjVlMzk1NWMuLjU3ZjAyMjJhMDU2MDlmOTc1OTBkOGUwYWEwM2Y4NzM1ZDZkOTRjMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMTAtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBhIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHVz
ZSBvZiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyB0byBpbXBsZW1lbnQgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlci4KKyAgICAgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBjdXJy
ZW50bHkgaW1wbGVtZW50cyBhbiBBdWRpb1NvdXJjZVByb3ZpZGVyIGJ1dCBpdCBpcyBub3QgeWV0
IGNvbm5lY3RlZCB0byBHUFVQcm9jZXNzIG1lZGlhIHBsYXllcnMuCisgICAgICAgIFRoaXMgd2ls
bCBiZSBpbXBsZW1lbnRlZCBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjphdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFz
TmV3Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KwogMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
W1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJhc2VkIFNQSSBmb3IgV0tQcmVmZXJlbmNl
cyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJuYWwgYmVoYXZpb3Igd2l0aG91dCBhbHdh
eXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxYWZj
YjgwN2RkZTkwODg3ZDMxNGE3NjcxMWI3ZDUzMTliYTgwNTg0Li4zNWE2Mjc5YTE4NDNkNWFjYTA2
ZTViYzBhZjAyYjdkNTlmZDVkNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTUzMiw2
ICs1MzIsNyBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJD
b2NvYS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMmIzZDAzNDczNDgxYzc4YTJlMDAxOTc1ZWFlYjA2
NDIzNTZiOTk5Li5jYTNlNTcxZjdlMzQ3ZWYwMGNjNDIzYjM0YzM5NmQ5ZTY2OWI3YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01MzE2LDcgKzUzMTYsNyBAQAogCQlGRDU4MUZBRjE1MjBGOTFGMDAzQTdBNzUgLyogT3NjaWxs
YXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZENTgxRkFDMTUyMEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlG
RDU4MUZCNTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDU4MUZCMjE1MjBGOTNCMDAzQTdBNzUg
LyogUGVyaW9kaWNXYXZlLmggKi87IH07CiAJCUZENjI5RUEzMTU0QjQ3MTYwMDA2RDAyNiAvKiBB
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNw
ZWN0b3JOb2RlLmggKi87IH07Ci0JCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDYyRjUyRDE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRl
ckNsaWVudC5oICovOyB9OworCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3Vy
Y2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQ2MkY1MkQxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRDY3MUE3ODE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjcxQTc1
MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovOyB9Owog
CQlGRDZFRDJDNDEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzIxMzZC
OEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLzsgfTsKIAkJRkQ2RUQy
QzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzYxMzZCOEU2NjAwM0NGMDcy
IC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oICovOyB9OwpAQCAtNzU5NCw2ICs3NTk0LDggQEAKIAkJ
NDE3MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTcyNTNBODEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyog
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IExpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJB
QzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg7IHBhdGggPSBs
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3MDQ0LDYgKzE3MDQ2LDggQEAKIAkJCQkwN0E2RDg0OTFGRUI3MDBDMDA2NDQxREUgLyogRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuaCAqLywKIAkJCQkwN0E2RDg0NzFGRUI3MDBCMDA2NDQx
REUgLyogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgKi8sCiAJCQkJMDdBNkQ4NEExRkVC
NzAwRDAwNjQ0MURFIC8qIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaCAqLywKKwkJCQk0MTc0
RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmNwcCAqLywKKwkJCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8sCiAJCQkJMDc0NEVDRUIx
RTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCAqLywKIAkJCQkwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLywKIAkJCQkwN0VF
NzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCA1NjlmOTAxOTcwZjIyYzI4MjU2N2Vi
YjBiNjNjM2JhZWVjZTM4NWRjLi4yYzc2MzA3YzhhODc2ZTU4NDA4MGE1M2U1MGNhMjI4NzFiM2Iz
ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAj
aW5jbHVkZSA8d3RmL1VVSUQuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgIldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCiAjZWxpZiBFTkFCTEUoV0VCX0FVRElPKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKSAmJiBVU0UoR1NUUkVBTUVS
KQogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuaCIKICNlbHNlCkBAIC0x
ODgsNyArMTg4LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlm
ICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKQotICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIg
PSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKCp0aGlzKTsKKyAgICAgICAg
bV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOjpjcmVhdGUoKnRoaXMpOwogI2VsaWYgVVNFKExJQldFQlJUQykgJiYgVVNFKEdT
VFJFQU1FUikKICAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlcikKICAgICAgICAgbV9hdWRp
b1NvdXJjZVByb3ZpZGVyID0gQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6Y3JlYXRlKCp0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA0N2M4NWY4MmU2YmMyMDJjZDAxMTg3ZjE3MjQ4
NTVmNzdiNjY3NzAzLi4wOWIwOGY0Nzg2YjUyNzlhMjE4YTM3Y2U4ZTlkNmI5NjVjNDJiNjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC03MSw3ICs3MSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxS
ZWFsdGltZU1lZGlhU291cmNlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4K
ICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlLCBXZWFrUHRy
RmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
LSAgICAsIHByb3RlY3RlZCBMb2dnZXJIZWxwZXIKKyAgICAsIHB1YmxpYyBMb2dnZXJIZWxwZXIK
ICNlbmRpZgogewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJl
YW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzM5ZmVk
OGVlZDUzMDY0YzU1YzcwMmRiZjdmNGFjMjBlOTY0YTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPE1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOjpjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMoc291cmNlKSk7Cit9CisKK01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UpCisgICAgOiBtX2NhcHR1cmVTb3VyY2UobWFr
ZVdlYWtQdHIoc291cmNlKSkKKyAgICAsIG1fc291cmNlKHNvdXJjZS5zb3VyY2UoKSkKK3sKK30K
KworTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+TWVkaWFTdHJl
YW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCkKK3sKKyAgICBBU1NFUlQoIW1fY29u
bmVjdGVkKTsKKyAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpo
YXNOZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQoreworICAgIGJv
b2wgc2hvdWxkQmVDb25uZWN0ZWQgPSAhIWNsaWVudDsKKyAgICBpZiAobV9jb25uZWN0ZWQgPT0g
c2hvdWxkQmVDb25uZWN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGVkID0g
c2hvdWxkQmVDb25uZWN0ZWQ7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9jYXB0dXJl
U291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fZW5hYmxlZCA9IG1fY2FwdHVyZVNvdXJjZS0+ZW5hYmxlZCgpOworICAgIG1fY2FwdHVyZVNv
dXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9i
c2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
IHRyYWNrKQoreworICAgIG1fZW5hYmxlZCA9IHRyYWNrLmVuYWJsZWQoKTsKK30KKworLy8gTWF5
IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KK3ZvaWQgTWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3VudCkKK3sKKyAgICBp
ZiAoIW1fZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVjZWl2ZWROZXdBdWRpb1Nh
bXBsZXMoZGF0YSwgZGVzY3JpcHRpb24sIGZyYW1lQ291bnQpOworfQorCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlMjkzNGM3MDVkMzg1ODQ1NDYzNzNmM2UxZmU5YTUxOTgxYzBkNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
aCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBN
ZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgZmluYWwKKyAgICA6IHB1
YmxpYyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQworICAgICwgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6Ok9ic2VydmVyCisgICAgLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBs
ZU9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gY3JlYXRlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7
CisgICAgfk1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpOworCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworCisgICAgLy8gV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMKKyAgICB2b2lkIGhhc05ld0NsaWVudChBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50KikgZmluYWw7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgV1RGOjpM
b2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlcigpIGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLmdldCgp
OyB9CisjZW5kaWYKKworICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgor
ICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQor
ICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5h
bCB7IH0KKyAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgZmluYWwgeyB9CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgZmluYWw7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
b1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIFdlYWtQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+IG1fY2FwdHVyZVNvdXJjZTsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9z
b3VyY2U7CisgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX2Nvbm5lY3Rl
ZCB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMuaAppbmRleCBlZDc4MzBjNGQwNjA2NTU1ZTk5MDE3YjZkZGFhYjUz
OTExYTBlZWVkLi45OTEzYTFhNzUzNGU3ZmVhMGRhMWE2ODQ4YTkyNzczZTQyMjgwODUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxMCArMjUsOSBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjaWYgRU5BQkxFKFdFQl9BVURJTykKIAogI2luY2x1ZGUgIkNBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9D
b3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC00MSw0MCArNDAsNDEg
QEAgdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVz
Y3JpcHRpb24gKkNNRm9ybWF0RGVzY3JpcHRpb25SZWY7CiB0eXBlZGVmIHN0cnVjdCBvcGFxdWVD
TVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CiAKK25hbWVzcGFjZSBXVEYgeworY2xh
c3MgTG9nZ2VySGVscGVyOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTsKIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNz
IFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwogCi1jbGFzcyBX
RUJDT1JFX0VYUE9SVCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyBmaW5hbAotICAgIDog
cHVibGljIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIKLSAgICAsIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpPYnNlcnZlcgotICAgICwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNl
cnZlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QworICAgIDogcHVibGljIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IGNyZWF0ZShNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpOwotICAgIHZpcnR1YWwgfldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDKCk7CisgICAgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsKKyAgICB+V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsKIAotICAgIHZvaWQgcHJlcGFyZShjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKLSAgICB2b2lkIHVucHJlcGFyZSgpOworcHJvdGVj
dGVkOgorICAgIHZvaWQgcmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMoY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKIAogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpOworICAgIHZpcnR1YWwgdm9pZCBoYXNOZXdDbGllbnQoQXVkaW9Tb3Vy
Y2VQcm92aWRlckNsaWVudCopID0gMDsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICB2
aXJ0dWFsIFdURjo6TG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIoKSA9IDA7CisjZW5kaWYKIAog
ICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIKICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1
cyosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRl
ckNsaWVudCopIGZpbmFsOwogCi0gICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2Vy
dmVyCi0gICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwg
eyB9Ci0gICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
IGZpbmFsIHsgfQotICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmUoY29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uJik7CiAKLSAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpB
dWRpb1NhbXBsZU9ic2VydmVyCi0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBBdWRpb1Nv
dXJjZVByb3ZpZGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKIAotICAgIHNpemVfdCBt
X2xpc3RCdWZmZXJTaXplIHsgMCB9OwogICAgIE9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbj4gbV9pbnB1dERlc2NyaXB0aW9uOwogICAgIE9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXVk
aW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVyTGlzdDsKQEAgLTgyLDE0ICs4Miw4IEBAIHByaXZh
dGU6CiAKICAgICB1aW50NjRfdCBtX3dyaXRlQ291bnQgeyAwIH07CiAgICAgdWludDY0X3QgbV9y
ZWFkQ291bnQgeyAwIH07Ci0gICAgQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogbV9jbGllbnQg
eyBudWxscHRyIH07Ci0gICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIG1fY2FwdHVyZVNvdXJj
ZSB7IG51bGxwdHIgfTsKLSAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Ci0g
ICAgTG9jayBtX2xvY2s7Ci0gICAgYm9vbCBtX2Nvbm5lY3RlZCB7IGZhbHNlIH07Ci0gICAgYm9v
bCBtX2VuYWJsZWQgeyB0cnVlIH07CiB9OwogCiB9CiAKLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
bW0KaW5kZXggOTFlODg2NTc5NWI1OWQwYmRhMzYzNDE0ODNlYWExMjBjMWFmZGM1ZC4uMDhmNWRj
ZTg2MjcxOTZjMmNiZTY2ZTI1YWNmNjhlZDgwZjExMDU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgogCi0j
aWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQogCiAjaW1wb3J0ICJBdWRpb0J1cy5oIgogI2ltcG9ydCAiQXVkaW9DaGFubmVs
LmgiCkBAIC00NywyNyArNDcsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29u
c3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24gPSAxOwogCi1SZWY8V2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM+IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKK1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoc291cmNlKSk7CiB9CiAKLVdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291cmNlKQotICAgIDogbV9jYXB0dXJlU291cmNl
KCZzb3VyY2UpCi0gICAgLCBtX3NvdXJjZShzb3VyY2Uuc291cmNlKCkpCi0gICAgLCBtX2VuYWJs
ZWQoc291cmNlLmVuYWJsZWQoKSkKK1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKQogewotICAgIG1fc291cmNlLT5hZGRBdWRpb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCit2b2lkIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50
KQogewotICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKLQot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKLQotICAgIGlmIChtX2Nvbm5lY3Rl
ZCAmJiBtX2NhcHR1cmVTb3VyY2UpCi0gICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2Jz
ZXJ2ZXIoKnRoaXMpOworICAgIGlmIChtX2NsaWVudCA9PSBjbGllbnQpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAgICBoYXNOZXdDbGllbnQoY2xpZW50KTsKIH0K
IAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlv
QnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCkBAIC0xMDUsMjUgKzk4LDYgQEAgdm9p
ZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBi
dXMsIHNpemVfdCBmcmFtZXNUb1AKICAgICBtX3JlYWRDb3VudCArPSBmcmFtZXNUb1Byb2Nlc3M7
CiB9CiAKLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRp
b1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgaWYgKG1fY2xpZW50ID09IGNs
aWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQgPSBjbGllbnQ7Ci0KLSAgICBp
ZiAoIW1fY2FwdHVyZVNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fY2xpZW50
ICYmICFtX2Nvbm5lY3RlZCkgewotICAgICAgICBtX2Nvbm5lY3RlZCA9IHRydWU7Ci0gICAgICAg
IG1fY2FwdHVyZVNvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwotICAgIH0gZWxzZSBpZiAoIW1f
Y2xpZW50ICYmIG1fY29ubmVjdGVkKSB7Ci0gICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+cmVtb3Zl
T2JzZXJ2ZXIoKnRoaXMpOwotICAgICAgICBtX2Nvbm5lY3RlZCA9IGZhbHNlOwotICAgIH0KLX0K
LQogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGZvcm1hdCkKIHsKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fbG9jayk7CkBAIC0xNDYsNyArMTIwLDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24m
IGYKICAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0
PihtX291dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwogCiAgICAgaWYgKCFtX2RhdGFTb3VyY2Up
Ci0gICAgICAgIG1fZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGtS
aW5nQnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCAqbV9jYXB0dXJlU291cmNlKTsKKyAgICAg
ICAgbV9kYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoa1JpbmdCdWZm
ZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIGxvZ2dlckhlbHBlcigpKTsKICAgICBtX2RhdGFTb3Vy
Y2UtPnNldElucHV0Rm9ybWF0KG1faW5wdXREZXNjcmlwdGlvbi52YWx1ZSgpKTsKICAgICBtX2Rh
dGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChtX291dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwog
CkBAIC0xNTYsMzIgKzEzMCw5IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OnByZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBmCiAgICAgfSk7CiB9
CiAKLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZSgpCi17Ci0g
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotCi0gICAgbV9pbnB1dERlc2NyaXB0
aW9uID0gV1RGOjpudWxsb3B0OwotICAgIG1fb3V0cHV0RGVzY3JpcHRpb24gPSBXVEY6Om51bGxv
cHQ7Ci0gICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBudWxscHRyOwotICAgIG1fZGF0YVNvdXJjZSA9
IG51bGxwdHI7Ci0gICAgbV9saXN0QnVmZmVyU2l6ZSA9IDA7Ci0gICAgaWYgKG1fY2FwdHVyZVNv
dXJjZSkgewotICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsK
LSAgICAgICAgbV9jYXB0dXJlU291cmNlID0gbnVsbHB0cjsKLSAgICB9Ci19Ci0KLXZvaWQgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHRyYWNrKQotewotICAgIG1fZW5hYmxlZCA9IHRyYWNrLmVuYWJsZWQo
KTsKLX0KLQogLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KLXZvaWQg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQordm9pZCBX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMoY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3VudCkKIHsKLSAgICBpZiAoIW1fZW5hYmxlZCB8
fCAhbV9jb25uZWN0ZWQpCi0gICAgICAgIHJldHVybjsKLQogICAgIEFTU0VSVChkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1
ZGlvU3RyZWFtQmFzaWNUeXBlKTsKICAgICBhdXRvJiBiYXNpY0Rlc2NyaXB0aW9uID0gKldURjo6
Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgaWYgKCFtX2lucHV0RGVzY3JpcHRp
b24gfHwgbV9pbnB1dERlc2NyaXB0aW9uLT5zdHJlYW1EZXNjcmlwdGlvbigpICE9IGJhc2ljRGVz
Y3JpcHRpb24pCkBAIC0xOTcsNCArMTQ4LDQgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnMKIAog
fQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDc3
NjkwZDBkZDUyNzJhMDVlMmE3ODQyMjIxOGEzNWI0MjJiNTc1NWEuLjdhMDZlOTExZGYzNGUxNmNm
OTQ1NmI0MTUyNmRhNjM1YTQyMzAyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU2NCw2
ICs1NjQsNyBAQCBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50
Lm1tCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNz
aW9uSGVscGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZTVmNTQxMGNiZWU1ZDBlNWU4ZGE0ZjVmY2IwZWQzODBkNjM0N2FiMi4u
MjU3YTc0ZGRhZmEwYzE2YTY0MTlkMzU3MTFkOWMyOGY0MjQ4ZmJkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDE5LDYgKzM0MTks
OCBAQAogCQk0MTI4N0Q0QjIyNUMwNUM0MDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU29ja2V0VGFza0Nv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI4N0Q0QzIyNUMwNUM1MDA5
QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNvY2tldFRhc2tDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTI4N0Q0RDIyNUMxNjFGMDA5QTNFMjYgLyogV2ViU29ja2V0VGFzay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMkZGOTE2MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTJGRjkxNzI1MzczRjlEMDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA3NTlBMURFODRGQjAwMDM5RUM2
OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMzA3NTlCMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzU5QzFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29y
a1JUQ01vbml0b3IubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya1JU
Q01vbml0b3IubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTYw
LDYgKzU1NjIsOCBAQAogCQkJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQlDREJCNDlGQjI0MEQ5
NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovLAorCQkJCTQx
MkZGOTE2MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAq
LywKKwkJCQk0MTJGRjkxNzI1MzczRjlEMDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uY3Bw
ICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE0uaCAqLywKIAkJ
CQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDg5ZDZmZTlhOGZiMzIzODRhMjdl
NDI0Zjc5OTkyZTRkYzQ0YzE5NzIuLmNhYjU4MWJiOWViMTQ4YjFkYzQ3ZWIxNTFiYTZlODBiYTAz
M2JlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNE
TS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1v
dGVMZWdhY3lDRE1TZXNzaW9uLmgiCkBAIC0xMTUsNiArMTE2LDExIEBAIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCiAgICAgbV92aWRlb0xheWVy
TWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKICNlbmRpZgogICAgIG1fbWFuYWdlci5k
ZWxldGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsKKworI2lmIEVOQUJMRShXRUJfQVVESU8pICYm
IFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChtX2F1ZGlvU291cmNlUHJvdmlkZXIpCisgICAgICAg
IG1fYXVkaW9Tb3VyY2VQcm92aWRlci0+Y2xvc2UoKTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKQpAQCAtOTI0LDggKzkzMCwxNSBAQCB1bnNpZ25lZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0CiAj
aWYgRU5BQkxFKFdFQl9BVURJTykKIEF1ZGlvU291cmNlUHJvdmlkZXIqIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcigpCiB7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlkZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQ
cm92aWRlciA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZShtX2lkLCAqdGhpcyk7
CisKKyAgICByZXR1cm4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyLmdldCgpOworI2Vsc2UKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggZGU2ZjBlYjM3YjhjYjk1Y2JhYzBmNWM4
Mjk0MzVkMzhkN2E5NzFmOS4uYmM3N2YwOGExZTM5MjU0MTc0Mzc0MTk4MDdlZGIyZjdkYWEzY2Ew
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFZp
ZGVvTGF5ZXJNYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJEYXRhOwogc3RydWN0IFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CkBAIC0zNzQsNiArMzc1LDEwIEBAIHByaXZhdGU6CiAgICAgUmVtb3RlTWVkaWFQbGF5
ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0
Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkQnVmZmVyZWRUaW1lUmFuZ2VzOwogCisjaWYgRU5BQkxF
KFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI+IG1fYXVkaW9Tb3VyY2VQcm92aWRlcjsKKyNlbmRpZgorCiAgICAgSGFzaE1h
cDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZT4+IG1fbWVkaWFSZXNvdXJjZXM7CiAgICAgSGFzaE1hcDxUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+PiBtX2F1ZGlv
VHJhY2tzOwogICAgIEhhc2hNYXA8VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPFZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlPj4gbV92aWRlb1RyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5OTBjZTdkNTU5ZTk4NDliZjllY2Y3MDljZjNkYjMy
MmRjMzdmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oIgorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorZXh0ZXJu
IFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKGlkZW50aWZp
ZXIsIGhlbHBlcikpOworfQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXVEY6Okxv
Z2dlckhlbHBlciYgaGVscGVyKQorICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihoZWxwZXIubG9nZ2VyKCkpCisg
ICAgLCBtX2xvZ0lkZW50aWZpZXIoaGVscGVyLmxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgorewor
ICAgIFVOVVNFRF9QQVJBTShoZWxwZXIpOworfQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
Ojp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlcjo6Y2xvc2UoKQoreworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXI6Omhhc05ld0NsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikKK3sKKyAgICAv
LyBGSVhNRTogcmVnaXN0ZXIvdW5yZWdpc3RlciBhcyBuZWVkZWQuCit9CisKK3ZvaWQgUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgc2l6ZV90IHNpemUpCit7CisgICAgcmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMoZGF0YSwgZGVz
Y3JpcHRpb24sIHNpemUpOworfQorCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dD
aGFubmVsJiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpsb2dDaGFubmVsKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYm
IFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
M2Q1MjdjMzY1ZWFiNzdhZmYxYTgzZTI5ZjgzNDI4YjY2ZDNmMmNiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgZmlu
YWwKKyAgICA6IHB1YmxpYyBXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQwor
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHJvdGVjdGVkIFdURjo6TG9nZ2VySGVs
cGVyCisjZW5kaWYKK3sKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXI+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFdURjo6TG9n
Z2VySGVscGVyJik7CisgICAgflJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoKTsKKworICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRh
JiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7CisgICAg
dm9pZCBjbG9zZSgpOworCisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwg
V1RGOjpMb2dnZXJIZWxwZXImKTsKKworICAgIC8vIFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDCisgICAgdm9pZCBoYXNOZXdDbGllbnQoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudCopIGZpbmFsOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
V1RGOjpMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlcigpIGZpbmFsIHsgcmV0dXJuICp0aGlzOyB9
CisKKyAgICAvLyBXVEY6OkxvZ2dlckhlbHBlcgorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBs
b2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9Cisg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIiOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0IGZpbmFsOworI2VuZGlmCisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFJlZjxjb25z
dCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNl
bmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KaW5kZXggYWU3YTlkM2Fm
NGIzNWRiZTU1NjNlMjJhMDNjNTJjMGQ5OWJhN2M3NC4uNGYzZGU3NzNjMTIzNmYzMzBmNTQwYTlj
OGQ2NDEwMGNmYjA1YmJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIFBMQVRGT1JNKENPQ09BKQogCisjaW1wb3J0ICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAK
</data>
<flag name="commit-queue"
          id="427499"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411327</attachid>
            <date>2020-10-14 08:48:13 -0700</date>
            <delta_ts>2020-10-14 09:11:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217710-20201014174812.patch</filename>
            <type>text/plain</type>
            <size>39740</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYwYTE0OGEwNTQ2NjBj
NGQ0NzUwMDMyZTNiYmQ4NGYxOGYyNjY1Yi4uZjdhNWNiMjk2MzE0N2FhNTE5YjZiMjQ2MjQ1Y2Yw
NzM2NTg4ZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1
ZGlvIGZyb20gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3BsaXQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgTWVkaWFTdHJl
YW1UcmFjayBzcGVjaWZpYyBiaXRzIGluIGEgc2VwYXJhdGUgTWVkaWFTdHJlYW1UcmFja0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDIGNsYXNzLgorICAgICAgICBUaGlzIGFsbG93cyByZXVzaW5n
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIGZvciBzYW1wbGVzIGNvbWluZyBmcm9tIHZp
ZGVvIHBsYXliYWNrIGxpdmluZyBpbiBHUFVQcm9jZXNzLgorICAgICAgICBObyBjaGFuZ2Ugb2Yg
YmVoYXZpb3IuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6TWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fk1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omhhc05ld0NsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5h
YmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmguCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6cmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMpOgorCiAyMDIwLTEwLTEzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJjYW0gdmlkZW8gZnJvbSBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpIHRvIDJEIGNhbnZhcyBmYWlscyBvbiBTYWZh
cmkgb24gaVBob25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1MDgwOTViYzZhNTY3YWFkNzY0NmNjOWRlNDUxZDlk
ZjVlMzk1NWMuLjU3ZjAyMjJhMDU2MDlmOTc1OTBkOGUwYWEwM2Y4NzM1ZDZkOTRjMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMTAtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBhIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHVz
ZSBvZiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyB0byBpbXBsZW1lbnQgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlci4KKyAgICAgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBjdXJy
ZW50bHkgaW1wbGVtZW50cyBhbiBBdWRpb1NvdXJjZVByb3ZpZGVyIGJ1dCBpdCBpcyBub3QgeWV0
IGNvbm5lY3RlZCB0byBHUFVQcm9jZXNzIG1lZGlhIHBsYXllcnMuCisgICAgICAgIFRoaXMgd2ls
bCBiZSBpbXBsZW1lbnRlZCBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjphdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFz
TmV3Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KwogMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
W1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJhc2VkIFNQSSBmb3IgV0tQcmVmZXJlbmNl
cyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJuYWwgYmVoYXZpb3Igd2l0aG91dCBhbHdh
eXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxYWZj
YjgwN2RkZTkwODg3ZDMxNGE3NjcxMWI3ZDUzMTliYTgwNTg0Li4zNWE2Mjc5YTE4NDNkNWFjYTA2
ZTViYzBhZjAyYjdkNTlmZDVkNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTUzMiw2
ICs1MzIsNyBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJD
b2NvYS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMmIzZDAzNDczNDgxYzc4YTJlMDAxOTc1ZWFlYjA2
NDIzNTZiOTk5Li5jYTNlNTcxZjdlMzQ3ZWYwMGNjNDIzYjM0YzM5NmQ5ZTY2OWI3YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01MzE2LDcgKzUzMTYsNyBAQAogCQlGRDU4MUZBRjE1MjBGOTFGMDAzQTdBNzUgLyogT3NjaWxs
YXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZENTgxRkFDMTUyMEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlG
RDU4MUZCNTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDU4MUZCMjE1MjBGOTNCMDAzQTdBNzUg
LyogUGVyaW9kaWNXYXZlLmggKi87IH07CiAJCUZENjI5RUEzMTU0QjQ3MTYwMDA2RDAyNiAvKiBB
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNw
ZWN0b3JOb2RlLmggKi87IH07Ci0JCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDYyRjUyRDE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRl
ckNsaWVudC5oICovOyB9OworCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3Vy
Y2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQ2MkY1MkQxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRDY3MUE3ODE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjcxQTc1
MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovOyB9Owog
CQlGRDZFRDJDNDEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzIxMzZC
OEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLzsgfTsKIAkJRkQ2RUQy
QzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzYxMzZCOEU2NjAwM0NGMDcy
IC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oICovOyB9OwpAQCAtNzU5NCw2ICs3NTk0LDggQEAKIAkJ
NDE3MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTcyNTNBODEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyog
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IExpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJB
QzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg7IHBhdGggPSBs
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3MDQ0LDYgKzE3MDQ2LDggQEAKIAkJCQkwN0E2RDg0OTFGRUI3MDBDMDA2NDQxREUgLyogRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuaCAqLywKIAkJCQkwN0E2RDg0NzFGRUI3MDBCMDA2NDQx
REUgLyogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgKi8sCiAJCQkJMDdBNkQ4NEExRkVC
NzAwRDAwNjQ0MURFIC8qIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaCAqLywKKwkJCQk0MTc0
RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmNwcCAqLywKKwkJCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8sCiAJCQkJMDc0NEVDRUIx
RTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCAqLywKIAkJCQkwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLywKIAkJCQkwN0VF
NzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCA1NjlmOTAxOTcwZjIyYzI4MjU2N2Vi
YjBiNjNjM2JhZWVjZTM4NWRjLi4yYzc2MzA3YzhhODc2ZTU4NDA4MGE1M2U1MGNhMjI4NzFiM2Iz
ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAj
aW5jbHVkZSA8d3RmL1VVSUQuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgIldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCiAjZWxpZiBFTkFCTEUoV0VCX0FVRElPKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKSAmJiBVU0UoR1NUUkVBTUVS
KQogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuaCIKICNlbHNlCkBAIC0x
ODgsNyArMTg4LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlm
ICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKQotICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIg
PSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKCp0aGlzKTsKKyAgICAgICAg
bV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOjpjcmVhdGUoKnRoaXMpOwogI2VsaWYgVVNFKExJQldFQlJUQykgJiYgVVNFKEdT
VFJFQU1FUikKICAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlcikKICAgICAgICAgbV9hdWRp
b1NvdXJjZVByb3ZpZGVyID0gQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6Y3JlYXRlKCp0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA0N2M4NWY4MmU2YmMyMDJjZDAxMTg3ZjE3MjQ4
NTVmNzdiNjY3NzAzLi4wOWIwOGY0Nzg2YjUyNzlhMjE4YTM3Y2U4ZTlkNmI5NjVjNDJiNjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC03MSw3ICs3MSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxS
ZWFsdGltZU1lZGlhU291cmNlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4K
ICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlLCBXZWFrUHRy
RmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
LSAgICAsIHByb3RlY3RlZCBMb2dnZXJIZWxwZXIKKyAgICAsIHB1YmxpYyBMb2dnZXJIZWxwZXIK
ICNlbmRpZgogewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oCmluZGV4IGU3ZDg4ODky
NDZmNGMxZTg4MGM0NzgyNmUzNjIzNmY1NmYzMGMyYWMuLmU0MWI0OTZkN2E2YTI2ZWVhYmVlNTc4
Mzc0ZmNkMjZkNWEzMDBlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKICNpbmNsdWRlICJBdWRpb1Nv
dXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMzlmZWQ4ZWVkNTMwNjRjNTVjNzAyZGJmN2Y0
YWMyMGU5NjRhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
LmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIk1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgorCisjaWYg
RU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZWY8TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
PiBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291cmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhzb3VyY2UpKTsKK30K
KworTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpNZWRpYVN0cmVh
bVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
IHNvdXJjZSkKKyAgICA6IG1fY2FwdHVyZVNvdXJjZShtYWtlV2Vha1B0cihzb3VyY2UpKQorICAg
ICwgbV9zb3VyY2Uoc291cmNlLnNvdXJjZSgpKQoreworfQorCitNZWRpYVN0cmVhbVRyYWNrQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMoKQoreworICAgIEFTU0VSVCghbV9jb25uZWN0ZWQpOworICAgIG1fc291cmNl
LT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVN0cmVh
bVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omhhc05ld0NsaWVudChBdWRpb1NvdXJj
ZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgYm9vbCBzaG91bGRCZUNvbm5lY3RlZCA9
ICEhY2xpZW50OworICAgIGlmIChtX2Nvbm5lY3RlZCA9PSBzaG91bGRCZUNvbm5lY3RlZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0ZWQgPSBzaG91bGRCZUNvbm5lY3RlZDsKKyAg
ICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVy
KCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRo
aXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9lbmFibGVkID0gbV9jYXB0dXJl
U291cmNlLT5lbmFibGVkKCk7CisgICAgbV9jYXB0dXJlU291cmNlLT5hZGRPYnNlcnZlcigqdGhp
cyk7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2
b2lkIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dHJhY2tFbmFi
bGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCit7CisgICAgbV9lbmFi
bGVkID0gdHJhY2suZW5hYmxlZCgpOworfQorCisvLyBNYXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tn
cm91bmQgdGhyZWFkLgordm9pZCBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQoreworICAgIGlmICghbV9lbmFibGVkKQorICAgICAg
ICByZXR1cm47CisKKyAgICByZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhkYXRhLCBkZXNjcmlwdGlv
biwgZnJhbWVDb3VudCk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJl
YW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UyOTM0Yzcw
NWQzODU4NDU0NjM3M2YzZTFmZTlhNTE5ODFjMGQ3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlJlYWx0aW1l
TWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyBmaW5hbAorICAgIDogcHVibGljIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDCisgICAgLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAg
ICAsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
PiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKKyAgICB+TWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJik7CisKKyAgICAvLyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQworICAg
IHZvaWQgaGFzTmV3Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKSBmaW5hbDsKKyNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBXVEY6OkxvZ2dlckhlbHBlciYgbG9nZ2VySGVs
cGVyKCkgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KKyNlbmRpZgorCisgICAgLy8g
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja0VuZGVkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CisgICAgdm9pZCB0cmFja011dGVkQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgdHJhY2tT
ZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsK
KworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFs
OworCisgICAgV2Vha1B0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9jYXB0dXJlU291cmNl
OworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBib29sIG1fZW5h
YmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1fY29ubmVjdGVkIHsgZmFsc2UgfTsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCmlu
ZGV4IGVkNzgzMGM0ZDA2MDY1NTVlOTkwMTdiNmRkYWFiNTM5MTFhMGVlZWQuLjk5MTNhMWE3NTM0
ZTdmZWEwZGExYTY4NDhhOTI3NzNlNDIyODA4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDEwICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQogCiAjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCi0jaW5j
bHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CiAjaW5j
bHVkZSA8d3RmL0xvY2suaD4KQEAgLTQxLDQwICs0MCw0MSBAQCB0eXBlZGVmIHN0cnVjdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiAqQ01Gb3JtYXREZXNj
cmlwdGlvblJlZjsKIHR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBs
ZUJ1ZmZlclJlZjsKIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBMb2dnZXJIZWxwZXI7Cit9CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9TYW1wbGVEYXRhU291cmNlOwogY2xh
c3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBj
bGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDIGZpbmFsCi0gICAgOiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlcgotICAgICwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCi0gICAgLCBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKK2NsYXNzIFdFQkNPUkVf
RVhQT1JUIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisgICAgOiBwdWJsaWMgV2ViQXVk
aW9Tb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQz4gY3JlYXRlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7Ci0gICAg
dmlydHVhbCB+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsKKyAgICBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQygpOworICAgIH5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QygpOwogCi0gICAgdm9pZCBwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biYpOwotICAgIHZvaWQgdW5wcmVwYXJlKCk7Citwcm90ZWN0ZWQ6CisgICAgdm9pZCByZWNlaXZl
ZE5ld0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CisgICAg
dmlydHVhbCB2b2lkIGhhc05ld0NsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgPSAw
OworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIHZpcnR1YWwgV1RGOjpMb2dnZXJIZWxw
ZXImIGxvZ2dlckhlbHBlcigpID0gMDsKKyNlbmRpZgogCiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92
aWRlcgogICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiwgc2l6ZV90KSBmaW5hbDsKICAg
ICB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgZmluYWw7CiAKLSAg
ICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICB2b2lkIHRyYWNrRW5k
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAgICB2b2lkIHRyYWNrTXV0
ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9Ci0gICAgdm9pZCB0
cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQot
ICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZp
bmFsOworICAgIHZvaWQgcHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24m
KTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKLSAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZp
bmFsOworICAgIExvY2sgbV9sb2NrOworICAgIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIG1f
Y2xpZW50IHsgbnVsbHB0ciB9OwogCi0gICAgc2l6ZV90IG1fbGlzdEJ1ZmZlclNpemUgeyAwIH07
CiAgICAgT3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPiBtX2lucHV0RGVzY3JpcHRp
b247CiAgICAgT3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPiBtX291dHB1dERlc2Ny
aXB0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYXVkaW9C
dWZmZXJMaXN0OwpAQCAtODIsMTQgKzgyLDggQEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1f
d3JpdGVDb3VudCB7IDAgfTsKICAgICB1aW50NjRfdCBtX3JlYWRDb3VudCB7IDAgfTsKLSAgICBB
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKLSAgICBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSogbV9jYXB0dXJlU291cmNlIHsgbnVsbHB0ciB9OwotICAgIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKLSAgICBMb2NrIG1fbG9jazsKLSAgICBi
b29sIG1fY29ubmVjdGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsK
IH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCA5MWU4ODY1Nzk1YjU5
ZDBiZGEzNjM0MTQ4M2VhYTEyMGMxYWZkYzVkLi4wOGY1ZGNlODYyNzE5NmMyY2JlNjZlMjVhY2Y2
OGVkODBmMTEwNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCiAKLSNpZiBFTkFCTEUoV0VCX0FVRElPKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKICNpbXBvcnQg
IkF1ZGlvQnVzLmgiCiAjaW1wb3J0ICJBdWRpb0NoYW5uZWwuaCIKQEAgLTQ3LDI3ICs0NywyMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJE
dXJhdGlvbiA9IDE7CiAKLVJlZjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
c291cmNlKQorV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQyhzb3VyY2UpKTsKIH0KIAotV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiBzb3VyY2UpCi0gICAgOiBtX2NhcHR1cmVTb3VyY2UoJnNvdXJjZSkKLSAgICAsIG1fc291
cmNlKHNvdXJjZS5zb3VyY2UoKSkKLSAgICAsIG1fZW5hYmxlZChzb3VyY2UuZW5hYmxlZCgpKQor
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQygpCiB7Ci0gICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwog
fQogCi1XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDKCkKK3ZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENsaWVu
dChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgbV9zb3VyY2UtPnJl
bW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwotCi0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2xvY2spOwotCi0gICAgaWYgKG1fY29ubmVjdGVkICYmIG1fY2FwdHVyZVNvdXJjZSkK
LSAgICAgICAgbV9jYXB0dXJlU291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgaWYg
KG1fY2xpZW50ID09IGNsaWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50ID0gY2xp
ZW50OworICAgIGhhc05ld0NsaWVudChjbGllbnQpOwogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1l
c1RvUHJvY2VzcykKQEAgLTEwNSwyNSArOTgsNiBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUAog
ICAgIG1fcmVhZENvdW50ICs9IGZyYW1lc1RvUHJvY2VzczsKIH0KIAotdm9pZCBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQq
IGNsaWVudCkKLXsKLSAgICBpZiAobV9jbGllbnQgPT0gY2xpZW50KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX2NsaWVudCA9IGNsaWVudDsKLQotICAgIGlmICghbV9jYXB0dXJlU291cmNlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9jbGllbnQgJiYgIW1fY29ubmVjdGVkKSB7Ci0g
ICAgICAgIG1fY29ubmVjdGVkID0gdHJ1ZTsKLSAgICAgICAgbV9jYXB0dXJlU291cmNlLT5hZGRP
YnNlcnZlcigqdGhpcyk7Ci0gICAgfSBlbHNlIGlmICghbV9jbGllbnQgJiYgbV9jb25uZWN0ZWQp
IHsKLSAgICAgICAgbV9jYXB0dXJlU291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci0gICAg
ICAgIG1fY29ubmVjdGVkID0gZmFsc2U7Ci0gICAgfQotfQotCiB2b2lkIFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biYgZm9ybWF0KQogewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKQEAgLTE0
Niw3ICsxMjAsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJl
KGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYgZgogICAgIG1fYXVkaW9CdWZmZXJM
aXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KG1fb3V0cHV0RGVzY3JpcHRpb24u
dmFsdWUoKSk7CiAKICAgICBpZiAoIW1fZGF0YVNvdXJjZSkKLSAgICAgICAgbV9kYXRhU291cmNl
ID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoa1JpbmdCdWZmZXJEdXJhdGlvbiAqIHNh
bXBsZVJhdGUsICptX2NhcHR1cmVTb3VyY2UpOworICAgICAgICBtX2RhdGFTb3VyY2UgPSBBdWRp
b1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShrUmluZ0J1ZmZlckR1cmF0aW9uICogc2FtcGxlUmF0
ZSwgbG9nZ2VySGVscGVyKCkpOwogICAgIG1fZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQobV9p
bnB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwogICAgIG1fZGF0YVNvdXJjZS0+c2V0T3V0cHV0Rm9y
bWF0KG1fb3V0cHV0RGVzY3JpcHRpb24udmFsdWUoKSk7CiAKQEAgLTE1NiwzMiArMTMwLDkgQEAg
dm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24mIGYKICAgICB9KTsKIH0KIAotdm9pZCBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlKCkKLXsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fbG9jayk7Ci0KLSAgICBtX2lucHV0RGVzY3JpcHRpb24gPSBXVEY6Om51bGxvcHQ7Ci0g
ICAgbV9vdXRwdXREZXNjcmlwdGlvbiA9IFdURjo6bnVsbG9wdDsKLSAgICBtX2F1ZGlvQnVmZmVy
TGlzdCA9IG51bGxwdHI7Ci0gICAgbV9kYXRhU291cmNlID0gbnVsbHB0cjsKLSAgICBtX2xpc3RC
dWZmZXJTaXplID0gMDsKLSAgICBpZiAobV9jYXB0dXJlU291cmNlKSB7Ci0gICAgICAgIG1fY2Fw
dHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgICAgICBtX2NhcHR1cmVTb3Vy
Y2UgPSBudWxscHRyOwotICAgIH0KLX0KLQotdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2sp
Ci17Ci0gICAgbV9lbmFibGVkID0gdHJhY2suZW5hYmxlZCgpOwotfQotCiAvLyBNYXkgZ2V0IGNh
bGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgc2l6ZV90IGZyYW1lQ291bnQpCit2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpyZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYg
ZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBm
cmFtZUNvdW50KQogewotICAgIGlmICghbV9lbmFibGVkIHx8ICFtX2Nvbm5lY3RlZCkKLSAgICAg
ICAgcmV0dXJuOwotCiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24o
KS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwog
ICAgIGF1dG8mIGJhc2ljRGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2Ny
aXB0aW9uKTsKICAgICBpZiAoIW1faW5wdXREZXNjcmlwdGlvbiB8fCBtX2lucHV0RGVzY3JpcHRp
b24tPnN0cmVhbURlc2NyaXB0aW9uKCkgIT0gYmFzaWNEZXNjcmlwdGlvbikKQEAgLTE5Nyw0ICsx
NDgsNCBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29ucwogCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNzc2OTBkMGRkNTI3MmEwNWUyYTc4NDIy
MjE4YTM1YjQyMmI1NzU1YS4uN2EwNmU5MTFkZjM0ZTE2Y2Y5NDU2YjQxNTI2ZGE2MzVhNDIzMDI4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTY0LDYgKzU2NCw3IEBAIFdlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBD
U2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIAogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAor
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNWY1NDEw
Y2JlZTVkMGU1ZThkYTRmNWZjYjBlZDM4MGQ2MzQ3YWIyLi4yNTdhNzRkZGFmYTBjMTZhNjQxOWQz
NTcxMWQ5YzI4ZjQyNDhmYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTM0MTksNiArMzQxOSw4IEBACiAJCTQxMjg3RDRCMjI1QzA1
QzQwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTb2NrZXRUYXNrQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMjg3RDRDMjI1QzA1QzUwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNr
Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU29ja2V0VGFza0Nv
Y29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjg3RDREMjI1QzE2MUYwMDlB
M0UyNiAvKiBXZWJTb2NrZXRUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNvY2tldFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MTYy
NTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTE3MjUzNzNGOUQwMDFERjAz
NiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEzMDc1OUExREU4NEZCMDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENNb25p
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1OUIxREU4NEZCMDAw
MzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMzA3NTlDMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRvci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NjAsNiArNTU2Miw4IEBACiAJCQkJQ0RE
NTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiAq
LywKIAkJCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbi5oICovLAogCQkJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5MiAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCisJCQkJNDEyRkY5MTYyNTM3M0Y5RDAwMURGMDM2
IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICovLAorCQkJCTQxMkZGOTE3MjUzNzNG
OUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJQ0RBQzIw
QkYyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJCQkJQ0RBQzIwQkEyM0ZD
MkY3NDAwMjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMyMEI4MjNGQzJGNzMwMDIx
REVFMyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKaW5kZXggODlkNmZlOWE4ZmIzMjM4NGEyN2U0MjRmNzk5OTJlNGRjNDRjMTk3Mi4u
Y2FiNTgxYmI5ZWIxNDhiMWRjNDdlYjE1MWJhNmU4MGJhMDMzYmUzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETVNlc3Npb24uaCIK
QEAgLTExNSw2ICsxMTYsMTEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKCkKICAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95Vmlk
ZW9MYXllcigpOwogI2VuZGlmCiAgICAgbV9tYW5hZ2VyLmRlbGV0ZVJlbW90ZU1lZGlhUGxheWVy
KG1faWQpOworCisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAg
aWYgKG1fYXVkaW9Tb3VyY2VQcm92aWRlcikKKyAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVy
LT5jbG9zZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpz
ZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3Vy
YXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3VtZW50U2VjdXJpdHlPcmln
aW4pCkBAIC05MjQsOCArOTMwLDE1IEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6dmlkZW9EZWNvZGVkQnl0ZUNvdW50KCkgY29uc3QKICNpZiBFTkFCTEUoV0VCX0FVRElPKQog
QXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphdWRpb1NvdXJj
ZVByb3ZpZGVyKCkKIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoIW1fYXVkaW9Tb3Vy
Y2VQcm92aWRlcikKKyAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlcjo6Y3JlYXRlKG1faWQsICp0aGlzKTsKKworICAgIHJldHVybiBtX2F1ZGlv
U291cmNlUHJvdmlkZXIuZ2V0KCk7CisjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAg
cmV0dXJuIG51bGxwdHI7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAppbmRleCBkZTZmMGViMzdiOGNiOTVjYmFjMGY1YzgyOTQzNWQzOGQ3YTk3MWY5Li5iYzc3
ZjA4YTFlMzkyNTQxNzQzNzQxOTgwN2VkYjJmN2RhYTNjYTBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmgKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgVmlkZW9MYXllck1hbmFnZXI7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOwogY2xh
c3MgVXNlckRhdGE7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247
CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKQEAgLTM3NCw2ICszNzUs
MTAgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNo
ZWRCdWZmZXJlZFRpbWVSYW5nZXM7CiAKKyNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICBSZWZQdHI8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gbV9hdWRpb1Nv
dXJjZVByb3ZpZGVyOworI2VuZGlmCisKICAgICBIYXNoTWFwPFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLCBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPj4gbV9tZWRp
YVJlc291cmNlczsKICAgICBIYXNoTWFwPFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJl
ZjxBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4+IG1fYXVkaW9UcmFja3M7CiAgICAgSGFzaE1hcDxU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+
PiBtX3ZpZGVvVHJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTk5MGNlN2Q1NTllOTg0OWJmOWVjZjcwOWNmM2RiMzIyZGMzN2ZiOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlci5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitleHRlcm4gV1RGTG9nQ2hhbm5lbCBMb2dNZWRp
YTsKKyNlbmRpZgorfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBXVEY6OkxvZ2dlckhlbHBlciYgaGVscGVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVscGVyKSk7Cit9CisKK1Jl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoTWVkaWFQ
bGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6TG9nZ2VySGVscGVyJiBoZWxwZXIpCisg
ICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
KyAgICAsIG1fbG9nZ2VyKGhlbHBlci5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllciho
ZWxwZXIubG9nSWRlbnRpZmllcigpKQorI2VuZGlmCit7CisgICAgVU5VU0VEX1BBUkFNKGhlbHBl
cik7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6On5SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjbG9zZSgp
Cit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFzTmV3Q2xpZW50KEF1
ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKQoreworICAgIC8vIEZJWE1FOiByZWdpc3Rlci91bnJl
Z2lzdGVyIGFzIG5lZWRlZC4KK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKK3sKKyAg
ICByZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhkYXRhLCBkZXNjcmlwdGlvbiwgc2l6ZSk7Cit9CisK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxvZ0NoYW5uZWwmIFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBMb2dNZWRpYTsK
K30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzZDUyN2MzNjVlYWI3N2FmZjFhODNl
MjlmODM0MjhiNjZkM2YyY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaApAQCAtMCwwICsxLDc2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYm
IFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg+
CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBmaW5hbAorICAgIDogcHVibGljIFdlYkNv
cmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECisgICAgLCBwcm90ZWN0ZWQgV1RGOjpMb2dnZXJIZWxwZXIKKyNlbmRpZgoreworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gY3JlYXRlKFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImKTsKKyAgICB+UmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIGNsb3NlKCk7CisKKyAgICBX
ZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYpOwor
CisgICAgLy8gV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMKKyAgICB2b2lk
IGhhc05ld0NsaWVudChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgZmluYWw7
CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBXVEY6OkxvZ2dlckhlbHBlciYgbG9n
Z2VySGVscGVyKCkgZmluYWwgeyByZXR1cm4gKnRoaXM7IH0KKworICAgIC8vIFdURjo6TG9nZ2Vy
SGVscGVyCisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFz
c05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciI7
IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisjZW5kaWYK
KworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7Cisg
ICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdF
Ql9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbQppbmRleCBhZTdhOWQzYWY0YjM1ZGJlNTU2M2UyMmEwM2M1MmMw
ZDk5YmE3Yzc0Li40ZjNkZTc3M2MxMjM2ZjMzMGY1NDBhOWM4ZDY0MTAwY2ZiMDViYmMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCiAK
KyNpbXBvcnQgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUv
VmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNv
cmVTUEkuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411328</attachid>
            <date>2020-10-14 09:11:33 -0700</date>
            <delta_ts>2020-10-14 09:32:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217710-20201014181127.patch</filename>
            <type>text/plain</type>
            <size>41066</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYwYTE0OGEwNTQ2NjBj
NGQ0NzUwMDMyZTNiYmQ4NGYxOGYyNjY1Yi4uZjdhNWNiMjk2MzE0N2FhNTE5YjZiMjQ2MjQ1Y2Yw
NzM2NTg4ZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1
ZGlvIGZyb20gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3BsaXQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgTWVkaWFTdHJl
YW1UcmFjayBzcGVjaWZpYyBiaXRzIGluIGEgc2VwYXJhdGUgTWVkaWFTdHJlYW1UcmFja0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDIGNsYXNzLgorICAgICAgICBUaGlzIGFsbG93cyByZXVzaW5n
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIGZvciBzYW1wbGVzIGNvbWluZyBmcm9tIHZp
ZGVvIHBsYXliYWNrIGxpdmluZyBpbiBHUFVQcm9jZXNzLgorICAgICAgICBObyBjaGFuZ2Ugb2Yg
YmVoYXZpb3IuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6TWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fk1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omhhc05ld0NsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5h
YmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmguCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6cmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMpOgorCiAyMDIwLTEwLTEzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJjYW0gdmlkZW8gZnJvbSBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpIHRvIDJEIGNhbnZhcyBmYWlscyBvbiBTYWZh
cmkgb24gaVBob25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1MDgwOTViYzZhNTY3YWFkNzY0NmNjOWRlNDUxZDlk
ZjVlMzk1NWMuLjU3ZjAyMjJhMDU2MDlmOTc1OTBkOGUwYWEwM2Y4NzM1ZDZkOTRjMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMTAtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBhIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHVz
ZSBvZiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyB0byBpbXBsZW1lbnQgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlci4KKyAgICAgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBjdXJy
ZW50bHkgaW1wbGVtZW50cyBhbiBBdWRpb1NvdXJjZVByb3ZpZGVyIGJ1dCBpdCBpcyBub3QgeWV0
IGNvbm5lY3RlZCB0byBHUFVQcm9jZXNzIG1lZGlhIHBsYXllcnMuCisgICAgICAgIFRoaXMgd2ls
bCBiZSBpbXBsZW1lbnRlZCBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjphdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFz
TmV3Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KwogMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
W1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJhc2VkIFNQSSBmb3IgV0tQcmVmZXJlbmNl
cyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJuYWwgYmVoYXZpb3Igd2l0aG91dCBhbHdh
eXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxYWZj
YjgwN2RkZTkwODg3ZDMxNGE3NjcxMWI3ZDUzMTliYTgwNTg0Li4zNWE2Mjc5YTE4NDNkNWFjYTA2
ZTViYzBhZjAyYjdkNTlmZDVkNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTUzMiw2
ICs1MzIsNyBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJD
b2NvYS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMmIzZDAzNDczNDgxYzc4YTJlMDAxOTc1ZWFlYjA2
NDIzNTZiOTk5Li5jYTNlNTcxZjdlMzQ3ZWYwMGNjNDIzYjM0YzM5NmQ5ZTY2OWI3YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01MzE2LDcgKzUzMTYsNyBAQAogCQlGRDU4MUZBRjE1MjBGOTFGMDAzQTdBNzUgLyogT3NjaWxs
YXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZENTgxRkFDMTUyMEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlG
RDU4MUZCNTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDU4MUZCMjE1MjBGOTNCMDAzQTdBNzUg
LyogUGVyaW9kaWNXYXZlLmggKi87IH07CiAJCUZENjI5RUEzMTU0QjQ3MTYwMDA2RDAyNiAvKiBB
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNw
ZWN0b3JOb2RlLmggKi87IH07Ci0JCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDYyRjUyRDE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRl
ckNsaWVudC5oICovOyB9OworCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3Vy
Y2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQ2MkY1MkQxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRDY3MUE3ODE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjcxQTc1
MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovOyB9Owog
CQlGRDZFRDJDNDEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzIxMzZC
OEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLzsgfTsKIAkJRkQ2RUQy
QzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzYxMzZCOEU2NjAwM0NGMDcy
IC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oICovOyB9OwpAQCAtNzU5NCw2ICs3NTk0LDggQEAKIAkJ
NDE3MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTcyNTNBODEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyog
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IExpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJB
QzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg7IHBhdGggPSBs
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3MDQ0LDYgKzE3MDQ2LDggQEAKIAkJCQkwN0E2RDg0OTFGRUI3MDBDMDA2NDQxREUgLyogRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuaCAqLywKIAkJCQkwN0E2RDg0NzFGRUI3MDBCMDA2NDQx
REUgLyogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgKi8sCiAJCQkJMDdBNkQ4NEExRkVC
NzAwRDAwNjQ0MURFIC8qIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaCAqLywKKwkJCQk0MTc0
RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmNwcCAqLywKKwkJCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8sCiAJCQkJMDc0NEVDRUIx
RTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCAqLywKIAkJCQkwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLywKIAkJCQkwN0VF
NzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVEYXRhU291cmNlLmgKaW5kZXggMjk5Yjk0YWYxNjM3MDFkYWQ1ZjMzY2UyMjZiMzIw
MzUzN2FlYzg1OS4uOTVmYjJmN2EzNDFjNGZkZjZjOGY4MmNmYzQxYjkyODkyYTc4MzVkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVE
YXRhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVEYXRhU291cmNlLmgKQEAgLTI1LDggKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCiAjaW5jbHVkZSAiQXVkaW9TYW1wbGVCdWZmZXJM
aXN0LmgiCiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgpAQCAtMTIzLDUgKzEyMSwzIEBAIHByaXZhdGU6CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1w
bGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IDczMmM3MjE2ZDRjYzBiMTdlMDJiMjY5NDBhYzM2
OGFhYjI3MTA3NTYuLmFjODdkZmVmMWFiMWUzMzAwNjQ1YjY3ZWQ2YjA4NDRmMjVjYmJmMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTI2LDggKzI2LDYgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgiCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCiAjaW1wb3J0ICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKICNpbXBv
cnQgIkNBUmluZ0J1ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtMzc5LDUgKzM3Nywz
IEBAIFdURkxvZ0NoYW5uZWwmIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6bG9nQ2hhbm5lbCgpIGNv
bnN0CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCA1NjlmOTAx
OTcwZjIyYzI4MjU2N2ViYjBiNjNjM2JhZWVjZTM4NWRjLi4yYzc2MzA3YzhhODc2ZTU4NDA4MGE1
M2U1MGNhMjI4NzFiM2IzZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC0z
Nyw3ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotI2luY2x1ZGUgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCisjaW5jbHVkZSAi
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCiAjZWxpZiBFTkFC
TEUoV0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKSAm
JiBVU0UoR1NUUkVBTUVSKQogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIu
aCIKICNlbHNlCkBAIC0xODgsNyArMTg4LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogewogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGlmICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKQotICAgICAgICBtX2F1ZGlv
U291cmNlUHJvdmlkZXIgPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKCp0
aGlzKTsKKyAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gTWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoKnRoaXMpOwogI2VsaWYgVVNFKExJQldF
QlJUQykgJiYgVVNFKEdTVFJFQU1FUikKICAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlcikK
ICAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJl
YW1lcjo6Y3JlYXRlKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA0N2M4NWY4MmU2YmMy
MDJjZDAxMTg3ZjE3MjQ4NTVmNzdiNjY3NzAzLi4wOWIwOGY0Nzg2YjUyNzlhMjE4YTM3Y2U4ZTlk
NmI5NjVjNDJiNjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC03MSw3ICs3MSw3IEBAIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluUnVuTG9vcD4KICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGltZU1lZGlh
U291cmNlLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4KICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKLSAgICAsIHByb3RlY3RlZCBMb2dnZXJIZWxwZXIKKyAgICAsIHB1Ymxp
YyBMb2dnZXJIZWxwZXIKICNlbmRpZgogewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5o
CmluZGV4IGU3ZDg4ODkyNDZmNGMxZTg4MGM0NzgyNmUzNjIzNmY1NmYzMGMyYWMuLmU0MWI0OTZk
N2E2YTI2ZWVhYmVlNTc4Mzc0ZmNkMjZkNWEzMDBlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VCX0FV
RElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKICNp
bmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMzlmZWQ4ZWVkNTMw
NjRjNTVjNzAyZGJmN2Y0YWMyMGU5NjRhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIk1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDPiBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OmNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291cmNlKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qyhzb3VyY2UpKTsKK30KKworTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKKyAgICA6IG1fY2FwdHVyZVNvdXJjZShtYWtlV2Vha1B0
cihzb3VyY2UpKQorICAgICwgbV9zb3VyY2Uoc291cmNlLnNvdXJjZSgpKQoreworfQorCitNZWRp
YVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5NZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKQoreworICAgIEFTU0VSVCghbV9jb25uZWN0ZWQp
OworICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKwor
dm9pZCBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omhhc05ld0Ns
aWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgYm9vbCBzaG91
bGRCZUNvbm5lY3RlZCA9ICEhY2xpZW50OworICAgIGlmIChtX2Nvbm5lY3RlZCA9PSBzaG91bGRC
ZUNvbm5lY3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0ZWQgPSBzaG91bGRC
ZUNvbm5lY3RlZDsKKyAgICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2NhcHR1cmVTb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9lbmFi
bGVkID0gbV9jYXB0dXJlU291cmNlLT5lbmFibGVkKCk7CisgICAgbV9jYXB0dXJlU291cmNlLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOworfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2sp
Cit7CisgICAgbV9lbmFibGVkID0gdHJhY2suZW5hYmxlZCgpOworfQorCisvLyBNYXkgZ2V0IGNh
bGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgordm9pZCBNZWRpYVN0cmVhbVRyYWNrQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQoreworICAgIGlmICghbV9l
bmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICByZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhk
YXRhLCBkZXNjcmlwdGlvbiwgZnJhbWVDb3VudCk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2UyOTM0YzcwNWQzODU4NDU0NjM3M2YzZTFmZTlhNTE5ODFjMGQ3MAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0
cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtMCwwICsxLDcwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU3Ry
ZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyBmaW5hbAorICAgIDogcHVibGljIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisgICAgLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6T2JzZXJ2ZXIKKyAgICAsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKKyAgICB+
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCk7CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CisKKyAgICAvLyBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQworICAgIHZvaWQgaGFzTmV3Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQqKSBmaW5hbDsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBXVEY6OkxvZ2dlckhl
bHBlciYgbG9nZ2VySGVscGVyKCkgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KKyNl
bmRpZgorCisgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgdm9p
ZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CisgICAgdm9p
ZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQor
ICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBm
aW5hbCB7IH0KKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBmaW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxl
T2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
LCBzaXplX3QpIGZpbmFsOworCisgICAgV2Vha1B0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4g
bV9jYXB0dXJlU291cmNlOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsK
KyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1fY29ubmVjdGVkIHsgZmFs
c2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oCmluZGV4IGVkNzgzMGM0ZDA2MDY1NTVlOTkwMTdiNmRkYWFiNTM5MTFhMGVl
ZWQuLjk5MTNhMWE3NTM0ZTdmZWEwZGExYTY4NDhhOTI3NzNlNDIyODA4NTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDEwICsyNSw5IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQogCiAjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRp
b1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTQxLDQwICs0MCw0MSBAQCB0eXBl
ZGVmIHN0cnVjdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlv
biAqQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKIHR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxl
QnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBMb2dn
ZXJIZWxwZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9TYW1wbGVE
YXRhU291cmNlOwogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZv
cm1BdWRpb0RhdGE7CiBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CiAKLWNsYXNzIFdFQkNPUkVf
RVhQT1JUIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIGZpbmFsCi0gICAgOiBwdWJsaWMg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlcgotICAgICwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9i
c2VydmVyCi0gICAgLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsK
K2NsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisgICAg
OiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gY3JlYXRlKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJik7Ci0gICAgdmlydHVhbCB+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsK
KyAgICBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpOworICAgIH5XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQygpOwogCi0gICAgdm9pZCBwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiYpOwotICAgIHZvaWQgdW5wcmVwYXJlKCk7Citwcm90ZWN0ZWQ6Cisg
ICAgdm9pZCByZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOwogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJik7CisgICAgdmlydHVhbCB2b2lkIGhhc05ld0NsaWVudChBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50KikgPSAwOworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIHZpcnR1YWwg
V1RGOjpMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlcigpID0gMDsKKyNlbmRpZgogCiAgICAgLy8g
QXVkaW9Tb3VyY2VQcm92aWRlcgogICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiwgc2l6
ZV90KSBmaW5hbDsKICAgICB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50
KikgZmluYWw7CiAKLSAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAg
ICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAg
ICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwg
eyB9Ci0gICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIGZpbmFsIHsgfQotICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgcHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24mKTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIKLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBzaXplX3QpIGZpbmFsOworICAgIExvY2sgbV9sb2NrOworICAgIEF1ZGlvU291cmNlUHJv
dmlkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogCi0gICAgc2l6ZV90IG1fbGlzdEJ1
ZmZlclNpemUgeyAwIH07CiAgICAgT3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPiBt
X2lucHV0RGVzY3JpcHRpb247CiAgICAgT3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
PiBtX291dHB1dERlc2NyaXB0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdWRpb0J1ZmZl
ckxpc3Q+IG1fYXVkaW9CdWZmZXJMaXN0OwpAQCAtODIsMTQgKzgyLDggQEAgcHJpdmF0ZToKIAog
ICAgIHVpbnQ2NF90IG1fd3JpdGVDb3VudCB7IDAgfTsKICAgICB1aW50NjRfdCBtX3JlYWRDb3Vu
dCB7IDAgfTsKLSAgICBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxw
dHIgfTsKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogbV9jYXB0dXJlU291cmNlIHsgbnVs
bHB0ciB9OwotICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKLSAgICBMb2Nr
IG1fbG9jazsKLSAgICBib29sIG1fY29ubmVjdGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fZW5h
YmxlZCB7IHRydWUgfTsKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRl
eCA5MWU4ODY1Nzk1YjU5ZDBiZGEzNjM0MTQ4M2VhYTEyMGMxYWZkYzVkLi4wOGY1ZGNlODYyNzE5
NmMyY2JlNjZlMjVhY2Y2OGVkODBmMTEwNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCiAKLSNpZiBFTkFC
TEUoV0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShXRUJfQVVE
SU8pCiAKICNpbXBvcnQgIkF1ZGlvQnVzLmgiCiAjaW1wb3J0ICJBdWRpb0NoYW5uZWwuaCIKQEAg
LTQ3LDI3ICs0NywyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBkb3Vi
bGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKLVJlZjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQz4gV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYgc291cmNlKQorV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Oldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhzb3VyY2UpKTsKIH0KIAotV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UpCi0gICAgOiBtX2NhcHR1cmVTb3VyY2UoJnNvdXJj
ZSkKLSAgICAsIG1fc291cmNlKHNvdXJjZS5zb3VyY2UoKSkKLSAgICAsIG1fZW5hYmxlZChzb3Vy
Y2UuZW5hYmxlZCgpKQorV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQygpCiB7Ci0gICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXIoKnRoaXMpOwogfQogCi1XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCkKK3ZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCiB7Ci0g
ICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwotCi0gICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotCi0gICAgaWYgKG1fY29ubmVjdGVkICYmIG1f
Y2FwdHVyZVNvdXJjZSkKLSAgICAgICAgbV9jYXB0dXJlU291cmNlLT5yZW1vdmVPYnNlcnZlcigq
dGhpcyk7CisgICAgaWYgKG1fY2xpZW50ID09IGNsaWVudCkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fY2xpZW50ID0gY2xpZW50OworICAgIGhhc05ld0NsaWVudChjbGllbnQpOwogfQogCiB2b2lk
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1
cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKQEAgLTEwNSwyNSArOTgsNiBAQCB2b2lkIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6
ZV90IGZyYW1lc1RvUAogICAgIG1fcmVhZENvdW50ICs9IGZyYW1lc1RvUHJvY2VzczsKIH0KIAot
dm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNl
UHJvdmlkZXJDbGllbnQqIGNsaWVudCkKLXsKLSAgICBpZiAobV9jbGllbnQgPT0gY2xpZW50KQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudCA9IGNsaWVudDsKLQotICAgIGlmICghbV9j
YXB0dXJlU291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9jbGllbnQgJiYgIW1f
Y29ubmVjdGVkKSB7Ci0gICAgICAgIG1fY29ubmVjdGVkID0gdHJ1ZTsKLSAgICAgICAgbV9jYXB0
dXJlU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7Ci0gICAgfSBlbHNlIGlmICghbV9jbGllbnQg
JiYgbV9jb25uZWN0ZWQpIHsKLSAgICAgICAgbV9jYXB0dXJlU291cmNlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7Ci0gICAgICAgIG1fY29ubmVjdGVkID0gZmFsc2U7Ci0gICAgfQotfQotCiB2b2lk
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiYgZm9ybWF0KQogewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9sb2NrKTsKQEAgLTE0Niw3ICsxMjAsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYgZgogICAg
IG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KG1fb3V0
cHV0RGVzY3JpcHRpb24udmFsdWUoKSk7CiAKICAgICBpZiAoIW1fZGF0YVNvdXJjZSkKLSAgICAg
ICAgbV9kYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoa1JpbmdCdWZm
ZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsICptX2NhcHR1cmVTb3VyY2UpOworICAgICAgICBtX2Rh
dGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShrUmluZ0J1ZmZlckR1cmF0
aW9uICogc2FtcGxlUmF0ZSwgbG9nZ2VySGVscGVyKCkpOwogICAgIG1fZGF0YVNvdXJjZS0+c2V0
SW5wdXRGb3JtYXQobV9pbnB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwogICAgIG1fZGF0YVNvdXJj
ZS0+c2V0T3V0cHV0Rm9ybWF0KG1fb3V0cHV0RGVzY3JpcHRpb24udmFsdWUoKSk7CiAKQEAgLTE1
NiwzMiArMTMwLDkgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFy
ZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGYKICAgICB9KTsKIH0KIAotdm9p
ZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlKCkKLXsKLSAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7Ci0KLSAgICBtX2lucHV0RGVzY3JpcHRpb24gPSBX
VEY6Om51bGxvcHQ7Ci0gICAgbV9vdXRwdXREZXNjcmlwdGlvbiA9IFdURjo6bnVsbG9wdDsKLSAg
ICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG51bGxwdHI7Ci0gICAgbV9kYXRhU291cmNlID0gbnVsbHB0
cjsKLSAgICBtX2xpc3RCdWZmZXJTaXplID0gMDsKLSAgICBpZiAobV9jYXB0dXJlU291cmNlKSB7
Ci0gICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgICAg
ICBtX2NhcHR1cmVTb3VyY2UgPSBudWxscHRyOwotICAgIH0KLX0KLQotdm9pZCBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYgdHJhY2spCi17Ci0gICAgbV9lbmFibGVkID0gdHJhY2suZW5hYmxlZCgpOwotfQot
CiAvLyBNYXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgotdm9pZCBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ291bnQpCit2b2lkIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpyZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQogewotICAgIGlmICghbV9lbmFibGVkIHx8ICFtX2Nv
bm5lY3RlZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJl
YW1CYXNpY1R5cGUpOwogICAgIGF1dG8mIGJhc2ljRGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNj
cmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKICAgICBpZiAoIW1faW5wdXREZXNjcmlwdGlvbiB8fCBt
X2lucHV0RGVzY3JpcHRpb24tPnN0cmVhbURlc2NyaXB0aW9uKCkgIT0gYmFzaWNEZXNjcmlwdGlv
bikKQEAgLTE5Nyw0ICsxNDgsNCBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29ucwogCiB9CiAKLSNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2VuZGlm
IC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNzc2OTBkMGRk
NTI3MmEwNWUyYTc4NDIyMjE4YTM1YjQyMmI1NzU1YS4uN2EwNmU5MTFkZjM0ZTE2Y2Y5NDU2YjQx
NTI2ZGE2MzVhNDIzMDI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTY0LDYgKzU2NCw3
IEBAIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCiBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIAog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kLmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3Rl
Q29jb2EubW0KIFdlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxw
ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBlNWY1NDEwY2JlZTVkMGU1ZThkYTRmNWZjYjBlZDM4MGQ2MzQ3YWIyLi4yNTdhNzRk
ZGFmYTBjMTZhNjQxOWQzNTcxMWQ5YzI4ZjQyNDhmYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0MTksNiArMzQxOSw4IEBACiAJ
CTQxMjg3RDRCMjI1QzA1QzQwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTb2NrZXRUYXNrQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjg3RDRDMjI1QzA1QzUwMDlBM0UyNiAv
KiBXZWJTb2NrZXRUYXNrQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU29ja2V0VGFza0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjg3
RDREMjI1QzE2MUYwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tldFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEyRkY5MTYyNTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTE3
MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1OUExREU4NEZCMDAwMzlFQzY5IC8qIE5l
dHdvcmtSVENNb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ldHdvcmtSVENNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEz
MDc1OUIxREU4NEZCMDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMzA3NTlDMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9u
aXRvci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRv
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NjAsNiArNTU2
Miw4IEBACiAJCQkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bi5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovLAogCQkJCUNEQkI0OUZCMjQwRDk3NEEwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCisJCQkJNDEyRkY5MTYy
NTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICovLAorCQkJ
CTQxMkZGOTE3MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgg
Ki8sCiAJCQkJQ0RBQzIwQkYyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJ
CQkJQ0RBQzIwQkEyM0ZDMkY3NDAwMjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMy
MEI4MjNGQzJGNzMwMDIxREVFMyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggODlkNmZlOWE4ZmIzMjM4NGEyN2U0MjRmNzk5
OTJlNGRjNDRjMTk3Mi4uY2FiNTgxYmI5ZWIxNDhiMWRjNDdlYjE1MWJhNmU4MGJhMDMzYmUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2Fj
eUNETVNlc3Npb24uaCIKQEAgLTExNSw2ICsxMTYsMTEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKICAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2Vy
LT5kaWREZXN0cm95VmlkZW9MYXllcigpOwogI2VuZGlmCiAgICAgbV9tYW5hZ2VyLmRlbGV0ZVJl
bW90ZU1lZGlhUGxheWVyKG1faWQpOworCisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKG1fYXVkaW9Tb3VyY2VQcm92aWRlcikKKyAgICAgICAgbV9hdWRp
b1NvdXJjZVByb3ZpZGVyLT5jbG9zZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pCkBAIC05MjQsOCArOTMwLDE1IEBAIHVuc2lnbmVkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9EZWNvZGVkQnl0ZUNvdW50KCkgY29uc3QKICNpZiBFTkFC
TEUoV0VCX0FVRElPKQogQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkKIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBp
ZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlcikKKyAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVy
ID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y3JlYXRlKG1faWQsICp0aGlzKTsKKworICAg
IHJldHVybiBtX2F1ZGlvU291cmNlUHJvdmlkZXIuZ2V0KCk7CisjZWxzZQogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaAppbmRleCBkZTZmMGViMzdiOGNiOTVjYmFjMGY1YzgyOTQzNWQz
OGQ3YTk3MWY5Li5iYzc3ZjA4YTFlMzkyNTQxNzQzNzQxOTgwN2VkYjJmN2RhYTNjYTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgVmlkZW9MYXll
ck1hbmFnZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyOwogY2xhc3MgVXNlckRhdGE7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsK
QEAgLTM3NCw2ICszNzUsMTAgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRl
IG1fY2FjaGVkU3RhdGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGlt
ZVJhbmdlcz4gbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5nZXM7CiAKKyNpZiBFTkFCTEUoV0VCX0FV
RElPKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBSZWZQdHI8UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcj4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyOworI2VuZGlmCisKICAgICBIYXNoTWFwPFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJl
c291cmNlPj4gbV9tZWRpYVJlc291cmNlczsKICAgICBIYXNoTWFwPFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4+IG1fYXVkaW9UcmFja3M7
CiAgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8VmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGU+PiBtX3ZpZGVvVHJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTk5MGNlN2Q1NTllOTg0OWJmOWVjZjcwOWNmM2RiMzIyZGMzN2Zi
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitleHRlcm4gV1RGTG9n
Q2hhbm5lbCBMb2dNZWRpYTsKKyNlbmRpZgorfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYgaGVscGVyKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVs
cGVyKSk7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6TG9nZ2VySGVs
cGVyJiBoZWxwZXIpCisgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKGhlbHBlci5sb2dnZXIoKSkKKyAgICAsIG1f
bG9nSWRlbnRpZmllcihoZWxwZXIubG9nSWRlbnRpZmllcigpKQorI2VuZGlmCit7CisgICAgVU5V
U0VEX1BBUkFNKGhlbHBlcik7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6On5SZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkKK3sKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyOjpjbG9zZSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6
aGFzTmV3Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKQoreworICAgIC8vIEZJWE1F
OiByZWdpc3Rlci91bnJlZ2lzdGVyIGFzIG5lZWRlZC4KK30KKwordm9pZCBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXpl
X3Qgc2l6ZSkKK3sKKyAgICByZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhkYXRhLCBkZXNjcmlwdGlv
biwgc2l6ZSk7Cit9CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxvZ0NoYW5uZWwm
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJl
dHVybiBMb2dNZWRpYTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzZDUyN2Mz
NjVlYWI3N2FmZjFhODNlMjlmODM0MjhiNjZkM2YyY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIu
aApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVBsYXllcklkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBmaW5hbAorICAg
IDogcHVibGljIFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwcm90ZWN0ZWQgV1RGOjpMb2dnZXJIZWxwZXIKKyNl
bmRpZgoreworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cj4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxw
ZXImKTsKKyAgICB+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworCisgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIGNs
b3NlKCk7CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBXVEY6Okxv
Z2dlckhlbHBlciYpOworCisgICAgLy8gV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMKKyAgICB2b2lkIGhhc05ld0NsaWVudChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVy
Q2xpZW50KikgZmluYWw7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBXVEY6Okxv
Z2dlckhlbHBlciYgbG9nZ2VySGVscGVyKCkgZmluYWwgeyByZXR1cm4gKnRoaXM7IH0KKworICAg
IC8vIFdURjo6TG9nZ2VySGVscGVyCisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50
aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBjb25z
dCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlciI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Qg
ZmluYWw7CisjZW5kaWYKKworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dl
cj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQppbmRleCBhZTdhOWQzYWY0YjM1ZGJl
NTU2M2UyMmEwM2M1MmMwZDk5YmE3Yzc0Li40ZjNkZTc3M2MxMjM2ZjMzMGY1NDBhOWM4ZDY0MTAw
Y2ZiMDViYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29j
b2EubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExB
VEZPUk0oQ09DT0EpCiAKKyNpbXBvcnQgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCIKICNp
bXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KIAo=
</data>
<flag name="commit-queue"
          id="427504"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411331</attachid>
            <date>2020-10-14 09:30:29 -0700</date>
            <delta_ts>2020-10-14 23:54:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217710-20201014183027.patch</filename>
            <type>text/plain</type>
            <size>42639</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYwYTE0OGEwNTQ2NjBj
NGQ0NzUwMDMyZTNiYmQ4NGYxOGYyNjY1Yi4uZjdhNWNiMjk2MzE0N2FhNTE5YjZiMjQ2MjQ1Y2Yw
NzM2NTg4ZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1
ZGlvIGZyb20gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3BsaXQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgTWVkaWFTdHJl
YW1UcmFjayBzcGVjaWZpYyBiaXRzIGluIGEgc2VwYXJhdGUgTWVkaWFTdHJlYW1UcmFja0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDIGNsYXNzLgorICAgICAgICBUaGlzIGFsbG93cyByZXVzaW5n
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIGZvciBzYW1wbGVzIGNvbWluZyBmcm9tIHZp
ZGVvIHBsYXliYWNrIGxpdmluZyBpbiBHUFVQcm9jZXNzLgorICAgICAgICBObyBjaGFuZ2Ugb2Yg
YmVoYXZpb3IuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6TWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fk1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omhhc05ld0NsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5h
YmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmguCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6cmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMpOgorCiAyMDIwLTEwLTEzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJjYW0gdmlkZW8gZnJvbSBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpIHRvIDJEIGNhbnZhcyBmYWlscyBvbiBTYWZh
cmkgb24gaVBob25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1MDgwOTViYzZhNTY3YWFkNzY0NmNjOWRlNDUxZDlk
ZjVlMzk1NWMuLjU3ZjAyMjJhMDU2MDlmOTc1OTBkOGUwYWEwM2Y4NzM1ZDZkOTRjMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMTAtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBhIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHVz
ZSBvZiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyB0byBpbXBsZW1lbnQgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlci4KKyAgICAgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBjdXJy
ZW50bHkgaW1wbGVtZW50cyBhbiBBdWRpb1NvdXJjZVByb3ZpZGVyIGJ1dCBpdCBpcyBub3QgeWV0
IGNvbm5lY3RlZCB0byBHUFVQcm9jZXNzIG1lZGlhIHBsYXllcnMuCisgICAgICAgIFRoaXMgd2ls
bCBiZSBpbXBsZW1lbnRlZCBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjphdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFz
TmV3Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KwogMjAyMC0xMC0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
W1ByZWZlcmVuY2VzXSBJbnRyb2R1Y2Ugc3RyaW5nIGJhc2VkIFNQSSBmb3IgV0tQcmVmZXJlbmNl
cyB0byBhbGxvdyB0ZXN0cyB0byBjaGFuZ2UgaW50ZXJuYWwgYmVoYXZpb3Igd2l0aG91dCBhbHdh
eXMgYWRkaW5nIGFkZGl0aW9uYWwgU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxYWZj
YjgwN2RkZTkwODg3ZDMxNGE3NjcxMWI3ZDUzMTliYTgwNTg0Li4zNWE2Mjc5YTE4NDNkNWFjYTA2
ZTViYzBhZjAyYjdkNTlmZDVkNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTUzMiw2
ICs1MzIsNyBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJD
b2NvYS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMmIzZDAzNDczNDgxYzc4YTJlMDAxOTc1ZWFlYjA2
NDIzNTZiOTk5Li5jYTNlNTcxZjdlMzQ3ZWYwMGNjNDIzYjM0YzM5NmQ5ZTY2OWI3YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01MzE2LDcgKzUzMTYsNyBAQAogCQlGRDU4MUZBRjE1MjBGOTFGMDAzQTdBNzUgLyogT3NjaWxs
YXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZENTgxRkFDMTUyMEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlG
RDU4MUZCNTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDU4MUZCMjE1MjBGOTNCMDAzQTdBNzUg
LyogUGVyaW9kaWNXYXZlLmggKi87IH07CiAJCUZENjI5RUEzMTU0QjQ3MTYwMDA2RDAyNiAvKiBB
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNw
ZWN0b3JOb2RlLmggKi87IH07Ci0JCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDYyRjUyRDE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRl
ckNsaWVudC5oICovOyB9OworCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3Vy
Y2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQ2MkY1MkQxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRDY3MUE3ODE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjcxQTc1
MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovOyB9Owog
CQlGRDZFRDJDNDEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzIxMzZC
OEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLzsgfTsKIAkJRkQ2RUQy
QzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzYxMzZCOEU2NjAwM0NGMDcy
IC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oICovOyB9OwpAQCAtNzU5NCw2ICs3NTk0LDggQEAKIAkJ
NDE3MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTcyNTNBODEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyog
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IExpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJB
QzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg7IHBhdGggPSBs
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3MDQ0LDYgKzE3MDQ2LDggQEAKIAkJCQkwN0E2RDg0OTFGRUI3MDBDMDA2NDQxREUgLyogRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuaCAqLywKIAkJCQkwN0E2RDg0NzFGRUI3MDBCMDA2NDQx
REUgLyogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgKi8sCiAJCQkJMDdBNkQ4NEExRkVC
NzAwRDAwNjQ0MURFIC8qIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaCAqLywKKwkJCQk0MTc0
RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmNwcCAqLywKKwkJCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQyMDIgLyogTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8sCiAJCQkJMDc0NEVDRUIx
RTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCAqLywKIAkJCQkwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLywKIAkJCQkwN0VF
NzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCmluZGV4IDc3ZmMwMmQ4ZDkwM2U3MDJhZGUyMjQ2NGVj
OWM4MWE2ODZlODQwNTQuLmI1YjNhN2YxMjJlZjMyMjM3ZDkwNWQ4OGRhZjliMzdkZjI3OThlNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIgogCi0jaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKLQogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJWZWN0
b3JNYXRoLmgiCiAjaW5jbHVkZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CkBAIC0zMjAsNSAr
MzE4LDMgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShDQVJpbmdC
dWZmZXImIHJpbmdCdWZmZXIsIHNpemVfdCBzYW1wbGUKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0
LmgKaW5kZXggODE1MmY4NjAwYmQ5NDkxMDBiNjI5MmI4ZjZhNDg0MzBlMWQ4ZWMzNy4uODFhY2Rl
N2U5N2NmOTU3YjAwMDExMDcwOWVkOTM0YmM3MTQ0ZDU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0
LmgKQEAgLTI1LDggKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCiAjaW5jbHVkZSAiQ0FSaW5nQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9C
dWZmZXJMaXN0LmgiCiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CkBAIC05
Nyw1ICs5NSwzIEBAIGlubGluZSBzaXplX3QgQXVkaW9TYW1wbGVCdWZmZXJMaXN0OjphdWRpb0J1
ZmZlckxpc3RTaXplRm9yU3RyZWFtKGNvbnN0IENBQXVkaW9TCiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oCmluZGV4IDI5OWI5NGFmMTYzNzAxZGFkNWYzM2NlMjI2YjMyMDM1MzdhZWM4NTkuLjk1
ZmIyZjdhMzQxYzRmZGY2YzhmODJjZmM0MWI5Mjg5MmE3ODM1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLQogI2luY2x1ZGUgIkF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIgogI2luY2x1
ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxw
ZXIuaD4KQEAgLTEyMyw1ICsxMjEsMyBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5tbQppbmRleCA3MzJjNzIxNmQ0Y2MwYjE3ZTAyYjI2OTQwYWMzNjhhYWIyNzEwNzU2Li5l
ZjdmZDA0MzkxYzU4NGQwY2ViZTY2ODExN2ViYzdjMmE4YmEyYWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRh
U291cmNlLm1tCkBAIC0yNiwxMiArMjYsMTAgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgiCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
CiAjaW1wb3J0ICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKICNpbXBvcnQgIkNBUmluZ0J1
ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgotI2ltcG9ydCAiTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaCIKKyNpbXBvcnQgIlBsYXRmb3JtQXVkaW9EYXRhLmgiCiAjaW1wb3J0IDxBdWRpb1Rv
b2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8
bWFjaC9tYWNoX3RpbWUuaD4KQEAgLTM3OSw1ICszNzcsMyBAQCBXVEZMb2dDaGFubmVsJiBBdWRp
b1NhbXBsZURhdGFTb3VyY2U6OmxvZ0NoYW5uZWwoKSBjb25zdAogI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXggNTY5ZjkwMTk3MGYyMmMyODI1NjdlYmIwYjYzYzNi
YWVlY2UzODVkYy4uMmM3NjMwN2M4YTg3NmU1ODQwODBhNTNlNTBjYTIyODcxYjNiM2Y4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUg
PHd0Zi9VVUlELmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlICJXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oIgogI2VsaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkgJiYgVVNFKExJQldFQlJUQykgJiYgVVNFKEdTVFJFQU1FUikKICNpbmNs
dWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmgiCiAjZWxzZQpAQCAtMTg4LDcgKzE4
OCw3IEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjphdWRp
b1NvdXJjZVByb3ZpZGVyKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIW1fYXVk
aW9Tb3VyY2VQcm92aWRlcikKLSAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSgqdGhpcyk7CisgICAgICAgIG1fYXVkaW9T
b3VyY2VQcm92aWRlciA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6Y3JlYXRlKCp0aGlzKTsKICNlbGlmIFVTRShMSUJXRUJSVEMpICYmIFVTRShHU1RSRUFNRVIp
CiAgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlkZXIpCiAgICAgICAgIG1fYXVkaW9Tb3VyY2VQ
cm92aWRlciA9IEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OmNyZWF0ZSgqdGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgKaW5kZXggNDdjODVmODJlNmJjMjAyY2QwMTE4N2YxNzI0ODU1Zjc3YjY2
NzcwMy4uMDliMDhmNDc4NmI1Mjc5YTIxOGEzN2NlOGU5ZDZiOTY1YzQyYjYxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaApAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGlt
ZU1lZGlhU291cmNlCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVN
ZWRpYVNvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpblJ1bkxvb3A+CiAgICAgLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZSwgV2Vha1B0ckZhY3RvcnlJ
bml0aWFsaXphdGlvbjo6RWFnZXI+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgLCBw
cm90ZWN0ZWQgTG9nZ2VySGVscGVyCisgICAgLCBwdWJsaWMgTG9nZ2VySGVscGVyCiAjZW5kaWYK
IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaAppbmRleCBlN2Q4ODg5MjQ2ZjRjMWU4
ODBjNDc4MjZlMzYyMzZmNTZmMzBjMmFjLi5lNDFiNDk2ZDdhNmEyNmVlYWJlZTU3ODM3NGZjZDI2
ZDVhMzAwZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQogCiAjaW5jbHVkZSAiQXVkaW9Tb3VyY2VQcm92
aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJh
Y2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYzM5ZmVkOGVlZDUzMDY0YzU1YzcwMmRiZjdmNGFjMjBlOTY0
YTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5jcHAKQEAg
LTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJNZWRp
YVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHNvdXJjZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVN0
cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoc291cmNlKSk7Cit9CisKK01lZGlh
U3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6TWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2Up
CisgICAgOiBtX2NhcHR1cmVTb3VyY2UobWFrZVdlYWtQdHIoc291cmNlKSkKKyAgICAsIG1fc291
cmNlKHNvdXJjZS5zb3VyY2UoKSkKK3sKK30KKworTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDOjp+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDKCkKK3sKKyAgICBBU1NFUlQoIW1fY29ubmVjdGVkKTsKKyAgICBtX3NvdXJjZS0+cmVtb3Zl
QXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpoYXNOZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRl
ckNsaWVudCogY2xpZW50KQoreworICAgIGJvb2wgc2hvdWxkQmVDb25uZWN0ZWQgPSAhIWNsaWVu
dDsKKyAgICBpZiAobV9jb25uZWN0ZWQgPT0gc2hvdWxkQmVDb25uZWN0ZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY29ubmVjdGVkID0gc2hvdWxkQmVDb25uZWN0ZWQ7CisgICAgaWYgKCFj
bGllbnQpIHsKKyAgICAgICAgbV9jYXB0dXJlU291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7
CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZW5hYmxlZCA9IG1fY2FwdHVyZVNvdXJjZS0+
ZW5hYmxlZCgpOworICAgIG1fY2FwdHVyZVNvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAg
IG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRp
YVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIG1fZW5hYmxlZCA9IHRy
YWNrLmVuYWJsZWQoKTsKK30KKworLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRo
cmVhZC4KK3ZvaWQgTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBz
aXplX3QgZnJhbWVDb3VudCkKK3sKKyAgICBpZiAoIW1fZW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMoZGF0YSwgZGVzY3JpcHRpb24sIGZyYW1l
Q291bnQpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlMjkzNGM3MDVkMzg1ODQ1
NDYzNzNmM2UxZmU5YTUxOTgxYzBkNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMgZmluYWwKKyAgICA6IHB1YmxpYyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQworICAgICwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgLCBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gY3JlYXRl
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CisgICAgfk1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQygpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU3Ry
ZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpOworCisgICAgLy8gV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMKKyAgICB2b2lkIGhh
c05ld0NsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgZmluYWw7CisjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECisgICAgV1RGOjpMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlcigpIGZp
bmFsIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CisjZW5kaWYKKworICAgIC8vIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIHRyYWNrU2V0dGluZ3ND
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9CisgICAgdm9pZCB0cmFj
a0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CisKKyAgICAv
LyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAg
IFdlYWtQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fY2FwdHVyZVNvdXJjZTsKKyAgICBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgYm9vbCBtX2VuYWJsZWQgeyB0
cnVlIH07CisgICAgYm9vbCBtX2Nvbm5lY3RlZCB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAppbmRleCBlZDc4
MzBjNGQwNjA2NTU1ZTk5MDE3YjZkZGFhYjUzOTExYTBlZWVkLi45OTEzYTFhNzUzNGU3ZmVhMGRh
MWE2ODQ4YTkyNzczZTQyMjgwODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNSwxMCArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJM
RShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFdFQl9BVURJ
TykKIAogI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ci5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CkBAIC00MSw0MCArNDAsNDEgQEAgdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbjsKIHR5cGVkZWYgY29u
c3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24gKkNNRm9ybWF0RGVzY3JpcHRpb25S
ZWY7CiB0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJS
ZWY7CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTG9nZ2VySGVscGVyOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTsKIGNsYXNzIENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgV2Vi
QXVkaW9CdWZmZXJMaXN0OwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQyBmaW5hbAotICAgIDogcHVibGljIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIK
LSAgICAsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgotICAgICwgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQworICAgIDogcHVibGljIFdlYkF1ZGlvU291cmNl
UHJvdmlkZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM+IGNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOwotICAgIHZpcnR1YWwg
fldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCk7CisgICAgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMoKTsKKyAgICB+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsKIAot
ICAgIHZvaWQgcHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKLSAg
ICB2b2lkIHVucHJlcGFyZSgpOworcHJvdGVjdGVkOgorICAgIHZvaWQgcmVjZWl2ZWROZXdBdWRp
b1NhbXBsZXMoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworICAgIHZpcnR1YWwg
dm9pZCBoYXNOZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopID0gMDsKKyNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICB2aXJ0dWFsIFdURjo6TG9nZ2VySGVscGVyJiBsb2dn
ZXJIZWxwZXIoKSA9IDA7CisjZW5kaWYKIAogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIKICAg
ICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBz
ZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIGZpbmFsOwogCi0gICAgLy8gTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCi0gICAgdm9pZCB0cmFja0VuZGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9Ci0gICAgdm9pZCB0cmFja011dGVkQ2hhbmdl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQotICAgIHZvaWQgdHJhY2tTZXR0
aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAgICB2b2lk
IHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAg
ICB2b2lkIHByZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJik7CiAKLSAg
ICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCi0gICAgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAg
ICBMb2NrIG1fbG9jazsKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBtX2NsaWVudCB7
IG51bGxwdHIgfTsKIAotICAgIHNpemVfdCBtX2xpc3RCdWZmZXJTaXplIHsgMCB9OwogICAgIE9w
dGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9pbnB1dERlc2NyaXB0aW9uOwogICAg
IE9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlvbjsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVyTGlz
dDsKQEAgLTgyLDE0ICs4Miw4IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX3dyaXRlQ291
bnQgeyAwIH07CiAgICAgdWludDY0X3QgbV9yZWFkQ291bnQgeyAwIH07Ci0gICAgQXVkaW9Tb3Vy
Y2VQcm92aWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUqIG1fY2FwdHVyZVNvdXJjZSB7IG51bGxwdHIgfTsKLSAgICBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Ci0gICAgTG9jayBtX2xvY2s7Ci0gICAgYm9vbCBtX2Nv
bm5lY3RlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CiB9OwogCiB9
CiAKLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggOTFlODg2NTc5NWI1OWQwYmRhMzYz
NDE0ODNlYWExMjBjMWFmZGM1ZC4uMDhmNWRjZTg2MjcxOTZjMmNiZTY2ZTI1YWNmNjhlZDgwZjEx
MDU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpA
QCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oIgogCi0jaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQogCiAjaW1wb3J0ICJBdWRpb0J1
cy5oIgogI2ltcG9ydCAiQXVkaW9DaGFubmVsLmgiCkBAIC00NywyNyArNDcsMjAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24g
PSAxOwogCi1SZWY8V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkK
K1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMoc291cmNlKSk7CiB9CiAKLVdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291
cmNlKQotICAgIDogbV9jYXB0dXJlU291cmNlKCZzb3VyY2UpCi0gICAgLCBtX3NvdXJjZShzb3Vy
Y2Uuc291cmNlKCkpCi0gICAgLCBtX2VuYWJsZWQoc291cmNlLmVuYWJsZWQoKSkKK1dlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKQog
ewotICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QygpCit2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRDbGllbnQoQXVkaW9T
b3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogewotICAgIG1fc291cmNlLT5yZW1vdmVBdWRp
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKLQotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9s
b2NrKTsKLQotICAgIGlmIChtX2Nvbm5lY3RlZCAmJiBtX2NhcHR1cmVTb3VyY2UpCi0gICAgICAg
IG1fY2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIGlmIChtX2NsaWVu
dCA9PSBjbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAg
ICBoYXNOZXdDbGllbnQoY2xpZW50KTsKIH0KIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpCkBAIC0xMDUsMjUgKzk4LDYgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1AKICAgICBtX3Jl
YWRDb3VudCArPSBmcmFtZXNUb1Byb2Nlc3M7CiB9CiAKLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQp
Ci17Ci0gICAgaWYgKG1fY2xpZW50ID09IGNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9jbGllbnQgPSBjbGllbnQ7Ci0KLSAgICBpZiAoIW1fY2FwdHVyZVNvdXJjZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKG1fY2xpZW50ICYmICFtX2Nvbm5lY3RlZCkgewotICAgICAgICBt
X2Nvbm5lY3RlZCA9IHRydWU7Ci0gICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+YWRkT2JzZXJ2ZXIo
KnRoaXMpOwotICAgIH0gZWxzZSBpZiAoIW1fY2xpZW50ICYmIG1fY29ubmVjdGVkKSB7Ci0gICAg
ICAgIG1fY2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgICAgICBtX2Nv
bm5lY3RlZCA9IGZhbHNlOwotICAgIH0KLX0KLQogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6cHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGZvcm1h
dCkKIHsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CkBAIC0xNDYsNyArMTIw
LDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGYKICAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG1h
a2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX291dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkp
OwogCiAgICAgaWYgKCFtX2RhdGFTb3VyY2UpCi0gICAgICAgIG1fZGF0YVNvdXJjZSA9IEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGtSaW5nQnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRl
LCAqbV9jYXB0dXJlU291cmNlKTsKKyAgICAgICAgbV9kYXRhU291cmNlID0gQXVkaW9TYW1wbGVE
YXRhU291cmNlOjpjcmVhdGUoa1JpbmdCdWZmZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIGxvZ2dl
ckhlbHBlcigpKTsKICAgICBtX2RhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KG1faW5wdXREZXNj
cmlwdGlvbi52YWx1ZSgpKTsKICAgICBtX2RhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChtX291
dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwogCkBAIC0xNTYsMzIgKzEzMCw5IEBAIHZvaWQgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uJiBmCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnVucHJlcGFyZSgpCi17Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xv
Y2spOwotCi0gICAgbV9pbnB1dERlc2NyaXB0aW9uID0gV1RGOjpudWxsb3B0OwotICAgIG1fb3V0
cHV0RGVzY3JpcHRpb24gPSBXVEY6Om51bGxvcHQ7Ci0gICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBu
dWxscHRyOwotICAgIG1fZGF0YVNvdXJjZSA9IG51bGxwdHI7Ci0gICAgbV9saXN0QnVmZmVyU2l6
ZSA9IDA7Ci0gICAgaWYgKG1fY2FwdHVyZVNvdXJjZSkgewotICAgICAgICBtX2NhcHR1cmVTb3Vy
Y2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAgbV9jYXB0dXJlU291cmNlID0gbnVs
bHB0cjsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRy
YWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotewotICAg
IG1fZW5hYmxlZCA9IHRyYWNrLmVuYWJsZWQoKTsKLX0KLQogLy8gTWF5IGdldCBjYWxsZWQgb24g
YSBiYWNrZ3JvdW5kIHRocmVhZC4KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBmcmFtZUNvdW50KQordm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3Vu
dCkKIHsKLSAgICBpZiAoIW1fZW5hYmxlZCB8fCAhbV9jb25uZWN0ZWQpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9
PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKICAgICBhdXRv
JiBiYXNpY0Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7
CiAgICAgaWYgKCFtX2lucHV0RGVzY3JpcHRpb24gfHwgbV9pbnB1dERlc2NyaXB0aW9uLT5zdHJl
YW1EZXNjcmlwdGlvbigpICE9IGJhc2ljRGVzY3JpcHRpb24pCkBAIC0xOTcsNCArMTQ4LDQgQEAg
dm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnMKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJ
TykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDc3NjkwZDBkZDUyNzJhMDVlMmE3ODQyMjIxOGEzNWI0
MjJiNTc1NWEuLjdhMDZlOTExZGYzNGUxNmNmOTQ1NmI0MTUyNmRhNjM1YTQyMzAyODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU2NCw2ICs1NjQsNyBAQCBXZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2Uv
V2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKK1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTVmNTQxMGNiZWU1ZDBl
NWU4ZGE0ZjVmY2IwZWQzODBkNjM0N2FiMi4uMjU3YTc0ZGRhZmEwYzE2YTY0MTlkMzU3MTFkOWMy
OGY0MjQ4ZmJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zNDE5LDYgKzM0MTksOCBAQAogCQk0MTI4N0Q0QjIyNUMwNUM0MDA5QTNF
MjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViU29ja2V0VGFza0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTI4N0Q0QzIyNUMwNUM1MDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tldFRhc2tDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI4N0Q0RDIyNUMxNjFGMDA5QTNFMjYgLyog
V2ViU29ja2V0VGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2Nr
ZXRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTE2MjUzNzNGOUQw
MDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkxNzI1MzczRjlEMDAxREYwMzYgLyogUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMzA3NTlBMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA3NTlCMURFODRGQjAwMDM5RUM2OSAv
KiBOZXR3b3JrUlRDTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JrUlRDTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzU5
QzFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3IubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya1JUQ01vbml0b3IubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTYwLDYgKzU1NjIsOCBAQAogCQkJCUNERDUzNTZGMjQw
REQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
Q0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24uaCAqLywKIAkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllci5oICovLAorCQkJCTQxMkZGOTE2MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTJGRjkxNzI1MzczRjlEMDAxREYw
MzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJG
NzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIx
REVFMyAvKiBSZW1vdGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyog
UmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IDg5ZDZmZTlhOGZiMzIzODRhMjdlNDI0Zjc5OTkyZTRkYzQ0YzE5NzIuLmNhYjU4MWJi
OWViMTQ4YjFkYzQ3ZWIxNTFiYTZlODBiYTAzM2JlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5o
IgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgiCkBAIC0xMTUs
NiArMTE2LDExIEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSgpCiAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIo
KTsKICNlbmRpZgogICAgIG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsK
KworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChtX2F1
ZGlvU291cmNlUHJvdmlkZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlci0+Y2xvc2Uo
KTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmln
dXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKQpAQCAt
OTI0LDggKzkzMCwxNSBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVv
RGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIEF1ZGlvU291
cmNlUHJvdmlkZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YXVkaW9Tb3VyY2VQcm92aWRl
cigpCiB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlk
ZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXI6OmNyZWF0ZShtX2lkLCAqdGhpcyk7CisKKyAgICByZXR1cm4gbV9hdWRpb1NvdXJjZVBy
b3ZpZGVyLmdldCgpOworI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBu
dWxscHRyOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5k
ZXggZGU2ZjBlYjM3YjhjYjk1Y2JhYzBmNWM4Mjk0MzVkMzhkN2E5NzFmOS4uYmM3N2YwOGExZTM5
MjU0MTc0Mzc0MTk4MDdlZGIyZjdkYWEzY2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
CkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJE
YXRhOwogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CkBAIC0zNzQsNiArMzc1LDEwIEBAIHBy
aXZhdGU6CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkQnVmZmVy
ZWRUaW1lUmFuZ2VzOwogCisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0Ep
CisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IG1fYXVkaW9Tb3VyY2VQcm92
aWRlcjsKKyNlbmRpZgorCiAgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4+IG1fbWVkaWFSZXNvdXJj
ZXM7CiAgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8QXVkaW9U
cmFja1ByaXZhdGVSZW1vdGU+PiBtX2F1ZGlvVHJhY2tzOwogICAgIEhhc2hNYXA8VHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPj4gbV92aWRl
b1RyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5OTBj
ZTdkNTU5ZTk4NDliZjllY2Y3MDljZjNkYjMyMmRjMzdmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VC
X0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7CisjZW5k
aWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
UmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpM
b2dnZXJIZWxwZXImIGhlbHBlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyKGlkZW50aWZpZXIsIGhlbHBlcikpOworfQorCitSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKE1lZGlhUGxheWVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYgaGVscGVyKQorICAgIDogbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBt
X2xvZ2dlcihoZWxwZXIubG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIoaGVscGVyLmxv
Z0lkZW50aWZpZXIoKSkKKyNlbmRpZgoreworICAgIFVOVVNFRF9QQVJBTShoZWxwZXIpOworfQor
CitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigp
Cit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UoKQoreworfQor
Cit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6Omhhc05ld0NsaWVudChBdWRpb1NvdXJj
ZVByb3ZpZGVyQ2xpZW50KikKK3sKKyAgICAvLyBGSVhNRTogcmVnaXN0ZXIvdW5yZWdpc3RlciBh
cyBuZWVkZWQuCit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNpemUpCit7CisgICAgcmVjZWl2
ZWROZXdBdWRpb1NhbXBsZXMoZGF0YSwgZGVzY3JpcHRpb24sIHNpemUpOworfQorCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyOjpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisjZW5k
aWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2Q1MjdjMzY1ZWFiNzdhZmYxYTgzZTI5ZjgzNDI4
YjY2ZDNmMmNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgZmluYWwKKyAgICA6IHB1YmxpYyBXZWJDb3JlOjpXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
ICwgcHJvdGVjdGVkIFdURjo6TG9nZ2VySGVscGVyCisjZW5kaWYKK3sKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IGNyZWF0ZShXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIsIFdURjo6TG9nZ2VySGVscGVyJik7CisgICAgflJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIoKTsKKworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0
IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHNpemVfdCk7CisgICAgdm9pZCBjbG9zZSgpOworCisgICAgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImKTsKKworICAgIC8v
IFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisgICAgdm9pZCBoYXNOZXdD
bGllbnQoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIGZpbmFsOworCisjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgV1RGOjpMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBl
cigpIGZpbmFsIHsgcmV0dXJuICp0aGlzOyB9CisKKyAgICAvLyBXVEY6OkxvZ2dlckhlbHBlcgor
ICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIu
Z2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIiOyB9CisgICAg
V1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworI2VuZGlmCisKKyAgICBX
ZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0
IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8p
ICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlQ29jb2EubW0KaW5kZXggYWU3YTlkM2FmNGIzNWRiZTU1NjNlMjJhMDNjNTJjMGQ5OWJhN2M3
NC4uNGYzZGU3NzNjMTIzNmYzMzBmNTQwYTljOGQ2NDEwMGNmYjA1YmJjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQogCisjaW1wb3J0
ICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1ZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411412</attachid>
            <date>2020-10-14 23:54:58 -0700</date>
            <delta_ts>2020-10-15 03:49:47 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217710-20201015085454.patch</filename>
            <type>text/plain</type>
            <size>63495</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYwYTE0OGEwNTQ2NjBj
NGQ0NzUwMDMyZTNiYmQ4NGYxOGYyNjY1Yi4uNjFhZjhkNDMwZGJmNGFhOTM5ZjY5Nzc3YTYzYzI5
YjMwYjQyZmM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1
ZGlvIGZyb20gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFNwbGl0IFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIE1lZGlhU3RyZWFtVHJhY2sgc3BlY2lmaWMgYml0
cyBpbiBhIHNlcGFyYXRlIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QyBjbGFzcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgcmV1c2luZyBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQyBmb3Igc2FtcGxlcyBjb21pbmcgZnJvbSBhdWRpbyBwbGF5YmFjayBsaXZpbmcg
aW4gR1BVUHJvY2Vzcy4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAg
ICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZm
ZXJMaXN0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURh
dGFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURh
dGFTb3VyY2UubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OmF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92
aWRlckNvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlk
ZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hOjp+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNv
Y29hOjpoYXNOZXdDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1
ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6dHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRp
YVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmg6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW06CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2Nv
YS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmguCisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbTogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlk
ZXJDb2NvYTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6fldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2Nv
YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnNldENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnBy
b3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2E6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNv
Y29hOjpyZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyk6CisKIDIwMjAtMTAtMTMgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYmNhbSB2aWRlbyBmcm9tIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKCkgdG8gMkQgY2FudmFzIGZhaWxzIG9uIFNh
ZmFyaSBvbiBpUGhvbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODUwODA5NWJjNmE1NjdhYWQ3NjQ2Y2M5ZGU0NTFk
OWRmNWUzOTU1Yy4uNTdmMDIyMmEwNTYwOWY5NzU5MGQ4ZTBhYTAzZjg3MzVkNmQ5NGMwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0xMC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlciB0byByZWNlaXZlIGF1ZGlvIHNhbXBsZXMgZm9yIHdlYiBhdWRpbyBmcm9tIEdQVVByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzcx
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
dXNlIG9mIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIHRvIGltcGxlbWVudCBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyLgorICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIGN1
cnJlbnRseSBpbXBsZW1lbnRzIGFuIEF1ZGlvU291cmNlUHJvdmlkZXIgYnV0IGl0IGlzIG5vdCB5
ZXQgY29ubmVjdGVkIHRvIEdQVVByb2Nlc3MgbWVkaWEgcGxheWVycy4KKyAgICAgICAgVGhpcyB3
aWxsIGJlIGltcGxlbWVudGVkIGluIGEgZm9sbG93LXVwLgorCisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6On5SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cjo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpo
YXNOZXdDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1t
OgorCiAyMDIwLTEwLTExICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbUHJlZmVyZW5jZXNdIEludHJvZHVjZSBzdHJpbmcgYmFzZWQgU1BJIGZvciBXS1ByZWZlcmVu
Y2VzIHRvIGFsbG93IHRlc3RzIHRvIGNoYW5nZSBpbnRlcm5hbCBiZWhhdmlvciB3aXRob3V0IGFs
d2F5cyBhZGRpbmcgYWRkaXRpb25hbCBTUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDFh
ZmNiODA3ZGRlOTA4ODdkMzE0YTc2NzExYjdkNTMxOWJhODA1ODQuLmE5MDY4MzdiZTEzMTY5MTAw
MjE0ZjkwOWU4MWE2NjgyZWVlMTNiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtNTMy
LDYgKzUzMiw3IEBAIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlci5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdl
ckNvY29hLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwCitwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlv
U291cmNlUHJvdmlkZXJDb2NvYS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTU0Miw3ICs1NDMsNyBAQCBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlck1hYy5tbQotcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCitwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCiBwbGF0Zm9ybS9tb2Nr
L01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmNwcAogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTW9jay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMmIzZDAzNDczNDgxYzc4YTJlMDAxOTc1ZWFlYjA2
NDIzNTZiOTk5Li45ZGQ2ZWFlYjBlYzFjNWYwYjczZWYyZmFiM2YzMzEyZGY1MGZiNjZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMDcsNyArMjA3LDcgQEAKIAkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5NDg5IC8qIEFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDdDQjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJW
aWV3VGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwN0NFNzdENTE2NzEyQTZBMDBDNTVBNDcgLyog
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDRTc3RDQxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwN0QxMkY1QzIzREU1NDNGMDA4MDk5N0QgLyogSVNPVlRUQ3VlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDg3MUM2NTFG
QjUyQjY3MDBGMEI5NjUgLyogSVNPVlRUQ3VlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDdENjM3NDAxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwN0Q2Mzc0MDFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNv
Y29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MDdENkE0RjQxQkVENUY4ODAwMTc0MTQ2IC8qIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0Q2QTRGMjFCRUQ1
Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQx
NDYgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdENkE0RjYxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCAqLzsgfTsKIAkJMDdFM0RGRDExQTlFNzg2NTAw
NzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RTNERkQwMUE5RTc4NjUwMDc2NENBOCAvKiBNZWRpYVBs
YXliYWNrVGFyZ2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTUzMTYsNyArNTMxNiw3IEBACiAJCUZENTgxRkFGMTUyMEY5MUYwMDNBN0E3NSAv
KiBPc2NpbGxhdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQ1ODFGQUMxNTIwRjkxRjAwM0E3QTc1IC8qIE9zY2lsbGF0b3JOb2RlLmggKi87
IH07CiAJCUZENTgxRkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENTgxRkIyMTUyMEY5M0Iw
MDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCAqLzsgfTsKIAkJRkQ2MjlFQTMxNTRCNDcxNjAwMDZE
MDI2IC8qIEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDYyOUVBMTE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9C
YXNpY0luc3BlY3Rvck5vZGUuaCAqLzsgfTsKLQkJRkQ2MkY1MkUxNDU4OThEODAwOTRCMEVEIC8q
IEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZENjJGNTJEMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJj
ZVByb3ZpZGVyQ2xpZW50LmggKi87IH07CisJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBB
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRDYyRjUyRDE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUZENjcxQTc4MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQ2NzFBNzUxNTlCQjA3MDAwMTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmgg
Ki87IH07CiAJCUZENkVEMkM0MTM2QjhFNDIwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNzb3JO
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZF
RDJDMjEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5oICovOyB9Owog
CQlGRDZFRDJDODEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDNjEzNkI4RTY2
MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggKi87IH07CkBAIC01NzY5LDggKzU3Njks
OCBAQAogCQkwN0NCOUU2RjI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJn
ZXRQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDQjlFNzEyNDlDMjI2
QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdENjM3
M0UxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RDYzNzNGMUJCMEIxMTMwMDI1
NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkg
LyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwN0Q2MzczRjFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0Q2QTRGMTFCRUQ1Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2QTRGMjFCRUQ1
Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDdENkE0RjYxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oOyBwYXRoID0gcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CkBAIC03NTk0LDYgKzc1OTQsOCBAQAogCQk0MTcwQTJFOTFEOEMwQ0MwMDAzMTg0NTIgLyog
SlNET01XcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RE9NV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzI1M0E4MTM1
NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTcyNTNBOTEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxNzRFOTFFMjUzNURDRDYwMEZFNDIwMiAvKiBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJj
ZVByb3ZpZGVyQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NEU5MjAy
NTM1RENERDAwRkU0MjAyIC8qIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzYxMkFCMUUz
QTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBwYXRo
ID0gbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTc2MTJBQzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENNZWRp
YUVuZHBvaW50Lmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyog
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHBhdGgg
PSBsaWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDQ0LDYgKzE3MDQ2LDggQEAKIAkJCQkwN0E2RDg0OTFG
RUI3MDBDMDA2NDQxREUgLyogRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuaCAqLywKIAkJCQkw
N0E2RDg0NzFGRUI3MDBCMDA2NDQxREUgLyogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAg
Ki8sCiAJCQkJMDdBNkQ4NEExRkVCNzAwRDAwNjQ0MURFIC8qIERpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuaCAqLywKKwkJCQk0MTc0RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyogTWVkaWFTdHJlYW1U
cmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHAgKi8sCisJCQkJNDE3NEU5MUUyNTM1RENE
NjAwRkU0MjAyIC8qIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuaCAq
LywKIAkJCQkwNzQ0RUNFQjFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5o
ICovLAogCQkJCTA3NDRFQ0VDMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRVbml0
Lm1tICovLAogCQkJCTA3RUU3NkVEMUJFQTYxOTgwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5oICovLApAQCAtMTcwNjMsOCArMTcwNjcsOCBAQAogCQkJCTQxNTg2NDlGMjNC
RjdCOTMwMEEwQTYxRSAvKiBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tICovLAogCQkJCTQxNkY4
MDdDMjQ1MDlGMzMwMEI2OEYwMiAvKiBTY3JlZW5EaXNwbGF5Q2FwdHVyZXJNYWMuaCAqLywKIAkJ
CQk0MTZGODA3QTI0NTA5RjMyMDBCNjhGMDIgLyogU2NyZWVuRGlzcGxheUNhcHR1cmVyTWFjLm1t
ICovLAotCQkJCTA3RDYzNzNFMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oICovLAotCQkJCTA3RDYzNzNGMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLywKKwkJCQkwN0Q2MzczRTFCQjBCMTEzMDAyNTZD
RTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggKi8sCisJCQkJMDdENjM3M0YxQkIw
QjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbSAqLywKIAkJCQk0
MTZGODA3OTI0NTA5RjMyMDBCNjhGMDIgLyogV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLmggKi8s
CiAJCQkJNDE2RjgwN0IyNDUwOUYzMzAwQjY4RjAyIC8qIFdpbmRvd0Rpc3BsYXlDYXB0dXJlck1h
Yy5tbSAqLywKIAkJCSk7CkBAIC0zNDU0MCw3ICszNDU0NCw3IEBACiAJCQkJRTE4QzM1NDQxRjcx
OTcwQzAwRkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE3RjdBRUUyMTM5QkY2ODAwRkJBN0VDIC8qIFdlYkF1ZGlvQnVm
ZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFCMkE2MjYxRUYxQkY2RDAwMkI5RDdBIC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3RDYzNzQwMUJC
MEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMDdENjM3NDAxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc0RjU1RTEyMDRGM0IyMzAwMjk0OEM2
IC8qIFdlYkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzE1
MkI4MDIxRERBNTgxMDAwQzM3Q0EgLyogV2ViQXV0aGVudGljYXRpb25VdGlscy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0RCNjM1NDkyM0Y2MDIzQTAwQzBGOURFIC8qIFdlYkFWUGxheWVyQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAppbmRleCA3N2Zj
MDJkOGQ5MDNlNzAyYWRlMjI0NjRlYzljODFhNjg2ZTg0MDU0Li5iNWIzYTdmMTIyZWYzMjIzN2Q5
MDVkODhkYWY5YjM3ZGYyNzk4ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKQEAgLTI2
LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNj
ZWxlcmF0ZS5oPgpAQCAtMzIwLDUgKzMxOCwzIEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVy
TGlzdDo6Y29weUZyb20oQ0FSaW5nQnVmZmVyJiByaW5nQnVmZmVyLCBzaXplX3Qgc2FtcGxlCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b1NhbXBsZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oCmluZGV4IDgxNTJmODYwMGJkOTQ5MTAwYjYyOTJiOGY2
YTQ4NDMwZTFkOGVjMzcuLjgxYWNkZTdlOTdjZjk1N2IwMDAxMTA3MDllZDkzNGJjNzE0NGQ1NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQogI2luY2x1ZGUgIkNBUmluZ0J1ZmZlci5o
IgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9D
b3JlQXVkaW9UeXBlcy5oPgpAQCAtOTcsNSArOTUsMyBAQCBpbmxpbmUgc2l6ZV90IEF1ZGlvU2Ft
cGxlQnVmZmVyTGlzdDo6YXVkaW9CdWZmZXJMaXN0U2l6ZUZvclN0cmVhbShjb25zdCBDQUF1ZGlv
UwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9TYW1wbGVEYXRhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UuaAppbmRleCAyOTliOTRhZjE2MzcwMWRhZDVmMzNj
ZTIyNmIzMjAzNTM3YWVjODU5Li45NWZiMmY3YTM0MWM0ZmRmNmM4ZjgyY2ZjNDFiOTI4OTJhNzgz
NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b1NhbXBsZURhdGFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UuaApAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KICNpbmNsdWRlICJBdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuaCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KICNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC0xMjMsNSArMTIxLDMgQEAgcHJpdmF0ZToK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggNzMyYzcyMTZkNGNjMGIxN2UwMmIy
Njk0MGFjMzY4YWFiMjcxMDc1Ni4uZWY3ZmQwNDM5MWM1ODRkMGNlYmU2NjgxMTdlYmM3YzJhOGJh
MmFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtMjYsMTIgKzI2LDEwIEBACiAjaW1w
b3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIgogCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLQogI2ltcG9ydCAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
LmgiCiAjaW1wb3J0ICJDQVJpbmdCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKLSNpbXBv
cnQgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUF1ZGlvRGF0
YS5oIgogI2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CiAjaW1wb3J0IDxt
YWNoL21hY2guaD4KICNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CkBAIC0zNzksNSArMzc3LDMg
QEAgV1RGTG9nQ2hhbm5lbCYgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpsb2dDaGFubmVsKCkgY29u
c3QKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IDU2OWY5MDE5
NzBmMjJjMjgyNTY3ZWJiMGI2M2MzYmFlZWNlMzg1ZGMuLjc4N2I5OTk3ZDU4MjQ4NWI3NDNlZGQ5
Njc5ZmIyMmQ4MjA1ODYwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvVVVJRC5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0jaW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKKyNpbmNsdWRlICJN
ZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmgiCiAjZWxpZiBFTkFCTEUo
V0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKSAmJiBV
U0UoR1NUUkVBTUVSKQogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuaCIK
ICNlbHNlCkBAIC0xODgsNyArMTg4LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogewogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGlmICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKQotICAgICAgICBtX2F1ZGlvU291
cmNlUHJvdmlkZXIgPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKCp0aGlz
KTsKKyAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gTWVkaWFTdHJlYW1UcmFja0F1ZGlv
U291cmNlUHJvdmlkZXJDb2NvYTo6Y3JlYXRlKCp0aGlzKTsKICNlbGlmIFVTRShMSUJXRUJSVEMp
ICYmIFVTRShHU1RSRUFNRVIpCiAgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlkZXIpCiAgICAg
ICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6
OmNyZWF0ZSgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNDdjODVmODJlNmJjMjAyY2Qw
MTE4N2YxNzI0ODU1Zjc3YjY2NzcwMy4uMDliMDhmNDc4NmI1Mjc5YTIxOGEzN2NlOGU5ZDZiOTY1
YzQyYjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBXRUJD
T1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFp
blJ1bkxvb3A+CiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgLCBwcm90ZWN0ZWQgTG9nZ2VySGVscGVyCisgICAgLCBwdWJsaWMgTG9n
Z2VySGVscGVyCiAjZW5kaWYKIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaAppbmRl
eCBlN2Q4ODg5MjQ2ZjRjMWU4ODBjNDc4MjZlMzYyMzZmNTZmMzBjMmFjLi5lNDFiNDk2ZDdhNmEy
NmVlYWJlZTU3ODM3NGZjZDI2ZDVhMzAwZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBA
IC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFdFQl9BVURJTykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQogCiAjaW5jbHVk
ZSAiQXVkaW9Tb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGJmNWUwODhl
NTdjODg1MWU3MGE2M2JiYThiNzhkNmQ0ZjAzNDFjNDcuLjM2ZTY5ZDE1ZDY0NGVlMjllOGY4ZGEy
YjdlYzQwNTc1ZWM5NTZlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgorI2luY2x1ZGUgIldlYkF1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5oIgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5o
PgogI2luY2x1ZGUgPEF1ZGlvVW5pdC9BdWRpb1VuaXQuaD4KICNpbmNsdWRlIDxDb3JlTWVkaWEv
Q01TeW5jLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlv
U291cmNlUHJvdmlkZXJDb2NvYS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM2YzZjZjMyNDRkZDYxM2E4NzBk
ODJkNDljODA4MGQ0ZjBlMTMyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hLmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIk1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuaCIKKwor
I2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2E+IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OmNyZWF0ZShNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291cmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2Eoc291cmNlKSk7Cit9CisK
K01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6Ok1lZGlhU3RyZWFtVHJh
Y2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJj
ZSkKKyAgICA6IG1fY2FwdHVyZVNvdXJjZShtYWtlV2Vha1B0cihzb3VyY2UpKQorICAgICwgbV9z
b3VyY2Uoc291cmNlLnNvdXJjZSgpKQoreworfQorCitNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3Vy
Y2VQcm92aWRlckNvY29hOjp+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2Nv
YSgpCit7CisgICAgQVNTRVJUKCFtX2Nvbm5lY3RlZCk7CisgICAgbV9zb3VyY2UtPnJlbW92ZUF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQ29jb2E6Omhhc05ld0NsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgYm9vbCBzaG91bGRCZUNvbm5lY3RlZCA9ICEhY2xpZW50Owor
ICAgIGlmIChtX2Nvbm5lY3RlZCA9PSBzaG91bGRCZUNvbm5lY3RlZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jb25uZWN0ZWQgPSBzaG91bGRCZUNvbm5lY3RlZDsKKyAgICBpZiAoIWNsaWVu
dCkgeworICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAg
ICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9lbmFibGVkID0gbV9jYXB0dXJlU291cmNlLT5lbmFi
bGVkKCk7CisgICAgbV9jYXB0dXJlU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9z
b3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIG1fZW5hYmxlZCA9IHRyYWNrLmVu
YWJsZWQoKTsKK30KKworLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4K
K3ZvaWQgTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBk
YXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZy
YW1lQ291bnQpCit7CisgICAgaWYgKCFtX2VuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAg
IHJlY2VpdmVkTmV3QXVkaW9TYW1wbGVzKGRhdGEsIGRlc2NyaXB0aW9uLCBmcmFtZUNvdW50KTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3NWIxNTZlZTk2MDdmNzllMWM0MTk3MjYyODM4
OTI0YWI3MmVkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5o
CkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
Ql9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1
ZGUgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EgZmluYWwK
KyAgICA6IHB1YmxpYyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EKKyAgICAsIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgICwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9TYW1wbGVPYnNlcnZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVRy
YWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKTsKKyAgICB+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYSgpOwor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2EoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKKworICAgIC8vIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYQorICAgIHZvaWQgaGFzTmV3Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlk
ZXJDbGllbnQqKSBmaW5hbDsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBXVEY6Okxv
Z2dlckhlbHBlciYgbG9nZ2VySGVscGVyKCkgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UuZ2V0KCk7
IH0KKyNlbmRpZgorCisgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisg
ICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9Cisg
ICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFs
IHsgfQorICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSBmaW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
U2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgV2Vha1B0cjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gbV9jYXB0dXJlU291cmNlOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3Nv
dXJjZTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1fY29ubmVjdGVk
IHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQuaApp
bmRleCA3ODdiZTgxMDI5YzgwM2MzNDk2ZDQ0NWY1MWMxM2M5OWZmYjI1ZmY4Li40MGEzYjJmMDI2
OGM4YzcxZTE0NGM0ZGExY2Q2YjgzYTI4YTM1OTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0
LmgKQEAgLTQwLDcgKzQwLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXRE
ZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwotY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM7CitjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E7CiAKIGNsYXNzIE1v
Y2tBdWRpb1NoYXJlZFVuaXQgZmluYWwgOiBwdWJsaWMgQmFzZUF1ZGlvU2hhcmVkVW5pdCB7CiBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCmluZGV4IDE3MDdlNGZiYWI3NGUxYTJl
NmZjNWQ2ZmRkMmMxZTg1MWU4N2M3NWQuLmFhN2ZmMDg3NTA1NDI1ODJmMWVmOTE2N2E4MWU2ZmI1
YTU0OGYxNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCkBAIC0zOSw3ICszOSw3IEBA
CiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzLmgiCiAjaW1wb3J0ICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKLSNpbXBvcnQgIldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCisjaW1wb3J0ICJXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQ29jb2EuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkF1ZGlvQnVmZmVyLmg+CiAj
aW1wb3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPENvcmVBdWRp
by9Db3JlQXVkaW9UeXBlcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ3ODMwYzRkMDYwNjU1NWU5
OTAxN2I2ZGRhYWI1MzkxMWEwZWVlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYkF1
ZGlvU291cmNlUHJvdmlkZXIuaCIKLSNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMu
aD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi10eXBlZGVmIHN0cnVjdCBBdWRpb0J1ZmZlckxpc3Qg
QXVkaW9CdWZmZXJMaXN0OwotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db252ZXJ0ZXIqIEF1
ZGlvQ29udmVydGVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbjsKLXR5cGVkZWYgY29uc3Qgc3RydWN0IG9w
YXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24gKkNNRm9ybWF0RGVzY3JpcHRpb25SZWY7Ci10eXBlZGVm
IHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQXVkaW9TYW1wbGVEYXRhU291cmNlOwotY2xhc3MgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uOwotY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwotCi1jbGFz
cyBXRUJDT1JFX0VYUE9SVCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyBmaW5hbAotICAg
IDogcHVibGljIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIKLSAgICAsIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpPYnNlcnZlcgotICAgICwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVP
YnNlcnZlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQz4gY3JlYXRlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7Ci0gICAgdmlydHVhbCB+
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsKLQotICAgIHZvaWQgcHJlcGFyZShjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKLSAgICB2b2lkIHVucHJlcGFyZSgpOwot
Ci1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7Ci0KLSAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyCi0g
ICAgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QpIGZpbmFsOwotICAgIHZvaWQg
c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKSBmaW5hbDsKLQotICAgIC8vIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgotICAgIHZvaWQgdHJhY2tFbmRlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQotICAgIHZvaWQgdHJhY2tNdXRlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAgICB2b2lkIHRyYWNrU2V0
dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9Ci0gICAgdm9p
ZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7Ci0K
LSAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCi0gICAgdm9p
ZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsK
LQotICAgIHNpemVfdCBtX2xpc3RCdWZmZXJTaXplIHsgMCB9OwotICAgIE9wdGlvbmFsPENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9pbnB1dERlc2NyaXB0aW9uOwotICAgIE9wdGlvbmFsPENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlvbjsKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVyTGlzdDsKLSAgICBSZWZQ
dHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7Ci0KLSAgICB1aW50NjRfdCBt
X3dyaXRlQ291bnQgeyAwIH07Ci0gICAgdWludDY0X3QgbV9yZWFkQ291bnQgeyAwIH07Ci0gICAg
QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUqIG1fY2FwdHVyZVNvdXJjZSB7IG51bGxwdHIgfTsKLSAgICBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Ci0gICAgTG9jayBtX2xvY2s7Ci0gICAg
Ym9vbCBtX2Nvbm5lY3RlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07
Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWU4ODY1Nzk1YjU5ZDBi
ZGEzNjM0MTQ4M2VhYTEyMGMxYWZkYzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDIwMCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW1wb3J0ICJBdWRpb0J1cy5oIgotI2ltcG9ydCAiQXVk
aW9DaGFubmVsLmgiCi0jaW1wb3J0ICJBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCIKLSNpbXBvcnQg
IkF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCIKLSNpbXBvcnQgIkxvZ2dpbmcuaCIKLSNpbXBv
cnQgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0jaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgotCi0jaWYgIUxPR19ESVNBQkxFRAotI2ltcG9ydCA8d3Rm
L1N0cmluZ1ByaW50U3RyZWFtLmg+Ci0jZW5kaWYKLQotI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGNvbnN0IGRvdWJs
ZSBrUmluZ0J1ZmZlckR1cmF0aW9uID0gMTsKLQotUmVmPFdlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDPiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiBzb3VyY2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMoc291cmNlKSk7Ci19Ci0KLVdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgc291cmNlKQotICAgIDogbV9jYXB0dXJlU291cmNlKCZzb3VyY2UpCi0gICAg
LCBtX3NvdXJjZShzb3VyY2Uuc291cmNlKCkpCi0gICAgLCBtX2VuYWJsZWQoc291cmNlLmVuYWJs
ZWQoKSkKLXsKLSAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Ci19
Ci0KLVdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMoKQotewotICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0
aGlzKTsKLQotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKLQotICAgIGlmICht
X2Nvbm5lY3RlZCAmJiBtX2NhcHR1cmVTb3VyY2UpCi0gICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+
cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotfQotCi12b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKLXsKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fbG9jayk7Ci0gICAgaWYgKCFs
b2NrZXIgfHwgIW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKLSAgICAgICAg
YnVzLT56ZXJvKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV93cml0ZUNv
dW50IDw9IG1fcmVhZENvdW50KSB7Ci0gICAgICAgIGJ1cy0+emVybygpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgaWYgKGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpIDwgbV9hdWRpb0J1
ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCkpIHsKLSAgICAgICAgYnVzLT56ZXJvKCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVzLT5udW1i
ZXJPZkNoYW5uZWxzKCk7ICsraSkgewotICAgICAgICBhdXRvJiBjaGFubmVsID0gKmJ1cy0+Y2hh
bm5lbChpKTsKLSAgICAgICAgaWYgKGkgPj0gbV9hdWRpb0J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50
KCkpIHsKLSAgICAgICAgICAgIGNoYW5uZWwuemVybygpOwotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIH0KLSAgICAgICAgYXV0byogYnVmZmVyID0gbV9hdWRpb0J1ZmZlckxpc3QtPmJ1
ZmZlcihpKTsKLSAgICAgICAgYnVmZmVyLT5tTnVtYmVyQ2hhbm5lbHMgPSAxOwotICAgICAgICBi
dWZmZXItPm1EYXRhID0gY2hhbm5lbC5tdXRhYmxlRGF0YSgpOwotICAgICAgICBidWZmZXItPm1E
YXRhQnl0ZVNpemUgPSBjaGFubmVsLmxlbmd0aCgpICogc2l6ZW9mKGZsb2F0KTsKLSAgICB9Ci0K
LSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IGJ1cy0+bGVuZ3RoKCkpOwotICAgIG1fZGF0
YVNvdXJjZS0+cHVsbFNhbXBsZXMoKm1fYXVkaW9CdWZmZXJMaXN0LT5saXN0KCksIGZyYW1lc1Rv
UHJvY2VzcywgbV9yZWFkQ291bnQsIDAsIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Q29weSk7Ci0g
ICAgbV9yZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9jZXNzOwotfQotCi12b2lkIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCog
Y2xpZW50KQotewotICAgIGlmIChtX2NsaWVudCA9PSBjbGllbnQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fY2xpZW50ID0gY2xpZW50OwotCi0gICAgaWYgKCFtX2NhcHR1cmVTb3VyY2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2NsaWVudCAmJiAhbV9jb25uZWN0ZWQpIHsKLSAg
ICAgICAgbV9jb25uZWN0ZWQgPSB0cnVlOwotICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPmFkZE9i
c2VydmVyKCp0aGlzKTsKLSAgICB9IGVsc2UgaWYgKCFtX2NsaWVudCAmJiBtX2Nvbm5lY3RlZCkg
ewotICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLSAgICAg
ICAgbV9jb25uZWN0ZWQgPSBmYWxzZTsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
JiBmb3JtYXQpCi17Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotCi0gICAg
TE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoJXApIiwg
dGhpcyk7Ci0KLSAgICBtX2lucHV0RGVzY3JpcHRpb24gPSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24oZm9ybWF0KTsKLSAgICBpbnQgbnVtYmVyT2ZDaGFubmVscyA9IGZvcm1hdC5tQ2hhbm5lbHNQ
ZXJGcmFtZTsKLSAgICBkb3VibGUgc2FtcGxlUmF0ZSA9IGZvcm1hdC5tU2FtcGxlUmF0ZTsKLSAg
ICBBU1NFUlQoc2FtcGxlUmF0ZSA+PSAwKTsKLQotICAgIGNvbnN0IGludCBieXRlc1BlckZsb2F0
ID0gc2l6ZW9mKEZsb2F0MzIpOwotICAgIGNvbnN0IGludCBiaXRzUGVyQnl0ZSA9IDg7Ci0gICAg
Y29uc3QgYm9vbCBpc0Zsb2F0ID0gdHJ1ZTsKLSAgICBjb25zdCBib29sIGlzQmlnRW5kaWFuID0g
ZmFsc2U7Ci0gICAgY29uc3QgYm9vbCBpc05vbkludGVybGVhdmVkID0gdHJ1ZTsKLSAgICBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0RGVzY3JpcHRpb24geyB9OwotICAgIEZpbGxP
dXRBU0JERm9yTFBDTShvdXRwdXREZXNjcmlwdGlvbiwgc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFu
bmVscywgYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0LCBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVy
RmxvYXQsIGlzRmxvYXQsIGlzQmlnRW5kaWFuLCBpc05vbkludGVybGVhdmVkKTsKLSAgICBtX291
dHB1dERlc2NyaXB0aW9uID0gQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1dERlc2NyaXB0
aW9uKTsKLSAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJM
aXN0PihtX291dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwotCi0gICAgaWYgKCFtX2RhdGFTb3Vy
Y2UpCi0gICAgICAgIG1fZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRl
KGtSaW5nQnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCAqbV9jYXB0dXJlU291cmNlKTsKLSAg
ICBtX2RhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KG1faW5wdXREZXNjcmlwdGlvbi52YWx1ZSgp
KTsKLSAgICBtX2RhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChtX291dHB1dERlc2NyaXB0aW9u
LnZhbHVlKCkpOwotCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlXSB7Ci0gICAgICAgIGlmIChw
cm90ZWN0ZWRUaGlzLT5tX2NsaWVudCkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fY2xp
ZW50LT5zZXRGb3JtYXQobnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0ZSk7Ci0gICAgfSk7Ci19
Ci0KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZSgpCi17Ci0g
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotCi0gICAgbV9pbnB1dERlc2NyaXB0
aW9uID0gV1RGOjpudWxsb3B0OwotICAgIG1fb3V0cHV0RGVzY3JpcHRpb24gPSBXVEY6Om51bGxv
cHQ7Ci0gICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBudWxscHRyOwotICAgIG1fZGF0YVNvdXJjZSA9
IG51bGxwdHI7Ci0gICAgbV9saXN0QnVmZmVyU2l6ZSA9IDA7Ci0gICAgaWYgKG1fY2FwdHVyZVNv
dXJjZSkgewotICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsK
LSAgICAgICAgbV9jYXB0dXJlU291cmNlID0gbnVsbHB0cjsKLSAgICB9Ci19Ci0KLXZvaWQgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHRyYWNrKQotewotICAgIG1fZW5hYmxlZCA9IHRyYWNrLmVuYWJsZWQo
KTsKLX0KLQotLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KLXZvaWQg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQotewotICAg
IGlmICghbV9lbmFibGVkIHx8ICFtX2Nvbm5lY3RlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3Jt
RGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwotICAgIGF1dG8mIGJhc2ljRGVz
Y3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4o
ZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKLSAgICBpZiAo
IW1faW5wdXREZXNjcmlwdGlvbiB8fCBtX2lucHV0RGVzY3JpcHRpb24tPnN0cmVhbURlc2NyaXB0
aW9uKCkgIT0gYmFzaWNEZXNjcmlwdGlvbikKLSAgICAgICAgcHJlcGFyZShiYXNpY0Rlc2NyaXB0
aW9uKTsKLQotICAgIGlmICghbV9kYXRhU291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKE1lZGlhVGltZShtX3dyaXRlQ291bnQsIG1fb3V0cHV0
RGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSksIGRhdGEsIGZyYW1lQ291bnQpOwotCi0gICAgbV93
cml0ZUNvdW50ICs9IGZyYW1lQ291bnQ7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg4NWMwZGJmMzU0ZGVhODg1MDBjMTE0MDkzYTU0
Y2Y2ZDk5MzQ2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuaApAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8p
CisKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVz
Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgQXVkaW9CdWZmZXJMaXN0
IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVyKiBB
dWRpb0NvbnZlcnRlclJlZjsKK3R5cGVkZWYgc3RydWN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBv
cGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uICpDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRl
ZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2FtcGxlQnVmZmVyUmVmOworCituYW1l
c3BhY2UgV1RGIHsKK2NsYXNzIExvZ2dlckhlbHBlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBBdWRpb1NhbXBsZURhdGFTb3VyY2U7CitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKK2NsYXNzIFdlYkF1ZGlvQnVmZmVy
TGlzdDsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
CisgICAgOiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciB7CitwdWJsaWM6CisgICAgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckNvY29hKCk7CisgICAgfldlYkF1ZGlvU291cmNlUHJvdmlkZXJD
b2NvYSgpOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCByZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyhj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBoYXNOZXdDbGllbnQoQXVkaW9T
b3VyY2VQcm92aWRlckNsaWVudCopID0gMDsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAg
ICB2aXJ0dWFsIFdURjo6TG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIoKSA9IDA7CisjZW5kaWYK
KworICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIKKyAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRp
b0J1cyosIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92
aWRlckNsaWVudCopIGZpbmFsOworCisgICAgdm9pZCBwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiYpOworCisgICAgTG9jayBtX2xvY2s7CisgICAgQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisKKyAgICBPcHRpb25hbDxDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24+IG1faW5wdXREZXNjcmlwdGlvbjsKKyAgICBPcHRpb25hbDxD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+IG1fb3V0cHV0RGVzY3JpcHRpb247CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkF1ZGlvQnVmZmVyTGlzdD4gbV9hdWRpb0J1ZmZlckxpc3Q7CisgICAgUmVm
UHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291cmNlOworCisgICAgdWludDY0X3Qg
bV93cml0ZUNvdW50IHsgMCB9OworICAgIHVpbnQ2NF90IG1fcmVhZENvdW50IHsgMCB9OworfTsK
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9T
b3VyY2VQcm92aWRlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODhiZTM0YjE3MmUyZWEyZmViNDQ0
NmU0YTBjNmZiZjhjZjExYTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCkBAIC0w
LDAgKzEsMTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KworI2ltcG9ydCAiQXVkaW9CdXMuaCIKKyNpbXBvcnQgIkF1ZGlvQ2hhbm5lbC5oIgorI2ltcG9y
dCAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgiCisjaW1wb3J0ICJBdWRpb1NvdXJjZVByb3ZpZGVy
Q2xpZW50LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJXZWJBdWRpb0J1ZmZlckxp
c3QuaCIKKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KKworI2lmICFMT0dfRElTQUJMRUQKKyNpbXBvcnQgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2VuZGlmCisKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlv
biA9IDE7CisKK1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckNvY29hKCkKK3sKK30KKworV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjp+V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hKCkKK3sKK30KKwordm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2E6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCit7
CisgICAgaWYgKG1fY2xpZW50ID09IGNsaWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xp
ZW50ID0gY2xpZW50OworICAgIGhhc05ld0NsaWVudChjbGllbnQpOworfQorCit2b2lkIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2xv
Y2spOworICAgIGlmICghbG9ja2VyIHx8ICFtX2RhdGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJM
aXN0KSB7CisgICAgICAgIGJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKG1fd3JpdGVDb3VudCA8PSBtX3JlYWRDb3VudCkgeworICAgICAgICBidXMtPnplcm8o
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChidXMtPm51bWJlck9mQ2hhbm5l
bHMoKSA8IG1fYXVkaW9CdWZmZXJMaXN0LT5idWZmZXJDb3VudCgpKSB7CisgICAgICAgIGJ1cy0+
emVybygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKKyAgICAgICAgYXV0byYgY2hh
bm5lbCA9ICpidXMtPmNoYW5uZWwoaSk7CisgICAgICAgIGlmIChpID49IG1fYXVkaW9CdWZmZXJM
aXN0LT5idWZmZXJDb3VudCgpKSB7CisgICAgICAgICAgICBjaGFubmVsLnplcm8oKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGF1dG8qIGJ1ZmZlciA9IG1fYXVk
aW9CdWZmZXJMaXN0LT5idWZmZXIoaSk7CisgICAgICAgIGJ1ZmZlci0+bU51bWJlckNoYW5uZWxz
ID0gMTsKKyAgICAgICAgYnVmZmVyLT5tRGF0YSA9IGNoYW5uZWwubXV0YWJsZURhdGEoKTsKKyAg
ICAgICAgYnVmZmVyLT5tRGF0YUJ5dGVTaXplID0gY2hhbm5lbC5sZW5ndGgoKSAqIHNpemVvZihm
bG9hdCk7CisgICAgfQorCisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBidXMtPmxlbmd0
aCgpKTsKKyAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1wbGVzKCptX2F1ZGlvQnVmZmVyTGlzdC0+
bGlzdCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fcmVhZENvdW50LCAwLCBBdWRpb1NhbXBsZURhdGFT
b3VyY2U6OkNvcHkpOworICAgIG1fcmVhZENvdW50ICs9IGZyYW1lc1RvUHJvY2VzczsKK30KKwor
dm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByZXBhcmUoY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uJiBmb3JtYXQpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX2xvY2spOworCisgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
OjpwcmVwYXJlKCVwKSIsIHRoaXMpOworCisgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKGZvcm1hdCk7CisgICAgaW50IG51bWJlck9mQ2hhbm5lbHMgPSBm
b3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CisgICAgZG91YmxlIHNhbXBsZVJhdGUgPSBmb3JtYXQu
bVNhbXBsZVJhdGU7CisgICAgQVNTRVJUKHNhbXBsZVJhdGUgPj0gMCk7CisKKyAgICBjb25zdCBp
bnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKKyAgICBjb25zdCBpbnQgYml0c1Bl
ckJ5dGUgPSA4OworICAgIGNvbnN0IGJvb2wgaXNGbG9hdCA9IHRydWU7CisgICAgY29uc3QgYm9v
bCBpc0JpZ0VuZGlhbiA9IGZhbHNlOworICAgIGNvbnN0IGJvb2wgaXNOb25JbnRlcmxlYXZlZCA9
IHRydWU7CisgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG91dHB1dERlc2NyaXB0aW9u
IHsgfTsKKyAgICBGaWxsT3V0QVNCREZvckxQQ00ob3V0cHV0RGVzY3JpcHRpb24sIHNhbXBsZVJh
dGUsIG51bWJlck9mQ2hhbm5lbHMsIGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdCwgYml0c1Bl
ckJ5dGUgKiBieXRlc1BlckZsb2F0LCBpc0Zsb2F0LCBpc0JpZ0VuZGlhbiwgaXNOb25JbnRlcmxl
YXZlZCk7CisgICAgbV9vdXRwdXREZXNjcmlwdGlvbiA9IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bihvdXRwdXREZXNjcmlwdGlvbik7CisgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5pcXVl
PFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9vdXRwdXREZXNjcmlwdGlvbi52YWx1ZSgpKTsKKworICAg
IGlmICghbV9kYXRhU291cmNlKQorICAgICAgICBtX2RhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURh
dGFTb3VyY2U6OmNyZWF0ZShrUmluZ0J1ZmZlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgbG9nZ2Vy
SGVscGVyKCkpOworICAgIG1fZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQobV9pbnB1dERlc2Ny
aXB0aW9uLnZhbHVlKCkpOworICAgIG1fZGF0YVNvdXJjZS0+c2V0T3V0cHV0Rm9ybWF0KG1fb3V0
cHV0RGVzY3JpcHRpb24udmFsdWUoKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGVdIHsK
KyAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fY2xpZW50KQorICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+bV9jbGllbnQtPnNldEZvcm1hdChudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRl
KTsKKyAgICB9KTsKK30KKworLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVh
ZC4KK3ZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNlaXZlZE5ld0F1ZGlvU2Ft
cGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQoreworICAgIEFTU0VSVChk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0
aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICBhdXRvJiBiYXNpY0Rlc2NyaXB0aW9u
ID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgaWYgKCFtX2lucHV0
RGVzY3JpcHRpb24gfHwgbV9pbnB1dERlc2NyaXB0aW9uLT5zdHJlYW1EZXNjcmlwdGlvbigpICE9
IGJhc2ljRGVzY3JpcHRpb24pCisgICAgICAgIHByZXBhcmUoYmFzaWNEZXNjcmlwdGlvbik7CisK
KyAgICBpZiAoIW1fZGF0YVNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kYXRhU291
cmNlLT5wdXNoU2FtcGxlcyhNZWRpYVRpbWUobV93cml0ZUNvdW50LCBtX291dHB1dERlc2NyaXB0
aW9uLT5zYW1wbGVSYXRlKCkpLCBkYXRhLCBmcmFtZUNvdW50KTsKKworICAgIG1fd3JpdGVDb3Vu
dCArPSBmcmFtZUNvdW50OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDc3NjkwZDBkZDUyNzJhMDVlMmE3ODQyMjIxOGEzNWI0
MjJiNTc1NWEuLjdhMDZlOTExZGYzNGUxNmNmOTQ1NmI0MTUyNmRhNjM1YTQyMzAyODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU2NCw2ICs1NjQsNyBAQCBXZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2Uv
V2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKK1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTVmNTQxMGNiZWU1ZDBl
NWU4ZGE0ZjVmY2IwZWQzODBkNjM0N2FiMi4uMjU3YTc0ZGRhZmEwYzE2YTY0MTlkMzU3MTFkOWMy
OGY0MjQ4ZmJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zNDE5LDYgKzM0MTksOCBAQAogCQk0MTI4N0Q0QjIyNUMwNUM0MDA5QTNF
MjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViU29ja2V0VGFza0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTI4N0Q0QzIyNUMwNUM1MDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tldFRhc2tDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI4N0Q0RDIyNUMxNjFGMDA5QTNFMjYgLyog
V2ViU29ja2V0VGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2Nr
ZXRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTE2MjUzNzNGOUQw
MDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkxNzI1MzczRjlEMDAxREYwMzYgLyogUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMzA3NTlBMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA3NTlCMURFODRGQjAwMDM5RUM2OSAv
KiBOZXR3b3JrUlRDTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JrUlRDTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzU5
QzFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3IubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya1JUQ01vbml0b3IubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTYwLDYgKzU1NjIsOCBAQAogCQkJCUNERDUzNTZGMjQw
REQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
Q0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24uaCAqLywKIAkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllci5oICovLAorCQkJCTQxMkZGOTE2MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTJGRjkxNzI1MzczRjlEMDAxREYw
MzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJG
NzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIx
REVFMyAvKiBSZW1vdGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyog
UmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IDg5ZDZmZTlhOGZiMzIzODRhMjdlNDI0Zjc5OTkyZTRkYzQ0YzE5NzIuLmNhYjU4MWJi
OWViMTQ4YjFkYzQ3ZWIxNTFiYTZlODBiYTAzM2JlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5o
IgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgiCkBAIC0xMTUs
NiArMTE2LDExIEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSgpCiAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIo
KTsKICNlbmRpZgogICAgIG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsK
KworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChtX2F1
ZGlvU291cmNlUHJvdmlkZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlci0+Y2xvc2Uo
KTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmln
dXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKQpAQCAt
OTI0LDggKzkzMCwxNSBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVv
RGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIEF1ZGlvU291
cmNlUHJvdmlkZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YXVkaW9Tb3VyY2VQcm92aWRl
cigpCiB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlk
ZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXI6OmNyZWF0ZShtX2lkLCAqdGhpcyk7CisKKyAgICByZXR1cm4gbV9hdWRpb1NvdXJjZVBy
b3ZpZGVyLmdldCgpOworI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBu
dWxscHRyOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5k
ZXggZGU2ZjBlYjM3YjhjYjk1Y2JhYzBmNWM4Mjk0MzVkMzhkN2E5NzFmOS4uYmM3N2YwOGExZTM5
MjU0MTc0Mzc0MTk4MDdlZGIyZjdkYWEzY2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
CkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJE
YXRhOwogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CkBAIC0zNzQsNiArMzc1LDEwIEBAIHBy
aXZhdGU6CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkQnVmZmVy
ZWRUaW1lUmFuZ2VzOwogCisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0Ep
CisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IG1fYXVkaW9Tb3VyY2VQcm92
aWRlcjsKKyNlbmRpZgorCiAgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4+IG1fbWVkaWFSZXNvdXJj
ZXM7CiAgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8QXVkaW9U
cmFja1ByaXZhdGVSZW1vdGU+PiBtX2F1ZGlvVHJhY2tzOwogICAgIEhhc2hNYXA8VHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPj4gbV92aWRl
b1RyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5OTBj
ZTdkNTU5ZTk4NDliZjllY2Y3MDljZjNkYjMyMmRjMzdmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VC
X0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7CisjZW5k
aWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
UmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpM
b2dnZXJIZWxwZXImIGhlbHBlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyKGlkZW50aWZpZXIsIGhlbHBlcikpOworfQorCitSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKE1lZGlhUGxheWVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYgaGVscGVyKQorICAgIDogbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBt
X2xvZ2dlcihoZWxwZXIubG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIoaGVscGVyLmxv
Z0lkZW50aWZpZXIoKSkKKyNlbmRpZgoreworICAgIFVOVVNFRF9QQVJBTShoZWxwZXIpOworfQor
CitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigp
Cit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UoKQoreworfQor
Cit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6Omhhc05ld0NsaWVudChBdWRpb1NvdXJj
ZVByb3ZpZGVyQ2xpZW50KikKK3sKKyAgICAvLyBGSVhNRTogcmVnaXN0ZXIvdW5yZWdpc3RlciBh
cyBuZWVkZWQuCit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNpemUpCit7CisgICAgcmVjZWl2
ZWROZXdBdWRpb1NhbXBsZXMoZGF0YSwgZGVzY3JpcHRpb24sIHNpemUpOworfQorCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyOjpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisjZW5k
aWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGVjMTliZTQ0NzVlZTc5MDBlNjUyZjQwYTkwMWRl
YzYwMTZjYWYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuaD4KKyNpbmNsdWRl
IDx3dGYvTG9nZ2VySGVscGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBw
cm90ZWN0ZWQgV1RGOjpMb2dnZXJIZWxwZXIKKyNlbmRpZgoreworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxh
eWVySWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImKTsKKyAgICB+UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcigpOworCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2Vi
Q29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIGNsb3NlKCk7CisKKyAgICBXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmll
cjsgfQorCitwcml2YXRlOgorICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYpOworCisgICAgLy8gV2Vi
Q29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hCisgICAgdm9pZCBoYXNOZXdDbGllbnQo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIGZpbmFsOworCisjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECisgICAgV1RGOjpMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlcigpIGZp
bmFsIHsgcmV0dXJuICp0aGlzOyB9CisKKyAgICAvLyBXVEY6OkxvZ2dlckhlbHBlcgorICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7
IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIiOyB9CisgICAgV1RGTG9n
Q2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworI2VuZGlmCisKKyAgICBXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQq
IG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29j
b2EubW0KaW5kZXggYWU3YTlkM2FmNGIzNWRiZTU1NjNlMjJhMDNjNTJjMGQ5OWJhN2M3NC4uNGYz
ZGU3NzNjMTIzNmYzMzBmNTQwYTljOGQ2NDEwMGNmYjA1YmJjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29h
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQogCisjaW1wb3J0ICJSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411421</attachid>
            <date>2020-10-15 03:49:51 -0700</date>
            <delta_ts>2020-10-15 04:36:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217710-20201015124949.patch</filename>
            <type>text/plain</type>
            <size>63339</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQ3MWFlZjc3YmQ4NmZl
MTBkMmJjMDQ4NWE5OWUzZGQ3ZTI0NTkxZS4uYjU3MDdhMjg4ODMyZmNhYTlmNGUyNzhhZGZkZTRk
YmUzYjAwNjYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1
ZGlvIGZyb20gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFNwbGl0IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIE1lZGlhU3RyZWFt
VHJhY2sgc3BlY2lmaWMgYml0cyBpbiBhIHNlcGFyYXRlIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyBjbGFzcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgcmV1c2luZyBX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyBmb3Igc2FtcGxlcyBjb21pbmcgZnJvbSBhdWRp
byBwbGF5YmFjayBsaXZpbmcgaW4gR1BVUHJvY2Vzcy4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJl
aGF2aW9yLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6TWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjp+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hOjpoYXNOZXdDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6dHJhY2tFbmFibGVkQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92
aWRlckNvY29hOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmg6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFy
ZWRVbml0Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1No
YXJlZFVuaXQubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlv
U291cmNlUHJvdmlkZXJDb2NvYS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmguCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2Nv
YS5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbS4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6fldlYkF1ZGlv
U291cmNlUHJvdmlkZXJDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQ29jb2E6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNlaXZlZE5ld0F1ZGlvU2FtcGxlcyk6CisKIDIwMjAt
MTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUg
VmVjdG9yTWF0aDo6bXVsdGlwbHlUaGVuQWRkU2NhbGFyKCkgZm9yIGNsYXJpdHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNzJkYWEzOTJmNDE1MjMxNDMzZTk0MmNjNjU0MDFmYzY1NjgyM2U4My4uZDBjNDlhYjY4NmM1
MzQyNGU5OGMwZjM4NjU0ODY5ODZlNTA1MDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAor
MjAyMC0xMC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
SW50cm9kdWNlIGEgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciB0byByZWNlaXZlIGF1ZGlvIHNh
bXBsZXMgZm9yIHdlYiBhdWRpbyBmcm9tIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzcxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBNYWtlIHVzZSBvZiBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQyB0byBpbXBsZW1lbnQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci4KKyAgICAg
ICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBjdXJyZW50bHkgaW1wbGVtZW50cyBhbiBBdWRp
b1NvdXJjZVByb3ZpZGVyIGJ1dCBpdCBpcyBub3QgeWV0IGNvbm5lY3RlZCB0byBHUFVQcm9jZXNz
IG1lZGlhIHBsYXllcnMuCisgICAgICAgIFRoaXMgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBhIGZv
bGxvdy11cC4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphdWRpb1NvdXJjZVByb3ZpZGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFzTmV3Q2xpZW50KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6bG9nQ2hhbm5lbCBj
b25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToKKwogMjAyMC0xMC0xNCAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbGxvdyBhZGRpdGlv
bmFsIHN5c2N0bCByZWFkcyBuZWVkZWQgYnkgaW1hZ2UgZGVjb2RpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IGY5NTllMzk4Mjk2NjA1MDkwM2FhYzg1YjhhZjI0MmRhMTU0MzRhODkuLjY0
MTQwNTkyNTQwMWU2ZTNjZDViNjZmOWEzZmY3Y2Q4ZDA3MWNlMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dApAQCAtNTMwLDYgKzUzMCw3IEBAIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3Bs
YXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCitwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHAKIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTU0MCw3ICs1NDEsNyBAQCBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2Eu
Y3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Q29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGll
cy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlck1hYy5t
bQotcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tCitwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1t
CiBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmNwcAogcGxhdGZvcm0vbW9j
ay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YjUzM2VmNmM1ZjQ0Y2Ri
ODdkYmI4MTIxMTc4OTVjMGNkYzMxZWUzLi45ZTgzOGExODkzZTUzMGVhOGU3YTQ2ODFlNzZiMWNj
NTM0ZTc2ZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yMDcsNyArMjA3LDcgQEAKIAkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5
NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDQjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8q
IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwN0NFNzdENTE2NzEy
QTZBMDBDNTVBNDcgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDRTc3RDQxNjcxMkE2QTAwQzU1
QTQ3IC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0QxMkY1QzIzREU1NDNGMDA4MDk5N0Qg
LyogSVNPVlRUQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDg3MUM2NTFGQjUyQjY3MDBGMEI5NjUgLyogSVNPVlRUQ3VlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDdENjM3NDAxQkIwQjExMzAw
MjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkg
LyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwN0Q2Mzc0MDFCQjBCMTEzMDAyNTZDRTkgLyog
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9T
b3VyY2VQcm92aWRlckNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDdENkE0RjQxQkVENUY4ODAwMTc0MTQ2IC8qIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwN0Q2QTRGMjFCRUQ1Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0Q2QTRG
ODFCRjIzMDdEMDAxNzQxNDYgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdENkE0RjYxQkYyMzA3
RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCAqLzsgfTsKIAkJMDdF
M0RGRDExQTlFNzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RTNERkQwMUE5RTc4NjUwMDc2
NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUzMTksNyArNTMxOSw3IEBACiAJCUZENTgxRkFGMTUy
MEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ1ODFGQUMxNTIwRjkxRjAwM0E3QTc1IC8qIE9zY2ls
bGF0b3JOb2RlLmggKi87IH07CiAJCUZENTgxRkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2Rp
Y1dhdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
NTgxRkIyMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCAqLzsgfTsKIAkJRkQ2MjlF
QTMxNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDYyOUVBMTE1NEI0NzE2MDAw
NkQwMjYgLyogQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuaCAqLzsgfTsKLQkJRkQ2MkY1MkUxNDU4
OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjJGNTJEMTQ1ODk4RDgwMDk0QjBF
RCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi87IH07CisJCUZENjJGNTJFMTQ1ODk4
RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDYyRjUyRDE0NTg5OEQ4MDA5NEIwRUQg
LyogQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZENjcxQTc4MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2NzFBNzUxNTlCQjA3MDAwMTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmggKi87IH07CiAJCUZENkVEMkM0MTM2QjhFNDIwMDNDRjA3MiAvKiBEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDZFRDJDMjEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29y
Tm9kZS5oICovOyB9OwogCQlGRDZFRDJDODEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21w
cmVzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RDZFRDJDNjEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggKi87IH07CkBA
IC01NzcyLDggKzU3NzIsOCBAQAogCQkwN0NCOUU2RjI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0
ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDdDQjlFNzEyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RDYz
NzNGMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0Q2MzczRTFC
QjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0Q2MzczRjFCQjBCMTEzMDAyNTZDRTkgLyog
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0Q2QTRGMTFCRUQ1Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0Q2QTRGMjFCRUQ1Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdENkE0RjYxQkYyMzA3RDAwMTc0MTQ2
IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oOyBwYXRoID0gcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVl
ID0gU09VUkNFX1JPT1Q7IH07CkBAIC03NTk5LDYgKzc1OTksOCBAQAogCQk0MTcwQTJFOTFEOEMw
Q0MwMDAzMTg0NTIgLyogSlNET01XcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzI1M0E4MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTcyNTNBOTEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxNzRFOTFFMjUzNURDRDYwMEZFNDIwMiAvKiBNZWRpYVN0cmVhbVRy
YWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFt
VHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE3NEU5MjAyNTM1RENERDAwRkU0MjAyIC8qIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFj
a0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzYxMkFCMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJBQzFFM0E5OTNCMDBDM0Q4MUQgLyog
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBMaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJBRDFFM0E5
OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHA7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDUxLDYgKzE3MDUzLDggQEAK
IAkJCQkwN0E2RDg0OTFGRUI3MDBDMDA2NDQxREUgLyogRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29j
b2EuaCAqLywKIAkJCQkwN0E2RDg0NzFGRUI3MDBCMDA2NDQxREUgLyogRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYS5jcHAgKi8sCiAJCQkJMDdBNkQ4NEExRkVCNzAwRDAwNjQ0MURFIC8qIERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2EuaCAqLywKKwkJCQk0MTc0RTkyMDI1MzVEQ0REMDBGRTQyMDIg
LyogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHAgKi8sCisJCQkJ
NDE3NEU5MUUyNTM1RENENjAwRkU0MjAyIC8qIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVBy
b3ZpZGVyQ29jb2EuaCAqLywKIAkJCQkwNzQ0RUNFQjFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1
ZGlvU2hhcmVkVW5pdC5oICovLAogCQkJCTA3NDRFQ0VDMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2Nr
QXVkaW9TaGFyZWRVbml0Lm1tICovLAogCQkJCTA3RUU3NkVEMUJFQTYxOTgwMEY4OTEzMyAvKiBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oICovLApAQCAtMTcwNzAsOCArMTcwNzQsOCBAQAog
CQkJCTQxNTg2NDlGMjNCRjdCOTMwMEEwQTYxRSAvKiBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1t
ICovLAogCQkJCTQxNkY4MDdDMjQ1MDlGMzMwMEI2OEYwMiAvKiBTY3JlZW5EaXNwbGF5Q2FwdHVy
ZXJNYWMuaCAqLywKIAkJCQk0MTZGODA3QTI0NTA5RjMyMDBCNjhGMDIgLyogU2NyZWVuRGlzcGxh
eUNhcHR1cmVyTWFjLm1tICovLAotCQkJCTA3RDYzNzNFMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovLAotCQkJCTA3RDYzNzNGMUJCMEIxMTMwMDI1
NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLywKKwkJCQkwN0Q2Mzcz
RTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmggKi8sCisJ
CQkJMDdENjM3M0YxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2Nv
YS5tbSAqLywKIAkJCQk0MTZGODA3OTI0NTA5RjMyMDBCNjhGMDIgLyogV2luZG93RGlzcGxheUNh
cHR1cmVyTWFjLmggKi8sCiAJCQkJNDE2RjgwN0IyNDUwOUYzMzAwQjY4RjAyIC8qIFdpbmRvd0Rp
c3BsYXlDYXB0dXJlck1hYy5tbSAqLywKIAkJCSk7CkBAIC0zNDU1NCw3ICszNDU1OCw3IEBACiAJ
CQkJRTE4QzM1NDQxRjcxOTcwQzAwRkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291
cmNlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3RjdBRUUyMTM5QkY2ODAwRkJBN0VD
IC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFCMkE2MjYxRUYx
QkY2RDAwMkI5RDdBIC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTA3RDYzNzQwMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDdENjM3NDAxQkIwQjExMzAwMjU2Q0U5IC8qIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc0RjU1RTEy
MDRGM0IyMzAwMjk0OEM2IC8qIFdlYkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzE1MkI4MDIxRERBNTgxMDAwQzM3Q0EgLyogV2ViQXV0aGVudGljYXRpb25V
dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RCNjM1NDkyM0Y2MDIzQTAwQzBGOURFIC8qIFdl
YkFWUGxheWVyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0
LmNwcAppbmRleCA3N2ZjMDJkOGQ5MDNlNzAyYWRlMjI0NjRlYzljODFhNjg2ZTg0MDU0Li5iNWIz
YTdmMTIyZWYzMjIzN2Q5MDVkODhkYWY5YjM3ZGYyNzk4ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVy
TGlzdC5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0K
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUg
PEFjY2VsZXJhdGUvQWNjZWxlcmF0ZS5oPgpAQCAtMzIwLDUgKzMxOCwzIEBAIE9TU3RhdHVzIEF1
ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oQ0FSaW5nQnVmZmVyJiByaW5nQnVmZmVyLCBz
aXplX3Qgc2FtcGxlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oCmluZGV4IDgxNTJmODYwMGJk
OTQ5MTAwYjYyOTJiOGY2YTQ4NDMwZTFkOGVjMzcuLjgxYWNkZTdlOTdjZjk1N2IwMDAxMTA3MDll
ZDkzNGJjNzE0NGQ1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oCkBAIC0yNSw4ICsyNSw2IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQogI2luY2x1ZGUg
IkNBUmluZ0J1ZmZlci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1
ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgpAQCAtOTcsNSArOTUsMyBAQCBpbmxpbmUg
c2l6ZV90IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6YXVkaW9CdWZmZXJMaXN0U2l6ZUZvclN0cmVh
bShjb25zdCBDQUF1ZGlvUwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UuaAppbmRleCAyOTliOTRh
ZjE2MzcwMWRhZDVmMzNjZTIyNmIzMjAzNTM3YWVjODU5Li45NWZiMmY3YTM0MWM0ZmRmNmM4Zjgy
Y2ZjNDFiOTI4OTJhNzgzNWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UuaApAQCAtMjUsOCArMjUs
NiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KICNpbmNs
dWRlICJBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1
ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC0xMjMsNSArMTIx
LDMgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggNzMyYzcy
MTZkNGNjMGIxN2UwMmIyNjk0MGFjMzY4YWFiMjcxMDc1Ni4uZWY3ZmQwNDM5MWM1ODRkMGNlYmU2
NjgxMTdlYmM3YzJhOGJhMmFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtMjYsMTIg
KzI2LDEwIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkF1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oIgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQogI2ltcG9ydCAiQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmgiCiAjaW1wb3J0ICJDQVJpbmdCdWZmZXIuaCIKICNpbXBvcnQgIkxv
Z2dpbmcuaCIKLSNpbXBvcnQgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCisjaW1wb3J0ICJQ
bGF0Zm9ybUF1ZGlvRGF0YS5oIgogI2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVy
Lmg+CiAjaW1wb3J0IDxtYWNoL21hY2guaD4KICNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CkBA
IC0zNzksNSArMzc3LDMgQEAgV1RGTG9nQ2hhbm5lbCYgQXVkaW9TYW1wbGVEYXRhU291cmNlOjps
b2dDaGFubmVsKCkgY29uc3QKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CmluZGV4IDU2OWY5MDE5NzBmMjJjMjgyNTY3ZWJiMGI2M2MzYmFlZWNlMzg1ZGMuLjc4N2I5OTk3
ZDU4MjQ4NWI3NDNlZGQ5Njc5ZmIyMmQ4MjA1ODYwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvVVVJRC5oPgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
aCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmgi
CiAjZWxpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0Uo
TElCV0VCUlRDKSAmJiBVU0UoR1NUUkVBTUVSKQogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlk
ZXJHU3RyZWFtZXIuaCIKICNlbHNlCkBAIC0xODgsNyArMTg4LDcgQEAgQXVkaW9Tb3VyY2VQcm92
aWRlciogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogewog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKQotICAg
ICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIgPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6Y3JlYXRlKCp0aGlzKTsKKyAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6Y3JlYXRlKCp0aGlzKTsKICNlbGlm
IFVTRShMSUJXRUJSVEMpICYmIFVTRShHU1RSRUFNRVIpCiAgICAgaWYgKCFtX2F1ZGlvU291cmNl
UHJvdmlkZXIpCiAgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IEF1ZGlvU291cmNlUHJv
dmlkZXJHU3RyZWFtZXI6OmNyZWF0ZSgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNDdj
ODVmODJlNmJjMjAyY2QwMTE4N2YxNzI0ODU1Zjc3YjY2NzcwMy4uMDliMDhmNDc4NmI1Mjc5YTIx
OGEzN2NlOGU5ZDZiOTY1YzQyYjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzEsNyArNzEs
NyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZSwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpblJ1bkxvb3A+CiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgLCBwcm90ZWN0ZWQgTG9nZ2VySGVscGVyCisg
ICAgLCBwdWJsaWMgTG9nZ2VySGVscGVyCiAjZW5kaWYKIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNlUHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXIuaAppbmRleCBlN2Q4ODg5MjQ2ZjRjMWU4ODBjNDc4MjZlMzYyMzZmNTZmMzBjMmFj
Li5lNDFiNDk2ZDdhNmEyNmVlYWJlZTU3ODM3NGZjZDI2ZDVhMzAwZWIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5B
QkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoV0VCX0FV
RElPKQogCiAjaW5jbHVkZSAiQXVkaW9Tb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZlUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
CmluZGV4IGJmNWUwODhlNTdjODg1MWU3MGE2M2JiYThiNzhkNmQ0ZjAzNDFjNDcuLjM2ZTY5ZDE1
ZDY0NGVlMjllOGY4ZGEyYjdlYzQwNTc1ZWM5NTZlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKLSNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgorI2luY2x1ZGUg
IldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oIgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9B
dWRpb0NvbnZlcnRlci5oPgogI2luY2x1ZGUgPEF1ZGlvVW5pdC9BdWRpb1VuaXQuaD4KICNpbmNs
dWRlIDxDb3JlTWVkaWEvQ01TeW5jLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM2YzZj
ZjMyNDRkZDYxM2E4NzBkODJkNDljODA4MGQ0ZjBlMTMyNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hLmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2EuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPE1lZGlhU3RyZWFtVHJhY2tBdWRpb1Nv
dXJjZVByb3ZpZGVyQ29jb2E+IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2E6OmNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291cmNlKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2Eo
c291cmNlKSk7Cit9CisKK01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6
Ok1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmIHNvdXJjZSkKKyAgICA6IG1fY2FwdHVyZVNvdXJjZShtYWtlV2Vha1B0cihzb3Vy
Y2UpKQorICAgICwgbV9zb3VyY2Uoc291cmNlLnNvdXJjZSgpKQoreworfQorCitNZWRpYVN0cmVh
bVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjp+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYSgpCit7CisgICAgQVNTRVJUKCFtX2Nvbm5lY3RlZCk7CisgICAgbV9z
b3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIE1lZGlh
U3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6Omhhc05ld0NsaWVudChBdWRpb1Nv
dXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgYm9vbCBzaG91bGRCZUNvbm5lY3Rl
ZCA9ICEhY2xpZW50OworICAgIGlmIChtX2Nvbm5lY3RlZCA9PSBzaG91bGRCZUNvbm5lY3RlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0ZWQgPSBzaG91bGRCZUNvbm5lY3RlZDsK
KyAgICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9lbmFibGVkID0gbV9jYXB0
dXJlU291cmNlLT5lbmFibGVkKCk7CisgICAgbV9jYXB0dXJlU291cmNlLT5hZGRPYnNlcnZlcigq
dGhpcyk7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworfQor
Cit2b2lkIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnRyYWNrRW5h
YmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIG1fZW5h
YmxlZCA9IHRyYWNrLmVuYWJsZWQoKTsKK30KKworLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNr
Z3JvdW5kIHRocmVhZC4KK3ZvaWQgTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJD
b2NvYTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiwgc2l6ZV90IGZyYW1lQ291bnQpCit7CisgICAgaWYgKCFtX2VuYWJsZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIHJlY2VpdmVkTmV3QXVkaW9TYW1wbGVzKGRhdGEsIGRlc2NyaXB0aW9u
LCBmcmFtZUNvdW50KTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1U
cmFja0F1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3NWIxNTZlZTk2MDdm
NzllMWM0MTk3MjYyODM4OTI0YWI3MmVkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIgorI2luY2x1ZGUgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2EgZmluYWwKKyAgICA6IHB1YmxpYyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EK
KyAgICAsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgICwgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hPiBjcmVhdGUoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKTsKKyAgICB+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFtVHJhY2tB
dWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKKworICAg
IC8vIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYQorICAgIHZvaWQgaGFzTmV3Q2xpZW50KEF1
ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKSBmaW5hbDsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKyAgICBXVEY6OkxvZ2dlckhlbHBlciYgbG9nZ2VySGVscGVyKCkgZmluYWwgeyByZXR1cm4g
bV9zb3VyY2UuZ2V0KCk7IH0KKyNlbmRpZgorCisgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JikgZmluYWwgeyB9CisgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgV2Vha1B0cjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9jYXB0dXJlU291cmNlOworICAgIFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKyAgICBi
b29sIG1fY29ubmVjdGVkIHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVk
VW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRp
b1NoYXJlZFVuaXQuaAppbmRleCA3ODdiZTgxMDI5YzgwM2MzNDk2ZDQ0NWY1MWMxM2M5OWZmYjI1
ZmY4Li40MGEzYjJmMDI2OGM4YzcxZTE0NGM0ZGExY2Q2YjgzYTI4YTM1OTJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVk
VW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
QXVkaW9TaGFyZWRVbml0LmgKQEAgLTQwLDcgKzQwLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
b3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwotY2xhc3MgV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM7CitjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2E7CiAKIGNsYXNzIE1vY2tBdWRpb1NoYXJlZFVuaXQgZmluYWwgOiBwdWJsaWMgQmFzZUF1ZGlv
U2hhcmVkVW5pdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCmluZGV4IDE3
MDdlNGZiYWI3NGUxYTJlNmZjNWQ2ZmRkMmMxZTg1MWU4N2M3NWQuLmFhN2ZmMDg3NTA1NDI1ODJm
MWVmOTE2N2E4MWU2ZmI1YTU0OGYxNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCkBA
IC0zOSw3ICszOSw3IEBACiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgogI2ltcG9ydCAiUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCiAjaW1wb3J0ICJXZWJBdWRpb0J1ZmZlckxpc3Qu
aCIKLSNpbXBvcnQgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCisjaW1wb3J0ICJX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkF1
ZGlvQnVmZmVyLmg+CiAjaW1wb3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNp
bXBvcnQgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ3
ODMwYzRkMDYwNjU1NWU5OTAxN2I2ZGRhYWI1MzkxMWEwZWVlZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAorKysgL2Rldi9udWxs
CkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShX
RUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgot
I2luY2x1ZGUgIldlYkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKLSNpbmNsdWRlIDxDb3JlQXVkaW8v
Q29yZUF1ZGlvVHlwZXMuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi10eXBlZGVmIHN0cnVjdCBB
dWRpb0J1ZmZlckxpc3QgQXVkaW9CdWZmZXJMaXN0OwotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVk
aW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbjsKLXR5cGVkZWYg
Y29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24gKkNNRm9ybWF0RGVzY3JpcHRp
b25SZWY7Ci10eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQXVkaW9TYW1wbGVEYXRhU291
cmNlOwotY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwotY2xhc3MgV2ViQXVkaW9CdWZm
ZXJMaXN0OwotCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQyBmaW5hbAotICAgIDogcHVibGljIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIKLSAgICAsIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgotICAgICwgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gY3JlYXRlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7
Ci0gICAgdmlydHVhbCB+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsKLQotICAgIHZv
aWQgcHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mKTsKLSAgICB2b2lk
IHVucHJlcGFyZSgpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7Ci0KLSAgICAvLyBBdWRpb1Nv
dXJjZVByb3ZpZGVyCi0gICAgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QpIGZp
bmFsOwotICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKSBmaW5h
bDsKLQotICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgotICAgIHZvaWQg
dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQotICAgIHZvaWQg
dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAg
ICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWwgeyB9Ci0gICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgZmluYWw7Ci0KLSAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9i
c2VydmVyCi0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KSBmaW5hbDsKLQotICAgIHNpemVfdCBtX2xpc3RCdWZmZXJTaXplIHsgMCB9OwotICAg
IE9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9pbnB1dERlc2NyaXB0aW9uOwot
ICAgIE9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlv
bjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVy
TGlzdDsKLSAgICBSZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7Ci0K
LSAgICB1aW50NjRfdCBtX3dyaXRlQ291bnQgeyAwIH07Ci0gICAgdWludDY0X3QgbV9yZWFkQ291
bnQgeyAwIH07Ci0gICAgQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogbV9jbGllbnQgeyBudWxs
cHRyIH07Ci0gICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIG1fY2FwdHVyZVNvdXJjZSB7IG51
bGxwdHIgfTsKLSAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Ci0gICAgTG9j
ayBtX2xvY2s7Ci0gICAgYm9vbCBtX2Nvbm5lY3RlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Vu
YWJsZWQgeyB0cnVlIH07Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
MWU4ODY1Nzk1YjU5ZDBiZGEzNjM0MTQ4M2VhYTEyMGMxYWZkYzVkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgL2Rldi9u
dWxsCkBAIC0xLDIwMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCi0KLSNpZiBFTkFCTEUo
V0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW1wb3J0ICJBdWRpb0J1cy5o
IgotI2ltcG9ydCAiQXVkaW9DaGFubmVsLmgiCi0jaW1wb3J0ICJBdWRpb1NhbXBsZURhdGFTb3Vy
Y2UuaCIKLSNpbXBvcnQgIkF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCIKLSNpbXBvcnQgIkxv
Z2dpbmcuaCIKLSNpbXBvcnQgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgotI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+Ci0jaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotCi0jaWYgIUxPR19ESVNBQkxF
RAotI2ltcG9ydCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+Ci0jZW5kaWYKLQotI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3Rh
dGljIGNvbnN0IGRvdWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9uID0gMTsKLQotUmVmPFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDPiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3Jl
YXRlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoc291cmNlKSk7Ci19Ci0KLVdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291cmNlKQotICAgIDogbV9jYXB0dXJlU291cmNl
KCZzb3VyY2UpCi0gICAgLCBtX3NvdXJjZShzb3VyY2Uuc291cmNlKCkpCi0gICAgLCBtX2VuYWJs
ZWQoc291cmNlLmVuYWJsZWQoKSkKLXsKLSAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNl
cnZlcigqdGhpcyk7Ci19Ci0KLVdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKQotewotICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKLQotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2Nr
KTsKLQotICAgIGlmIChtX2Nvbm5lY3RlZCAmJiBtX2NhcHR1cmVTb3VyY2UpCi0gICAgICAgIG1f
Y2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotfQotCi12b2lkIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKLXsKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fbG9j
ayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxp
c3QpIHsKLSAgICAgICAgYnVzLT56ZXJvKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAobV93cml0ZUNvdW50IDw9IG1fcmVhZENvdW50KSB7Ci0gICAgICAgIGJ1cy0+emVybygp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGJ1cy0+bnVtYmVyT2ZDaGFubmVs
cygpIDwgbV9hdWRpb0J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCkpIHsKLSAgICAgICAgYnVzLT56
ZXJvKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgYnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7ICsraSkgewotICAgICAgICBhdXRvJiBjaGFu
bmVsID0gKmJ1cy0+Y2hhbm5lbChpKTsKLSAgICAgICAgaWYgKGkgPj0gbV9hdWRpb0J1ZmZlckxp
c3QtPmJ1ZmZlckNvdW50KCkpIHsKLSAgICAgICAgICAgIGNoYW5uZWwuemVybygpOwotICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgYXV0byogYnVmZmVyID0gbV9hdWRp
b0J1ZmZlckxpc3QtPmJ1ZmZlcihpKTsKLSAgICAgICAgYnVmZmVyLT5tTnVtYmVyQ2hhbm5lbHMg
PSAxOwotICAgICAgICBidWZmZXItPm1EYXRhID0gY2hhbm5lbC5tdXRhYmxlRGF0YSgpOwotICAg
ICAgICBidWZmZXItPm1EYXRhQnl0ZVNpemUgPSBjaGFubmVsLmxlbmd0aCgpICogc2l6ZW9mKGZs
b2F0KTsKLSAgICB9Ci0KLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IGJ1cy0+bGVuZ3Ro
KCkpOwotICAgIG1fZGF0YVNvdXJjZS0+cHVsbFNhbXBsZXMoKm1fYXVkaW9CdWZmZXJMaXN0LT5s
aXN0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9yZWFkQ291bnQsIDAsIEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZTo6Q29weSk7Ci0gICAgbV9yZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9jZXNzOwotfQotCi12
b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudCogY2xpZW50KQotewotICAgIGlmIChtX2NsaWVudCA9PSBjbGllbnQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fY2xpZW50ID0gY2xpZW50OwotCi0gICAgaWYgKCFtX2Nh
cHR1cmVTb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2NsaWVudCAmJiAhbV9j
b25uZWN0ZWQpIHsKLSAgICAgICAgbV9jb25uZWN0ZWQgPSB0cnVlOwotICAgICAgICBtX2NhcHR1
cmVTb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLSAgICB9IGVsc2UgaWYgKCFtX2NsaWVudCAm
JiBtX2Nvbm5lY3RlZCkgewotICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVy
KCp0aGlzKTsKLSAgICAgICAgbV9jb25uZWN0ZWQgPSBmYWxzZTsKLSAgICB9Ci19Ci0KLXZvaWQg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uJiBmb3JtYXQpCi17Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2xvY2spOwotCi0gICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OnByZXBhcmUoJXApIiwgdGhpcyk7Ci0KLSAgICBtX2lucHV0RGVzY3JpcHRpb24gPSBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24oZm9ybWF0KTsKLSAgICBpbnQgbnVtYmVyT2ZDaGFubmVscyA9IGZv
cm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKLSAgICBkb3VibGUgc2FtcGxlUmF0ZSA9IGZvcm1hdC5t
U2FtcGxlUmF0ZTsKLSAgICBBU1NFUlQoc2FtcGxlUmF0ZSA+PSAwKTsKLQotICAgIGNvbnN0IGlu
dCBieXRlc1BlckZsb2F0ID0gc2l6ZW9mKEZsb2F0MzIpOwotICAgIGNvbnN0IGludCBiaXRzUGVy
Qnl0ZSA9IDg7Ci0gICAgY29uc3QgYm9vbCBpc0Zsb2F0ID0gdHJ1ZTsKLSAgICBjb25zdCBib29s
IGlzQmlnRW5kaWFuID0gZmFsc2U7Ci0gICAgY29uc3QgYm9vbCBpc05vbkludGVybGVhdmVkID0g
dHJ1ZTsKLSAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0RGVzY3JpcHRpb24g
eyB9OwotICAgIEZpbGxPdXRBU0JERm9yTFBDTShvdXRwdXREZXNjcmlwdGlvbiwgc2FtcGxlUmF0
ZSwgbnVtYmVyT2ZDaGFubmVscywgYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0LCBiaXRzUGVy
Qnl0ZSAqIGJ5dGVzUGVyRmxvYXQsIGlzRmxvYXQsIGlzQmlnRW5kaWFuLCBpc05vbkludGVybGVh
dmVkKTsKLSAgICBtX291dHB1dERlc2NyaXB0aW9uID0gQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
KG91dHB1dERlc2NyaXB0aW9uKTsKLSAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8
V2ViQXVkaW9CdWZmZXJMaXN0PihtX291dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwotCi0gICAg
aWYgKCFtX2RhdGFTb3VyY2UpCi0gICAgICAgIG1fZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZTo6Y3JlYXRlKGtSaW5nQnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCAqbV9jYXB0
dXJlU291cmNlKTsKLSAgICBtX2RhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KG1faW5wdXREZXNj
cmlwdGlvbi52YWx1ZSgpKTsKLSAgICBtX2RhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChtX291
dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwotCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlXSB7
Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX2NsaWVudCkKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fY2xpZW50LT5zZXRGb3JtYXQobnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0
ZSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVu
cHJlcGFyZSgpCi17Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotCi0gICAg
bV9pbnB1dERlc2NyaXB0aW9uID0gV1RGOjpudWxsb3B0OwotICAgIG1fb3V0cHV0RGVzY3JpcHRp
b24gPSBXVEY6Om51bGxvcHQ7Ci0gICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBudWxscHRyOwotICAg
IG1fZGF0YVNvdXJjZSA9IG51bGxwdHI7Ci0gICAgbV9saXN0QnVmZmVyU2l6ZSA9IDA7Ci0gICAg
aWYgKG1fY2FwdHVyZVNvdXJjZSkgewotICAgICAgICBtX2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9i
c2VydmVyKCp0aGlzKTsKLSAgICAgICAgbV9jYXB0dXJlU291cmNlID0gbnVsbHB0cjsKLSAgICB9
Ci19Ci0KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotewotICAgIG1fZW5hYmxlZCA9
IHRyYWNrLmVuYWJsZWQoKTsKLX0KLQotLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5k
IHRocmVhZC4KLXZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0
YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFt
ZUNvdW50KQotewotICAgIGlmICghbV9lbmFibGVkIHx8ICFtX2Nvbm5lY3RlZCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50
eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwotICAg
IGF1dG8mIGJhc2ljRGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0
aW9uKTsKLSAgICBpZiAoIW1faW5wdXREZXNjcmlwdGlvbiB8fCBtX2lucHV0RGVzY3JpcHRpb24t
PnN0cmVhbURlc2NyaXB0aW9uKCkgIT0gYmFzaWNEZXNjcmlwdGlvbikKLSAgICAgICAgcHJlcGFy
ZShiYXNpY0Rlc2NyaXB0aW9uKTsKLQotICAgIGlmICghbV9kYXRhU291cmNlKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKE1lZGlhVGltZShtX3dyaXRl
Q291bnQsIG1fb3V0cHV0RGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSksIGRhdGEsIGZyYW1lQ291
bnQpOwotCi0gICAgbV93cml0ZUNvdW50ICs9IGZyYW1lQ291bnQ7Ci19Ci0KLX0KLQotI2VuZGlm
IC8vIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg4NWMwZGJmMzU0ZGVh
ODg1MDBjMTE0MDkzYTU0Y2Y2ZDk5MzQ2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2Eu
aApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJfQVVESU8pCisKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIK
KyNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSA8Q29yZUF1ZGlv
L0NvcmVBdWRpb1R5cGVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3Qg
QXVkaW9CdWZmZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1
ZGlvQ29udmVydGVyKiBBdWRpb0NvbnZlcnRlclJlZjsKK3R5cGVkZWYgc3RydWN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247Cit0eXBlZGVm
IGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uICpDTUZvcm1hdERlc2NyaXB0
aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2FtcGxlQnVm
ZmVyUmVmOworCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIExvZ2dlckhlbHBlcjsKK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1NhbXBsZURhdGFTb3VyY2U7CitjbGFzcyBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKK2NsYXNz
IFdlYkF1ZGlvQnVmZmVyTGlzdDsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckNvY29hCisgICAgOiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciB7Citw
dWJsaWM6CisgICAgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hKCk7CisgICAgfldlYkF1ZGlv
U291cmNlUHJvdmlkZXJDb2NvYSgpOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCByZWNlaXZlZE5l
d0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCBzaXplX3QpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBoYXNO
ZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopID0gMDsKKyNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyAgICB2aXJ0dWFsIFdURjo6TG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIo
KSA9IDA7CisjZW5kaWYKKworICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIKKyAgICB2b2lkIHBy
b3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBzZXRDbGllbnQo
QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIGZpbmFsOworCisgICAgdm9pZCBwcmVwYXJlKGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOworCisgICAgTG9jayBtX2xvY2s7Cisg
ICAgQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisKKyAg
ICBPcHRpb25hbDxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+IG1faW5wdXREZXNjcmlwdGlvbjsK
KyAgICBPcHRpb25hbDxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+IG1fb3V0cHV0RGVzY3JpcHRp
b247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1ZGlvQnVmZmVyTGlzdD4gbV9hdWRpb0J1ZmZl
ckxpc3Q7CisgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291cmNlOwor
CisgICAgdWludDY0X3QgbV93cml0ZUNvdW50IHsgMCB9OworICAgIHVpbnQ2NF90IG1fcmVhZENv
dW50IHsgMCB9OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjODhiZTM0
YjE3MmUyZWEyZmViNDQ0NmU0YTBjNmZiZjhjZjExYTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hLm1tCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oIgorCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKworI2ltcG9ydCAiQXVkaW9CdXMuaCIKKyNpbXBvcnQgIkF1ZGlvQ2hh
bm5lbC5oIgorI2ltcG9ydCAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgiCisjaW1wb3J0ICJBdWRp
b1NvdXJjZVByb3ZpZGVyQ2xpZW50LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJX
ZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KKworI2lmICFMT0dfRElTQUJMRUQKKyNpbXBvcnQgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgorI2VuZGlmCisKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBkb3VibGUga1Jp
bmdCdWZmZXJEdXJhdGlvbiA9IDE7CisKK1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6V2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckNvY29hKCkKK3sKK30KKworV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hKCkKK3sKK30KKwordm9pZCBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgaWYgKG1fY2xpZW50ID09IGNsaWVudCkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fY2xpZW50ID0gY2xpZW50OworICAgIGhhc05ld0NsaWVudChjbGllbnQpOwor
fQorCit2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6cHJvdmlkZUlucHV0KEF1ZGlv
QnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgYXV0byBsb2NrZXIgPSB0
cnlIb2xkTG9jayhtX2xvY2spOworICAgIGlmICghbG9ja2VyIHx8ICFtX2RhdGFTb3VyY2UgfHwg
IW1fYXVkaW9CdWZmZXJMaXN0KSB7CisgICAgICAgIGJ1cy0+emVybygpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKG1fd3JpdGVDb3VudCA8PSBtX3JlYWRDb3VudCkgeworICAg
ICAgICBidXMtPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChidXMt
Pm51bWJlck9mQ2hhbm5lbHMoKSA8IG1fYXVkaW9CdWZmZXJMaXN0LT5idWZmZXJDb3VudCgpKSB7
CisgICAgICAgIGJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKKyAg
ICAgICAgYXV0byYgY2hhbm5lbCA9ICpidXMtPmNoYW5uZWwoaSk7CisgICAgICAgIGlmIChpID49
IG1fYXVkaW9CdWZmZXJMaXN0LT5idWZmZXJDb3VudCgpKSB7CisgICAgICAgICAgICBjaGFubmVs
Lnplcm8oKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGF1dG8q
IGJ1ZmZlciA9IG1fYXVkaW9CdWZmZXJMaXN0LT5idWZmZXIoaSk7CisgICAgICAgIGJ1ZmZlci0+
bU51bWJlckNoYW5uZWxzID0gMTsKKyAgICAgICAgYnVmZmVyLT5tRGF0YSA9IGNoYW5uZWwubXV0
YWJsZURhdGEoKTsKKyAgICAgICAgYnVmZmVyLT5tRGF0YUJ5dGVTaXplID0gY2hhbm5lbC5sZW5n
dGgoKSAqIHNpemVvZihmbG9hdCk7CisgICAgfQorCisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vz
cyA8PSBidXMtPmxlbmd0aCgpKTsKKyAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1wbGVzKCptX2F1
ZGlvQnVmZmVyTGlzdC0+bGlzdCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fcmVhZENvdW50LCAwLCBB
dWRpb1NhbXBsZURhdGFTb3VyY2U6OkNvcHkpOworICAgIG1fcmVhZENvdW50ICs9IGZyYW1lc1Rv
UHJvY2VzczsKK30KKwordm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByZXBhcmUo
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBmb3JtYXQpCit7CisgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworCisgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckNvY29hOjpwcmVwYXJlKCVwKSIsIHRoaXMpOworCisgICAgbV9pbnB1dERlc2Ny
aXB0aW9uID0gQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGZvcm1hdCk7CisgICAgaW50IG51bWJl
ck9mQ2hhbm5lbHMgPSBmb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CisgICAgZG91YmxlIHNhbXBs
ZVJhdGUgPSBmb3JtYXQubVNhbXBsZVJhdGU7CisgICAgQVNTRVJUKHNhbXBsZVJhdGUgPj0gMCk7
CisKKyAgICBjb25zdCBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKKyAgICBj
b25zdCBpbnQgYml0c1BlckJ5dGUgPSA4OworICAgIGNvbnN0IGJvb2wgaXNGbG9hdCA9IHRydWU7
CisgICAgY29uc3QgYm9vbCBpc0JpZ0VuZGlhbiA9IGZhbHNlOworICAgIGNvbnN0IGJvb2wgaXNO
b25JbnRlcmxlYXZlZCA9IHRydWU7CisgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG91
dHB1dERlc2NyaXB0aW9uIHsgfTsKKyAgICBGaWxsT3V0QVNCREZvckxQQ00ob3V0cHV0RGVzY3Jp
cHRpb24sIHNhbXBsZVJhdGUsIG51bWJlck9mQ2hhbm5lbHMsIGJpdHNQZXJCeXRlICogYnl0ZXNQ
ZXJGbG9hdCwgYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0LCBpc0Zsb2F0LCBpc0JpZ0VuZGlh
biwgaXNOb25JbnRlcmxlYXZlZCk7CisgICAgbV9vdXRwdXREZXNjcmlwdGlvbiA9IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbihvdXRwdXREZXNjcmlwdGlvbik7CisgICAgbV9hdWRpb0J1ZmZlckxp
c3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9vdXRwdXREZXNjcmlwdGlvbi52
YWx1ZSgpKTsKKworICAgIGlmICghbV9kYXRhU291cmNlKQorICAgICAgICBtX2RhdGFTb3VyY2Ug
PSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShrUmluZ0J1ZmZlckR1cmF0aW9uICogc2Ft
cGxlUmF0ZSwgbG9nZ2VySGVscGVyKCkpOworICAgIG1fZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3Jt
YXQobV9pbnB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOworICAgIG1fZGF0YVNvdXJjZS0+c2V0T3V0
cHV0Rm9ybWF0KG1fb3V0cHV0RGVzY3JpcHRpb24udmFsdWUoKSk7CisKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGVdIHsKKyAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fY2xpZW50KQorICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jbGllbnQtPnNldEZvcm1hdChudW1iZXJPZkNoYW5u
ZWxzLCBzYW1wbGVSYXRlKTsKKyAgICB9KTsKK30KKworLy8gTWF5IGdldCBjYWxsZWQgb24gYSBi
YWNrZ3JvdW5kIHRocmVhZC4KK3ZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQor
eworICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQ
bGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICBhdXRvJiBi
YXNpY0Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7Cisg
ICAgaWYgKCFtX2lucHV0RGVzY3JpcHRpb24gfHwgbV9pbnB1dERlc2NyaXB0aW9uLT5zdHJlYW1E
ZXNjcmlwdGlvbigpICE9IGJhc2ljRGVzY3JpcHRpb24pCisgICAgICAgIHByZXBhcmUoYmFzaWNE
ZXNjcmlwdGlvbik7CisKKyAgICBpZiAoIW1fZGF0YVNvdXJjZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyhNZWRpYVRpbWUobV93cml0ZUNvdW50LCBt
X291dHB1dERlc2NyaXB0aW9uLT5zYW1wbGVSYXRlKCkpLCBkYXRhLCBmcmFtZUNvdW50KTsKKwor
ICAgIG1fd3JpdGVDb3VudCArPSBmcmFtZUNvdW50OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJjOGFhMjNiYWJmOTY0ZjQ5
MDEzMTA3MTJhNTNkNjZiOWRlNTBmZDguLjAzMWUzZDJhZTg4ODcxMzUxODY5YTllOWU4YWJiOWY2
MzNmMzhkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU2NCw2ICs1NjQsNyBAQCBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3Bw
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2Nv
YS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1t
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OTU1ZGU5MWRjY2EwMjUzODI4YzEwZWE1ZDgzYTY0ZGU5NjUyMjAwMi4uMGVkYTE1YTM1ZmRiYTVj
NzIyNDJjMTM4NThmNzM4YzRhYzZmOGEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDIyLDYgKzM0MjIsOCBAQAogCQk0MTI4N0Q0
QjIyNUMwNUM0MDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU29ja2V0VGFza0NvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI4N0Q0QzIyNUMwNUM1MDA5QTNFMjYgLyogV2ViU29j
a2V0VGFza0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tl
dFRhc2tDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI4N0Q0RDIyNUMx
NjFGMDA5QTNFMjYgLyogV2ViU29ja2V0VGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJTb2NrZXRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MkZGOTE2MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkxNzI1MzczRjlE
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMzA3NTlBMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRD
TW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3Jr
UlRDTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA3NTlCMURF
ODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTMwNzU5QzFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3IubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya1JUQ01vbml0b3IubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTY0LDYgKzU1NjYsOCBAQAog
CQkJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovLAorCQkJCTQxMkZGOTE2MjUzNzNGOUQw
MDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTJGRjkx
NzI1MzczRjlEMDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJ
CUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMy
MEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMy
RjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwCmluZGV4IDg5ZDZmZTlhOGZiMzIzODRhMjdlNDI0Zjc5OTkyZTRkYzQ0
YzE5NzIuLmNhYjU4MWJiOWViMTQ4YjFkYzQ3ZWIxNTFiYTZlODBiYTAzM2JlMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETS5oIgogI2luY2x1ZGUg
IlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNz
aW9uLmgiCkBAIC0xMTUsNiArMTE2LDExIEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCiAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVz
dHJveVZpZGVvTGF5ZXIoKTsKICNlbmRpZgogICAgIG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRp
YVBsYXllcihtX2lkKTsKKworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChtX2F1ZGlvU291cmNlUHJvdmlkZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQ
cm92aWRlci0+Y2xvc2UoKTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBkb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKQpAQCAtOTI0LDggKzkzMCwxNSBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnZpZGVvRGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0CiAjaWYgRU5BQkxFKFdFQl9B
VURJTykKIEF1ZGlvU291cmNlUHJvdmlkZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YXVk
aW9Tb3VyY2VQcm92aWRlcigpCiB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2F1
ZGlvU291cmNlUHJvdmlkZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZShtX2lkLCAqdGhpcyk7CisKKyAgICByZXR1cm4g
bV9hdWRpb1NvdXJjZVByb3ZpZGVyLmdldCgpOworI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKaW5kZXggZGU2ZjBlYjM3YjhjYjk1Y2JhYzBmNWM4Mjk0MzVkMzhkN2E5NzFm
OS4uYmM3N2YwOGExZTM5MjU0MTc0Mzc0MTk4MDdlZGIyZjdkYWEzY2EwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFZpZGVvTGF5ZXJNYW5hZ2Vy
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cjsKIGNsYXNzIFVzZXJEYXRhOwogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CkBAIC0zNzQs
NiArMzc1LDEwIEBAIHByaXZhdGU6CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hl
ZFN0YXRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+
IG1fY2FjaGVkQnVmZmVyZWRUaW1lUmFuZ2VzOwogCisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYg
UExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IG1f
YXVkaW9Tb3VyY2VQcm92aWRlcjsKKyNlbmRpZgorCiAgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4+
IG1fbWVkaWFSZXNvdXJjZXM7CiAgICAgSGFzaE1hcDxUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+PiBtX2F1ZGlvVHJhY2tzOwogICAgIEhh
c2hNYXA8VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPFZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlPj4gbV92aWRlb1RyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE5OTBjZTdkNTU5ZTk4NDliZjllY2Y3MDljZjNkYjMyMmRjMzdmYjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwg
TG9nTWVkaWE7CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXI6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRl
bnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKGlkZW50aWZpZXIsIGhlbHBlcikpOwor
fQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
KE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYgaGVs
cGVyKQorICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECisgICAgLCBtX2xvZ2dlcihoZWxwZXIubG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50
aWZpZXIoaGVscGVyLmxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgoreworICAgIFVOVVNFRF9QQVJB
TShoZWxwZXIpOworfQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6
Y2xvc2UoKQoreworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6Omhhc05ld0Ns
aWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikKK3sKKyAgICAvLyBGSVhNRTogcmVnaXN0
ZXIvdW5yZWdpc3RlciBhcyBuZWVkZWQuCit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNpemUp
Cit7CisgICAgcmVjZWl2ZWROZXdBdWRpb1NhbXBsZXMoZGF0YSwgZGVzY3JpcHRpb24sIHNpemUp
OworfQorCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyOjpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gTG9n
TWVkaWE7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09B
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGVjMTliZTQ0NzVlZTc5
MDBlNjUyZjQwYTkwMWRlYzYwMTZjYWYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgKQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FV
RElPKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2EuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIGZpbmFsCisgICAgOiBwdWJsaWMg
V2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hCisjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECisgICAgLCBwcm90ZWN0ZWQgV1RGOjpMb2dnZXJIZWxwZXIKKyNlbmRpZgoreworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gY3JlYXRlKFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImKTsKKyAgICB+
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFp
bGFibGUoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIGNsb3NlKCk7CisKKyAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYp
OworCisgICAgLy8gV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hCisgICAgdm9p
ZCBoYXNOZXdDbGllbnQoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIGZpbmFs
OworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgV1RGOjpMb2dnZXJIZWxwZXImIGxv
Z2dlckhlbHBlcigpIGZpbmFsIHsgcmV0dXJuICp0aGlzOyB9CisKKyAgICAvLyBXVEY6OkxvZ2dl
ckhlbHBlcgorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xh
c3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIi
OyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworI2VuZGlm
CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwor
ICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShX
RUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlQ29jb2EubW0KaW5kZXggYWU3YTlkM2FmNGIzNWRiZTU1NjNlMjJhMDNjNTJj
MGQ5OWJhN2M3NC4uNGYzZGU3NzNjMTIzNmYzMzBmNTQwYTljOGQ2NDEwMGNmYjA1YmJjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQog
CisjaW1wb3J0ICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmg+CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>